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.