メッセージを SWIFT ネットワークに送信するアプリケーションの問題を修正しようとしています。このアプリケーションは .NET アプリケーションであり、IBM のamdqmdnet.dll
アセンブリーを使用して WebSphere MQ サーバーと通信します。WebSphere MQ サーバー上で SWIFT Alliance ソフトウェアが実行されています。
メッセージはアプリケーションから送信されますが、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
とデフォルトの put メッセージ オプションを使用して作成されます。
var mqMessage = new MQMessage { Format = MQC.MQFMT_STRING };
mqMessage.WriteString(swiftMessage);
var mqMessageOptions = new MQPutMessageOptions();
queue.Put(mqMessage, mqMessageOptions);
MQC
列挙にはおそらくASCIIを参照する値があることに気付きましたが、CODESET_819
それを使用する必要があるかどうか、およびその方法がわかりません。