FIX: Some Unicode Characters Are Converted Incorrectly When A Message Is Put in MQSeries (821555)



The information in this article applies to:

  • Microsoft BizTalk Server 2002
  • Microsoft BizTalk Adapter for MQSeries 1.0

SYMPTOMS

When you try to put certain Unicode characters in your IBM MQSeries server by using the Microsoft BizTalk Adapter for MQSeries version 1.0, some of the characters are not converted correctly into ASCII. For example, a Unicode 0x85 (NEwLine) character is converted to an ASCII 0x3F character, although you may expect a 0x0D (carriage return) character.

RESOLUTION

A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem.

To resolve this problem, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version        Size  File name
   --------------------------------------------------------------
   30-May-2003  23:33  1.0.45.11    27,648  Aicmq.dll        
   30-May-2003  23:33  1.6.1.1      51,200  Lkrhash.dll
   30-May-2003  23:33  1.0.45.11   172,544  Mmcmqs.dll
   30-May-2003  23:33  1.0.45.11    27,648  Mqadaptersetuplibrary.dll
   30-May-2003  23:33  1.0.45.11    70,144  Mqhelper.dll
   30-May-2003  23:33  1.0.45.11     7,680  Mqhelperps.dll
   30-May-2003  23:33  1.0.45.11    58,880  Mtbworker.dll
   30-May-2003  23:33  1.0.45.11    20,480  Svcevent.dll
   30-May-2003  23:33  1.0.45.11    33,792  Mtbsvc.exe

				
Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Installation Instructions

Note You must apply the fix on an RTM installation. If you have earlier hotfixes installed, you must roll back to the RTM version when you remove the hotfixes.
  1. Stop the BizTalk Adapter for MQSeries service.
  2. In Component Services, remove the MQHelper COM component from the BizTalk Adapter for MQSeries COM+ application.
  3. Install the Btsmqs_q821555.exe fix. You may receive a prompt to restart the server.
  4. Add MQHelper COM+ components to the BizTalk Adapter for MQSeries COM+ application by using the new binary (C:\Program Files\Microsoft BizTalk Adapter for MQSeries\Mqhelper.dll). Make sure that the Transaction property is set to Required and that the Concurrency property is set to Required.
  5. Replace the RTM Active Server Pages (ASP) pages that are installed in the BizTalk folder (C:\Program Files\Microsoft BizTalk Server\MessagingManager\Pipeline) with the ASP pages that are in the .zip file (Aicmq_mqpipeline_1.asp and Aicmq_mqpipeline_1_post.asp).
The hotfix in this article implements a new registry key that disables conversion regardless of the MQSeries property on the message. After you install this hotfix, follow these steps to add a registry key to enable the hotfix:
  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate and then click the following key in the registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Adapter for MQSeries
  3. On the Edit menu, point to New, and then click Key.
  4. Type MQHelper, and then press ENTER.
  5. On the Edit menu, point to New, and then click DWORD value.
  6. Type AllowDataConversionInWrite, and then press ENTER.
  7. To enable this fix, leave the default data value of 0. To disable this fix, change the value to any other data value.
After you add this registry key and value, you must restart the MQHelper component to accept the change.

Note This setting is a global setting for all the channels that are configured to access this instance of MQHelper. If you want different behavior that is based on channels, you must have multiple servers running IBM MQSeries and the MQHelper component.

By default, the application integration component (AIC) for the MQSeries Adapter puts the MQSeries Format property of MQFMT_STRING on any message that does not have a Format property. You can also use a post-processor to set your own MQSeries properties. For additional information about using a post-processor, click the following article number to view the article in the Microsoft Knowledge Base:

320726 Implement Custom Post-Processor to Add Header Properties in AIC

If you set the MQSeries property on your message to MQMFT_STRING, the MQSeries Adapter AIC converts the data to ASCII. In some cases, this may cause incorrect conversion.

REFERENCES

This hotfix is a cumulative package that includes the fixes that are described in the following Microsoft Knowledge Base articles:
  • 316405 FIX: You Cannot Send Messages from MQSeries to BizTalk on a Computer Running the Chinese-Language Version of Windows 2000

  • 320738 FIX: BizTalk Adapter for MQSeries Service Requires an Administrator Account

  • 320726 Implement Custom Post-Processor to Add Header Properties in AIC

  • 324529 Parameters for Polling Interval and Threshold After Failure

  • 325165 Implement a Custom Preprocessor to Read Header Properties

  • 331136 FIX: Support for Message Formats in Addition to MQFMT_STRING

    816772 FIX: Job May Be Terminated if There Are Bad Messages in the Queue


Modification Type:MinorLast Reviewed:10/26/2005
Keywords:kbHotfixServer kbQFE kbHotfixServer kbQFE kbfix kbbug KB821555 kbAudDeveloper