ฉันกำลังพยายามแก้ไขปัญหาเกี่ยวกับแอปพลิเคชันที่ส่งข้อความไปยังเครือข่าย SWIFT แอปพลิเคชันนี้เป็นแอปพลิเคชัน .NET และใช้แอสเซมบลี amdqmdnet.dll
ของ IBM เพื่อสื่อสารกับเซิร์ฟเวอร์ 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.
คำถามของฉันคือ: ฉันจะส่งข้อความไปยังคิว WebSphere MQ โดยใช้การเข้ารหัส ASCII ได้อย่างไร
การเชื่อมต่อมีคุณสมบัติ 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
มีค่า CODESET_819
ซึ่งอาจหมายถึง ASCII แต่ฉันไม่รู้ว่าจำเป็นต้องใช้มันหรือไม่และอย่างไร