ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

14.2.12 JMSについて

メッセージブローカの運用形態について

Jakarta EE 8におけるメッセージブローカのデフォルトの運用形態はREMOTE運用で、Java EE 5と同様に、DAS/GlassFish Serverインスタンスとは別のプロセスで動作します。この運用形態では、DAS/GlassFish Serverインスタンス上で動作するJakarta EEアプリケーション、および別プロセスで動作するJMSクライアントアプリケーションが、メッセージブローカとメッセージの送受信を行います。

Jakarta EE 8では、DASと同一のプロセス上で動作し、DASでJMSを使用する場合にだけ運用できる形態としてEMBEDDED運用があります。EMBEDDED運用については、以下の特徴から、実業務運用には使用しないでください。

メッセージブローカの運用形態の詳細は「メッセージブローカの運用形態」を参照してください。

メッセージブローカの管理コマンドについて

メッセージブローカの管理に使用するimqcmdについて、Java EE 5とJakarta EE 8で、使用可能なサブコマンドが異なっています。Java EE 5でサポートしていた以下のサブコマンドはJakarta EE 8では使用できません。

メッセージブローカの管理コマンドが使用するパスワードファイルについて

メッセージブローカの管理に使用するimqcmdコマンドでは、管理者パスワードを記載したパスワードファイルを-passfileオプションに指定することで、パスワードのインタラクティブな問い合わせを抑止可能です。

Java EE 5では、管理者パスワードが平文で記載されているパスワードファイルだけが使用可能でしたが、Jakarta EE 8では、難読化したパスワードファイルを使用することができます。Jakarta EE 8でも、Java EE 5と同様に平文のパスワードファイルを使用することはできますが、セキュリティの観点から、難読化したパスワードファイルの使用を推奨します。

パスワードファイルを難読化するには、imqusermgr encodeサブコマンドを使用してパスワードファイルをエンコードします。パスワードファイルのエンコード方法については、「パスワードファイルの指定」および「10.8.5 encodeサブコマンド」を参照してください。

メッセージブローカ上でのスレッドプール管理のスレッドモデルについて

Java EE 5では、スレッドプール管理のスレッドモデルとして、接続ごとに受信用と送信用の2つの専用スレッドを使用する専用モデルと、メッセージの送受信時に共有スレッドにより接続を処理する共有モデルの2つがあります。

Jakarta EE 8では、スレッドプール管理のスレッドモデルは専用モデルのみとなります。

スレッドプール管理のスレッドモデルについての詳細は「2.19.4 接続サービス」を参照してください。

メッセージブローカのログについて

メッセージブローカのログについて、Java EE 5とJakarta EE 8で以下の差異があります。

ログファイル名
ログの設定

ログの設定は、ログ機能に関するプロパティを使用して設定します。Java EE 5とJakarta EE 8のログの設定における差異については、「14.9.6 ログ機能に関するプロパティ」を参照してください。

出力フォーマット

メッセージブローカのアクセスログについて

Java EE 5で出力可能なメッセージブローカのアクセスログは、Jakarta EE 8では出力できません。
Jakarta EE 8の場合、JMSクライアントからメッセージブローカへのアクセス情報(注)は、メッセージブローカのログで確認してください。

注)JMSクライアントからの接続情報および切断情報が、B1065およびB1066のメッセージにて記録されます。

アプリケーションが利用するJMS接続ファクトリについて

Jakarta EE 8では、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接続ファクトリの利用が可能でした。
しかし、Jakarta EE 8アプリケーションでJMS接続ファクトリを利用する際、@ResourceアノテーションまたはDeployment Descriptorでnameやres-ref-nameのみ指定し、mapped-nameやjndi-nameの指定をしない場合は、デフォルトのJMS接続ファクトリ「jms/__defaultConnectionFactory」が使用されます。

Java EE 5とJakarta EE 8で、mapped-nameやjndi-nameの指定がない場合に利用するJMS接続ファクトリが異なるため、Java EE 5アプリケーションをJakarta EE 8へ移行する際は、意図したJMS接続ファクトリが使用されるよう、@ResourceアノテーションまたはDeployment Descriptorのmapped-nameやjndi-nameの指定を見直してください。

@ResourceアノテーションおよびDeployment Descriptorのmapped-nameやjndi-nameの指定方法については、「JMS接続ファクトリ」の例を参照してください。

JMS接続ファクトリの定義項目について

JMS接続ファクトリの以下の定義項目について、参照・設定する際に指定する定義項目名がJava EE 5とJakarta EE 8で異なります。Java EE 5とJakarta EE 8での定義項目名の違いを下表に示します。

定義項目

Java EE 5 定義項目名

Jakarta EE 8 定義項目名

リソースタイプ

resources.connector-connection-pool.${jndi-name}.connection-definition-name

resources.connector-connection-pool.${jndi-name}-Connection-Pool.connection-definition-name

説明

resources.connector-connection-pool.${jndi-name}.description

resources.connector-connection-pool.${jndi-name}-Connection-Pool.description

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