ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

5.15.2 ブローカの起動/停止

ここでは、以下について説明します。

メッセージブローカの起動

JMSアプリケーションがメッセージを送受信する物理格納先を管理するメッセージブローカを、事前に起動する必要があります。詳細については、「11.9 imqbrokerd」を参照してください。

imqbrokerd -name メッセージブローカ名 -port ポート番号

imqbrokerdコマンド実行後は、コマンドプロンプトは復帰しません。


メッセージブローカ起動時の注意

メッセージブローカを起動するホストは、hostsファイルの内容またはDNSの設定により名前解決(IPアドレス解決)を可能にしておく必要があります。
ネットワーク環境をDNSで運用している場合は、DNSの設定を行ってください。DNSで運用していない場合は、以下に格納されているhostsファイルの内容を確認して、必要に応じて追加/修正してください。

(Windows(R)のインストールフォルダ)\system32\drivers\etc\hosts

/etc/hosts

注意

hostsファイルにローカルホスト名を設定する場合、リモートから参照可能なIPアドレスを先に記載してください。詳細については、「使用上の注意」の「Interstage共通の注意事項」-「hostsファイルの記載について」を参照してください。


IJServerクラスタ、またはInterstage Java EE DAサービスSを起動する前に、メッセージブローカを起動してください。
IJServerクラスタ、またはInterstage Java EE DASサービス起動後に、それぞれのログを参照し、ERROR、WARNINGが出力されていないことを確認してください。
以下に示すERROR、またはWARNINGが出力されている場合、IJServerクラスタ、またはInterstage Java EE DASサービスを停止し、メッセージブローカを起動後、IJServerクラスタ、またはInterstage Java EE DASサービスを再度起動してください。

  • WARNINGメッセージ

    • ISJEE: WARNING: ISJEE_IJMQ_C4003: Error occurred on connection creation [{0}:{1}]. - cause: java.net.ConnectException: Connection refused: connect: ThreadID=10,ThreadName=main

    • ISJEE: WARNING: ISJEE_MQJMSRA_RA4001: getJMXServiceURLList:Exception:Message=Caught exception when contacing portmapper.: ThreadID=10,ThreadName=main

  • ERRORメッセージ

    • ISJEE: ERROR: ISJEE_MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnection=IJMQ_C4003: Error occurred on connection creation [{0}:{1}]. - cause: java.net.ConnectException: Connection refused: connect: ThreadID=10,ThreadName=main

運用環境の変更

JMSを使用していないIJServerクラスタ、またはInterstage Java EE DASサービス運用環境からJMSを使用するIJServerクラスタ、またはInterstage Java EE DASサービス運用環境に変更する場合は、必ずIJServerクラスタ、またはInterstage Java EE DASサービスを停止し、メッセージブローカを起動後、IJServerクラスタ、またはInterstage Java EE DASサービスを再度起動してください。再起動を実施しない場合、JMS機能が正しく使用できません。

注意

以下の条件の場合、IJServerクラスタ、またはInterstage Java EE DASサービスの起動に時間がかかる場合があります。

  • JMSを使用する場合。かつ、

  • IJServerクラスタ、またはInterstage Java EE DASサービス起動時にメッセージブローカが未起動の場合。かつ

  • JMSのリソース定義で有効なConnectionFactoryを複数定義している場合。
    または、MDBアプリケーションを複数配備している場合。

メッセージブローカ未起動のため、IJServerクラスタの起動に時間がかかる現象回避するためには、IJServerクラスタの起動待ち時間(デフォルト600秒)を必要に応じて修正してください。

メッセージブローカのサービス化

メッセージブローカは通常コマンドを用いて起動する必要がありますが、OSの起動時に自動起動する運用にしたい場合、以下の手順でサービス化することができます。

登録

imqsvcadmin installコマンドを実行して、サービスに登録します。メッセージブローカがサービス名」Message Queue 4.1 Broker」としてサービスに登録されます。

imqsvcadmin install -args メッセージブローカの起動引数

例えば、メッセージブローカのインスタンス名を「test」、ポート番号を「37676」に設定してサービス化する場合は、以下のようにimqsvcadminコマンドを実行します。

imqsvcadmin install -args "-name test -port 37676"

コマンドの詳細については「11.11.1 installサブコマンド」を参照してください。

解除

imqsvcadmin removeコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。

imqsvcadmin remove

コマンドの詳細については「11.11.2 removeサブコマンド」を参照してください。

注意

  • サービス化できるメッセージブローカは1つです。

  • サービス登録時に指定した情報を変更することはできません。変更する場合は、一度、サービスを削除してから、新しい情報を使用して登録してください。

  • サービスのログオンアカウントを設定する場合には、管理者権限を持つアカウントを設定してください。

