Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space WBRIDGE and version 24.0
Syntax
Code Block
languagenone
setTransactionID() = aString
Semantics

Sets the current transaction ID to the specified String value.

Info

The transaction ID has a maximum length of 40 bytes. Longer values are cut by the xUML Runtime.
If your transaction ID contains multibyte characters, this limitation may lead to the problem that characters are cut somewhere in between (see also the hint below: How to Limit the Size of a Transaction ID).

Examples
Code Block
languagenone
setTransactionID(a_TID_from_caller);
setTransactionID(concat(a_TID_from_caller, aStringAttribute));

Multiexcerpt include
SpaceWithExcerptINTERNAL
MultiExcerptNametransaction_id
PageWithExcerptINTERNAL:_bridge_excerpts
For more information on how to provide a transaction ID in the SOAP header refer to SOAP Adapter Reference.

Multiexcerpt
MultiExcerptNametransaction_id_analyzer

In the Analyzer, the transaction log of an xUML service will be sorted by transaction ID.

How to Limit the Size of a Transaction ID

Given a transaction ID aTransactionID, for example taken from the process ID of a persistent state instance

Code Block
local aTransactionID = self.getProcessID();

You can make sure that the transaction ID is a proper at-most-40-byte-sequence by doing the following preprocessing:

  1. Cut the transaction ID after 40 bytes and take care that multibyte characters are not split in between. This is done by calculating the amount of superfluous bytes in a 40 character sequence.

    Code Block
    local superBytes = aTransactionID.substring(0, 40).transcodeToBlob('utf-8').blobLength() - 40;
  2. Next, reduce the transaction ID by the calculated amount of characters.

    Code Block
    setTransactionID(aTransactionID.substring(0, 40 - superBytes));
rp
Panel
titleRelated Pages: