スループット

WebSphere MQ パブリッシュ/サブスクライブでは、1 つのスレッドが、各ストリーム・キューのパブリケーションを処理します。 これにより、キューからパブリケーションを処理する順序が保証されます。

WebSphere Message Broker ブローカー・ドメインでのパブリケーションのスループットを考慮する際には、 メッセージがパブリッシュされる順序の重要性も考慮しなければなりません。 スループットを改善する技法を使用しても、必ずしも順序が保証されるわけではありません。

WebSphere Message Broker は、スループットを改善する、以下の 2 つのオプションをサポートしています。
  1. MQInput ノードの 「追加インスタンス」プロパティーを設定することにより、 追加スレッドを使用してメッセージ・フローを構成できます。 このプロパティーにより、追加スレッドが入力キューからメッセージを読み取るようブローカーはスケジュールするので、 そのキューのパブリケーションが並行して処理されるようになります。 ストリーム (入力) キューに share 属性を設定する必要もあります (WebSphere MQ パブリッシュ/サブスクライブでは、 ストリーム・キューを noshare に設定するということでした)。

    複数のスレッドが 1 つのキューのメッセージを処理する場合、パブリケーションは、 入力キューに置かれた順序でサブスクライバー配信されることは保証されません。 しかし WebSphere Message Broker では、 求められた順序を保ちながら、パブリケーションを並行して処理する方法が備えられています。

    MQInput ノードの「順序モード」プロパティーを、「ユーザー ID 順」の値に設定できます。これにより、ブローカーに送信されるパブリケーションの配信順序が、指定したユーザー順になります。 このプロパティーが設定されると、メッセージ・フローにサービスを提供する他のスレッドが、 指定した UserIdentifier フィールドを含むメッセージの処理を行っている場合、MQMD では、 同じ UserIdentifier を含むメッセージの処理は保留されます。

    メッセージ・フローの別のインスタンスを実行する利点は、 すべてのパブリッシュ・アプリケーションが同じユーザー ID の下で実行されるとなくなります。 このことは、ブローカーのキュー・マネージャーに対してリモート側のキュー・マネージャーに接続されているパブリッシュ・アプリケーションに当てはまることがあります。 これらのリモート・パブリッシャーからのメッセージは、起点となるクライアントの ユーザー ID の代わりに、 チャネル・プログラムのユーザー ID を挿入するよう設定された可能性のあるチャネルでブローカーに到着します。 デフォルトのチャネル動作を変更するよう PUTAUT チャネル属性を設定する方法については、「WebSphere MQ 相互通信」を参照してください。

  2. 異なるキューからパブリケーションを読み取る、1 つ以上の追加メッセージ・フロー (インスタンスではない) を構成できます。 パブリッシュ・アプリケーションをいくつか更新して、新しいキュー (複数可) にパブリッシュできるようにする必要もあります。 このことには、ストリームを分割する影響があるので、ワークロードが分散することになります。

    この方法を使用してスループットを改善する場合、 パブリケーションの配信順序に与える影響を考慮する必要があります。 特に、順序が重要な場合には、 パブリッシャー・アプリケーションがパブリッシュする各トピックごとに分割され、 トピックごとの順序が維持できることを確認しなければなりません。 アプリケーションが、同じトピックの異なるキュー (メッセージ・フロー) にパブリッシュする場合、 順序は保証できません。

    パブリッシャー・アプリケーションを更新し、 パブリッシュするストリームに対して別の名前を持つ新しいキューにパブリケーションを送信する場合、 MQPSStreamName パラメーターを使用してパブリケーション内にそのストリーム名を明示的に含めるように、 これらのアプリケーションをさらに更新しなければなりません。

    ストリーム・パラメーターは優先されるので、そのパラメーターを指定するパブリッシュ・アプリケーションを変更する必要はありません。 しかし、パブリッシュ・アプリケーションがストリーム・パラメーターを指定しない場合、 動作はメッセージ・フローにある Publication ノードの 「暗黙的ストリーム命名」プロパティーの設定によって決まります。
    • プロパティーが false に設定される場合、デフォルトのストリームであると見なされます。
    • プロパティーが true に設定される場合、 ストリーム名はストリーム入力キューの名前と同じであると見なされます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
aq19900_