IMS DB Get Unique CallIMSDB Get Hold Next within Parent(GHNP) IMSDB Get Unique(GU)
Used to retrieve a specific (unique) segment in the database.
The Get Unique (GU) call is used to directly retrieve segments.
And also used to establish a starting position in the database for sequential processing.
CALL ‘CBLTDLI’ USING GU db pcb/aib i/o area ssa/rsa
Lets discuss about individual parameters.
- Database Program Control Block
- Specifies the DB PCB for the GU call.
- DB PCB will act as an input and output parameter.
- Known as Application Interface Block.
- Specifies the AIB for the call.
- AIB parameter is an input and output parameter.
- If AIB using in the GU call, all the below fields must be initialized in the AIB - AIBID, AIBLEN, AIBRSNM1, AIBOALEN.
- Known as Input-Output Area.
- Specifies the I/O area in GU Call.
- I/O Area parameter is an output parameter.
- If Replace calls completed successfully, IMS returns the requested segment in I/O area.
- If any path calls issued from the application program, the I/O area must be long enough to hold the longest path of concatenated segments.
- I/O area always contains left-justified segment data.
- The I/O area points to the first byte of this area.
- Known as Segment Search Arguments.
- Specifies to be used in the call.
- SSA parameter is an input parameter.
- The SSA supplies in the call to data areas in the application program where the SSA has been defined for the call.
- Up to 15 SSAs can be used in the parameter.
- SSA parameter is optional for the GU call.
- Specifies the area in application program where the RSA for the record should be returned.
- RSA output parameter is used for GSAM only.
- RSA parameter is optional for GU call.
Get Unique is a request for a segment based on the SSA supplied.
Get Unique is used to get exactly specific segment is needed.
In other way, it can be used to establish the connection to database.
To set the starting position while establishing the connection.
By using only GU call, the starting position can be established backward as well.
GU call can’t able to move forward in the database automatically like GN/GNP.
The same segment can be retrieved every time if GU call issued repeatedly.
Fully qualified GUs calls is required to retrieve specified segments directly.
Qualified GU calls will be used to retrieve a specific segment or to set position in the database to a specific place.
A GU call can have the same number of SSAs as defined by the DB PCB.
For example, if a segment at third level is required, then three SSAs can be used to retrieve it.
A GU call with an unqualified SSA will retrieve the root segment on the database and places the position at the beginning of the database.
If the SSA at the root level, IMS retrieves the first segment in the database.
A GU call with a qualified SSA will retrieve the segment provided in the SSA regardless of that segment's location relative to current position.
A GU call with mix of qualified and unqualified SSAs at each level, IMS retrieves the first occurrence of the segment type which satisfies the call.
If an SSA for one of the levels in a GU call that has multiple SSAs, IMS assumes an SSA for that level.
IMSDB Get Hold Next within Parent(GHNP) IMSDB Get Unique(GU)