MVSFORUMS.com A Community of and for MVS Professionals
View previous topic :: View next topic
Author
Message
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Tue Jan 30, 2007 4:22 am Post subject: PSB Definition error
Dear All,
I'm new to IMS, I've created a DBD and PSB and given to DBA to generate it. ANd then i Coded a program to perform various operations on the Database such as LOAD/READ/WRITE/REPLACE/DELETE. It is an online program where CICS is used as the Front-end screen. Also I'm using the new method called "EXEC DLI" method. And the first command which i'm using in all of my online program is SCHEDULING the PSB. The command is as follows:
Code:
EXEC DLI SCHD PSB(TIMBFH01)
END-EXEC.
When i try to execute the transaction, the program failed at the PSB sceduling command itself with the ABEND DHTJ.
And the Quick reference manual provides the following error description:
Explanation: A task has issued a program specification block (PSB) schedule request but the request failed because CICS is not connected to DBCTL.
But my DBA is telling that it is a problem with my PSB definitions:
PCB TYPE=DB,DBDNAME=PAYROLL,KEYLEN=32,PROCOPT=LS
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
PSBGEN PSBNAME=PAYRLPSB,LANG=COBOL
END
Do I have mdoify the PSB and include one more PCB for different Procopt,
Please help me out in this regard,
Thank you,
Regards,
Praveen
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Tue Jan 30, 2007 4:31 am Post subject:
Correction in the above PSB:
Code:
PCB TYPE=DB,DBDNAME=PAYROLL,KEYLEN=32,PROCOPT=LS
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
PSBGEN PSBNAME=TIMBFH01,LANG=COBOL
END
Do I have mdoify the PSB and include one more PCB for different Procopt,
Please help me out in this regard,
Thank you,
Regards,
Praveen
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Tue Jan 30, 2007 2:48 pm Post subject:
Did you make an entry into the RCT table ? _________________ Regards,
Programmer
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Wed Jan 31, 2007 6:40 am Post subject:
Hi Programmer,
Yes an entry has been made in the RCT table is the statement from my DBA,
This is how my DBA generated the PSB and ACB:
Code:
//TIMBFH01 EXEC GENPSBV,SPSB=TIMBFH01,
// LNKPSB=TIMBFH01
//C.SYSIN DD *
PRINT NOGEN
PCB01 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=LS, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB02 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=A, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PSBGEN LANG=COBOL,PSBNAME=TIMBFH01
END
//*
//TIMOSM01 EXEC GENPSBV,SPSB=TIMOSM01,
// LNKPSB=TIMOSM01
//C.SYSIN DD *
PRINT NOGEN
PCB01 PCB TYPE=TP, *
LTERM=TERM1
PSBGEN LANG=COBOL,PSBNAME=TIMOSM01
END
//*
//ACB EXEC GENACBV
//ACB.SYSIN DD *
BUILD PSB=TIMBFH01
BUILD PSB=TIMOSM01
//*
Also he is insisting that the problem is with the PSB definitions / Procoptions,
Any idea what went wrong in the PSB definitions?
Thanks in Advance
Regards,
Praveen
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Wed Jan 31, 2007 11:43 am Post subject:
Can you try changing the schedule call to:
EXEC DLI SCHD PSB(TIMBFH01) NODHABEND
END-EXEC.
and rerun the program.
This call should atleast give you a proper IMS error code that can be looked at.
DHTJ is a generic CICS code, which would be issued for any kind of failure while talking to IMS. _________________ Regards,
Programmer
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Wed Jan 31, 2007 12:38 pm Post subject:
Also, if you are using DBCTL, you will need to include I/O PCB and Alternate PCB in your PSB and your schedule call will change to:
EXEC DLI SCHD PSB(TIMBFH01) SYSSERVE
END-EXEC. _________________ Regards,
Programmer
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Fri Feb 02, 2007 12:46 am Post subject:
Dear Programmer,
I tried the following command as per your advice,
EXEC DLI SCHD PSB(TIMBFH01) NODHABEND
END-EXEC.
And i displayed the error message in the screen,
The program failed at scheduling with an error code = "TE"
And the ABEND i got along with this is "DHTE"
The Quick reference manual says the following message:
Explanation:
A task has issued a terminate request but the request failed because the program specification block (PSB) is not scheduled.
It seems to the program is unable to initialise the PSB!
Do i have to change the procopt in the PCB's or should i have to include some more PCB. Need your suggestions please,
Thank you,
Regards,
Praveen
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Fri Feb 02, 2007 8:15 pm Post subject:
As per my knowledge, changing the procopt should not work because you are facing an abend at scheduling stage.
Did you try including Alternate PCB in the PSB block?
Try the following:
1) Include Alternate PCB in your PSB block
2) Issue the schedule request as :
EXEC DLI SCHD PSB(TIMBFH01) SYSSERVE
END-EXEC.
Hopefully this should take us to the next stage ! _________________ Regards,
Programmer
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Mon Feb 05, 2007 7:51 am Post subject:
Dear Programmer,
Thanks a lot for your valuable suggestions,
As per your advice, I tried the following code with the different PSB name and the curent error got cleared.
Code:
EXEC DLI SCHD PSB(TIMOSM01) SYSSERVE
END-EXEC.
And I have update the PSB information and given back to my DBA for generation process.
The updated code is as follows:
Code:
//TIMBFH01 EXEC GENPSBV,SPSB=TIMBFH01,
// LNKPSB=TIMBFH01
//C.SYSIN DD *
PRINT NOGEN
PCB01 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=LS, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB02 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=GOP, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB03 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=AP, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB04 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=A, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PSBGEN LANG=COBOL,PSBNAME=TIMBFH01
END
//*
--------------------------------------------------------------------------------
//TIMOSM01 EXEC GENPSBV,SPSB=TIMOSM01,
// LNKPSB=TIMOSM01
//C.SYSIN DD *
PRINT NOGEN
PCB01 PCB TYPE=TP, *
LTERM=TERM1
PCB02 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=LS, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB03 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=GOP, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB04 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=AP, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PCB05 PCB TYPE=DB, *
DBDNAME=PAYROLL, *
PROCOPT=A, *
KEYLEN=32
SENSEG NAME=MASTER,PARENT=0
SENSEG NAME=SALARY,PARENT=MASTER
SENSEG NAME=LEAVE,PARENT=MASTER
SENSEG NAME=BONUS,PARENT=MASTER
*
PSBGEN LANG=COBOL,PSBNAME=TIMOSM01,CMPAT=YES
END
//*
//ACB EXEC GENACBV
//ACB.SYSIN DD *
BUILD PSB=TIMBFH01
BUILD PSB=TIMOSM01
//*
In IMS batch modules, what is the replacement for "ENTRY 'DLITCBL' USING PCB-MASK1." statement in "EXEC DLI" Method; Any idea in this regard would be a Great help for me, Thank you.
Best Regards,
Praveen
Best Regards,
Praveen
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Mon Feb 05, 2007 1:36 pm Post subject:
Praveen,
I don't think we need an ENTRY statement if the program is invoked from a CICS transaction.
You just need to schedule your PSB to CICS and after use, you must Terminate your PSB. _________________ Regards,
Programmer
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Tue Feb 06, 2007 12:05 am Post subject:
Dear Programmer,
I'm actually working in 2 separate modules.
1. COBOL+CICS+IMS-DB ( Online )
2. COBOL+JCL+IMS-DB ( Batch )
As I mentioned earlier, I need to use "Entry" statement in the "Batch" Modules. And we are forced to use "EXEC DLI" Method instead of "CALL 'CBLTDLI'" method, since our client system doesn't support "Call CBLTDLI" statements any longer in their mainframe systems. Also in "EXEC DLI" method, there is no need to declare any PCB mask in the Linkage system, In such cases, what would be the replacement for "ENTRY 'DLITCBL'" Statement in "EXEC DLI" method? Any suggestions in this regard would be a Great help for me, Thanks in Advance
Best Regards,
Praveen
Back to top
programmer1 Beginner Joined: 18 Feb 2004 Posts: 138 Topics: 14
Posted: Tue Feb 06, 2007 12:31 pm Post subject:
Sorry Praveen, I just assumed that you are working only on the IMS-CICS program.
For a batch program just specify the option as DLI if you don't want to use the conventional ENTRY statement. _________________ Regards,
Programmer
Back to top
pravonline Beginner Joined: 09 Jan 2007 Posts: 7 Topics: 1
Posted: Fri Feb 16, 2007 5:07 am Post subject:
Dear Programmer,
In Batch modules, Can you please explain me about the replacement statement for "ENTRY" statement in EXEC DLI method for mapping the PSB . if you can you please provide me an example for that would be a Great help for me in rectifying the error in my program. or just give me the steps to follow for retrieving a record in IMS DB in EXEC DLI format.
Thanks in Advance,
Regards,
Praveen
Back to top
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum