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

4.16.2 ブローカの起動/停止

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

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

JMSアプリケーションが物理格納先にメッセージを送受信する場合、物理格納先を管理しているメッセージブローカを事前に起動する必要があります。詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「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 DASサービス

上記のサービス起動後に、それぞれのログを参照し、ERROR/WARNINGメッセージが出力されていないかを確認してください。
以下のERROR/WARNINGメッセージが出力されている場合、上記のサービスを停止し、メッセージブローカを起動後、上記のサービスを再度起動してください。

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秒)を修正してください。

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

メッセージブローカは、通常コマンドで起動する必要がありますが、オペレーティングシステム起動時に自動起動する運用を行う場合、以下の手順でサービス化することができます。

登録

imqsvcadmin installコマンドを実行して、サービスに登録します。メッセージブローカがサービス名「Interstage Message Queue Broker」としてサービスに登録されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqsvcadmin」-「installサブコマンド」を参照してください。

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

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

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

imqsvcadmin removeコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqsvcadmin」-「removeサブコマンド」を参照してください。

imqsvcadmin 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コマンドを使用して、メッセージブローカを停止します。停止対象のメッセージブローカが動作するホスト名とポート番号を指定してください。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「shutdown bkrサブコマンド」を参照してください。

imqcmd shutdown bkr -b localhost:37676

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

imqcmdコマンドを使用して、メッセージブローカを一時停止します。メッセージブローカを一時停止すると、新しい接続の受け入れ、メッセージの受信、配信を停止できます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「pause bkrサブコマンド」を参照してください。

imqcmd pause bkr -b localhost:37676

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

imqcmdコマンドを使用して、メッセージブローカを再開します。メッセージブローカを再開すると、メッセージブローカの新しい接続の受け入れ、メッセージの受信、配信が再開されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「resume bkrサブコマンド」を参照してください。

imqcmd resume bkr -b localhost:37676