2009-04-17 2 views
2

Ich bin brandneu bei WebSphere MQ. Ich verwende die .NET-Klassen von IBM (IBM.WMQ), um eine Anforderungsnachricht zu erstellen und dann eine Antwortnachricht zu erhalten. Das MQMessage-Objekt verfügt über eine Anzahl von Writexxx-Methoden für verschiedene Datentypen. Ich muss eine Vielzahl verschiedener Datenelemente in die Anforderungsnachricht schreiben. Meine Frage ist, sollte ich die entsprechende Write-Methode für jedes einzelne Datenelement aufrufen, oder soll ich die ganze Sache mit einem StringBuilder erstellen und dann die MQMessage WriteString-Methode einmal aufrufen?So schreiben Sie in MQMessage: mehrere Schreibaufrufe oder StringBuilder?

Antwort

2

Die Schreib-APIs sollen versuchen, Ihnen helfen, klareren Code zu schreiben, aber wer auch immer die WMQ-API zu .Net konvertiert ist ein Idiot.

Sie schrieben 20 verschiedene APIs anstelle einer "write" -Funktion mit Überladungen. Der Schreibaufruf hat einige brauchbare Überladungen.

Sie erstellten eine enum, die 100, wenn nicht Tausende von Optionen namens MQC (MQ-Konstanten) hat. Viel Spaß, aber hüte dich vor Transaktionen auf WMQ, da es einen kleinen Aufwand bei der Nutzung dieser Funktionalität gibt.

Jetzt, da ich fertig mit meinem Schimpfwort bin, hüte dich vor den APIs, dass die meisten Apis eine Beschränkung auf einen signed int in Bezug auf die Größe haben, nur die write (byte [] -Array) und die writeString (string s) Funktion nehmen Sie eine große Nachricht. Auch die .net API schreibt alle Zeichenfolgen UTF-16 gemäß der .net-Implementierung, die Sie betreffen kann.

+0

Danke für die Antwort (Ich begann mich zu fragen, ob ich der einzige war, der dieses Zeug benutzte). Was würden Sie tun, wenn Sie eine lange Nachricht schreiben müssten, mehrere "write" -Methodenaufrufe haben oder Ihre Zeichenfolge erstellen und einen einzigen WriteString-Aufruf ausführen würden? Oder ist es besser, das Byte-Array zu schreiben? –

+0

Hängt von Ihrem Nachrichteninhalt ab. WMQ-Leistung bläst jedoch für große Nachrichten. Wie ich schon sagte, ist das Schreiben von String vs Byte durch .net-Zeichenfolgen in UTF-16 beeinflusst, was Sie beeinflussen kann, wenn Ihre Nachricht groß ist. Eine Website mit Websphere MQ-Leistung. http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27007197 – Spence