3.3.4.1.8 TransactionalStatus (Opnum 14)

The TransactionalStatus method is received by the server in an RPC_REQUEST packet. In response, the server MUST return the represented Queue.Transactional value.

 [propget] HRESULT TransactionalStatus(
   [out, retval] long* plTransactionalStatus
 );

plTransactionalStatus: A pointer to a long that corresponds to the XACT_STATUS enumeration as defined in the following table.

Value

Meaning

MQ_XACT_STATUS_XACT

0x00000000

The represented Queue.Transactional equals True.

MQ_XACT_STATUS_NOT_XACT

0x00000001

The represented Queue.Transactional equals False.

MQ_XACT_STATUS_UNKNOWN

0x00000002

The represented Queue.QueueType equals Public, and the QueueManager.DirectoryIntegrated of the QueueManager that owns the represented Queue equals False.

Return Values: The method MUST return S_OK (0x00000000) to indicate success or an implementation-specific error HRESULT on failure.

When processing this call, the server MUST follow these guidelines:

  • If the ObjectIsInitialized instance variable is False:

    • The server MUST return MQ_ERROR_UNINITIALIZED_OBJECT (0xC00E0094), and MUST take no further action.

  • The server MUST generate a QMMgmt Get Info event with the following inputs:

    • iPropID = PROPID_MGMT_QUEUE_XACT

  • If the rStatus return value is not equal to MQ_OK (0x00000000), the server MUST return rStatus and MUST take no further action.

  • Else:

    • If the value of the returned rPropVar was "YES":

      • The plTransactionStatus output variable MUST be set to MQ_XACT_STATUS_XACT, and the server MUST take no further action.

    • If the value of the returned rPropVar was "NO":

      • The plTransactionStatus output variable MUST be set to MQ_XACT_STATUS_NOT_XACT, and the server MUST take no further action.

    • If the value of the returned rPropVar was "UNKNOWN":

      • The plTransactionStatus output variable MUST be set to MQ_XACT_STATUS_UNKNOWN, and the server MUST take no further action.