IBM Support

AIB RC=108 RSN=338 while reading the IMS catalog

Question & Answer


Question

The following error is returned in the IMS Explorer for Development (E4D) after making a change to a DBD or PSB and activating the change in IMS:

An error occurred accessing the PSB: Unable to retrieve metadata information for Database (PSB), psbname, from the IMS Catalog. com.ibm.ims.drda.base.DrdaException: The PSB resource, psbname, requested by the GUR is not defined on this IMS. Verify that the correct IMS catalog is being accessed and that the resource is active. AIB return code (AIBRETRN): 108 AIB reason code (AIBREASN): 338

Running a GUR natively in IMS, for example with DFSDDLT0, also fails with AIB RC=108x and RSN=338x.

How can I determine why IMS cannot find my updated resource in the IMS catalog?

Answer

The most common reason for this error is that the ACBLIB has been updated without updating the IMS catalog. Updating the ACBLIB without updating the IMS catalog causes the timestamps between IMS and the IMS catalog to be out of sync.

To determine if you have encountered this problem you'll need to compare the timestamp that IMS is using with the timestamp in the IMS catalog.

When you (or SQL interfaces) issue a GUR IMS will dynamically determine the active resource to use based on a timestamp that was obtained from the ACBLIB (or IMS catalog directory data set). The timestamps are stored in an IMS control block called the DDIR / PDIR so that GUR can quickly reference the timestamp. As easy way to check the timestamp that IMS is using would be to use the /DIAG command to dump the DDIR or PDIR to see the timestamp that GUR will use.
Some important notes: The timestamp is at offset '98'x in the DDIR The timestamp is at offset '58'x in the PDIR
You may need to compile your own copy of DFSDDIR / DFSPDIR to validate offsets are accurate at your release since they change from time to time. Also be aware that there is a sign in the 3rd byte that can be ignored.

Here is an example of the command to snap the DDIR: /DIAGNOSE SNAP DB(name) SHOW(DDIR) Here is an example of the command to snap the PDIR: /DIAGNOSE SNAP PGM(name) SHOW(PDIR)

Here is an example of how to compare them.

The IMS catalog populate utility issues the following message when it inserts a member in the catalog: DFS4434I INSTANCE 1706115210957 OF DBD DFSCD000 WAS ADDED TO A NEWLY CREATED RECORD IN THE IMS CATALOG.

Issue a /DIAGNOSE SNAP DB(DFSCD000) SHOW(DDIR) and notice the same timestamp exists at offset 98'x in the DDIR.

DFS000I /DIAGNOSE SNAP STORAGE DISPLAY
DFS000I
DFS000I Resource: DB(DFSCD000)
DFS000I
DFS000I DDIR Database Directory Block Loc: 0A889040
DFS000I ---- -------- -------- -------- -------- ----------------
DFS000I 0000 00000000 D22D806C C4C6E2C3 C4F0F0F0 |....K..%DFSCD000|
DFS000I 0010 0CC22008 00000B00 00EC00EC 0000033F |.B..............|
DFS000I 0020 10400300 00000040 03008024 00000000 |. ..... ........|
DFS000I 0030 0A889108 00000000 00010000 C4200000 |.hj.........D...|
DFS000I 0040 10000000 00000000 00000000 00000000 |................|
DFS000I 0050 00000000 00000000 00000000 00000006 |................|
DFS000I 0060 00000000 00000000 0A9C2008 00000000 |................|
DFS000I 0070 00000000 00000000 0D244548 00000000 |................|
DFS000I 0080 00000000 00000000 00000000 00008000 |................|
DFS000I 0090 00000000 00000000 17061F15 21095700 |................|
DFS000I 00A0 00000000 00000000 00000000 00000000 |................|
DFS000I 00B0 00000000 00000000 00000000 0A889108 |.............hj.|
DFS000I 00C0 00000000 00000000 |........ |
DFS000I 17061/235842

The IMS catalog populate utility issues the following message: DFS4434I INSTANCE 1706115210957 OF PSB DFSCP000 WAS ADDED TO A NEWLY CREATED RECORD IN THE IMS CATALOG.

Issue a /DIAGNOSE SNAP PGM(DFSCP000) SHOW(PDIR) and notice the same timestamp exists at offset 58'x in the PDIR.

DFS000I /DIAGNOSE SNAP STORAGE DISPLAY
DFS000I
DFS000I Resource: PGM(DFSCP000)
DFS000I
DFS000I PDIR Program Directory Block (Master) Loc: 0A8C7040
DFS000I ---- -------- -------- -------- -------- ----------------
DFS000I 0000 00000000 00000000 C4C6E2C3 D7F0F0F0 |........DFSCP000|
DFS000I 0010 8A85D0E0 00000C00 01260127 000000F3 |.e.............3|
DFS000I 0020 40460000 0A909500 0AB6D020 0A8C7120 | .....n.........|
DFS000I 0030 0040000F 00000000 00420000 D7000000 |. ..........P...|
DFS000I 0040 00000000 00000000 D22D804D D7677208 |........K..(P...|
DFS000I 0050 0D214428 0A85D4A0 17061F15 21095700 |.....eM.........|
DFS000I 0060 0A85D3E0 0A8C70B0 00000000 00000000 |.eL.............|
DFS000I

If your timestamps are out of sync then check your ACBGEN and ACBLIB procedures. You may have updated the ACBLIB without updating the IMS catalog and caused this error.

If they are out of sync then you can resolve the error by rerunning the IMS catalog populate utility (DFS3PU00) using the ACBLIB which contains the correct member to store in the catalog.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPH2","label":"IBM Information Management System (IMS)"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"","Version":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
24 April 2017

UID

dwa1370448