Why is my Sparse routine (EXIT) not being picked up?

Document ID : KB000013754
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

Using a Sparse routine (EXIT) with File Master Plus for IMS.

Question:

Why is my Spare routine (EXIT) not being picked up?

Environment:
File Master Plus for IMS running as a BMP
Answer:

We created an exit routine for a secondary index and reloaded the database with MODE(LOAD). The proper index entries were created based on the criteria in the exit routine. We then brought up the database in a BMP region using File Master for IMS and added a new segment for which an index entry should have been created and it was. Then we changed the exit routine logic and reassembled it without taking down the IMS control region. We went back into File Master and added a new segment for which an index entry should have been created by the old exit routine but not by the new exit routine and an index entry was created. After that, we brought the IMS control region down and back up again. We repeated the last scenario again and this time no index entry was created. 

From these results, it appears that once an exit (sparse) routine is loaded by the control region, it does not get refreshed as long as the control region remains up. Once the control region is brought down and back up again, a new copy of the exit routine is loaded the next time that the database using the routine is accessed. 

This behavior is consistent with the documentation on the Secondary Index Database Maintenance exit routine as described in the IBM documentation at https://www.ibm.com/support/knowledgecenter/SSEPH2_13.1.0/com.ibm.ims13.doc.err/ims_secondindexdbmaint.htm. 

“The first time that an exit routine associated with the specific database is referenced, it is loaded into storage in either the IMS online control program region or batch processing region when the associated database is opened. The loaded routine will be used by any other databases that require the same exit routine. This allows one copy of the module to service several databases that are open concurrently. The routine is not refreshed during the current IMS execution.” It makes sense that the exit routine would not get reloaded until the IMS control region is recycled, since the routine may be shared among a number of different databases.

 In addition to libraries that are used in the BMP region, the IBM documentation says that exit routines can also reside in the link list. So, this is another place to check for an old copy of the exit routine. 

So, we haven’t seen any evidence that File Master Plus for IMS, is doing anything but working as designed.

Additional Information:

 

For a user experiencing this problem, execute the ISRDDN command from within File Master to try and determine where the exit routine is being loaded from.

-Get into File Master Plus for IMS and bring up a database in Browse or Edit (this should allocate all the libraries found in the IMSENV) 

-On the command line, enter TSO ISRDDN 

-Then, on the command line enter M xxxxx (where xxxxx is the name of the Sparse Routine (EXIT) module). 

Does this series of these commands a) find the module is in the libraries allocated, and, b) if the module is found, is it in the library(s) that you expect the new or old sparse routine module to be in)?