External message flags bit masks

For users who require a binary mapping of bit values to Message Flags, the External Message Flags Bit Masks table lists the externally visible bit values that are visible through Tcl.

For example, this is useful for those writing a Tcl script to convert the old format SMAT files that did not have metadata to the new style that has the metadata. msgmetaset does not work because there is no message handle. Knowing the flag names also does not work.

This table lists the binary position of each flag, so that you can construct the FLAGS field:

Bit Usage
Bit 0x00000001
  • Tcl Flag Name: should_be_freed Used by internal memory management.
  • Tcl Writable: FALSE
Bit 0x00000002
  • Whether the local copy of the message can be destroyed if sent to a thread in another process.
  • Tcl Flag Name: icl_owns_data
  • Tcl Writable: FALSE
Bit 0x00000004
  • Used by internal memoryAutomatically set when the thread is configured to await replies. When set, the threads await a reply after writing the message through the protocol connection.
  • Tcl Flag Name: expect_reply
  • Tcl Writable: TRUE
Bit 0x00000008
  • Set if the message is ever forwarded from one thread to another.
  • Tcl Flag Name: is_forwarded
  • Tcl Writable: FALSE
Bit 0x00000010
  • TRUE when MSG is on a queue; otherwise, FALSE.
  • Tcl Flag Name: is_enqueued
  • Tcl Writable: FALSE
Bit 0x00000020
  • Set to indicate that this message is the last in a related group.
  • Tcl Flag Name: last_in_group
  • Tcl Writable: TRUE
Bit 0x00000040
  • Set by the protocol driver to describe a protocol-send failure due to time-out. Intended for use by SENDFAIL TPS procedures.
  • Tcl Flag Name: proto_timeout
  • Tcl Writable: TRUE
Bit 0x00000080
  • Set by the protocol driver to describe a protocol-send failure due to nak. Intended for use by SENDFAIL TPS procedures.
  • Tcl Flag Name: proto_nak
  • Tcl Writable: TRUE
Bit 0x00000200
  • Set if this message was resent back into the engine.
  • Tcl Flag Name: is_resent
  • Tcl Writable: TRUE
Bit 0x00000800
  • Recovers the message from the database.
  • Tcl Flag Name: recovered
  • Tcl Writable: TRUE
Bit 0x00001000
  • Tcl Flag Name: is_on_disk
  • Tcl Writable: FALSE
Bit 0x00002000
  • Tcl Flag Name: keep_on_disk
  • Tcl Writable: FALSE
Bit 0x00008000
  • Set to indicate that this message goes to the recovery database if there is any engine failure.
  • Tcl Flag Name: use_rdb
  • Tcl Writable: FALSE
Bit 0x00010000
  • Set if this message has a prewrite procedure.
  • Tcl Flag Name: prewrite_done
  • Tcl Writable: FALSE