What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
-
- Registered Member
- Posts: 34
- Joined: Sun Sep 01, 2013 4:56 pm
What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
Hi,
I have seen JCLs for DB2 making use of IKJEFT1A and IKJEFT01 both. I have mostly used the JCLs using IKJEFT01 but not IKJEFT1A. What is that used for? Does it improve on efficiency?
I have seen JCLs for DB2 making use of IKJEFT1A and IKJEFT01 both. I have mostly used the JCLs using IKJEFT01 but not IKJEFT1A. What is that used for? Does it improve on efficiency?
-
- Global Moderator
- Posts: 846
- Joined: Wed Sep 11, 2013 3:57 pm
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
If You had cared to search the manuals You would have found Yourself ...
to see what happens when You use ikjeft01 and ikjeft1a/ikjeft1b
to get a better grasp of the concept You might want to run a little REXX with justThe program needed to execute TSO/E commands from the background is a terminal monitor program (TMP), which may be one of the following: IKJEFT01, IKJEFT1A, or IKJEFT1B. The EXEC (execute) statement is used to execute program IKJEFT01 or the alternate programs IKJEFT1A and IKJEFT1B. The format is:
//stepname EXEC PGM=IKJEFT01,DYNAMNBR=nn,PARM='command'
Note: The TSO/E terminal monitor program must not run as a V=R program. Executing the TMP as V=R will cause unpredictable results.
stepname is optional and can be used as a step identifier in programs consisting of more than one step.
EXEC is the JCL term that identifies this type of statement.
PGM= specifies the module being executed. In addition to IKJEFT01, there are two other entry points available for background execution that provide additional return code and abend support. The differences among the three entry points are:
PGM=IKJEFT01
When a command completes with a non-zero return code, the program goes to the next command. When a command abends, the step ends with a condition code of 12 (X'C').
PGM=IKJEFT1A
If a command or program being processed by IKJEFT1A ends with a system abend, IKJEFT1A causes the job step to terminate with a X'04C' system completion code. IKJEFT1A also returns to the caller the completion code from the command or program in register 15.
If a command or program being processed by IKJEFT1A ends with a user abend, IKJEFT1A saves the completion code in register 15 and then terminates.
If a command, program or REXX exec being processed by IKJEFT1A returns a non-zero return code to IKJEFT1A, IKJEFT1A saves this return code in register 15 and then terminates. Non-zero return codes to IKJEFT1A from CLISTs will not affect the contents of register 15 and the TMP will continue processing.
For a non-zero return code or an abend from a command or program that was not given control directly by IKJEFT1A, no return code is saved in register 15, and IKJEFT1A does not terminate.
Note: When a command is invoked in a CLIST, that command is actually processed by the TMP (Terminal Monitor Program). From that command, termination of IKJEFT1A with a non zero return code and flushing of the remainder of the CLIST occur. This is different from the case when a command is invoked directly by a REXX exec.
PGM=IKJEFT1B
If a command or program being processed by IKJEFT1B ends with a system or user abend, IKJEFT1B causes the job step to terminate with a X'04C' system completion code. IKJEFT1B also returns to the caller the completion code from the command or program in register 15.
| If a command, program or REXX exec being processed by IKJEFT1B
| returns a non-zero return code to IKJEFT1B, IKJEFT1B saves
| this return code in register 15 and then terminates. Non-zero
| return codes to IKJEFT1B from CLISTs do not affect the
| contents of register 15 and the TMP continues processing.
For a non-zero return code or abend completion code from a program or command that was not given control by IKJEFT1B, no return code is saved in register 15, and IKJEFT1B does not terminate.
Code: Select all
/*REXX*/
return 8
cheers
enrico
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort
enrico
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
I suspect that "programs" should actually be "jobs" or "procedures" as a program IS one step.stepname is optional and can be used as a step identifier in programs consisting of more than one step.
Regards
Nic
Nic
- Anuj Dhawan
- Founder
- Posts: 2821
- Joined: Sun Apr 21, 2013 7:40 pm
- Location: Mumbai, India
- Contact:
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
I read the quoted text from Enrico multiple time. Then read the manual multiple time. In manual it has got the orientation of text bit different. I thought that will make a difference. Quoting the text aligning it for better readability:nicc wrote:I suspect that "programs" should actually be "jobs" or "procedures" as a program IS one step.stepname is optional and can be used as a step identifier in programs consisting of more than one step.
But after all that effort - you sound correct, Nic.
The EXEC (execute) statement is used to execute program IKJEFT01 or the alternate programs IKJEFT1A and IKJEFT1B. The format is:
//stepname EXEC PGM=IKJEFT01,DYNAMNBR=nn,PARM='command'
or
//stepname EXEC PGM=IKJEFT01,DYNAMBR=nn,PARM='command'
Note: The TSO/E terminal monitor program must not run as a V=R program. Executing the TMP as V=R will cause unpredictable results.
Note: If the caller wishes to pass a command string longer than 100 characters to IKJEFT01, you should use the PARMDD= keyword of the EXEC statement of JCL, as shown above.
stepname
is optional and can be used as a step identifier in programs consisting of more than one step.
Thanks,
Anuj
Disclaimer: My comments on this website are my own and do not represent the opinions or suggestions of any other person or business entity, in any way.
Anuj
Disclaimer: My comments on this website are my own and do not represent the opinions or suggestions of any other person or business entity, in any way.
-
- Registered Member
- Posts: 34
- Joined: Sun Sep 01, 2013 4:56 pm
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
Thanks all for explanation. I did look at the documentation before posting it here. I should have told about that. But the documentation does not say if IKJEFT1A is better, bad, good or something else when used in place of IKJEFT01 for a DB2 Job. Or there is just no difference as long as we are using TSO in batch?
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
It all depends on what you need or are trying to achieve. And which you use is up to you.
Regards
Nic
Nic
- Robert Sample
- Global Moderator
- Posts: 1903
- Joined: Fri Jun 28, 2013 1:22 am
- Location: Dubuque Iowa
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
It can make a big difference! If you want to know the return code of the program you ran in TSO, you CANNOT use IKJEFT01! And if you get an ABEND, you will see the difference between IKJEFT1A and IKJEFT1B in the ABEND code you get.Or there is just no difference as long as we are using TSO in batch?
-
- Registered Member
- Posts: 34
- Joined: Sun Sep 01, 2013 4:56 pm
Re: What is the difference between IKJEFT1A and IKJEFT01 in JCL and DB2.
hmmm,,ok Thanks.Robert Sample wrote:It can make a big difference! If you want to know the return code of the program you ran in TSO, you CANNOT use IKJEFT01! And if you get an ABEND, you will see the difference between IKJEFT1A and IKJEFT1B in the ABEND code you get.
Create an account or sign in to join the discussion
You need to be a member in order to post a reply
Create an account
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute