KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q175375: New Format for Logical Unit of Work Identifier

Article: Q175375
Product(s): Microsoft SNA Server
Version(s): WINDOWS:3.0,3.0 SP1,3.0 SP2,3.0 SP3,3.0 SP4,4.0,4.0 SP1,4.0 SP2
Operating System(s): 
Keyword(s): kbsna300sp1 kbsna300sp2 kbsna300sp3 kbsna300sp4 sna4 kbsna400sp1 kbsna400sp2
Last Modified: 13-JUN-2001

-------------------------------------------------------------------------------
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 "COMTI") is one
application that commonly uses Syncpoint for 2-phased commit.

Additional query words:

======================================================================
Keywords          : kbsna300sp1 kbsna300sp2 kbsna300sp3 kbsna300sp4 sna4 kbsna400sp1 kbsna400sp2 
Technology        : kbAudDeveloper kbSNAServSearch kbSNAServ300 kbSNAServ400 kbSNAServ300SP3 kbSNAServ300SP1 kbSNAServ400SP1 kbSNAServ400SP2 kbSNAServ300SP2 kbSNAServ300SP4
Version           : WINDOWS:3.0,3.0 SP1,3.0 SP2,3.0 SP3,3.0 SP4,4.0,4.0 SP1,4.0 SP2
Issue type        : kbinfo

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.