![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |
This section describes how the server handles TIBCO Object Service Broker requests with respect to:Locking of CA Datacom data is determined by the server and the CA Datacom Multi-User Facility, not by TIBCO Object Service Broker. A CA Datacom transaction spans the same length of time as a TIBCO Object Service Broker transaction. A CA Datacom COMMIT causes all locks to be released. Therefore, COMMITs are sent from the server to CA Datacom at the end of a transaction (even if no updates were made, so any locks taken are released). The server insists on transaction end after a TIBCO Object Service Broker rule issues a COMMIT.
• A COMMIT request sent to the server or a normal end of TIBCO Object Service Broker transaction results in a COMMIT being sent to CA Datacom.
• A ROLLBACK request sent to the server or a transaction failure sends a ROLLBACK to CA Datacom, and the TDS intent list is discarded.
• Intermediate ROLLBACKs are allowed and further updates can be made in the same transaction.
• TRANSFERCALL and DISPLAY & TRANSFERCALL statements are allowed after a ROLLBACK.
The COMMITLIMIT exception does not apply to CA Datacom tables. Requests to update CA Datacom data are processed as they are encountered, and are not buffered in the Intent List. However, you can be limited by CA Datacom’s limit of rows locked in primary exclusive control (EXCTLNO Master List parameter). Refer to Defining the Master List for more information.TIBCO Object Service Broker provides a method of ensuring data integrity when both CA Datacom and TIBCO Object Service Broker data are updated in the same transaction. This method is referred to as Fail Safe processing level 1.If you do not request Fail Safe processing, transactions that update both CA Datacom and TIBCO Object Service Broker data can result in discrepancies if the server or the Data Object Broker abnormally terminates during the transaction end processing. Refer to Implementing Fail Safe Processing for more information.The TIBCO Object Service Broker runtime environment signals system exceptions to enable an application to recover from an error. A three-level hierarchy of exceptions exists. The ERROR exception is the top of the hierarchy and is intended to be a catchall exception. Each exception traps the exceptions that appear below it in the hierarchy. All errors encountered when accessing CA Datacom data through the server are trapped under one of the following exceptions:
No occurrence satisfies the selection criteria. The CA Datacom error code 14 raises this exception. The primary key provided for an INSERT statement already exists. The CA Datacom error code 10 raises this exception.
An attempt was made to read more rows with the CA Datacom primary exclusive lock. Restructure your application to take fewer locks in a transaction, run in browse mode so locks are not taken, or increase the EXCTLNO parameter in the CA Datacom Master List. Permission for the requested action on the TIBCO Object Service Broker object is denied. This also occurs if the CA Datacom authorization ID does not have permission to perform the requested action on the specified object. A new transaction requested an instance of the server and no server is available to process the request. Control is passed back to the rule, giving the rule the opportunity to try the transaction again. If this exception is raised too often, consider starting more servers or reviewing the amount of work being done in your transactions. The server made a request to CA Datacom, and CA Datacom returned an error code that does not map to one of the specific TIBCO Object Service Broker exceptions. The ON SERVERERROR handler can call @SERVERERROR to parse the error message (contained in ENDMSG). Refer to Error Handling for more information. A transaction was in progress when the connection to a server was broken or the server failed. Control is passed back to the rule, giving the rule responsibility for transaction cleanup.You must pass @SERVERERROR the contents of RETURN_MESSAGE, which has the following format:The following list describes the variables necessary to pass the RETURN_MESSAGE contents to @SERVERERROR:
The code portion of the server that trapped the error and returned the message (for example, CSECT, rule, or function). If a specific message from a specific 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.To customize error handling, you must update data in the @DATERRORCODES control table. The definition of the @SERVERERROR and @DATERRORCODES tables is owned by TIBCO Object Service Broker and must not be modified. The data you update in them is owned by you.Here is how the table is processed when the SERVERERROR exception is raised and the @SERVERERROR rule is called by your application:
• @SERVERERROR reads the @SERVERMSGCNTL table and looks up the specific message identifier handlers.
• The appropriate message handler looks up the external error codes in the correct server control tables.
• The user-written handler can use other functions and data stored in specific tables to handle any specific external error/status code.@SERVERERROR can be called at any time, although it is useful only for parsing server messages generated due to external CA Datacom errors. The original message can always be retrieved using @SE_MSG after @SERVERERROR has been called. The information parsed by @SERVERERROR has transaction scope.You can add your own instances in the @SERVERMSGCNTL table, provided that the OWNER specified begins with letters A to Z and the key values in the instance are message identifiers in the form DMnnnx mentioned above.
• TIBCO Object Service Broker Programming in Rules about system exceptions.
• TIBCO Object Service Broker Shareable Tools for more information on the @SERVERERROR and RETURN_MESSAGE tools.
![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |