Detailed Error Passback Support
This support provides a way for the resource manager to return product-specific error codes and information to the application. The general sync point error codes do not supply product-specific information.
- Defining and using an error block is optional. The error block buffer length is an optional parameter in DMSREG. If this parameter is not specified, the resource adapter will get a buffer that has no room to store its error data.
- The size of the error block you should define depends on the type of error information your resource manager generates and how much you want to store. For example, CMS uses a 284-byte buffer for SFS and a 104-byte buffer for protected conversations.
Error blocks should contain the TPN (sometimes called the resource ID) for which the error occurred and perhaps an error identifier. The resource manager might want to provide a CSL routine to convert the error block to distinct values. For example, CMS provides the DMSWUERR routine to convert SFS error data.
The SPM keeps track of the actual error data length for each error block and resets the actual error data length for all protected resources at the start of each sync point. The SPM passes the error block and the actual error data length every time it drives the resource adapter's exit. An error block is considered empty if the actual error data length is four, meaning that the block contains only the length of the block.
The resource adapter's exit processing must manage the error block content and the actual error data length. For example, if a precoordination exit puts a warning code in the error block, and the coordination exit finds another warning, the first warning should not be overlaid. Rather, the second warning should be appended to the first by using and incrementing the actual error data parameter field.
When the resource adapter unregisters (DMSUNREG), the SPM deallocates the error block, if it is empty. If the error block contains error data, SPM does not deallocate the error block until the next sync point.
CRR provides the CSL routine DMSGETER to support detailed error passback. The resource adapter can use this routine to retrieve all error blocks generated by a resource manager, identified by component ID or adapter exit name or both, since the start of the last commit or backout for a work unit. The component ID and adapter exit name can be used as arguments to get specific error records. For information about the format and content of DMSGETER, see the z/VM: CMS Callable Services Reference.