If the Xa_prepare event is signaled, the XA Superior Transaction Manager MUST perform the following actions: If the provided Flags field has TMASYNC set: Return XAER_ASYNC. Otherwise: Attempt to find an XA Superior Proxy object in the XA Superior Proxy Table keyed by the provided RMID. If an object is not found: Return XAER_RMFAIL. Otherwise: Attempt to find an XA Transaction object in the XA Transaction Table referenced by the XA Superior Proxy object keyed by the provided XID. If an object is Use this as the XA Transaction. Otherwise: Attempt to create a new XA Transaction Object with the following values: The XID field is set to the provided XID. The Thread Identifier field is set to the Current Thread ID. The Migrate field is set to FALSE. The field is set to Suspended. If the provided Flags field has TM_NOTHREADAFFINITY set: Set field to TRUE. Require Thread Affinity Otherwise: SHOULD set Require Thread Affinity field to false.<25> The Parent XA Superior Proxy object is set to the found XA Superior Proxy object. If failed: Return XAER_RMERR. Otherwise: Use this as the XA Transaction object. If the XA Superior Proxy object has the Branch Isolation field set to Tight: Attempt to create a new XA Transaction CMP Connection with the following values: The Connection Type is set to . The XA Transaction Object is set to the created XA Transaction object.
If the Xa_prepare event is signaled, the XA Superior Transaction Manager MUST perform the following actions: If the provided Flags field has TMASYNC set: Return XAER_ASYNC. Otherwise: Attempt to find an XA Superior Proxy object in the XA Superior Proxy Table keyed by the provided RMID. If an object is not found: Return XAER_RMFAIL. Otherwise: Attempt to find an XA Transaction object in the XA Transaction Table referenced by the XA Superior Proxy object keyed by the provided XID. If an object is Use this as the XA Transaction. Otherwise: Attempt to create a new XA Transaction Object with the following values: The XID field is set to the provided XID. The Thread Identifier field is set to the Current Thread ID. The Migrate field is set to FALSE. The field is set to Suspended. If the provided Flags field has TM_NOTHREADAFFINITY set: Set Require Thread Affinity field to TRUE. Otherwise: SHOULD set Require Thread Affinity field to false.<25> The Parent XA Superior Proxy object is set to the found XA Superior Proxy object. If failed: Return XAER_RMERR. Otherwise: Use this as the XA Transaction object. If the XA Superior Proxy object has the Branch Isolation field set to Tight: Attempt to create a new XA Transaction CMP Connection with the following values: The Connection Type is set to . The XA Transaction Object is set to the created XA Transaction object.