New Format for Logical Unit of Work Identifier (175375)



The information in this article applies to:

  • Microsoft SNA Server 3.0
  • Microsoft SNA Server 3.0 SP1
  • Microsoft SNA Server 3.0 SP2
  • Microsoft SNA Server 3.0 SP3
  • Microsoft SNA Server 3.0 SP4
  • Microsoft SNA Server 4.0
  • Microsoft SNA Server 4.0 SP1
  • Microsoft SNA Server 4.0 SP2

This article was previously published under Q175375

SUMMARY

SNA Server versions 3.0 through 4.0 SP2 have a new Logical Unit of Work Identifier (LUW_ID) instance format for LU 6.2-based conversations. Outlined below are the changes that have been made:

SNA Server 3.0Previous Versions
Byte 1- Year (high)Byte 1- Hundredths of a second
Byte 2- Year (low)Byte 2- Seconds
Byte 3- MonthByte 3- Minute
Byte 4- DayByte 4- Hour
Byte 5- HourByte 5- Day
Byte 6- MinuteByte 6- Month

SNA Server 4.0 Post-SP2
Byte 1- Year (high)
Byte 2- Year (low)
Byte 3-6- Flipped hexidecimal unsigned long integer containing the number of hundredths of a second in this year (but assuming each month is 31 days). The maximum value of (12/31 23.59.59.99) is 3214079999 or 0xBF92F7FF. If this value clashes with a previously generated value, the number is incremented by one.

NOTE: The algorithm is changed in SNA Server 4.0 post-SP2 to prevent possible clashes in the logical unit of work generated by an SNA Server.

MORE INFORMATION

The LUW_ID is used to identify conversations that are part of a single Syncpoint transaction. All conversations with the same LUW_ID are committed (or backed out) at the same time. SNA Server 3.0 (not 2.11) assigns two LUW_IDs to a transaction program (TP) when the TP is started. In the case of locally started TPs, this is when the TP_STARTED verb is issued. The first LUW_ID is the TP's protected LUW_ID and is used by SNA Server as the LUW_ID for all synclevel Syncpoint conversations allocated by the TP. When the TP issues an (MC_)Allocate verb with synclevel Syncpoint, SNA Server generates an Attach containing the TP's current protected LUW_ID.

The second LUW_ID is the TP's unprotected LUW_ID. It is used on all conversations allocated by the TP with a synclevel other than Syncpoint.

For remotely initiated TPs, the incoming Attach may contain an LUW_ID for the TP; it is mandatory if the conversation is synclevel Syncpoint. For synclevel Syncpoint conversations, SNA Server saves the LUW_ID as the TP's protected LUW_ID and generates a new unprotected LUW_ID for it. For conversations other than Syncpoint, SNA Server saves the LUW_ID as the TP's unprotected LUW_ID and generates a new protected LUW_ID.

SNA Server generates LUW_IDs by concatenating:
  • The fully qualified name of the local LU, preceded by a single byte indicating its length.
  • A 6-byte LUW instance number, generated from the current date and time (see above summary).
  • A 2-byte LUW sequence number, initialized to 1.
There are times when certain non-Syncpoint-related TPs (host or SNA Server based) make use of the unprotected LUW_ID for accounting purposes and extract this field using the GET_TP_PROPERTIES verb. These applications may become confused if they are not aware of the changes that have been made to the LUW_ID instance field.

NOTE: COM Transaction Integrator for IMS and CICS (also known as "COMTI") is one application that commonly uses Syncpoint for 2-phased commit.

Modification Type:MinorLast Reviewed:4/25/2005
Keywords:kbinfo KB175375