IBM MQ classes for JMS でのチャネル圧縮

IBM® MQ classes for JMS アプリケーションは IBM MQ 機能を使用して、メッセージ・ヘッダーまたはデータを圧縮することができます。

IBM MQ チャネルを流れるデータを圧縮すると、チャネルのパフォーマンスを向上させ、ネットワーク・トラフィックを削減することができます。 IBM MQで提供される機能を使用して、メッセージ・チャネルおよび MQI チャネルを流れるデータを圧縮することができます。 また、どちらのタイプのチャネルでも、ヘッダー・データとメッセージ・データを個別に圧縮できます。 デフォルトでは、チャネル上のデータは圧縮されません。

IBM MQ classes for JMS アプリケーションは、 java.util.Collection オブジェクトを作成することにより、接続上のヘッダー・データまたはメッセージ・データを圧縮するために使用できる技法を指定します。 各圧縮手法は、このコレクション内の Integer オブジェクトです。アプリケーションが圧縮手法をコレクションに追加する順序は、アプリケーションの接続作成時に圧縮手法がキュー・マネージャーにネゴシエーションされた順序になります。 その後、アプリケーションで、このコレクションを ConnectionFactory オブジェクトに渡します。このとき、対象データがヘッダー・データであれば setHdrCompList() メソッドを呼び出し、メッセージ・データであれば setMsgCompList() メソッドを呼び出します。 アプリケーション側の準備が完了すれば、接続を作成できます。

以下のコード・フラグメントは、ここで説明した方法の例です。 最初のコード・フラグメントは、ヘッダー・データ圧縮の実装方法を示します。
Collection headerComp = new Vector();
headerComp.add(new Integer(WMQConstants.WMQ_COMPHDR_SYSTEM));
.
.
.
((MQConnectionFactory) cf).setHdrCompList(headerComp);
.
.
.
connection = cf.createConnection();
2 番目のコード・フラグメントは、メッセージ・データ圧縮の実装方法を示します。
Collection msgComp = new Vector();
msgComp.add(new Integer(WMQConstants.WMQ_COMPMSG_RLE));
msgComp.add(new Integer(WMQConstants.WMQ_COMPMSG_ZLIBHIGH));
.
.
.
((MQConnectionFactory) cf).setMsgCompList(msgComp);
.
.
.
connection = cf.createConnection();
2 番目の例では、圧縮技法は、接続の作成時に RLE、次に ZLIBHIGH の順にネゴシエーションされます。 選択された圧縮手法は、Connection オブジェクトが存続している間は変更できません。 接続上で圧縮を使用するには、Connection オブジェクトを作成する前に、setHdrCompList() メソッドと setMsgCompList() メソッドを呼び出す必要があります。