When connections cannot migrate

On occasion, an application can issue a request on a connection that is in a state that does not allow migration. See “Criteria for migration”.

For example, a connection cannot migrate if an application connects to an instance, and before issuing the request to perform an operation on the transaction, uses the connection to create a temporary table. If such a connection is to a nonowner instance, Adaptive Server cannot process the request, and the application receives a protocol-specific error code. In the case of X/Open-XA protocols, the TM receives XAER_RMERR as a return status, which indicates that the cluster has not processed the XA command. The transaction has not rolled back; it is still running on the owner instance.

Address this error by reissuing the command on a different connection. XAER_RMERR is a generic error that is returned in many error situations. You can use the functions xact_connmigrate_check and xact_owner_instance to determine if the XAER_RMERR error is due to a connection that cannot migrate. See “Configuration and system issues”.

To avoid XAER_RMERR errors due to nonmigratable connections: