302 IMS Connectivity in an On Demand Environment: A Practical Guide to IMS Connectivity
4. Check if IMS is experimenting global problems. The IMS troubleshooting procedures are
beyond the scope of this book. If you know that the IMS problems will not be solved in a
short period of time, and you are experiencing a lot of execution timeouts, lengthening the
IMS Connect TIMEOUT value or using the IMS Connect Extensions pacing feature to
diminish the IMS workload should alleviate this problem.
Unless you find a configuration problem, there are very few things that can be done on the
IMS Connect side to fix an execution timeout situation. The problem will be either in IMS or on
the application side. However, ensure that the timeout values used in your applications and in
IMS Connect are set appropriately.
15.2 Error messages from IMS
You can get IMS error messages in the form of literals, which begin with an error code,
expressed as DFSnnnn, where nnnn is a code that specifies the kind of error.
If you are using IMS Connector for Java, the way DFS messages are handled is depends on
the type of imsRequestType that was used for the interaction. If the imsRequestType was
IMS_REQUEST_TYPE_IMS_ COMMAND or
IMS_REQUEST_TYPE_MFS_TRANSACTION, DFS messages are treated as normal output
and, assuming that there are no other problems with the output, no exception is thrown. If the
imsRequestType was IMS_REQUEST_TYPE_IMS_ TRANSACTION, DFS messages are
treated as errors. In this last case, IMS Connector for Java throws an exception, as shown in
Example 15-6.
Example 15-6 Exception thrown when IMS sends a DFSxxxx message
com.ibm.connector2.ims.ico.IMSDFSMessageException: ICO0079E:
com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@4b7cac41.getOutputData(InteractionSpec
) error. IMS returned DFS message: DFS065 17:58:27 TRAN/LTERM STOPPED
If you are using the socket interface with a non-IMS Connector for Java client, you will get the
DFS message as a normal IMS response (followed by the CSM block). However, there is an
important difference between a normal IMS response and
some of the DFS status messages:
In some cases, you must
not send an ACK after you get a DFS message. That is the reason
why the recommended way to decide if you need to send an ACK is to check the flag byte
present both in the CSM and RSM blocks, instead of relying on your own program logic.
15.3 Wrong status codes from IMS Connect
IMS Connect uses the RSM message structure to notify non-IMS Connector for Java client
applications of any special situation. This refers not only to error or exception situations, but
also to informational codes associated with a normally ended interaction. The RSM structure
contains a return code and a reason code that describe the detected situation.
In this section, we analyze some of the error conditions reported in an RSM, the method to
diagnose it, and the measures you can take to correct the situation.