Microsoft KB Archive/821555

= FIX: Some Unicode Characters Are Converted Incorrectly When A Message Is Put in MQSeries =

Article ID: 821555

Article Last Modified on 11/15/2007

-

APPLIES TO


 * Microsoft BizTalk Server 2002 Standard Edition
 * Microsoft BizTalk Adapter for MQSeries

-



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 hotfix is now available from Microsoft. However, this hotfix is intended to correct only the problem that this article describes. Apply this hotfix only to systems that are experiencing this specific problem.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

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

