[Linux]

Linux での保守レベル・アップデートの適用

RPMを使用して、保守レベルの更新を IBM® MQ Linux® に適用することができます。 同じ手順が、 Ubuntuを含むすべての Linux プラットフォームに適用されます。

始める前に

複数の IBM MQ インストール済み環境を使用するサーバー上で実行している場合は、インストール済み環境を指定する必要があります。 入力するコマンドが正しいインストール済み環境に対して実行されることを確認します。 setmqenvを参照してください。

本タスクについて

保守レベルのアップデートは Red Hat Package Manager (RPM) アップデート・イメージの形式で配信され、これらのアップデート・イメージは RPM インストール・ツールを使用して適用されます。

キュー・マネージャーと同じサーバーにインストールされていない IBM MQ MQI client から保守を適用したり削除したりすることができます。 キュー・マネージャーを停止させる必要も、管理者としてログオンする必要もありません。 キュー・マネージャーを停止する必要がないため、以下の保守手順でステップ 1 から 3 までは実行しないでください。

重要: pax および rpmbuild は、製品の一部として提供されていません。 これらは、 Linux ディストリビューションのサプライヤーから入手する必要があります。

保守レベルのアップデートを除去して以前のレベルを復元できるように、アップデート・イメージ用の追加ディスク・スペースが必要です。 更新されたファイルは、 MQ_INSTALLATION_PATH/maintenance ディレクトリーに保持されます。 このディレクトリー、またはこのディレクトリーに含まれるファイルは、削除したり移動したりしないでください。

MQ_INSTALLATION_PATH は、 IBM MQ がインストールされている上位ディレクトリーを表します。

アップデートは、累積方式です。 したがって、最初に以前のアップデートを適用しなくても、 選択したアップデートを直接適用することができます。 保守レベルのアップデートには、1 つ以上のパッケージに対応するアップデートが含まれる場合があります。 インストール済み環境に適用されているパッケージに対応する、アップデートの部分を適用しなければなりません。
重要: そのレベルの製造リフレッシュ・イメージから実行されるインストールと同じレベルのフィックスパックをインストールすることは可能ですが、このプロセスは試行しないでください。 ご使用のシステムに既にあるレベルと同じレベルのフィックスパックをインストールすると、 IBM MQのインストールに関して、システムのパッケージ管理データベースが不整合状態のままになる可能性があります。

