New Format for Logical Unit of Work Identifier

ID: Q175375


The information in this article applies to:
  • Microsoft SNA Server, versions 3.0, 3.0 SP1, 3.0 SP2, 3.0 SP3, 3.0 SP4, 4.0, 4.0 SP1, 4.0 SP2


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.0 Previous Versions
Byte 1- Year (high) Byte 1- Hundredths of a second
Byte 2- Year (low) Byte 2- Seconds
Byte 3- Month Byte 3- Minute
Byte 4- Day Byte 4- Hour
Byte 5- Hour Byte 5- Day
Byte 6- Minute Byte 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 "Cedar") is one application that commonly uses Syncpoint for 2-phased commit.

Additional query words:

Keywords : prodsna snaappc snacpic snaprog sna3 sna3sp1 sna3sp2 sna3sp3 sna3sp4 sna4 sna4sp1 sna4sp2
Version : WINDOWS:3.0,3.0 SP1,3.0 SP2,3.0 SP3,3.0 SP4,4.0,4.0 SP1,4.0 SP2
Platform : WINDOWS
Issue type : kbinfo


Last Reviewed: November 17, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.