[AIX、Linux、Windows]

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 ライブラリーが、キュー・マネージャーが関連付けられているライブラリーであることを確認する必要があります。

IBM MQ ライブラリーをロードする方法はプラットフォームによって異なり、それぞれの方法には利点と欠点があります。
表 1. ライブラリーをロードするためのオプションの利点と欠点
プラットフォーム オプション 利点 欠点
[AIX][Linux]AIX and Linux システム アプリケーションの埋め込みランタイム検索パス (RPath) を設定または変更する。

このオプションでは、アプリケーションを再コンパイルしてリンクする必要があります。 アプリケーションのコンパイルとリンクについて詳しくは、 プロシージャー型アプリケーションの構築を参照してください。

  • 変更範囲が明確です。
  • アプリケーションを再コンパイルしてリンクできる必要があります。
  • IBM MQ の場所が変更された場合は、RPath を変更する必要があります。
AIX and Linux システム -k オプションまたは -l オプションを指定して、 setmqenvまたは crtmqenvを使用して LD_LIBRARY_PATH 環境変数を設定します。(

[AIX] AIX では、この環境変数は LIBPATH である

  • 既存のアプリケーションを変更する必要がありません。
  • アプリケーションの埋め込み RPath をオーバーライドします。
  • IBM MQ の場所が変更された場合に変数を簡単に変更できます。
  • setuid アプリケーションおよび setgid アプリケーション、または他の方法で構築されたアプリケーションでは、セキュリティー上の理由で、LD_LIBRARY_PATH が無視される場合があります。
  • 環境固有であるため、アプリケーションを実行する環境ごとに設定する必要があります。
  • LD_LIBRARY_PATH に依存する他のアプリケーションに影響する可能性があります。
  • [Linux]Linux:アプリケーションのビルドに使用されたコンパイラが、 LD_LIBRARY_PATHの使用を無効にしている可能性があります。 詳しくは、 Linux のランタイム・リンクに関する考慮事項 を参照してください。
[Windows]Windows システム setmqenvまたは crtmqenvを使用して PATH 変数を設定します。
  • 既存のアプリケーションを変更する必要がありません。
  • IBM MQ の場所が変更された場合に変数を簡単に変更できます。
  • 環境固有であるため、アプリケーションを実行する環境ごとに設定する必要があります。
  • 他のアプリケーションに影響する可能性があります。
[AIX、Linux、Windows]AIX, Linux, and Windows システム プライマリー・インストールを IBM WebSphere MQ 7.1以降のインストールに設定します。 プライマリ・インストールの変更 」を参照してください。

プライマリー・インストールについて詳しくは、 プライマリー・インストールの選択を参照してください。

  • 既存のアプリケーションを変更する必要がありません。
  • IBM MQ の場所が変更された場合に、プライマリー・インストールを簡単に変更できます。
  • 以前のバージョンの IBM MQと同様の動作をします。
  • IBM WebSphere MQ 7.0.1 がインストールされている場合、プライマリインストールを IBM WebSphere MQ 7.1 以降に設定することはできません。
  • [AIX][Linux]AIX and Linux: /usr/lib がデフォルトの検索パスにない場合は動作しません。
[Linux]

Linux のライブラリーのロードに関する考慮事項

バージョン 3.2.x など、一部のバージョンの gcc を使用してコンパイルされたアプリケーションには、LD_LIBRARY_PATH 環境変数を使用してオーバーライドできない RPath を埋め込むことができます。 readelf -d applicationName コマンドを使用して、アプリケーションが影響を受けるかどうかを判別できます。 RPATH シンボルは存在するが、RUNPATH シンボルが存在しない場合は、RPath をオーバーライドすることはできません。

オペレーティング・システムのライブラリー・ロード・メカニズム

Windows システムでは、ライブラリーを見つけるためにいくつかのディレクトリーが検索されます。
  • アプリケーションの読み込み元のディレクトリー。
  • 現行ディレクトリー。
  • PATH 環境変数 (グローバル PATH 変数および現行ユーザーの PATH 変数の両方) のディレクトリー。
[AIX][Linux] 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]AIX: dump
  • [Linux]Linux: readelf