手順

  1. group mqmにユーザーとしてログインします。
  2. IBM MQ インストール済み環境を使用しているすべてのアプリケーションを停止します。

    Managed File Transfer (MFT) コンポーネントを使用する場合は、関与していたすべての MFT エージェントがすべてのファイル転送を完了していることを確認してください。 エージェントに関連した転送を未完了のまま残さないでください。また、SYSTEM.FTE.STATE キューにメッセージを入れておかないでください。

  3. IBM MQ インストール済み環境に関連付けられているキュー・マネージャーのすべてのアクティビティーを終了します。
    1. dspmq コマンドを実行して、システム上のすべてのキュー・マネージャーの状態をリストします。

      更新するインストール済み環境から以下のコマンドのいずれかを実行します。

      
      dspmq -o installation -o status
      dspmq -a
      

      dspmq -o installation -o status は、 IBM MQのすべてのインストールに関連付けられたキュー・マネージャーのインストール名と状況を表示します。

      dspmq -a は、このコマンドを実行するインストール済み環境に関連付けられているアクティブなキュー・マネージャーの状況を表示します。

    2. MQSC コマンド DISPLAY LSSTATUS を使用して、キュー・マネージャーに関連付けられたリスナーの状況をリストします。以下に例を示します。
      
      echo "DISPLAY LSSTATUS(*) STATUS" | runmqsc QmgrName
      
    3. endmqm コマンドを実行して、このインストール済み環境に関連付けられている実行中の各キュー・マネージャーを停止します。
      構文図を読むビジュアル構文図をスキップ endmqm -c-w-i-p QmgrName

      endmqm コマンドは、接続先のキュー・マネージャーが停止することをアプリケーションに通知します。 キュー・マネージャーの停止を参照してください。

      保守を続行するには、アプリケーションは、キュー・マネージャーから切断し、ロードした IBM MQ ライブラリーをすべて解放することによって、 endmqm コマンドに応答する必要があります。 そうでない場合は、アプリケーションを停止するなどして、アプリケーションに強制的に IBM MQ リソースを解放させる別の方法を見つける必要があります。

      さらに、インストール済み環境の一部であるクライアント・ライブラリーを使用しているアプリケーションも停止する必要があります。 クライアント・アプリケーションは、 IBM MQの別のインストール済み環境を実行する別のキュー・マネージャーに接続されている可能性があります。 現在のインストール済み環境にあるキュー・マネージャーがシャットダウンすることについて、そのアプリケーションは通知を受けません。

      インストール済み環境から IBM MQ 共有ライブラリーを引き続きロードするアプリケーションでは、 IBM MQ 保守を適用できません。 アプリケーションは、キュー・マネージャーから切断されたり、強制的に切断されたりする可能性がありますが、 IBM MQ 共有ライブラリーはロードされたままになります。

      注: UNIX および Linux では、複数インスタンス・キュー・マネージャーに保守を適用する方法について説明しています。 マルチインスタンス・キュー・マネージャーの場合、あるサーバーに保守を適用している間も、別のサーバーで引き続き実行させることが可能です。
    4. 以下のコマンドを使用して、キュー・マネージャーに関連付けられたリスナーを停止します。
      
      endmqlsr -m QMgrName
      
  4. root としてログインするか、 su コマンドを使用してスーパーユーザーに切り替えます。
  5. 保守パッケージを含むディレクトリーに変更します。
  6. ls コマンドを実行して、使用可能な更新をリストします。

    例えば、ランタイム、SDK、およびサーバーのパッケージに対するレベル 1 の保守アップデートがある場合には、次のようになります。

    
    MQSeriesRuntime-Uxxxx-V.R.0-1.i386.rpm
    MQSeriesSDK-Uxxxx-V.R.0-1.i386.rpm
    MQSeriesServer-Uxxxx-V.R.0-1.i386.rpm
    
    ここで、V はバージョン番号、R はリリースの番号です。
  7. rpm コマンドを実行して、サーバーにインストールされているパッケージを確認します。

    以下のコマンドを入力します。

    
    rpm -qa | grep MQSeries
    
    注: Ubuntuを使用している場合は、 --force-debian 属性を追加します。
    
    rpm --force-debian -qa | grep MQSeries
    
    例えば、最小限の IBM MQ インストール済み環境と SDK コンポーネント (レベル 0) がある場合、 rpm コマンドは以下を返します。
    
    MQSeriesRuntime-V.R.0-0
    MQSeriesSDK-V.R.0-0
    MQSeriesServer-V.R.0-0
    
    ここで、V はバージョン番号、R はリリースの番号です。
  8. システム上の最初のインストール済み環境以外のインストール済み環境でこのフィックスパックをアップグレードする場合は、 crtmqfp コマンドを実行して、システムにインストールする固有のパッケージ・セットを作成し、使用します。
    これが、システムへの最初の、または唯一の IBM MQ インストールである場合は、このステップを無視できることに注意してください。
    crtmqfp コマンドを Linux上で実行するには、 pax コマンドをインストールする必要があります。
    1. コマンド ./crtmqfp suffixname を実行します。ここで、 suffixname は、基本レベルの IBM MQ インストールの名前変更時に使用した接尾部と同じです。
    2. crtmqfp コマンドの完了時に指定した場所に現行ディレクトリーを設定します。
      このディレクトリーは /var/tmp/mq_rpms のサブディレクトリーであり、パッケージの固有のセットが作成されます。 各パッケージのファイル名には suffix 値が付けられます。

      例えば、基本レベル IBM MQ インストールのリパッケージ中に接尾部 1 を使用した場合は、コマンド ./crtmqfp 1 を入力します。

      これで、/var/tmp/mq_rpms/1/xxxx という名前のサブディレクトリーが作成され、パッケージの名前が MQSeries®Runtime-V.R.0-1.xxxx.rpm から MQSeriesRuntime_1-V.R.0-1.xxxx.rpm に変更されます。 ここで、V はバージョン番号、 R はリリースの番号です。

  9. rpm コマンドを実行して、システム上にあるパッケージの使用可能な更新をすべて適用します。
    • デフォルト・ロケーション /opt/mqm でのインストール済み環境の更新は、次のように行います。
      
      rpm -ivh MQSeriesRuntime-Uxxxx-V.R.0-1.i386.rpm
        MQSeriesSDK-Uxxxx-V.R.0-1.i386.rpm
        MQSeriesServer-Uxxxx-V.R.0-1.i386.rpm
      
      ここで、V はバージョン番号、R はリリースの番号です。
    • カスタム・ロケーションのインストール済み環境を更新する場合 rpm prefix オプションを指定します。
      
      rpm --prefix /opt/customLocation -ivh MQSeriesRuntime-Uxxxx-V.R.0-1.i386.rpm
        MQSeriesSDK-Uxxxx-V.R.0-1.i386.rpm
        MQSeriesServer-Uxxxx-V.R.0-1.i386.rpm
      
      ここで、V はバージョン番号、R はリリースの番号です。

    現在システムにインストールされているパッケージに対応した保守アップデートの、すべてのパッケージを適用する必要があります。

  10. ステップ 7 を繰り返して、現在使用可能なパッケージをリストします。

    ランタイム、SDK、およびサーバーのパッケージがレベル 1 になっていることがわかります。

    
    MQSeriesRuntime-V.R.0-0
    MQSeriesSDK-V.R.0-0
    MQSeriesServer-V.R.0-0
    MQSeriesRuntime-Uxxxx-V.R.0-1
    MQSeriesSDK-Uxxxx-V.R.0-1
    MQSeriesServer-Uxxxx-V.R.0-1
    
    ここで、V はバージョン番号、R はリリースの番号です。
    注:

    IBM MQ フィックスパックのインストール後に rpm-verify コマンドまたは rpm -V コマンドを実行すると、正しい結果が返されません。 MQ_INSTALLATION_PATH/maintenance の欠落ファイルに関連する誤った結果を生成します。

    このエラー・メッセージは、 IBM MQ フィックスパックのインストール・コードにおける既知の制限であるため、無視してかまいません。 このエラーについて詳しくは、 IBM MQ フィックスパックのインストール・エラー- Linux レポート・エラー を参照してください。

次のタスク

RPM を使用してソフトウェア・パッケージをインストールする方法の詳細については、ご使用の Linux の資料を参照してください。