View previous topic :: View next topic
|
Author |
Message |
vshchukin
New User
Joined: 13 Mar 2014 Posts: 11 Location: Czech Republic
|
|
|
|
Greetings to the ibmmainframes.com community!
I have a question on how one should call the DSNUTILB. I have the working implementation from the other product,
but I want to clarify this process. Please consider that we have 3 modules:
Module A (RMODE ANY):
1. Switches supervisor state on and activates zero protection key (MODESET MODE=SUP,KEY=ZERO).
2. Attaches a new task with module B with parameters SM=SUPV,KEY=ZERO.
Module B (RMODE 24):
1. Updates the TCBPKF field of the current task TCB, changes it to X'70', key 7 - IMS/DB2/... key.
2. Obtains storage with key 7 and in subpool 250.
3. Copies the input parameter string ("SSID,UTILID,etc") from any key storage to key 7 storage.
4. Calls module C.
Module C (RMODE 24):
1. Sets key 7 in the PSW.
2. Switches to the problem state.
3. Links to DSNUTLB.
What is actual the requirements for calling the DSNUTILB from the application program?
And where I can find the documentation regarding this question?
Thanks,
Vadim. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
don't know if it will answer your question,
but try looking here
starting with chapter 5, there are several chapters concerning DSNUTLB. |
|
Back to top |
|
|
vshchukin
New User
Joined: 13 Mar 2014 Posts: 11 Location: Czech Republic
|
|
|
|
Thanks, but that chapter talks about DSNUTILB interception, when the operator invokes DSNUTILB directly in batch job, and the control is passed to the DSNUTILF user exit, so in that case the environment will be set up properly apriori.
dbzTHEdinosauer wrote: |
don't know if it will answer your question,
but try looking here
starting with chapter 5, there are several chapters concerning DSNUTLB. |
|
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3048 Location: NYC,USA
|
|
|
|
DSNUTILB is an APF authorized program. It also has an entry
in the PARMLIB SCHEDxx member. The following is an example.
Code: |
/*******************************************************/
/* USED TO DEFINE THE PROGRAM WHICH CALLS DSNUTILB */
/* THIS UTILITY MUST BE DEFINED EXACTLY AS THE DB2 */
/* DATABASE LOAD PROGRAM (DSNUTILB) IS DEFINED. */
/* */
/*******************************************************/
PPT PGMNAME(program) /* YOUR DSNUTILB CALLER */
KEY(7) /* PROTECTION KEY */
NOSYST /* NON-SYSTEM TASK */
SWAP /* SWAPABLE */
NOPREF /* NO PREFERRED STORAGE */
DSI /* DOES REQ DATASET INTEG */
NOPRIV
CANCEL
AFF(NONE)
PASS |
If the PARMLIB member is named "SCHEDAB", the following MVS
Operator command would be used to activate this DB2 support utility is:
SET SCH=AB
This member or its contents should be added to the appropriate
PARMLIB members for use during IPL .
Also your program MUST be re-entrant, authorized, and run in 31-bit mode..
This fyi... also please try a Google search as well and you might get more information on this, as per forum rules I can not post non IBM link otherwise I found couple of sites relevant to what you asked for. |
|
Back to top |
|
|
vshchukin
New User
Joined: 13 Mar 2014 Posts: 11 Location: Czech Republic
|
|
|
|
Yes, thank you, I've found this on IDUG forums too, but still there are some questions:
why it's required to change the protection key in TCB (or maybe it's not), or what subpool should be used to load DSNUTILB into it. The question is as simple as: how one should call the DB2 utilities from the application program, even through assembler, I'm convinced this should be documented.
Thanks,
Vadim. |
|
Back to top |
|
|
|