2009-04-17 5 views
2

私はWebSphere MQの新機能です。 IBMの.NETクラス(IBM.WMQ)を使用してリクエスト・メッセージを出し、応答メッセージを受け取っています。 MQMessageオブジェクトには、さまざまなデータ型のWritexxxメソッドがいくつかあります。私は要求メッセージにさまざまな異なるデータ要素を書く必要があります。私の質問は、個々のデータ要素ごとに適切なWriteメソッドを呼び出すか、StringBuilderですべてをビルドしてから、MQMessage WriteStringメソッドを一度呼び出す必要がありますか?MQMessageに書き込む方法:複数の書き込み呼び出し、またはStringBuilder?

答えて

2

書き込みAPIは、より明確なコードを書くのに役立ちますが、WMQ APIを.Netに変換した人は誰でも馬鹿です。

彼らは、オーバーロードを伴う "書き込み"機能の代わりに20種類のAPIを書いています。書き込み呼び出しには、いくつかの使用可能なオーバーロードがあります。

MQC(MQ定数)と呼ばれる数千ものオプションではないにしても100を持つ1つの列挙型を作成しました。楽しくても、WMQでの取引には注意してください。その機能を使用するには、わずかな費用がかかります。

私は、APIの大部分がサイズに関して署名付きintの制限を持っていることに気付きました。write(byte []配列)とwritestring(string s )関数は大きなメッセージを受け取ります。また、.net apiは、あなたに影響を与える可能性のある.netの実装ごとに、すべての文字列UTF-16を書き込みます。

+0

応答ありがとう(私はこのものを使用している唯一のものかどうか疑問に思っていた)。だから、長いメッセージを書いたり、複数の "write"メソッド呼び出しをしたり、文字列をビルドしたり、1つのWriteString呼び出しを行うとすれば、あなたはどうしますか?バイト配列を書く方が良いでしょうか? –

+0

メッセージの内容によって異なります。しかし、大きなメッセージに対してはWMQのパフォーマンスが低下します。書き込み文字列とバイトは、UTF-16の.net文字列の影響を受けていると言われています。これは、メッセージが大きい場合に影響を与える可能性があります。 Websphere MQパフォーマンスを含むWebサイト。 http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27007197 – Spence

関連する問題