3.4.5.4.1.1 Receiving a TXUSER_GETSECURITYFLAGS_MTAG_GETSECURITYFLAGS Message

When the transaction manager communicating with an application facet receives a TXUSER_GETSECURITYFLAGS_MTAG_GETSECURITYFLAGS message, the transaction manager communicating with an application facet MUST perform the following actions:

  • If the connection state is Idle:

    • Set the connection state to Processing Request.

    • Send a TXUSER_GETSECURITYFLAGS_MTAG_FETCHED message using the connection:

      • If the Allow Network Access flag of the Core Transaction Manager Facet is set to FALSE:

        • Set the grfNetworkDtcAccess field to zero.

      • Otherwise, set the grfNetworkDtcAccess field as follows:

        • Set all bits to zero by default.

        • Set the DTCADVCONFIG_NETWORKDTCACCESS_ENABLE bit to 1.

        • If the Allow Remote Administration flag of the Core Transaction Manager Facet is set to TRUE:

          •  Set the DTCADVCONFIG_NETWORKDTCACCESS_ADMIN bit to 1.

        • If the Allow Network Transactions flag of the Core Transaction Manager Facet is set to TRUE:

          • Set the DTCADVCONFIG_NETWORKDTCACCESS_TX bit to 1.

        • If the Allow Remote Clients flag of the Core Transaction Manager Facet is set to TRUE:

          • Set the DTCADVCONFIG_NETWORKDTCACCESS_CLIENTS bit to 1.

        • If the Allow TIP flag of the Core Transaction Manager Facet is set to TRUE:

          • Set the DTCADVCONFIG_NETWORKDTCACCESS_TIP bit to 1.

        • If the Allow Outbound Transactions flag of the Core Transaction Manager Facet is set to TRUE:

          • Set the DTCADVCONFIG_OUTBOUNDNETWORK_TX bit to 1.

        • If the Allow Inbound Transactions flag of the Core Transaction Manager Facet is set to TRUE:

          • Set the DTCADVCONFIG_INBOUNDNETWORK_TX bit to 1.

        • If the Security Level field of the Core Transaction Manager Facet is set to no security:

          • Set the DTCADVCONFIG_SECURITYLEVEL_NOSECURITY bit to 1.

        • Otherwise, if the Security Level field of the Core Transaction Manager Facet is set to Incoming Authentication:

          • Set the DTCADVCONFIG_SECURITYLEVEL_AUTHENTICATEDONLY bit to 1.

        •  Otherwise, if the Security Level field of the Core Transaction Manager Facet is set to Mutual Authentication:

          • Set the DTCADVCONFIG_SECURITYLEVEL_MUTUALAUTH bit to 1.

      • If the Allow XA flag of the Core Transaction Manager Facet is set to TRUE, set the grfXaTransaction field to 1; otherwise, set the flag to zero.

      • If the Allow LUTransactions flag of the Core Transaction Manager Facet is set to TRUE, set the DTCADVCONFIG_OPTIONS_LUTRANSACTIONS_DISABLE option bit in the grfOptions field to 0; otherwise, set the option bit to 1.

    • Set the connection state to Ended.

  • Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.