[UNIX、Linux、Windows]

UNIX, Linux, and Windows での複数インストール済み環境のキュー・マネージャーの共存

同じサーバーに IBM® MQ for UNIX, Linux®, and Windows の複数のコピーをインストールできます。 これらの IBM MQ コピーは、同じバージョン・レベルでも異なるバージョン・レベルでもかまいません。 これは、複数インストールと呼ばれます。 複数インストール済み環境は、ある IBM MQ バージョンから新しいバージョンにアップグレードする場合に特に役立ちます。これは、新しいバージョンと一緒に前のバージョンを実行できるためです。

注: Linuxでは、RPM インストール・メディアを使用する場合にのみ複数インストールを作成できます。 複数インストールは、 Ubuntuではサポートされていません。

複数インストールを計画する場合は、メジャー IBM MQ バージョン番号 (例えば、 IBM MQ 9.0) のみを考慮する必要があります。 CD リリースおよびフィックスパック・レベルは、重要な追加要因ではありません。

以下の図は、異なるバージョン (例えば、バージョン 9.0 および 8.0) の 2 つの IBM MQ インストール済み環境、2 つのキュー・マネージャー、および 3 つのアプリケーションを示しています。 この図では、アプリケーション 3 は、キュー・マネージャー QM2 (IBM MQ 8.0) に接続されていても、 Inst_1 (IBM MQ 9.0) インストール済み環境からライブラリーをロードするように構成されていることに注意してください。

図1: 異なる IBM MQ バージョンで稼働する 2 つのキュー・マネージャーの共存
この図は、3 つのアプリケーションを示しています。 アプリケーション 2 および 3 はキュー・マネージャー QM2 (IBM MQ 8.0) に接続され、アプリケーション 1 はキュー・マネージャー QM1 (IBM MQ 9.0) に接続されます。 アプリケーション 1 および 3 は IBM MQ 9.0 インストール済み環境 (Inst_1) からライブラリーをロードし、アプリケーション 2 は IBM MQ 8.0 インストール済み環境 (Inst_2) からライブラリーをロードします。

サーバー上で IBM MQ の複数インストールを実行する場合は、以下の 3 つの質問を考慮する必要があります。

  1. どのインストール済み環境にキュー・マネージャーが関連付けられているか。 キュー・マネージャーの関連付けを参照してください。
  2. アプリケーションがロードするのはどのインストール済み環境ですか? IBM MQ ライブラリーのロードを参照してください。
  3. どのインストール済み環境から IBM MQ コマンドを実行しますか? コマンドの関連付け (Command association)を参照。

キュー・マネージャーの関連付け

キュー・マネージャーは、setmqm コマンドを使用して関連付けを変更するまでは、永久にインストール済み環境に関連付けられます。 キュー・マネージャーは、キュー・マネージャーの現行のコマンド・レベルよりも低いコマンド・レベルのインストール済み環境と関連付けることはできません。

図 1では、 QM1Inst_1に関連付けられています。 関連付けは、 setmqm -m QM1 -n Inst_1を実行することによって行われます。 QM1 が初めて開始されたときに、 setmqmを実行した後、 QM1 が実行されている IBM MQ 8.0 場合は、新しいバージョンにマイグレーションされます。 QM2 は、関連付けが変更されていないため、 IBM MQ 8.0 に関連付けられています。

IBM MQ ライブラリーのロード

キュー・マネージャーとのアプリケーション接続は、MQCONN または MQCONNX を通常の方法で呼び出すことによって確立されます。

アプリケーションがロードする IBM MQ ライブラリーは、オペレーティング・システム・ローダーの構成と、キュー・マネージャーが関連付けられている IBM MQ インストール済み環境によって異なります。 図 1では、オペレーティング・システムは、 Inst_1 アプリケーションのインストール済み環境 1 および 3から IBM MQ ライブラリーをロードします。 アプリケーション 2IBM MQ 8.0 ライブラリーをロードします。 オペレーティング・システムがアプリケーション 3 に間違ったライブラリーをロードしました。 アプリケーション 3 には IBM MQ 8.0 ライブラリーが必要です。

図 2 は、アプリケーション 3の状況を示しています。 アプリケーション 3QM2に接続しており、 QM2IBM MQ 8.0 インストール済み環境に関連付けられています。 IBM MQ は、アプリケーション 3 から QM2への呼び出しを処理するために、オペレーティング・システムが誤ったライブラリーをロードしたことを検出しました。 IBM MQ は、 IBM MQ 8.0 インストール済み環境から正しいライブラリーをロードします。 MQCONN または MQCONNX 呼び出しを IBM MQ 8.0 ライブラリーに転送します。 MQCONN または MQCONNXによって返される接続ハンドルを使用する後続の MQI 呼び出し、 IBM MQ 8.0 ライブラリー内の呼び出しエントリー・ポイント。

アプリケーション 2 を使用して QM1 への接続を試みると、 IBM MQ はエラーを返します。 2059 (080B) (RC2059): MQRC_Q_MGR_NOT_AVAILABLEを参照してください。

図2: 別のライブラリーでのロードの呼び出し
この図は、2 つのアプリケーションを示しています。 アプリケーション 2 および 3 は QM2に接続されます。 アプリケーション 2 は、 IBM MQ 8.0からライブラリーをロードします。 アプリケーション 3 は、 IBM MQ 9.0からライブラリーをロードします。 IBM MQ は、アプリケーション 3 用の正しい IBM MQ 8.0 ライブラリーをロードします。

