Share via


EDI Leap Year hotfix: BizTalk 2009 and BizTalk 2006 R2

Hi,

Please treat this as an Important Fix (on the line of Security updates) for all 2006_R2 and 2009 BizTalk servers. 

This fix need to be applied ASAP (before next week) as we will be hitting the leap year date 2/29/2012 in just about a week

 The fix has been available for quite some time and also included as part of the CU for BizTalk 2009 (since CU1). 

But there are still many customers who might not have taken the CUs or applied the patch.  I urge you all to please reach out to your customers proactively
and let them know of this fix.

EDI Leap Year hotfix: BizTalk 2009 and BizTalk 2006 R2

If using EDI in BizTalk 2009 and BizTalk 2006 R2, install the EDI leap year hotfix before 2/29/12:

 2435900  FIX: "Invalid Date" EDI interchange error occurs in BizTalk Server 2006 R2 or in BizTalk Server 2009 if a data element contains a leap date value

 BizTalkServer 2009:

There are two ways to get this fix: 

Option1: Install any BizTalk 2009 Cumulative Update. KB 2555976 lists the available cumulative updates:

 Option 2: Install thestand-alone fix by clicking View and request hotfix downloads at the top of KB article 2435900.

 

BizTalk Server 2006 R2

  1. Install BizTalk 2006 R2 Service Pack 1.
  2. Install BizTalk 2006 R2 Service Pack 1 Cumulative Update 3.
  3. Install leap year fix (3.6.2230): https://support.microsoft.com/kb/2435900

PS: It is required to install CU3 before applying the fix as there are many other dependent binaries that get updated and it is in the customer’s best interest to be on the latest supported platform and minimize troubleshooting efforts.

 Note BizTalk Server 2010 is not impacted by this bug.

 

Please use the following repro steps and sample message for X12, to ascertain if this issue is applicable in your environment:

Repro Step:

  1. Install and configure BizTalk 2006R2 + SP1.
  2. Deploy schema “X12_00401_850” in attached file.
  3. In BizTalk Application 1, add reference “BizTalk EDI Application”
  4. Create one receive port.
  5. Create one receive location for above receive port, then set Type to “File”, and set Receive Pipeline to “EDIReceive”.
  6. Create send port and Send pipeline to “PassThansmit”, and subscribe the message of above receive port.
  7. Drop file “X12_00401_850 - 20120229.edi” in attached file to receive location folder, the message contains leap year for one “X12_DT” data type element as below:

BEG*00*AB*BEG03**20120229~

[Actual Result]

       The message is suspended for “Invalid Date” error, please refer to detailed error below:

          Error encountered during parsing. The instance is being suspended with following errors:

           Error: 1 (Field level error)

SegmentID: BEG      
Position in TS: 2
         
Data Element ID: BEG05
          
Position in Segment: 5
          
Data Value: 20120229
          
8: Invalid Date

 

Thanks and appreciate your help

Guru Venkataraman

X12_00401_850.zip

Comments

  • Anonymous
    February 21, 2012
    Thanks for the post.  A little too late for my case.  I posted this on the forums a while ago and instead of paying for a support incident I upgraded to BTS2010.
  • Anonymous
    February 22, 2012
    Please ensure that you have CU3 for R2SP1 before applying this fix.  The fix is on top of CU3 and is not included in any prior CUs.  The installer will fail to install the patch and throw an error if you try to install it on a non-CU3 machine.  ThanksGuru
  • Anonymous
    February 23, 2012
    Guru has the issue been replicated on BizTalk 2006 R2 without SP1?  Also could you please provide more detailed steps of how we might replicate issue in our environment, we already have an open premium support case SR 112022308385961: PremBizTalk Server 2006 R2 confirm leap year hotfix.  Our attempts to replicate the issue with 20120229 in DTM segments failed to see issue occur?
  • Anonymous
    February 24, 2012
    Installing BizTalk Server 2006 R2 SP1 does not change the version number of your BizTalk Server installation  (This is straight from the install guide).  So my BTS2006 R1 SP1 CU3 is still sitting at version 6.3.1404.0.  Why did you change the Leapdate hotfix installer on the 22nd to look for BTS version greater than 6.3.2222.12?  Luckily I grabbed the hotfix installer before you made this change.
  • Anonymous
    February 24, 2012
    Please do not modify setup.xml manually.  I have updated the download location with a new version of setup.xml with autodetect logic that does not rely on version number.  Aplogize for the confusion, but had to do the first one to enforce CU3 as a prereq and didnt have much time to validate all scenarios.   The fix was built after CU3 was released and was only tested with CU3 as the baseline.  The package includes some of the engine files that have been updated multiple times in the earlier CUs and Serivce pack, it is the safest way to ensure that we dont regres anything.ThanksGuru
  • Anonymous
    February 24, 2012
    One more update:If you are not using X12 in your EDI transactions, this issue is not applicable to you and hence you dont have to worry about taking this fix at this time.  The fix is only on the x12 code path and does not affect EDIFACT processing.ThanksGuru
  • Anonymous
    February 24, 2012
    Yesterday I downloaded the fix, we haven't implemented it yet. Today a colleague downloaded it again from the KB article... the files are different. Which one should we used?444418_ENU_i386_zip.exe -  downloaded on Feb 23rd (url contains http://..../BizTalk%202006%20R2/sp1/2435900_ENU/...)444490_intl_i386_zip.exe - downloaded on Feb 24th (url contains http://.../BizTalk%202006%20R2/latest/2435900_ENU/...)Thanks for your help
  • Anonymous
    February 24, 2012
    Please use the one from today.  The difference bettween the two is in Setup.xml (the file used by setup to detect the prerequiste),  CU3 is a pre-req for installing this fix.  In the new update I have included a logic that does not rely on the version number, instead uses the ARP entry, which is more cleaner; and returns a more meaningful error message as applicable.ThanksGuru