![[AIX、Linux、Windows]](ngalw.gif)
IBM MQ ライブラリーのロード
IBM® MQ ライブラリのロード方法を決定する際には、お客様の環境、既存のアプリケーションを変更できるかどうか、プライマリインストールを希望するかどうか、 IBM MQ のインストール先、 IBM MQ のインストール先が変更される可能性があるかどうかなど、さまざまな要因を考慮する必要があります。
この情報は、 IBM WebSphere® MQ 7.1 またはそれ以降のバージョンのライブラリに適用されます。
IBM MQ ライブラリーがどのように配置され、ロードされるかは、ご使用のインストール環境によって異なります。
- AIX® and Linux® システム上で、 IBM WebSphere MQ 7.1 またはそれ以降のバージョンのコピーがデフォルトの場所にインストールされている場合、既存のアプリケーションは以前のバージョンと同じように動作し続けます。 ただし、アプリケーションが/usr/lib内にシンボリック・リンクを必要とする場合は、IBM WebSphere MQ 7.1またはそれ以降のバージョンを選択するか、インストールをプライマリー・インストールにするか、または手動でシンボリック・リンクを作成する必要があります。
- IBM WebSphere MQ 7.0.1 もインストールされている場合など、 IBM WebSphere MQ 7.1 またはそれ以降のバージョンがデフォルト以外の場所にインストールされている場合は、正しいライブラリがロードされるように既存のアプリケーションを変更する必要があるかもしれません。
最適な方法として、オペレーティング・システムによってロードされる IBM MQ ライブラリーが、キュー・マネージャーが関連付けられているライブラリーであることを確認する必要があります。
IBM MQ ライブラリーをロードする方法はプラットフォームによって異なり、それぞれの方法には利点と欠点があります。
| プラットフォーム | オプション | 利点 | 欠点 |
|---|---|---|---|
![]() AIX and Linux システム |
アプリケーションの埋め込みランタイム検索パス (RPath) を設定または変更する。 このオプションでは、アプリケーションを再コンパイルしてリンクする必要があります。 アプリケーションのコンパイルとリンクについて詳しくは、 プロシージャー型アプリケーションの構築を参照してください。 |
|
|
| AIX and Linux システム | -k オプションまたは -l オプションを指定して、 setmqenvまたは crtmqenvを使用して LD_LIBRARY_PATH 環境変数を設定します。(
|
|
|
Windows システム |
setmqenvまたは crtmqenvを使用して PATH 変数を設定します。 |
|
|
AIX, Linux, and Windows システム |
プライマリー・インストールを IBM WebSphere MQ 7.1以降のインストールに設定します。 プライマリ・インストールの変更 」を参照してください。 プライマリー・インストールについて詳しくは、 プライマリー・インストールの選択を参照してください。 |
|
|
![[Linux]](nglinux.gif)
Linux のライブラリーのロードに関する考慮事項
バージョン 3.2.x など、一部のバージョンの gcc を使用してコンパイルされたアプリケーションには、LD_LIBRARY_PATH 環境変数を使用してオーバーライドできない RPath を埋め込むことができます。 readelf -d applicationName コマンドを使用して、アプリケーションが影響を受けるかどうかを判別できます。 RPATH シンボルは存在するが、RUNPATH シンボルが存在しない場合は、RPath をオーバーライドすることはできません。
オペレーティング・システムのライブラリー・ロード・メカニズム
Windows システムでは、ライブラリーを見つけるためにいくつかのディレクトリーが検索されます。
- アプリケーションの読み込み元のディレクトリー。
- 現行ディレクトリー。
- PATH 環境変数 (グローバル PATH 変数および現行ユーザーの PATH 変数の両方) のディレクトリー。
![[AIX]](ngaix.gif)
AIX and Linux システム上では、ロードするライブラリを探すために使われたかもしれない方法がいくつかある:- LD_LIBRARY_PATH 環境変数 ( AIXでは LIBPATH ) を使用する。 この変数を設定すると、必要な IBM MQ ライブラリーを検索する一連のディレクトリーが定義されます。 これらのディレクトリーにライブラリーがある場合、他の方法を使用して検出されるどのライブラリーよりもそのライブラリーが優先されます。
- 埋め込み検索パス (RPath) を使用。 アプリケーションには、 IBM MQ ライブラリーを検索するための一連のディレクトリーが含まれている場合があります。 LD_LIBRARY_PATH が設定されていない場合、または必要なライブラリーが変数を使用して検出されなかった場合は、ライブラリーを見つけるために RPath が検索されます。 既存のアプリケーションがRPathを使用しているにもかかわらず、アプリケーションを再コンパイルしてリンクできない場合は、 IBM WebSphere MQ 7.1 をデフォルトの場所にインストールするか、別の方法でライブラリを見つける必要があります。
- デフォルトのライブラリー・パスを使用。 LD_LIBRARY_PATH 変数と RPath の場所を検索しても IBM MQ ライブラリーが見つからない場合は、デフォルトのライブラリー・パスが検索されます。 通常、パスには/usr/libまたは/usr/lib64が含まれます。 デフォルトのライブラリー・パスを検索してもライブラリーが見つからなかった場合は、依存関係の欠落により、アプリケーションは開始できません。
アプリケーションに埋め込み検索パスがあるかどうかについては、オペレーティング・システム・メカニズムを使用して調べることができます。 以下に例を示します。
AIX: dump
Linux: readelf
![[Windows]](ngwin.gif)