我試圖解決的問題與該發送消息給SWIFT網絡的應用程序通過WebSphere MQ發送消息到SWIFT。該應用程序是一個.NET應用程序,它使用IBM的amdqmdnet.dll
程序集與WebSphere MQ服務器進行通信。在WebSphere MQ服務器上運行SWIFT聯盟軟件。使用ASCII編碼
的消息從應用程序發送,但不進入SWIFT網絡。一些調查顯示以下錯誤消息:
MQSeries Queue 'MQSWIFT/SWIFT.SENDER', Nbr 123, Session 4567, Sequence 890, Conversion error (From)
MQ Msg Id : AMQ MQSWIFT <XX><XX><XX>X <X>-<XX>
Message Info : Error in FIN block 1: can not find tag F01 in message
{.1.:.F.0.1. (rest of message removed)
發送的消息開始是{1:F01
對我這個樣子的消息在UNICODE編碼(UTF-16),但SWIFT軟件預計ASCII。 SWIFT軟件看到{.1.:.F.0.1.
。
我的問題是:如何將消息發送到使用ASCII編碼的WebSphere MQ隊列?
該連接具有屬性MQC.TRANSPORT_PROPERTY
,MQC.HOST_NAME_PROPERTY
和MQC.CHANNEL_PROPERTY
集。
隊列使用選項MQC.MQOO_OUTPUT
和MQC.MQOO_FAIL_IF_QUIESCING
打開。
使用格式MQC.MQFMT_STRING
和默認放置消息選項創建消息:
var mqMessage = new MQMessage { Format = MQC.MQFMT_STRING };
mqMessage.WriteString(swiftMessage);
var mqMessageOptions = new MQPutMessageOptions();
queue.Put(mqMessage, mqMessageOptions);
我已經注意到,MQC
枚舉有這可能指的ASCII值CODESET_819
,但我不知道如果我需要使用它和如何。
我的問題基本上是我應該如何去貫徹你的答案的「或者」部分。我知道我需要告訴WebSphere來編碼我的字符串,但是怎麼做?我不太瞭解「或」部分。我無法強制外部軟件(SWIFT Alliance軟件)突然接受UTF-16編碼的數據。 – 2011-06-20 11:02:38