メッセージブローカの運用形態について
Java EE 7におけるメッセージブローカのデフォルトの運用形態はREMOTE運用で、Java EE 5と同様に、Interstage Java EE 7 DASサービス/サーバーインスタンスとは別のプロセスで動作します。この運用形態では、Interstage Java EE 7 DASサービス/サーバーインスタンス上で動作するJava EEアプリケーション、および別プロセスで動作するJMSクライアントアプリケーションが、メッセージブローカとメッセージの送受信を行います。
Java EE 7では、Interstage Java EE 7 DASサービスと同一のプロセス上で動作し、Interstage Java EE 7 DASサービスでJMSを使用する場合にだけ運用できる形態としてEMBEDDED運用があります。EMBEDDED運用については、以下の特徴から、実業務運用には使用しないでください。
Interstage Java EE 7 DASサービスだけ動作保証しています。
本運用しているメッセージブローカを停止するためには、Interstage Java EE 7 DASサービスを停止する必要があります。
IJServerクラスタで動作するJava EEアプリケーションから、本運用しているメッセージブローカへの通信はサポートしていません。
以下の定義項目をデフォルト値から変更して運用できません。
接続サービスに関するプロパティ
ルーティングサービスに関するプロパティ
物理格納先の自動生成に関するプロパティ
持続サービスに関するプロパティ
セキュリティに関するプロパティ
ログ機能に関するプロパティ
メッセージブローカの運用形態の詳細は「メッセージブローカの運用形態」を参照してください。
メッセージブローカの管理コマンドについて
メッセージブローカの管理に使用するimqcmdについて、Java EE 5とJava EE 7で、使用可能なサブコマンドが異なっています。Java EE 5でサポートしていた以下のサブコマンドはJava EE 7では使用できません。
pause svc サブコマンド
quiesce bkr サブコマンド
resume svc サブコマンド
unquiesce bkr サブコマンド
update bkr サブコマンド
update svc サブコマンド
メッセージブローカの管理コマンドが使用するパスワードファイルについて
メッセージブローカの管理に使用するimqcmdコマンドでは、管理者パスワードを記載したパスワードファイルを-passfileオプションに指定することで、パスワードのインタラクティブな問い合わせを抑止可能です。
Java EE 5では、管理者パスワードが平文で記載されているパスワードファイルだけが使用可能でしたが、Java EE 7では、難読化したパスワードファイルを使用することができます。Java EE 7でも、Java EE 5と同様に平文のパスワードファイルを使用することはできますが、セキュリティの観点から、難読化したパスワードファイルの使用を推奨します。
パスワードファイルを難読化するには、imqusermgr encodeサブコマンドを使用してパスワードファイルをエンコードします。パスワードファイルのエンコード方法については、「パスワードファイルの指定」および「10.8.5 encodeサブコマンド」を参照してください。
メッセージブローカ上でのスレッドプール管理のスレッドモデルについて
Java EE 5では、スレッドプール管理のスレッドモデルとして、接続ごとに受信用と送信用の2つの専用スレッドを使用する専用モデルと、メッセージの送受信時に共有スレッドにより接続を処理する共有モデルの2つがあります。
Java EE 7では、スレッドプール管理のスレッドモデルは専用モデルのみとなります。
スレッドプール管理のスレッドモデルについての詳細は「2.19.4 接続サービス」を参照してください。
メッセージブローカのログについて
メッセージブローカのログについて、Java EE 5とJava EE 7で以下の差異があります。
Java EE 5
log.txt、log_N.txt(N:1から9までの数値)
Java EE 7
log_N.txt(N:0から9までの数値)
ログローテーションの条件
Java EE 5では、ログサイズによるローテーション、または有効期間によるローテーションのいずれかの条件でローテーション可能でしたが、Java EE 7では、ログサイズによるローテーションだけが可能です。
ログ出力時刻のタイムゾーン
Java EE 5では、ログ出力時刻のタイムゾーンを指定可能ですが、Java EE 7では指定できません。
ログの設定は、ログ機能に関するプロパティを使用して設定します。Java EE 5とJava EE 7のログの設定における差異については、「14.9.6 ログ機能に関するプロパティ」を参照してください。
Java EE 5
[dd/MM/yyyy:HH:mm:ss.SSS Z] ログ本文
Java EE 7
[#|yyyy-MM-ddTHH:mm:ss.SSSZ|LOG_LEVEL|5.1|imq.log.Logger|_ThreadID=スレッドID;_ThreadName=スレッド名;|ログ本文| #]
メッセージブローカのアクセスログについて
Java EE 5で出力可能なメッセージブローカのアクセスログは、Java EE 7では出力できません。
Java EE 7の場合、JMSクライアントからメッセージブローカへのアクセス情報(注)は、メッセージブローカのログで確認してください。
注)JMSクライアントからの接続情報および切断情報が、B1065およびB1066のメッセージにて記録されます。
アプリケーションが利用するJMS接続ファクトリについて
Java EE 7では、Java EE 5では存在しないデフォルトのJMS接続ファクトリ「jms/__defaultConnectionFactory」が存在します。
Java EE 5アプリケーションでJMS接続ファクトリを利用する際、@ResourceアノテーションまたはDeployment Descriptorでnameやres-ref-nameのみ指定し、mapped-nameやjndi-nameの指定をしない場合、JMS接続ファクトリのJNDI名としてnameやres-ref-nameに指定した値が使用されていました。そのため、mapped-nameやjndi-nameの指定がなくても、意図したJMS接続ファクトリの利用が可能でした。
しかし、Java EE 7アプリケーションでJMS接続ファクトリを利用する際、@ResourceアノテーションまたはDeployment Descriptorでnameやres-ref-nameのみ指定し、mapped-nameやjndi-nameの指定をしない場合は、デフォルトのJMS接続ファクトリ「jms/__defaultConnectionFactory」が使用されます。
Java EE 5とJava EE 7で、mapped-nameやjndi-nameの指定がない場合に利用するJMS接続ファクトリが異なるため、Java EE 5アプリケーションをJava EE 7へ移行する際は、意図したJMS接続ファクトリが使用されるよう、@ResourceアノテーションまたはDeployment Descriptorのmapped-nameやjndi-nameの指定を見直してください。
@ResourceアノテーションおよびDeployment Descriptorのmapped-nameやjndi-nameの指定方法については、「JMS接続ファクトリ」の例を参照してください。
JMS接続ファクトリの定義項目について
JMS接続ファクトリの以下の定義項目について、参照・設定する際に指定する定義項目名がJava EE 5とJava EE 7で異なります。Java EE 5とJava EE 7での定義項目名の違いを下表に示します。
定義項目 | Java EE 5 定義項目名 | Java EE 7 定義項目名 |
---|---|---|
リソースタイプ | resources.connector-connection-pool.${jndi-name}.connection-definition-name | resources.connector-connection-pool.${jndi-name}-Connection-Pool.connection-definition-name |
UserName | resources.connector-connection-pool.${jndi-name}.property.UserName | resources.connector-connection-pool.${jndi-name}-Connection-Pool.property.UserName |
Password | resources.connector-connection-pool.${jndi-name}.property.Password | resources.connector-connection-pool.${jndi-name}-Connection-Pool.property.Password |
ClientId | resources.connector-connection-pool.${jndi-name}.property.ClientId | resources.connector-connection-pool.${jndi-name}-Connection-Pool.property.ClientId |
任意のプロパティ名 | resources.connector-connection-pool.${jndi-name}.property.${PropertyName} | resources.connector-connection-pool.${jndi-name}-Connection-Pool.property.${PropertyName} |
初期および最小プールサイズ | resources.connector-connection-pool.${jndi-name}.steady-pool-size | resources.connector-connection-pool.${jndi-name}-Connection-Pool.steady-pool-size |
最大プールサイズ | resources.connector-connection-pool.${jndi-name}.max-pool-size | resources.connector-connection-pool.${jndi-name}-Connection-Pool.max-pool-size |
プールサイズ変更量 | resources.connector-connection-pool.${jndi-name}.pool-resize-quantity | resources.connector-connection-pool.${jndi-name}-Connection-Pool.pool-resize-quantity |
アイドルタイムアウト | resources.connector-connection-pool.${jndi-name}.idle-timeout-in-seconds | resources.connector-connection-pool.${jndi-name}-Connection-Pool.idle-timeout-in-seconds |
最大待ち時間 | resources.connector-connection-pool.${jndi-name}.max-wait-time-in-millis | resources.connector-connection-pool.${jndi-name}-Connection-Pool.max-wait-time-in-millis |
トランザクションサポート | resources.connector-connection-pool.${jndi-name}.transaction-support | resources.connector-connection-pool.${jndi-name}-Connection-Pool.transaction-support |