Hi All,
I am facing IMS DB code 'AM' while performing ISRT call using the IMS DB testing utility DFSDDLT0. Below are my DBDs and PCBs.
MAIN DBD
Code:
DBD NAME=MCDSCDA,ACCESS=(HDAM,VSAM), C
RMNAME=(DFSHDC40,6,2500,330)
DATASET DD1=MCDSCDA,DEVICE=3380
*
SEGM NAME=MCDC11S,PARENT=0,BYTES=100
FIELD NAME=(SMCDSKY,SEQ,U),BYTES=21,START=1,TYPE=C
FIELD NAME=(CCPRSEC),BYTES=60,START=22,TYPE=C
FIELD NAME=(CCPRCIN),BYTES=1,START=82,TYPE=C
FIELD NAME=(CCPREURO),BYTES=2,START=83,TYPE=C
FIELD NAME=(CCPRTHRD),BYTES=16,START=85,TYPE=C
LCHILD NAME=(MCDC11I,MCDSCDX),PTR=INDX
XDFLD NAME=XNAME,SEGMENT=MCDC11S,SRCH=(SMCDSKY,CCPRCIN, C
CCPREURO)
*
DBDGEN
FINISH
END
INDEX DBD
Code:
DBD NAME=MCDSCDX,ACCESS=(INDEX,VSAM)
DATASET DD1=MCDSCDX,DEVICE=3380
*
SEGM NAME=MCDC11I,BYTES=24,PARENT=0
FIELD NAME=(KEYPRI,SEQ,U),BYTES=24,START=1,TYPE=C
LCHILD NAME=(MCDC11S,MCDSCDA),INDEX=XNAME,POINTER=SNGL
*
DBDGEN
FINISH
END
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
Thinnaluri wrote:
Now I came to know that return code AM indicates invalid IMS Call used against the database.
There is lot more in the Manuals:
Quote:
AM: Explanation: For call- level programs:
The call function is not compatible with the processing option in the PCB, the segment sensitivity, the transaction- code definition, or the program type. The level number in the PCB is the level number of the SSA that is invalid. Some of the reasons you might get this status code are:
- If you issue a retrieval call with the D command code in a program that does not have the P processing option specified in the DB PCB that was used for the call.
- If you issue a DLETor ISRTcall to a terminal- related dynamic MSDB from a program with no input LTERM present. An example is a batch- oriented BMP.
- If the subset pointer referenced in the SSA was not defined in the program's PSB. For example, if your program's PSB specifies that your program can use subset pointers 1 and 4, and your SSA references subset pointer 5, Fast Path returns an AM status code to your program.
- If your program tried to use an S, Z, W, or M command code for a subset pointer to which it was not pointer update- sensitive, as defined in the program's PSB.
- If a BMP, a CICS online program, or an MPP issues an ISRTcall with the D command code when the program does not have the P processing option specified in the DB PCB that was referenced in the call. Batch programs do not need the P processing option to issue an ISRTcall with the D command code, unless the program uses field- level sensitivity.
- If the processing option is L and the program issued a call other than an ISRT call. Load programs can issue only ISRTcalls.
- If a DLET, REPL, or ISRTcall that references a DB PCB does not have the necessary processing option for that call. The minimum processing options for these calls are D for DLET,R for REPL, and I for ISRT.
- If you issue a DLET, REPL, or ISRTcall for a segment to which the program is not sensitive.
- If you issue a CHKPcall on a GSAM or VSAM data set opened for output.
This code is returned in the GSAM
PCB.
- If you issue a GSAM call with an invalid call function code.
- If you issue an ISRTor DLETcall for the index target segment or a segment on which the index target is dependent in the physical database while using an alternate processing sequence.
- If you issue a path replace where the program does not have replace sensitivity, command code N is not specified, and the data for the segment is changed in the I/ O area.
- If GSAM could not obtain buffer space because the region size is too small. This is shown by the value X'1C' in the field GBCRTNCD.
- If you issue a DLET, ISRT, or REPLcall from a program where the TRANSACT macro that was used at IMS system definition specified INQUIRY= YES for the input message.
- If you issue a call from an ETO terminal to a terminal- related MSDB or a non- terminal- related MSDB with terminal- related keys. See IMS Version 7 Administration Guide: Transaction Manager for more information on ETO.
- If you issue any type of call with update intent to a MSDB from a dynamically defined device such as a LU 6.2, ETO, or OTMA device. After this status code is returned, your position in the database is unchanged.
For command- level programs:
The command is not compatible with the processing option in the PCB or segment sensitivity. The level number in the DIB is the level number of the qualification that is invalid. Some of the reasons you might get this status code are:
- If you issue a path retrieval command in a program that does not have the P processing option specified in the DB PCB that was used for the call.
- If the processing option is L and the program issued a command other than a LOAD command. Load programs can issue only LOAD commands.
- If you issue a DLET, REPL, or ISRTcommand that references a DB PCB that does not have the necessary processing option for that command. The minimum processing options for these calls are D for DLET,R forREPL, and I for ISRT.
- If you issue a DLET, REPL, or ISRTcommand for a segment to which the program is not sensitive.
- If you issue a CHKPcommand if a GSAM or VSAM data set is open for output.
- If you issue a GSAM call with an invalid call function code.
- If you issue an ISRTor DLETcommand for the index target segment, or a segment in the physical database on which the index target is dependent, while using an alternate processing sequence.
- If you issue a path replace where the program does not have replace sensitivity, command code N is not specified, and the data for the segment is changed in the I/ O area.
- If you issue a call to a GSAM dummy data set. Any call to a GSAM dummy data set is invalid.
Programmer Response: Correct the request, or make the necessary changes in the PCB.