Microsoft KB Archive/175375

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 10:08, 21 July 2020 by X010 (talk | contribs) (Text replacement - """ to """)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base


New Format for Logical Unit of Work Identifier

Article ID: 175375

Article Last Modified on 10/27/2006



APPLIES TO

  • Microsoft SNA Server 3.0 Service Pack 4
  • Microsoft SNA Server 4.0
  • Microsoft SNA Server 3.0 Service Pack 2
  • Microsoft SNA Server 3.0 Service Pack 3
  • Microsoft SNA Server 3.0 Service Pack 4
  • Microsoft SNA Server 4.0
  • Microsoft SNA Server 4.0 Service Pack 1
  • Microsoft SNA Server 4.0 Service Pack 2



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.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.

Keywords: kbinfo KB175375