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.

    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...

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


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

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:


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.

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:


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.

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

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 !!!!!!!

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


********** 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)
                                  --------------------

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:


  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

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:

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

Share