Troubleshooting COBOL Problem

Here’s another problem that I ran into …

COBOL wouldn’t run. Even the simple test didn’t work.

In researching, I found this in my SCHDLR log file.

[sourcecode]
Server: PSNT checking status…
Server action mode: Submitting request
Number of New Process Request(s) To Start: 1
Process Instance: 1236 started
Starting process: 1236
Process Name: PTPDBTST
Process Type: COBOL SQL
Command Line: C:\pshome\hcm89\CBLBINA\PTPDBTST.EXE
Parm List: ORACLE/HCM89/PS/OPRPSWD/SCR/1236//0
Working Dir: E:\oracle\11.1.0\client
Session Id: 2656
Server: PSNT checking status…
Server action mode: Ok (looking for requests)
Server: PSNT looking for work
Checking Process cancels…
=================================Error===============================
Process 1236 is marked ‘Initiated’ or ‘Processing’ but can not detect status of PID
Updating process instance’s status to Error.
Process Name: PTPDBTST
Process Type: COBOL SQL
Session Id: 2656
=====================================================================
Number of requests removed from Task Active List: 1
Server: PSNT checking status…
[/sourcecode]

So, I took the command line from the file, and I tried to run it in a command window. Here’s what happened:

[sourcecode]

E:\>cd \oracle\11.1.0\client

E:\oracle\11.1.0\client>
E:\oracle\11.1.0\client>C:\pshome\hcm89\CBLBINA\PTPDBTST.EXE ORACLE/HCM89/PS/PS/
SCR/1236//0

Application Program Failed
Action Type : SQL CONNEC
In Pgm Section : SQLRT:GG100 SQL-CONNECT
With Return Code: 09989
Error Message : SQLRT: Operator ID not allowed to submit COBOL from client

FAIL TO CONNECT
PTPDBTST:
Application Program Failed
In Pgm Section : CONNECT FAILED
With Return Code: 09989
Error Message : SQLRT: Operator ID not allowed to submit COBOL from client
[/sourcecode]

On the PeopleSoft Wiki, I found that you are not supposed to have the bin directory from your PeopleSoft home on your path. Just to test, I adjusted the path for just the one command window, and tried it:

[sourcecode]

E:\oracle\11.1.0\client>echo %path%
E:\oracle\11.1.0\client;E:\Java\jrockit-jdk1.6.0_24-R28.1.3-4.0.1\bin;C:\pshome\
hcm89\bin\client\winx86;E:\oracle\11.2.0\dbhome_1\BIN;C:\WINDOWS\system32;C:\WIN
DOWS;C:\WINDOWS\System32\Wbem;c:\pshome\bea\tuxedo11gR1\bin;c:\pshome\bea\tuxedo
11gR1\jre\bin\server;c:\pshome\bea\tuxedo11gR1\jre\bin

E:\oracle\11.1.0\client>set path=E:\oracle\11.1.0\client;E:\Java\jrockit-jdk1.6.
0_24-R28.1.3-4.0.1\bin;E:\oracle\11.2.0\dbhome_1\BIN;C:\WINDOWS\system32;C:\WIND
OWS;C:\WINDOWS\System32\Wbem;c:\pshome\bea\tuxedo11gR1\bin;c:\pshome\bea\tuxedo1
1gR1\jre\bin\server;c:\pshome\bea\tuxedo11gR1\jre\bin

E:\oracle\11.1.0\client>C:\pshome\hcm89\CBLBINA\PTPDBTST.EXE ORACLE/HCM89/PS/PS/
SCR/1236//0
Unable to load program: PSSQLORA_ANSI.DLL Application terminated.
[/sourcecode]

So, I did a search for PSSQLORA_ANSI.DLL, and I found it in the server bin directory. When I put that on the path, I got a little further:

[sourcecode]

E:\oracle\11.1.0\client>set path=c:\pshome\hcm89\bin\server\winx86;%path%

E:\oracle\11.1.0\client>C:\pshome\hcm89\CBLBINA\PTPDBTST.EXE ORACLE/HCM89/PS/PS
psoracle/1237//0
SUCCESSFUL DATABASE CONNECTION
PTPSQLRT – ERROR IN BIND SETUP/DATA
STATEMENT=PTPUSTAT_U_PRCRQSE
VARIABLE#=001
DATA TYPE=001
DATA LEN =0001
SCALE =000

Application Program Failed
Action Type : SQL UPDATE
In Pgm Section : SQLRT: PROCESS-SETUP(BIND)
With Return Code: 08001
Error Message : Invalid bind variable number
Stored Stmt : PTPUSTAT_U_PRCRQSE
SQL Statement : UPDATE PSPRCSRQST SET RUNSTATUS = :1 ,PRCSRTNCD = :2 ,ENDDTT
M = SYSDATE ,LASTUPDDTTM = SYSDATE ,CONTINUEJOB = :3 WHERE P
RCSINSTANCE = :4

at pos 00028

PTPSQLRT – Error Encountered
No longer have connection to DB due to an error from previous
action: SQL UPDATE. Bypassing current action: SQL SELECT.
Terminating Program.
[/sourcecode]

Then, I found why I was getting the SQL error. My compile process was not completing properly:

[sourcecode]
Compile error for SRPCTEXT.obj
Compile error for SRPCWD.obj
The error list is in c:\temp\compile\ERROR.LIS
.
Aborting this process !!! EXEs/GNTs/INTs are not going to be copied/replaced…
.
Please fix the errors and rerun this batch file !!!!!!!
[/sourcecode]

So, I looked in the c:\temp\compile\CBLBLD.log and I found a reference to the LIS files that contained the error messages:

[sourcecode]

********** COMPILE PTPWLGEN.GNT **********

********** COMPILE SFP1098P.GNT **********

Creating error listing (SFP1098P.LIS)
——————–

********** COMPILE SFPAPLPY.GNT **********

Creating error listing (SFPAPLPY.LIS)
——————–

********** COMPILE SFPBCALC.GNT **********

Creating error listing (SFPBCALC.LIS)
——————–

[/sourcecode]

Then, in the SFP1098P.LIS, I found a specific error message. The end of the file said that the last message was on page 153. There, I found this:

[sourcecode]

7223 END-IF
7224
7225 SET MSG-NBR-TOT-REC-INS OF LOGMS TO TRUE
* 12-S****************************************** ( 68)**
** Operand MSG-NBR-TOT-REC-INS is not declared
7226 MOVE 4 TO PARM-COUNT OF LOGMS
7227 SET SEVERITY-INFO OF LOGMS TO TRUE
[/sourcecode]

That didn’t help me too much, so I opened it up in GVim. Then, I could do a regex search to find the lines that start with two asterisks (**) — “/^\*\*”.

That turned up the answer. I was missing a copy file:

[sourcecode]
626******************************************************************
627
* 628 COPY SFC1098P.
* 8-S********************************************** ( 0)**
** Unknown COPY file SFC1098P specified
[/sourcecode]

Leave a Comment

Your email address will not be published. Required fields are marked *