サーバー・サービス・オブジェクトの使用

これらの例は、トリガー・モニターまたはその他のプログラムを開始するためにサーバー・サービス・オブジェクトを定義、使用、および変更する方法を示しています。

始める前に

注: これらの例では、MQSC コマンドを実行する必要があります。 これを行う方法は、プラットフォームによって異なります。 MQSC コマンドを使用した IBM® MQ の管理を参照してください。
これらの例は、特に明記されていない限り、 UNIX スタイルのパス区切り文字を使用して作成されています。

手順

  1. DEFINE SERVICE MQSC コマンドを使用して、サーバー・サービス・オブジェクトを定義する:
    DEFINE SERVICE(S1) +
    CONTROL(QMGR) +
    SERVTYPE(SERVER) +
    STARTCMD('+MQ_INSTALL_PATH+bin/runmqtrm') +
    STARTARG('-m +QMNAME+ -q ACCOUNTS.INITIATION.QUEUE') +
    STOPCMD('+MQ_INSTALL_PATH+bin/amqsstop') +
    STOPARG('-m +QMNAME+ -p +MQ_SERVER_PID+')
    
    説明
    • +MQ_INSTALL_PATH+ は、インストール・ディレクトリーを表すトークンです。
    • +QMNAME+ は、キュー・マネージャーの名前を表すトークンです。
    • ACCOUNTS.INITIATION.QUEUE は、始動キューです。
    • amqsstop は、 IBM MQ に用意されているサンプル・プログラムです。このプログラムは、プロセス ID のすべての接続を切断するようにキュー・マネージャーに要求します。 amqsstop は PCF コマンドを生成するため、コマンド・サーバーが稼働している必要があります。
    • +MQ_SERVER_PID+ は、停止プログラムに渡されるプロセス ID を表すトークンです。

    共通トークンのリストについては、 サービス定義での置き換え可能な挿入の使用 を参照してください。

  2. サーバー・サービス・オブジェクトのインスタンスは、キュー・マネージャーが次に開始されたときに実行されます。 ただし、 START SERVICE MQSC コマンドを使用して、サーバー・サービス・オブジェクトのインスタンスを即時に開始することはできます。
    START SERVICE(S1)
    
  3. DISPLAY SVSTATUS MQSC コマンドを使用して、サーバー・サービス・プロセスの状況を表示します。
    DISPLAY SVSTATUS(S1)
    
  4. ALTER SERVICE MQSC コマンドを使用して、サーバー・サービス・プロセスを手動で再始動することにより、サーバー・サービス・オブジェクトを変更し、更新を反映させます。

    サーバー・サービス・オブジェクトを変更して、始動キューを JUPITER.INITIATION.QUEUE と指定します。

    ALTER SERVICE(S1) +
    STARTARG('-m +QMNAME+ -q JUPITER.INITIATION.QUEUE')
    
    注: 実行中のサービスは、再始動されるまで、そのサービス定義に対する更新を取得しません。
  5. STOP SERVICE および START SERVICE MQSC コマンドを使用して、変更が反映されるようにサーバー・サービス・プロセスを再始動します。
    STOP SERVICE(S1)
    
    続いて、
    START SERVICE(S1)
    
    サーバー・サービス・プロセスが再始動され、 4で行われた変更が取得されます。
    注: MQSC コマンド STOP SERVICEは、サービス定義で STOPCMD 引数が指定されている場合にのみ使用できます。

引数の受け渡しのその他の例

  • キュー・マネージャーの開始時に runserv というプログラムを開始するためのサーバー・サービス・オブジェクトを定義します。

    これは、 DEFINE SERVICE MQSC コマンドを使用して行います。

    この例は、Windows スタイルのパス区切り文字を使用して記述されます。

    開始プログラムに渡される引数の 1 つは、スペースを含むストリングです。 この引数は、単一のストリングとして渡す必要があります。 これを行うには、コマンド・サービス・オブジェクトを定義するために、以下のコマンドに示すように二重引用符を使用します。

    DEFINE SERVICE(S1) SERVTYPE(SERVER) CONTROL(QMGR) +
    STARTCMD('C:\Program Files\Tools\runserv.exe') +
    STARTARG('-m +QMNAME+ -d "C:\Program Files\Tools\"') +
    STDOUT('C:\Program Files\Tools\+MQ_SERVICE_NAME+.out')
    
    
    DEFINE SERVICE(S4) +
    CONTROL(QMGR) +
    SERVTYPE(SERVER) +
    STARTCMD('C:\Program Files\Tools\runserv.exe') +
    STARTARG('-m +QMNAME+ -d "C:\Program Files\Tools\"') +
    STDOUT('C:\Program Files\Tools\+MQ_SERVICE_NAME+.out')
    
    説明
    • +QMNAME+ は、キュー・マネージャーの名前を表すトークンです。
    • C:\Program Files\Tools\ はスペースを含むストリングで、単一のストリングとして渡されます。
  • キュー・マネージャーの開始時にトリガー・モニターを自動的に開始するために使用できるサーバー・サービス・オブジェクトを定義します。

    これは、 DEFINE SERVICE MQSC コマンドを使用して行います。

    DEFINE SERVICE(TRIG_MON_START) +
    CONTROL(QMGR) +
    SERVTYPE(SERVER) +
    STARTCMD('runmqtrm') +
    STARTARG('-m +QMNAME+ -q +IQNAME+')
    
    説明
    • +QMNAME+ は、キュー・マネージャーの名前を表すトークンです。
    • +IQNAME+ は、ユーザーが service.env ファイルの内の 1 つに定義する環境変数で、開始キューの名前を表します。