Freeing or retaining message blocks (EMKEEP)

This function retains the storage area where the system keeps the message blocks. When you request message extraction or message sending, IEFDB476 will automatically free the associated dynamic allocation message blocks unless you explicitly specify otherwise. To request that message blocks be retained, set flag EMKEEP to one in the EMFUNCT field. After invoking IEFDB476 for message extraction or message sending, you must invoke IEFDB476 again to free the message blocks if, and only if, you requested that message blocks be retained by setting flag EMKEEP on. Free the message blocks by setting all of the function indicators in EMFUNCT to zero. Failure to free the message blocks will cause the message blocks to accumulate in storage, eventually leading to an out-of-storage condition.

The caller of IEFDB476 must be running with a PSW key value of zero, or with the same key value that matches the storage key of the storage that contains the message blocks. The storage key is specified or defaulted by the program that issues the original SVC 99 request.

Note: Besides extracting messages, sending messages, and freeing storage, IEFDB476 can also convert an error reason code into the corresponding message. However, because DAIRFAIL also performs the same conversion function, older programs using DAIRFAIL for this purpose should continue to do so.
Figure 1. Structure of Input Parameter List to IEFDB476
ieaa8dac