View previous topic :: View next topic |
Author |
Message |
YSMVS Beginner

Joined: 19 May 2004 Posts: 51 Topics: 25 Location: My House
|
Posted: Wed Mar 23, 2005 1:27 pm Post subject: Internal restart |
|
|
Hi,
Because of the Control interval level locking, we are facing some FD contention abends. We do the restart for the jobs from the last checkpoint. We want to do this in the program without manual intervention. Can any one throw some light on how to do the internal restart from the last checkpoint.
thanks ,
YSMVS _________________ Thanks,
YSMVS |
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12377 Topics: 75 Location: San Jose
|
Posted: Wed Mar 23, 2005 8:43 pm Post subject: |
|
|
YSMVS,
What exactly do you mean internal restart? Do you mean that the program should restart by it self incase it abends?
If that is the scenario, you will have to do the following.
1. create log sweep job to run every 15 minutes and scan for the abend messages and dynamically generate the JCL and re-submit.
In my opinion this will be a herculian task to sweep the log and generate the dynamic jcl.
2. The other option is to generate the JCL in the abending program itself with restart card last and re-submit it. However you are dealing with contentions , so you need to figure out a way to submit the job so that the job will not abend once again with contention.
Hope this helps...
Cheers
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
 |
YSMVS Beginner

Joined: 19 May 2004 Posts: 51 Topics: 25 Location: My House
|
Posted: Thu Mar 24, 2005 8:40 am Post subject: |
|
|
Kolusu,
Since we are dealing with the contention abend and most of the time lock gets released immeditely. So What I want to do in the program is, whenever the program faces an FD status code, I want to reposition the database and the GSAM file pointer to the last checkpoint position (by an exteneded restart but without passing the parameter in the JCL) and then reissue the same call. If it has the same FD status code for the same record then abend it to avoid infinite loop, if the call is successful then proceed with program.
I need some gudance on how to do an extended restart from Last checkpoint without passing the checkpoint id from the JCL.
Thanks,
YSMVS. _________________ Thanks,
YSMVS |
|
Back to top |
|
 |
Bithead Advanced

Joined: 03 Jan 2003 Posts: 550 Topics: 23 Location: Michigan, USA
|
Posted: Thu Mar 31, 2005 10:52 am Post subject: |
|
|
The abend is occurring in IMS so control is never passed back to the program. Look at using LAST when restarting instead of coding the last checkpoint value. |
|
Back to top |
|
 |
YSMVS Beginner

Joined: 19 May 2004 Posts: 51 Topics: 25 Location: My House
|
Posted: Fri Apr 01, 2005 6:54 pm Post subject: |
|
|
Bithead,
I am very confused on your reply. Can you please tell me more about the solution you are suggesting.
Meanwhile when I saw the Quick reference for the FD status code, it says that the control is returned to the program
Quote: | FD
Explanation: A nonmessage driven BMP reached a deadlock when IMS tried t
get DEDB or MSDB resources (either DEDB UOWs or overflow latches) for th
program. Or, a mixed- mode BMP reached a deadlock on any resource, eithe
Fast Path or full function. IMS eliminates all database updates that the
program has made since the last SYNCcall, CHKP request, or SYMCHKP comma
(or since the program started processing, if the program has not issued
SYNC call or CHKPrequest). All database positioning is lost, unless you
specified the P processing option in the PCB. Messages to a non- express
alternate TP PCB are discarded.
Rather than having an abnormal termination occur, this status code is
returned to the application program that issued the EXEC DLI command.
Programmer Response: Start processing from the last commit point. If you
reach a deadlock again, terminate the program. |
Can you please correct me if I am worng. _________________ Thanks,
YSMVS |
|
Back to top |
|
 |
Bithead Advanced

Joined: 03 Jan 2003 Posts: 550 Topics: 23 Location: Michigan, USA
|
Posted: Mon Apr 04, 2005 11:58 am Post subject: |
|
|
YSMVS,
Now I see what you are trying to do. The checkpoint can be passed in the I/O area referenced in the XRST call. Set the I/O area to the word LAST followed by spaces.
See the Application Programming: Database Manager guide for more information on the XRST call. |
|
Back to top |
|
 |
|
|