# Dynamic Transaction IDs

You can dynamically specify a user transaction that a resource is to execute under in CICS by supplying Substation ES with an input communication field, the message property `tibss-tran-code`, in the TIBCO message.

Note: This section applies to Substation ES 2.5 and later releases only.
When Substation ES identifies the message property `tibss-tran-code` in an incoming message, it internally requests CICS to run the recipe under the transaction ID in `tibss-tran-code`. The following process takes place in CICS:

1. Substation ES starts the transaction CSMI to handle EXCI communication.
2. CSMI switches the Transaction Id to the value of `tibss-tran-code`.
3. Security verification is done on the new transaction ID by CICS.
4. For DB2, `DB2CONN` is set up based on the new transaction ID by DB2.

Note: Note the following items when using dynamic transaction IDs:

- If `tibss-tran-code` is used, the value known as User Tran on the run-time recipe is set to Y for that instance. The Mirror Tran field on the recipe is ignored.
- The use of `tibss-tran-code` is only available for CICS transactions (not IMS).
- If the message property field `tibss-tran-code` and the map message field `tibss-tran-code` are both in a message, the property value is used.
- For MOIs other than 2, the programs `SXCOSRVD` and `SXCOSRVG` must be allowed to run under the transaction ID specified in `tibss-tran-code`.
- The transaction ID specified by`tibss-tran-code` does not have to be defined in the CICS PCT.
- CSMI normally is defined by IBM as “below the line” (`TASKDATALOC = Below`). To prevent “short on storage” situations, you might need to redefine CSMI as “above the line” (`TASKDATALOC = Any`). Since this is CSMI and is used by other processes, be sure to test this type of change to ensure that it does not affect other critical processes.

Copyright © TIBCO Software Inc. All rights reserved.