IBM WebSphere® MQ 7.1以降、 IBM MQ ライブラリーには、キュー・マネージャーが関連付けられているインストール済み環境に基づくルーティング機能が組み込まれています。 オペレーティング・システムは、 IBM WebSphere MQ 7.1 以降のインストール済み環境からライブラリーをロードすることができ、 IBM MQ は MQI 呼び出しを正しいライブラリーに転送します。

IBM MQ ライブラリーのロード機能は、新しいリリース・レベルでコンパイルおよびリンクされたアプリケーションが、以前のリリース・レベルの IBM MQ ライブラリーを直接ロードしてはならないという制限を緩和しません。 実際には、アプリケーションがコンパイルおよびリンクされたライブラリーと同じレベルまたはそれ以降のレベルのライブラリーをオペレーティング・システムがロードする限り、 IBM MQ は同じサーバー上の他のレベルの IBM MQ を呼び出すことができます。

例えば、 IBM MQ 9.0に付属のライブラリーを使用して IBM MQ 8.0 キュー・マネージャーに接続するアプリケーションを再コンパイルしてリンクするとします。 実行時に、アプリケーションが IBM MQ 8.0 キュー・マネージャーに接続している場合でも、オペレーティング・システムはアプリケーションの IBM MQ 9.0 ライブラリーをロードする必要があります。 IBM MQ 9.0 は不整合を検出し、アプリケーションの IBM MQ 8.0 ライブラリーをロードします。 同じことが将来のリリースにも当てはまります。 アプリケーションが再コンパイルされ、新しいリリースにリンクされる場合、アプリケーションは、 IBM MQ 9.0 キュー・マネージャーに接続し続ける場合でも、新しいリリースに一致する IBM MQ ライブラリーをロードする必要があります。

アプリケーションは IBM MQ ライブラリーにリンクされていない可能性がありますが、代わりにオペレーティング・システムを直接呼び出して IBM MQ ライブラリーをロードします。 IBM MQ は、キュー・マネージャーに関連付けられているインストール済み環境からのライブラリーであることを確認します。 そうでない場合、 IBM MQ は正しいライブラリーをロードします。

IBM MQ ライブラリーのロードに関するマイグレーションに関する特別な考慮事項

ビルド環境の要件または組織内の IT 標準を満たすために、以前の IBM MQ リリースのインストール済み環境を変更した可能性があります。 IBM MQ ライブラリーを他のディレクトリーにコピーした場合、またはシンボリック・リンクを作成した場合は、サポートされない構成になります。 一般的な IT 標準またはビルド環境の要件は、 UNIX and Linux システムのデフォルト・ロード・パスに IBM MQ ライブラリーを組み込むことです。 IBM WebSphere MQ 7.5以降、 IBM MQ を任意のディレクトリーにインストールできます。 IBM MQ は、 /usr とそのサブディレクトリーにシンボリック・リンクを作成できます。 setmqinst コマンドを使用して IBM MQ インストール済み環境をプライマリーにすると、 IBM MQIBM MQ ライブラリーへのシンボリック・リンクを /usr/libに挿入します。 その結果、オペレーティング・システムは、 /usr/libが含まれている場合、デフォルトのロード・パスで IBM MQ ライブラリーを検出します。

詳しくは、 複数インストール環境でのアプリケーションの接続を参照してください。

コマンドの関連付け

コマンドの例としては、 dspmqversetmqinstrunmqsc、および strmqmがあります。 オペレーティング・システムは、 IBM MQ インストール済み環境でコマンドを検出する必要があります。 また、多くのコマンドは引数としてキュー・マネージャーを必要とし、キュー・マネージャー名がパラメーターとして指定されていない場合はデフォルトのキュー・マネージャーを想定します。

ライブラリーのロードとは異なり、キュー・マネージャーがパラメーターとしてコマンドに含まれている場合、そのコマンドは、そのキュー・マネージャーに関連付けられているインストール済み環境に切り替えられません。 発行したコマンドが、正しいインストール済み環境から実行されるように、setmqenv コマンドを使用して環境を正しくセットアップする必要があります。 setmqenvのパラメーターとしてキュー・マネージャーを指定して、そのキュー・マネージャーのコマンド環境をセットアップすることができます。 詳しくは、 setmqenvの実行を参照してください。

Windowsでは、 setmqinst コマンドはグローバル環境変数と setmqenv ローカル環境変数 (コマンドを検索するための PATH 変数を含む) を設定します。

UNIX and Linuxでは、 setmqinst コマンドは、コマンドのサブセットのシンボリック・リンクを /usr/binにコピーします。 詳しくは、 UNIX and Linux上のプライマリー・インストールへの外部ライブラリーおよび制御コマンドのリンクを参照してください。 setmqenv コマンドは、インストール・ディレクトリー内のバイナリー・フォルダーへの検索パスを含む、ローカル環境変数を設定します。

以下のコードは、 setmqenv を実行して、キュー・マネージャー QM1に関連付けられた IBM MQ のコピー用のコマンド環境をセットアップする 2 つの例を示しています。

図3: setmqenv の実行

IBM MQ for Windows.


"%MQ_INSTALLATION_PATH%\bin\setmqenv" -m QM1

IBM MQ for UNIX or Linux.


. $MQ_INSTALLATION_PATH/bin/setmqenv -m QM1