登録

本作業はrootユーザで実施してください。

  1. rcスクリプトの編集

    サービス化のため、rcスクリプト("ijmq")が下記のディレクトリに提供されています。

    • 格納先: /opt/FJSVisjee/imq/etc/init.d

    ijmqスクリプトを任意の場所へ複写(以下の例では/tmpディレクトリ)します。

    # cp /opt/FJSVisjee/imq/etc/init.d/ijmq /tmp

    複写後、ijmqファイルの以下の項目を編集します。設定値はダブルクォーテーション("")で囲んで設定してください。また、以下の項目以外は編集しないでください。rcスクリプトが正しく動作しなくなる場合があります。

    • BROKER_PORT
      サービス化するブローカプロセスが使用するポート番号。
      ※ここで設定した値はブローカのインスタンス名としても採用されます。

    • BROKER_OPT
      ブローカプロセスに設定するブローカオプションのリスト
      複数指定する場合にはオプションを半角の空白で区切ってください。

    • VM_ARGS
      ブローカプロセス起動時にJVMに渡すVMオプションのリスト
      複数指定する場合にはオプションを半角の空白で区切ってください。

    以下のように設定します。

    #!/bin/sh
    #
    # ijmq:         Interstage Application Server
    #
    # Version:      @(#) /etc/rc.d/init.d/ijmq 1.0
    #
    # Author:       FUJITSU LIMITED
    #
    # chkconfig: 2345 97 3
    # description: Interstage Application Server
    # processname: imqbrokerd
    
    # set broker port
    BROKER_PORT="37676"
    BROKER_OPT="-Dimq.system.max_count=1 -Dimq.system.max_size=1k"
    VM_ARGS="-Xmx256m"
  2. rcスクリプトの格納

    1)で作成したファイルのパーミッションを(0500)に変更し、/etc/init.dに格納します。複数のrcスクリプトを作成・登録する場合には、rcスクリプトのファイル名を変更して登録してください。

    # chmod 0500 /tmp/ijmq
    # mv /tmp/ijmq /etc/init.d/ijmq01

  3. サービスの登録


    /etc/rc0.d, /etc/rc2.dにシンボリックリンクを作成します。

    # ln -s /etc/init.d/ijmq01 /etc/rc0.d/K03ijmq01
    # ln -s /etc/init.d/ijmq01 /etc/rc2.d/S97ijmq01


    chkconfigコマンドを使用してサービスを登録します。

    # /sbin/chkconfig --add ijmq01


解除

本作業はrootユーザで実施してください。

  1. サービスの停止

    サービスが起動している場合には、停止させてください。

    # /etc/init.d/ijmq01 stop

  2. サービスの登録解除


    /etc/rc0.d, /etc/rc2.dに作成したシンボリックリンクを削除します。

    # rm /etc/rc0.d/K03ijmq01
    # rm /etc/rc2.d/S97ijmq01


    chkconfigコマンドを使用してサービスの登録を解除します。

    # /sbin/chkconfig --del ijmq01

  3. rcスクリプトの削除

    /etc/init.dに格納したrcスクリプトを別ディレクトリへ退避、または削除します。

注意

  • 登録したサービスはInterstageのアンインストール時に削除されません。アンインストール後に不要となったサービスは必ず削除してください。

  • rcスクリプトはIJServerクラスタのバックアップ・リストアの対象とはなりません。バックアップ時には、登録したrcスクリプトファイルのバックアップを別途実施してください。また、リストア時には、バックアップしたrcスクリプトの登録作業から再度実行してください。

メッセージブローカの停止

メッセージブローカの停止には、imqcmdコマンドを使用します。停止対象のメッセージブローカが動作するホスト名とポート番号を指定してください。コマンドの詳細については、「11.10 imqcmd」のshutdown bkrサブコマンドを参照してください。

imqcmd shutdown bkr -b localhost:37676

メッセージブローカの一時停止

メッセージブローカを一時停止すると新しい接続の受け入れ、メッセージの受信、配信を停止できます。コマンドの詳細については、「11.10 imqcmd」のpause bkrサブコマンドを参照してください。

imqcmd pause bkr -b localhost:37676

メッセージブローカの再開

メッセージブローカを再開すると、メッセージブローカの新しい接続の受け入れ、メッセージの受信、配信が再開されます。コマンドの詳細については、「11.10 imqcmd」のresume bkrサブコマンドを参照してください。

imqcmd resume bkr -b localhost:37676