![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |
Invokes special parsing and handling of the last message, which resulted from a request to the TIBCO Object Service Broker external DBMS server. (C)CALL @SERVERERROR(return_message)
The server component (for example, IM for IMS/DB, D2 for DB2, ID for IDMS/DB). The server ID of the TIBCO Service Gateway that returned the error. The server user ID (IDPREFIX + ###) of the TIBCO Service Gateway that returned the error. The code portion of the server trapped the error and returned the message (for example, CSECT, rule, or function). If a message from a server has some information that is required to process the error, the table-driven approach to the execution of @SERVERERROR causes a rule (specified for that error by the developer using @SERVERERROR) to execute. The error message is interpreted in the @SERVERERROR processing and put into a temporary table until required. For information on server startup parameters, refer to the Service Gateway manuals.
CA‑Datacom CA‑IDMS The definition of these tables is owned by TIBCO Object Service Broker and must not be modified. The data is owned by the users. The tables are used in the following manner:
1. The message identifier handlers from @SERVERMSGCNTL do a lookup in the server control tables for the external error codes.
3. The user-written handler can use other functions and data stored in other tables to handle any external error/status code.@SERVERERROR can be called at any time, although it is useful only for parsing external server messages generated due to external DBMS errors.The original message can always be retrieved using @SE_MSG after @SERVERERROR is called.
Returns the message identifier or UNKNOWN if message identifier or its prefix is not in @SERVERMSGCNTL. Returns the source of the message (DB2, DAT, IDM, IMS and so on) or indicates if the source is unknown. Returns the table name where the message text was parsed (for example, @SERVERERRORDB2). @SE_MSGHEADER (MSGID) @SE_MSGHEADER ('MSGIDPREFIX') @SE_MSGHEADER (SERVERID) Returns the server ID of the TIBCO Service Gateway that returned the message. @SE_MSGHEADER (SERVERUSERID) Returns the server user ID of the TIBCO Service Gateway that returned the message. @SE_MSGHEADER (SOURCE) Returns the code source that issued the message (CSECT, RULE, PROCEDURE, and so on).
None are raised unless so arranged in the processing associated with that error for particular error situations. This error-specific processing is activated at pre-specified exit points.
S6BID034E serverid IDMS01: IDMS ERROR STATUS 0966 RECORD ORG-DEMO-AREAThe SERVERERROR exception is raised and the @SERVERERROR rule is called. @SERVERERROR reads the following @SERVERMSGCNTL table looking for a matching entry. It scans any user-defined tables by using the $@SERVERMSGCNTL parameter value(PRM) table first, and if no match is found it scans the @HURON parameter value table.
The data for owner @HURON is owned by TIBCO Object Service Broker and must not be updated. Customers can add their own instances in @SERVERMSGCNTL provided that the OWNER specified begins with letters A to Z. The key values in their instance are message identifiers in the form ss###E mentioned above.The ability to add user-specific entries in @SERVERMSGCNTL is provided, with the understanding that TIBCO Object Service Broker can modify the text of any message and that it is the responsibility of users to update their own handlers. It is recommended that you customize using only the specific server control tables.When the @SERVERERROR rule is called, it saves the original message in its own storage. This message can be retrieved at any time using function @SE_MSG when @SERVERERROR is done or within any handlers that @SERVERERROR calls through the control tables. Refer to Functions for Parsing Messages.If an entry is found, the HANDLER associated with it is executed to parse the external message. Information from the parsed message is stored in the temporary (TEM) table specified in MSG_TABLE. The developer can use the information placed in this table to determine further action.
In this example, the message ID034E is found and the IDMS_STATUS_CODE rule is executed to parse the message looking for the CA‑IDMS status code. Upon finding the status code, the @IDMSTATUSCODES table is searched using the status code. If an entry is found the SIGNALRULE is executed. The SIGNALRULE, SIGNAL_IDMSERR1, sets the appropriate signal depending on the status code:
![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |