JMSに関する設定について説明します。
JMSサーバは独立したプロセスで実装しており、WebOTXのアプリケーションサーバ本体には、リソースアダプタにより接続連携しています。
JMSサーバや、JMSリソース、および、送信先の基本的な管理は、運用管理コマンド(otxadmin)、あるいは、統合運用管理ツールで行います。さらに詳細な管理を行うためには、JMSサーバが提供している専用の運用管理ツールを利用します。
運用管理コマンド、あるいは、統合運用管理ツールからの各項目の設定方法については、「2.各サービスの属性の設定」を参照してください。また、JMSサーバが提供している専用の各運用管理ツールについては、「運用管理コマンドリファレンスマニュアル」-「JMS」を参照してください。
JMSサーバの運用に関するプロパティは、JMSサービス(jms-service)と、JMSホスト(jms-host)のMOから設定できます。
運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。
JMSサーバは、1〜4のプロパティを取り込みます。優先順位は、後ろのものほど高くなっています。
プロパティのデフォルト値が定義されたファイルで、次の位置にあります。
${AS_INSTALL}/wojms/lib/props/broker/default.properties
インストール時に指定されたプロパティが格納されるファイルで、次の位置にあります。
${AS_INSTALL}/wojms/lib/props/broker/install.properties
ドメイン固有のJMSサーバに対するプロパティ設定を記述するファイルで、次の位置にあります。ファイルはドメイン生成時に作成されます。
${INSTANCE_ROOT}/wojms/instances/<JMSサーバインスタンス識別子>/props/config.properties
起動引数で指定したプロパティは、すべてのプロパティ設定ファイルに対して優先されます。
コネクションファクトリリソースは、Java EEアプリケーションからJNDIを通して利用します。項目の設定や、参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。
「connection-factory-name」は、コネクションファクトリリソースの定義名で、JNDIの登録名になります。
物理的な送信先の設定や、項目の参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。「physical-destination-name」は、送信先の定義名です。
送信先リソースは、Java EEアプリケーションからJNDIを通して利用します。項目の設定や、参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。
「logical-destination-name」は、送信先リソースの定義名で、JNDIの登録名になります。
運用管理コマンド、統合運用管理ツールで制御できるMOの属性と、そのベースとなるJMSのプロパティ/属性一覧を示します。
JMSに関連するMOのうち、属性を設定できるものは、以下の5種類です。以降、各MOについて設定できる属性を説明します。
連携するJMSサーバに関する情報を定義します。
この定義は、運用管理コマンドのcreate-domainによるドメイン生成時に自動的に設定されます。
MOのdottednameは「server.jms-service」です。設定可能な属性や、操作については、「運用編」-「MO定義リファレンス」-「jms-service」を参照してください。
なお、jms-serviceの「プロパティ」として設定できるのは、以下の項目です。
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| auto-shutdown | ドメイン停止時にJMSサーバを停止するかどうかを指定します。 true:停止する false:停止しない |
true |
| instance-name | JMSサーバインスタンス識別子を指定します。 ※ 同一ホストでJMSサーバクラスタを構成する場合は、この値をホスト内で一意にしておく必要があります。 |
wojmsbroker |
| wojmsConnectionPooling | JMSリソースアダプタ利用時に、コネクタコネクションプールにJMSサーバとの物理的なコネクションをプールするかどうかを指定します。 true:プールする false:プールしない ※ この設定は、アプリケーションサーバ上で動作するJMSコネクションファクトリリソースが利用するすべてのコネクタコネクションプールに影響します。 |
true |
JMSサーバの起動、JMSサーバへの接続に必要な情報を定義します。
この定義は、create-domainコマンドによるドメイン生成時に自動的に設定されます。ポート番号については、create-domainコマンドの--domainpropertiesオプションで、jms.portとして指定することができます。
MOのdottednameは「server.jms-service.jms-host.default_JMS_host」です。設定可能な属性や、操作については、「運用編」-「MO定義リファレンス」-「jms-host」を参照してください。
JNDIを通してアクセスするコネクションファクトリリソースを定義します。
この定義は、運用管理コマンドのcreate-jms-resource、統合運用管理ツールでは、「WebOTX管理ドメイン[<ホスト名>].<ドメイン名>.リソース.JMSリソース」の「コネクションファクトリリソースの作成」操作で作成されます。コネクションファクトリリソースの作成方法については、「運用編」-「運用と操作」-「JMSの運用操作」-「JMSリソースの操作」を参照してください。
コネクションファクトリリソース(jms-connection-factory)作成時には、コネクタリソース(connector-resource)、コネクタコネクションプール(connector-connection-pool)、および、リソース参照(resource-ref)を自動的に作成し、属性値を設定します。
属性値を変更する場合は、コネクションファクトリリソースのMOを介して行います。
各MOのdottednameは以下のとおりです。
コネクションファクトリリソース作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。
物理的な送信先を定義します。
この定義は、運用管理コマンドのcreate-jmsdest、統合運用管理ツールでは、「WebOTX管理ドメイン[<ホスト名>].<ドメイン名>.アプリケーションサーバ.JMSサービス」の「送信先作成」操作で作成されます。送信先の作成方法については、「運用編」-「運用と操作」-「JMSの運用操作」-「送信先の操作」を参照してください。
MOのdottednameは「server.jms-service.jms-physical-destination.destination-name」です。設定可能な属性や、操作については、「運用編」-「MO定義リファレンス」-「jms-physical-destination」を参照してください。
送信先作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。
JNDIを通してアクセスする送信先リソースを定義します。
この定義は、運用管理コマンドのcreate-jmsresource、統合運用管理ツールでは、「WebOTX管理ドメイン[<ホスト名>].<ドメイン名>.リソース.JMSリソース」の操作である「送信先リソースの作成」で作成されます。送信先リソースの作成方法については、「運用編」-「運用と操作」-「JMSの運用操作」-「JMSリソースの操作」を参照してください。
送信先リソース(jms-logical-destination)作成時には、管理オブジェクトリソース(admin-object-resource)と、リソース参照(resource-ref)を自動的に作成し、属性値を設定します。
属性値を変更する場合は、送信先リソースのMOを介して行います。
各MOのdottednameは以下のとおりです。
送信先リソース作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。
ここでは、以下のプロパティや属性について説明します。
「config.properties」ファイルに設定するプロパティの一覧を示します。このファイルには、JMSサービス(jms-service)や、JMSホスト(jms-host)のMOから設定できない詳細な項目を指定します。「config.properties」ファイルの変更は、JMSサーバを停止した状態で行ってください。
ファイルの格納場所、設定方法については、「8.1JMS設定項目・設定方法」を参照してください。
ただし、以下のプロパティについては、JMSサービス、あるいは、JMSホストのMOの属性値が優先されます。これらの値を設定する場合は各MOの属性値を設定してください。
| JMSサーバのプロパティ名 |
対応するMOの属性 |
|---|---|
| wojms.portmapper.port | server.jms-service.jms-host.default_JMS_host.port |
| wojms.system.max_count | server.jms-service.systemMaxCount |
| wojms.system.max_size | server.jms-service.systemMaxSize |
| wojms.message.max_size | server.jms-service.messageMaxSize |
| wojms.log.level | server.jms-service.loglevel |
| wojms.log.file.rolloverbytes | server.jms-service.logfileRolloverBytes |
| wojms.log.file.rolloversecs | server.jms-service.logfileRolloverSecs |
| wojms.autocreate.topic | server.jms-service.autocreateTopic |
| wojms.autocreate.queue | server.jms-service.autocreateQueue |
| wojms.autocreate.queue.maxNumActiveConsumers | server.jms-service.autocreateMaxNumActiveConsumers |
| wojms.autocreate.queue.maxNumBackupConsumers | server.jms-service.autocreateMaxNumBackupConsumers |
| wojms.redelivery.delay | server.jms-service.wojmsRedeliveryDelay |
| wojms.redelivery.limit | server.jms-service.wojmsRedeliveryLimit |
| wojms.redelivery.destination | server.jms-service.wojmsRedeliveryDestination |
| wojms.expiration.destination | server.jms-service.wojmsExpirationDestination |
| wojms.client_metrics.enabled | server.jms-service.enableClientMetrics |
| wojms.display.message.count | server.jms-service.displayMessageCount |
| wojms.log.file.filename | server.jms-service.logfileName |
| wojms.log.admin.output | server.jms-service.logAdmin |
| wojms.log.admin.rolloverbytes | server.jms-service.logfileRolloverBytesAdmin |
| wojms.log.admin.rolloversecs | server.jms-service.logfileRolloverSecsAdmin |
| wojms.log.admin.filename | server.jms-service.logfileNameAdmin |
| wojms.log.error.output | server.jms-service.logError |
| wojms.log.error.rolloverbytes | server.jms-service.logfileRolloverBytesError |
| wojms.log.error.rolloversecs | server.jms-service.logfileRolloverSecsError |
| wojms.log.error.filename | server.jms-service.logfileNameError |
| wojms.log.message.output | server.jms-service.logMessage |
| wojms.log.message.rolloverbytes | server.jms-service.logfileRolloverBytesMessage |
| wojms.log.message.rolloversecs | server.jms-service.logfileRolloverSecsMessage |
| wojms.log.message.filename | server.jms-service.logfileNameMessage |
| wojms.log.packet.output | server.jms-service.logPacketAdmin server.jms-service.logPacketMessage server.jms-service.logPacketPing server.jms-service.logPacketCluster |
| wojms.log.packet.rolloverbytes | server.jms-service.logfileRolloverBytesPacket |
| wojms.log.packet.rolloversecs | server.jms-service.logfileRolloverSecsPacket |
| wojms.log.packet.filename | server.jms-service.logfileNamePacket |
| wojms.enable_cluster | server.jms-service.enableCluster |
| wojms.cluster.brokerlist | server.jms-service.clusterBrokerList |
| wojms.cluster.masterbroker | server.jms-service.clusterMasterBroker |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.portmapper.port | JMSサーバのポート番号を指定します。同一ホストで複数のJMSサーバのインスタンスを実行する場合、それぞれ固有のポート番号を割り当てる必要があります。 | 9700 |
| wojms.portmapper.backlog | 要求を拒否せずに、同時に処理可能な要求の最大数を指定します。 | 50 |
| wojms.producer.maxBatch | プロデューサが一度に送信できるメッセージの最大数を指定します。 | 1000 |
| wojms.message.expiration.interval | 有効期限が切れたメッセージを廃棄する間隔を秒単位で指定します。 | 60 |
| wojms.system.max_count | JMSサーバが保持するメッセージの最大数を指定します。この値を超えるメッセージは拒否されます。-1は無制限です。 | -1 |
| wojms.system.max_size | JMSサーバが保持するメッセージの最大のサイズ (バイト、K バイト、または M バイト単位) を指定します。この値を超えるメッセージは拒否されます。 128,128bは128バイトを、128kは128Kバイト(128×1024=131072バイト)、128mは128Mバイト(128×1024×1024=134217728バイト)を表します。-1は無制限です。 |
-1 |
| wojms.message.max_size | メッセージの本体の最大許容サイズ(バイト、K バイト、または Mバイト単位)を指定します。このサイズを超えるメッセージは拒否されます。 128,128bは128バイトを、128kは128Kバイト(128×1024=131072バイト)、128mは128Mバイト(128×1024×1024=134217728バイト)を表します。-1は無制限です。 |
70m |
| wojms.display.message.count | メッセージ一覧の表示で、出力するメッセージの最大数を指定します。 | 1000 |
| wojms.redelivery.delay | メッセージ再配信の遅延時間を秒単位で指定します。0は、待ち合わせ無しです。 | 0 |
| wojms.redelivery.limit | メッセージ再配信回数の上限を指定します。-1は無制限、0は再配信無しです。再配信回数の上限を超過したメッセージは破棄されます。 | -1 |
| wojms.redelivery.destination | 再配信回数を超過したメッセージを破棄せずに転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります(自動的に作成されません)。指定した送信先が存在しない場合、メッセージは破棄されます。 | |
| wojms.expiration.destination | 有効期限切れメッセージを破棄せずに転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります(自動的に作成されません)。指定した送信先が存在しない場合、メッセージは破棄されます。 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.service.activelist | JMS起動時に活性化するサービス群を指定します。 jms:JMSのコネクションサービス ssljms:JMSのSSLコネクションサービス admin:管理用のコネクションサービス ssladmin:管理用のSSLコネクションサービス |
jms,admin |
| wojms.shared.connectionMonitor_limit | threadpool_modelにsharedを選択した場合に、コネクションを監視するスレッドの対象コネクションの最大数を指定します。-1は無制限です。 | Windows:64 Unix:512 |
| wojms.<svc>.min_threads | svcで示したコネクションサービスが使用するスレッドプールの最小数を指定します。 既定値はコネクションサービスにより異なります。 |
jms:10 ssljms:10 admin:4 ssladmin:4 |
| wojms.<svc>.max_threads | svcで示したコネクションサービスが使用するスレッドプールの最大数を指定します。 既定値はコネクションサービスにより異なります。 0より大きく、かつmin_threadsで指定した値より大きくする必要があります。 |
jms:1000 ssljms:500 admin:10 ssladmin:10 |
| wojms.<svc>.threadpool_model | svcで示したコネクションサービスが使用するスレッドプールモデルを指定します。 dedicated:コネクション毎に専用のスレッドを割り当てる。 shared:複数のコネクション間でスレッドを共有する。共有するコネクションの数はconnectionMonitor_limitで指定する。このモデルはjmsとadminの場合のみに指定できる。 ※jmsコネクションサービスのみは、jms-serviceの「useSharedThread」属性をtrueにすることで、sharedにすることができます。 | dedicated |
| wojms.<svc>.tcp.hostname | svcで示したサービスで使用するホスト名、もしくはIPアドレスを指定します。複数のネットワークインタフェース(NIC)を持つような場合に固定することができます。指定がない場合は、任意を意味します。 | |
| wojms.<svc>.tcp.port | svcで示したサービスで使用するポート番号を指定します。 0は、動的アサインを意味します。 |
0 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.keystore.file.dirpath | SSL ベースのサービスの場合は、キーストアファイルが配置されているディレクトリへのパスを指定します。 | ${AS_INSTALL}/wojms/etc |
| wojms.keystore.file.name | SSL ベースのサービスの場合は、キーストアファイル名を指定します。 | keystore |
| wojms.keystore.password | SSL ベースのサービスの場合に、 キーストアのパスワードを指定します。 ※パスワードはさまざまな方法で指定できます。最も安全な方法は、JMSサーバのプロンプトでパスワードを入力することです。安全性は低くなりますが、パスファイルを使用してパスファイルを読み取り保護することもできます。安全性は最も低くなりますが、次のコマンド行オプションを使用してパスワードを指定することもできます。 wojmsbrokerd -password |
|
| wojms.passfile.enabled | セキュリティ保護される通信用 (SSL、JDBC) のユーザパスワードをパスファイルで指定するどうかを指定します。 true:パスファイルで指定する false:パスファイルで指定しない |
false |
| wojms.passfile.dirpath | パスファイルが配置されているディレクトリへのパスを指定します。 | ${AS_INSTALL}/wojms/etc |
| wojms.passfile.name | パスファイルのファイル名を指定します。 | passfile |
| wojms.accesscontrol.enabled | JMSサーバでサポートされるすべてのコネクションサービスに対して、アクセス制御を行うかどうかを設定します。 true:アクセス制御を行う false:アクセス制御を行わない アクセス制御プロパティファイルに指定されているとおり、認証されたユーザがコネクションサービスを使用するためのアクセス権を保持しているかどうか、あるいは特定の送信先に対して特定の JMS操作を実行するためのアクセス権を保持していることをシステムでチェックするかどうかを指定します。 |
true |
| wojms.<svc>.accesscontrol.enabled | svcで指定したコネクションサービスに対して、アクセス制御を行うかどうかを設定し、JMSサーバ全体の設定(wojms.accesscontrol.enabled)をオーバーライドします。 true:アクセス制御を行う false:アクセス制御を行わない アクセス制御プロパティファイルに指定されているとおり、認証されたユーザが、指定したコネクションサービスを使用するためのアクセス権を保持しているか、あるいは特定の送信先に対して特定の JMS 操作を実行するためのアクセス権を保持していることをシステムでチェックするかどうかを指定します。 |
|
| wojms.accesscontrol.file.dirpath | アクセス制御プロパティファイルが配置されているディレクトリへのパスを指定します。 | ${wojms.instanceshome}${/}${wojms.instancename}${/}etc |
| wojms.accesscontrol.file.filename | JMSサーバインスタンスでサポートされるすべてのコネクションサービスに対するアクセス制御プロパティファイルの名前を指定します。ファイル名には、アクセス制御ディレクトリからの相対ファイルパスを指定します。 | accesscontrol.properties |
| wojms.<svc>.accesscontrol.file.filename | JMSサーバインスタンスの、svcで指定したコネクションサービスに対するアクセス制御プロパティファイルの名前を指定します。ファイル名には、アクセス制御ディレクトリからの相対ファイルパスを指定します。 | |
| wojms.authentication.provider | JMSサーバに接続するユーザの管理方式を指定します。 APSERVER:WebOTXドメインのユーザ管理方式を使用します。 WOJMS:JMS固有の管理方式を使用します。 |
APSERVER |
| wojms.authentication.type | JMSクライアントからパスワードを送信する際のタイプを指定します。 basic:Base64でエンコーディングしたパスワードを送信します。 wojms.authentication.providerを指定しない場合や、APSERVERを指定する場合に使用します。 digest:MD5ダイジェストでハッシュ化したパスワードをBase64でエンコーディングしたパスワードを送信します。 wojms.authentication.providerでWOJMSを指定した場合のみ使用できます。 |
basic |
| wojms.authentication.basic.user_repository | Basic認証に使用されるユーザリポシトリのタイプを指定します。 file:JMS認証(WOJMS)においてファイルベースでの認証を使用します。 jaas:ドメイン認証(APSERVER)に対して、JAAS(Java Authentication Authorization Service)での認証を使用します。 |
jaas |
| wojms.authentication.digest.user_repository | MD5ダイジェスト認証に使用されるユーザリポジトリのタイプを指定します。 file:JMS認証(WOJMS)においてファイルベースでの認証を使用します。 jaas:ドメイン認証(APSERVER)ではMD5ダイジェスト認証は使用できません。 |
jaas |
| wojms.authentication.jaas.realm | ドメイン認証(APSERVER)の場合に、NORMALタイプのコネクションサービス(jms、ssljms)で使用するauth-realm名を指定してください。 | file |
| wojms.authentication.jaas.realm.admin | ドメイン認証(APSERVER)の場合に、ADMINタイプのコネクションサービス(admin、ssladmin)で使用するauth-realm名を指定してください。 | admin-realm |
| wojms.authentication.client.response.timeout | JMSサーバからの認証要求に対するクライアントの応答を待機する時間を秒単位で指定します。 | 180 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.persist.store | 組み込みのファイルストア、またはプラグインの JDBCストアのどちらをJMSサーバが使用するかを指定します。 file:ファイルストア jdbc:JDBCストア |
file |
| wojms.persist.file.message.max_record_size | 組み込みのファイルストアで、メッセージストレージファイル(個別のファイルではない)に追加されるメッセージの最大サイズ(バイト、K バイト、または Mバイト単位)を指定します。 128,128bは128バイトを、128kは128Kバイト(128×1024=131072バイト)、128mは128Mバイト(128×1024×1024=134217728バイト)を表します。 |
1m |
| wojms.persist.file.message.filepool.cleanratio | 組み込みのファイルストアの場合に、クリーン状態 (サイズを 0 にする) で保持される送信先のファイルプールの空きファイルの割合(%)を指定します。この値が大きいほど、作業中にファイルを削除するのに必要なオーバーヘッドが増えますが、ファイルプールに必要なディスク容量は小さくなります。 | 0 |
| wojms.persist.file.destination.message.filepool.limit | 組み込みのファイルストアの場合に、送信先のファイルプールで再利用できる空きファイルの最大数を指定します。この値が大きいほど、JMSサーバが永続データを処理する速度が速くなります。この値を超える空きファイルは削除されます。 | 100 |
| wojms.persist.file.message.cleanup | 組み込みのファイルストアで、JMSサーバのシャットダウン時に、送信先のファイルプール内の空きファイルを削除するかどうかを指定します。値をfalseに設定すると、JMSサーバのシャットダウンが速くなりますが、ファイルを格納するためのディスク容量がさらに必要になります。 | false |
| wojms.persist.file.sync.enabled | 永続処理でメモリ内の状態を物理的なストレージと同期させるかどうかを指定します。true の場合、システムクラッシュによるデータ損失は回避されるますが、永続処理のパフォーマンスに負荷がかかります。 | false |
| wojms.persist.jdbc.driver | データベースに接続する JDBC ドライバの Java クラス名を指定します。 | |
| wojms.persist.jdbc.opendburl | 既存データベースへのコネクションを開くためのデータベース URL を指定します。 | |
| wojms.persist.jdbc.brokerid (省略可能) |
複数のJMSサーバインスタンスが、永続データストアとして、同じデータベースを使用する場合、データベーステーブル名を一意にするために、データベーステーブル名に追加されるJMSサーバインスタンス識別子を指定します。通常、1 つのJMSサーバインスタンスだけのデータを格納する組み込みデータベースでは不要です。識別子には、英数字を使用し、データベースで許可されているテーブル名の最大数 12 を超えないようにする必要があります。 | |
| wojms.persist.jdbc.createdburl (省略可能) |
データベースを作成するコネクションを開くためのデータベース URL を指定します。wojmsdbmgr を使用して、データベースを作成する場合にだけ指定します。 | |
| wojms.persist.jdbc.closedburl (省略可能) |
JMSサーバをシャットダウンする場合に、現在のデータベースコネクションをシャットダウンするためのデータベース URL を指定します。 | |
| wojms.persist.jdbc.user (省略可能) |
必要に応じて、データベースコネクションを開くときに使用するユーザ名を指定します。セキュリティ上の理由から、この代わりに、次のコマンド行オプションを使用して値を指定できます。 wojmsbrokerd -dbuser wojmsdbmgr -u |
|
| wojms.persist.jdbc.password | データベースコネクションを開くときに使用するパスワードを指定します。 ※パスワードは、さまざまな方法で指定できます。最も安全な方法は、JMSサーバのプロンプトでパスワードを入力することです。安全性は低くなりますが、passfile を使用して passfile を読み取り保護することもできます。安全性はもっとも低くなるが、次のコマンド行オプションを使用してパスワードを指定することもできます。 wojmsbrokerd -dbpassword wojmsdbmgr -p |
|
| wojms.persist.jdbc.needpassword (省略可能) |
データベースでJMSサーバのアクセスにパスワードを必要とするかどうかを指定します。値を true にすると、パスワードが必要になります。パスワードは、次のコマンド行オプションを使用して指定できます。 wojmsbrokerd -dbpassword wojmsdbmgr -p コマンド行オプション、またはパスファイルのどちらかを使用してパスワードを指定しないと、JMSサーバによってパスワードの入力が要求されます。 |
false |
| wojms.persist.jdbc.retrycount | JDBCストア利用時のデータベースへの再接続試行回数を指定します。 | 10 |
| wojms.persist.jdbc.retryinterval | JDBCストア利用時のデータベースへの再接続遅延時間を秒単位で指定します。 | 10 |
| wojms.persist.jdbc.table.WOJMSSV35 | バージョンテーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSCCREC35 | 設定変更レコードテーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSDEST35 | 送信先テーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSINT35 | 配信対象テーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSMSG35 | メッセージテーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSPROPS35 | プロパティテーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSILIST35 | 配信対象の状態テーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSTXN35 | トランザクションテーブルを作成するための SQL コマンドを指定します。 | |
| wojms.persist.jdbc.table.WOJMSTACK35 | トランザクション通知テーブルを作成するための SQL コマンドを指定します。 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.log.level | ログレベルを指定します。指定できるレベルは高いものから順に、 NONE, ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH です。 あるカテゴリを指定すると、指定したカテゴリとそれより上のレベルのカテゴリが含まれます。 |
INFO |
| wojms.log.timezone | ログのタイムスタンプのタイムゾーンを指定します。識別子は、 java.util.TimeZone.getTimeZone() が使用しているものと同じです。 | |
| wojms.log.file.rolloverbytes | ログの出力先ファイルを切り替えるファイルサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 | 1048576 |
| wojms.log.file. rolloversecs |
ログの出力先ファイルを切り替える間隔を秒単位で指定します。-1は出力先の切り替えを行いません。 | -1 |
| wojms.log.file.dirpath | ログファイルが格納されているディレクトリへのパスを指定します。デフォルト値は、install.propertiesファイルに定義されています。 | ${wojms.instanceshome}/../../logs/wojms |
| wojms.log.file.filename | ログファイル名を指定します。デフォルト値は、install.propertiesファイルに定義されています。 | wojmsserver.log |
| wojms.log.file.filenum | ログファイルのバックアップ数を指定します。 | 9 |
| wojms.log.file.output | ログファイルに書き込むロギング情報のカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ(ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH )のセットか、ALL または NONEです。 ALL:すべてのカテゴリを出力 NONE:出力しない |
ALL |
| wojms.log.console.stream | コンソールの出力先を指定します。 OUT:標準出力 ERR:標準エラー出力 |
ERR |
| wojms.log.console.output | コンソールへ書き込むロギング情報のカテゴリを指定する。指定できる値は、縦線 (|) で区切ったロギングのカテゴリ(ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH )のセットか、ALL または NONEです。 ALL:すべてのカテゴリを出力 NONE:出力しない |
ERROR|WARNING |
| wojms.log.admin.rolloverbytes | 運用管理操作履歴を出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 | 1048576 |
| wojms.log.admin.rolloversecs | 運用管理操作履歴を出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 | -1(切り替えなし) |
| wojms.log.admin.dirpath | 運用管理操作履歴の出力ディレクトリへのパスを指定します。 | ${wojms.log.file.dirpath} |
| wojms.log.admin.filename | 運用管理操作履歴のファイル名を指定します。 | wojmsadmin.log |
| wojms.log.admin.filenum | 運用管理操作履歴ファイルのバックアップ数を指定します。 | 9 |
| wojms.log.admin.output | 運用管理操作履歴へ出力するログカテゴリを指定します。指定できる値は、 ADMIN または NONEです。 | ADMIN |
| wojms.log.packet.rolloverbytes | パケットログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 | 1048576 |
| wojms.log.packet.rolloversecs | パケットログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 | -1(切り替えなし) |
| wojms.log.packet.dirpath | パケットログの出力ディレクトリへのパスを指定します。 | ${wojms.log.file.dirpath} |
| wojms.log.packet.filename | パケットログのファイル名を指定します。 | wojmspacket.log |
| wojms.log.packet.filenum | パケットログファイルのバックアップ数を指定します。 | 9 |
| wojms.log.packet.output | パケットログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ(PACKET_MESSAGE、PACKET_PING、PACKET_ADMIN、PACKET_CLUSTER_MESSAGE、NONE)のセットか、ALL または NONEです。 PACKET_MESSAGE:JMSメッセージの送受信でやり取りされるパケット(制御用のパケットを含む)の情報を出力 PACKET_PING:JMSサーバや、JMSクライアントの起動状態確認で送受信されるPINGパケットの情報を出力 PACKET_ADMIN:運用管理操作で送受信されるパケットの情報を出力 PACKET_CLUSTER_MESSAGE:JMSサーバクラスタ構成でJMSサーバ間で送受信されるパケットの情報を出力 NONE:出力しない |
NONE |
| wojms.log.message.rolloverbytes | メッセージライフサイクルログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 | 1048576 |
| wojms.log.message.rolloversecs | メッセージライフサイクルログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 | -1(切り替えなし) |
| wojms.log.message.dirpath | メッセージライフサイクルログの出力ディレクトリへのパスを指定します。 | ${wojms.log.file.dirpath} |
| wojms.log.message.filename | メッセージライフサイクルログのファイル名を指定します。 | wojmsmessage.log |
| wojms.log.message.filenum | メッセージライフサイクルログファイルのバックアップ数を指定します。 | 9 |
| wojms.log.message.output | メッセージライフサイクルログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ(MESSAGE)か、ALL または NONEです。 | NONE |
| wojms.log.error.rolloverbytes | エラーログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 | 1048576 |
| wojms.log.error.rolloversecs | エラーログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 | -1(切り替えなし) |
| wojms.log.error.dirpath | エラーログの出力ディレクトリへのパスを指定します。 | ${wojms.log.file.dirpath} |
| wojms.log.error.filename | エラーログのファイル名を指定します。 | wojmserror.log |
| wojms.log.error.filenum | エラーログファイルのバックアップ数を指定します。 | 9 |
| wojms.log.error.output | エラーログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ(ERROR、WARNING、DUMP_STATE、NONE)のセットか、ALL または NONEです。 | ERROR|WARNING|DUMP_STATE |
| wojms.metrics.enabled | メトリックス情報を収集するかどうかを指定します。 true:収集する false:収集しない |
true |
| wojms.metrics.interval | メトリックス情報が報告される間隔を秒単位で指定します。-1は報告しません。 | -1 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.green.threshold | メモリリソースのGreenレベル(使用可能なメモリが十分にある状態)のスタート位置をメモリの利用率(%)で指定します。 | 0 |
| wojms.yellow.threshold | メモリリソースのYellowレベル(メモリーが減っている状態)のスタート位置をメモリの利用率(%)で指定します。 | 80 |
| wojms.orange.threshold | メモリリソースのOrangeレベル(メモリが不十分である状態)のスタート位置をメモリの利用率(%)で指定します。 | 90 |
| wojms.red.threshold | メモリリソースのRedレベル(メモリが不足している状態)のスタート位置をメモリの利用率(%)で指定します。 | 98 |
| wojms.green.count | Greenレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 | 5000 |
| wojms.yellow.count | Yellowレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 | 500 |
| wojms.orange.count | Orangeレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 | 50 |
| wojms.red.count | Redレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 | 0 |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.autocreate.topic | Topicの自動生成を許可するかを指定します。 true:許可する false:許可しない |
false |
| wojms.autocreate.queue | Queueの自動生成を許可するかを指定します。 true:許可する。 false:許可しない。 |
false |
| wojms.autocreate.topic.consumerFlowLimit | 自動生成されたTopicに接続されたConsumerが一回の送信処理で受信できるメッセージの最大数を指定します。 | 1000 |
| wojms.autocreate.queue.consumerFlowLimit | 自動生成されたQueueに接続されたConsumerが一回の送信処理で受信できるメッセージの最大数を指定します。 | 100 |
| wojms.autocreate.queue.maxNumActiveConsumers | 自動生成されたQueueでメッセージを受信するこのできるConsumerの最大数を指定します。-1は無制限です。 | -1 |
| wojms.autocreate.queue.maxNumBackupConsumers | 自動生成されたQueueで待機状態のConsumerの数を指定します。-1は無制限です。 | 0 |
| wojms.autocreate.destination.maxNumMsgs | 自動生成される送信先の最大メッセージ数を指定します。-1は無制限です。 | 100000 |
| wojms.autocreate.destination.maxTotalMsgBytes | 自動生成される送信先の最大メッセージサイズ(バイト、K バイト、または Mバイト単位)を指定します。-1は無制限です。 128,128bは128バイトを、128kは128Kバイト(128×1024=131072バイト)、128mは128Mバイト(128×1024×1024=134217728バイト)を表します。 |
10m |
| wojms.autocreate.destination.maxNumProducers | 自動生成される送信先に接続可能なプロデューサ数を指定します。-1は無制限です。 | 100 |
| wojms.autocreate.destination.maxBytesPerMsg | 自動生成される送信先の1メッセージ当たりの最大サイズ(バイト、K バイト、または Mバイト単位)を指定します。-1は無制限です。 128,128bは128バイトを、128kは128Kバイト(128×1024=131072バイト)、128mは128Mバイト(128×1024×1024=134217728バイト)を表します。 |
10k |
| wojms.autocreate.destination.limitBehavior | 自動生成される送信先に対して新しいメッセージが届いたときに、送信先のメモリ制限のしきい値に到達していた場合のJMSサーバの振る舞いを指定します。 FLOW_CONTROL : プロデューサとの間でフロー制御(低速化)を行います。 REMOVE_OLDEST : 最古のメッセージを破棄します(プロデューサがメッセージ削除の通知を受け取ることはありません)。REMOVE_LOW_PRIORITY : メッセージの有効期限に従い優先度が最低のメッセージを破棄します(プロデューサがメッセージ削除の通知を受け取ることはありません)。 REJECT_NEWEST : 最新のメッセージを拒否します(永続メッセージの場合はプロデューサにメッセージ拒否の例外が発生しますが、非永続メッセージの場合には発生しません)。 |
REJECT_NEWEST |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.ping.enabled | クライアントとの接続を監視するか否かを指定します。 true:行う false:行わない |
true |
| wojms.ping.interval | クライアントとの接続を監視する間隔を秒単位で指定します。 | 120 |
| wojms.client_metrics.enabled | JMSクライアントのチューニング情報を採取するかどうかを指定します。 true:採取する false:採取しない true(採取する)を指定すると、コネクション一覧表示(otxadmin list-jms-connections)で各コネクションに対するメモリ情報を表示します。 |
false |
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.enable_cluster | JMSサーバクラスタを利用するかどうかを指定します。 | false |
| wojms.cluster.brokerlist | クラスタに属するすべてのJMSサーバのホスト名とポート番号を指定します。[hostName][:port]の形式で、「,」で区切って指定します。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。 | |
| wojms.cluster.masterbroker | マスターブローカのアドレスを指定します。[hostName][:port]の形式で指定します(省略可能)。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。 |
JMSクライアントのプロパティの一覧を示します。これらのプロパティは、非Java EE環境下で動作するJavaアプリケーションに有効であり、Javaシステムプロパティとして設定します。
ログの利用方法については、「8.3.11JMSクライアントのログ出力」を、チューニング情報採取に関しては、「運用編」-「チューニング」-「JMSのチューニング」-「JMSクライアントのチューニング情報採取」を参照してください。
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| wojms.client.log.level | JMSクライアントのログを採取する際のログレベル(NONE、ERROR、WARNING、INFO、DEBUG、DEBUGMED、DEBUGHIGHのいずれか)を指定します。 NONE:出力しない |
NONE |
| wojms.client.log.file | JMSクライアントのログを採取する際のログファイル名を指定します。ログレベルのみが指定され、ログファイル名が指定されていない場合は、標準出力に出力します。 | |
| wojms.client.metrics | メモリや、フロー制御などのチューニング情報を出力するかどうかを指定します。 | false |
| wojms.client.metrics.interval | チューニング情報を出力する間隔(ミリ秒)を指定します。 | 5000 |
| wojms.client.metrics.log | チューニング情報を出力するファイル名を指定します(JMSクライアントのログファイルとは別です)。ファイル名が指定されていない場合は、標準出力に出力します。 |
設定は、${AS_INSTALL}/wojms/etc/wojmscrt.conf ファイルで行います。
| プロパティ名 |
説 明 | 既定値 |
|---|---|---|
| java-classpath | アプリケーション固有で利用する、Java クラスや jar ファイルを 環境変数 CLASSPATH 形式で指定します。 C言語ライブラリでは JVM を生成する際に、ここで指定した Java クラスを 優先的に利用するように構成します。 | |
| wojms-options | JMS クライアントのプロパティを指定します。 | -Dwojms.client.log.file= ${AS_INSTALL}/wojms/logs/jmsclient.log (JMSクライアントのログを採取する際のログファイル名) |
| java-home | Java インストールディレクトリを指定します。デフォルトでは、インストール時に指定された JRE のディレクトリが指定されています。 | |
| jvm-options | Java VM に渡す引数を指定します。 | |
| otx-jars | JMSクライアントから利用するWebOTXのjarファイルが、${AS_INSTALL}からの相対パスで指定されています。変更しないでください。 | |
| wojms-logsize | ネイティブログ ( JVM 生成前や JVM のエラーが発生した場合にメッセージが出力されるログ ) の最大サイズを指定します。 | 1048576 (1MB) |
JMSサーバのその他の設定項目、および設定方法について説明します。
ファイルストアを利用するための設定について説明します。
インストール直後は、ファイルストアを利用する設定になっていますが、各プロパティにはデフォルト値が設定されていますので、ご利用になるシステムに合わせてプロパティの設定値を変更してください。ファイルストアをご利用になるためのプロパティの詳細については、「8.2.2JMSのプロパティ/属性一覧」-「JMSサーバのプロパティ」を参照してください。
※ ストアを変更(ファイルストア⇔JDBCストア)する場合、それまでに永続化された情報(メッセージ、送信先、永続サブスクリプション、トランザクション)は、変更先のストアには引き継がれないことにご注意ください。
JDBCストアを利用するための設定について説明します。
インストール直後は、ファイルストアを利用する設定になっています。JDBCストアをご利用するためには、次に示す手順をおこなってください。
データベーススキーマを作成するためのプロパティについて説明します。ここでは、Oracle DBMSを利用する際の例を示します。なお、Oracle DBMSを含め、PostgreSQLや、Microsoft SQL Serverの設定は、JMSサーバの設定ファイル(config.properties)にコメントとして記述してありますので、ご利用のDBMSに合わせてコメントをはずし、必要な設定を行ってください。
| プロパティ名 |
既定値 |
|---|---|
| wojms.persist.store | jdbc |
| wojms.persist.jdbc.brokerid | 例)jms1 省略可能 |
| wojms.persist.jdbc.opendburl | jdbc:oracle:thin:@localhost<hostname>:<port>:<sid> |
| wojms.persist.jdbc.createdburl | jdbc:oracle:thin:@localhost<hostname>:<port>:<sid> 省略可能 ただし、wojmsdbmgr create allコマンドを実行するときは、必ず指定しておく必要があります。 |
| wojms.persist.jdbc.closedburl | jdbc:oracle:thin:@localhost<hostname>:<port>:<sid> 省略可能 |
| wojms.persist.jdbc.user | 例)scott |
| wojms.persist.jdbc.password | 例)tigger |
| wojms.persist.jdbc.driver | oracle.jdbc.driver.OracleDriver |
| wojms.persist.jdbc.table.WOJMSSV35 | CREATE TABLE ${name} (STOREVERSION NUMBER(10) NOT NULL,BROKERID VARCHAR(100)) |
| wojms.persist.jdbc.table.WOJMSCCREC35 | CREATE TABLE ${name} (RECORDTIME NUMBER NOT NULL,RECORD LONG RAW) |
| wojms.persist.jdbc.table.WOJMSDEST35 | CREATE TABLE ${name} (DID VARCHAR(100) NOT NULL,DEST LONG RAW,PRIMARY KEY(DID)) |
| wojms.persist.jdbc.table.WOJMSINT35 | CREATE TABLE ${name} (CUID NUMBER NOT NULL,INTEREST LONG RAW,PRIMARY KEY(CUID)) |
| wojms.persist.jdbc.table.WOJMSMSG35 | CREATE TABLE ${name} (MID VARCHAR(100) NOT NULL,DID VARCHAR(100),MSGSIZE NUMBER,MSG LONG RAW,PRIMARY KEY(MID)) |
| wojms.persist.jdbc.table.WOJMSPROPS35 | CREATE TABLE ${name} (PROPNAME VARCHAR(100) NOT NULL,PROPVALUE LONG RAW,PRIMARY KEY(PROPNAME)) |
| wojms.persist.jdbc.table.WOJMSILIST35 | CREATE TABLE ${name} (MID VARCHAR(100) NOT NULL,CUID NUMBER,DID VARCHAR(100),STATE NUMBER(10),PRIMARY KEY(MID, CUID)) |
| wojms.persist.jdbc.table.WOJMSTXN35 | CREATE TABLE ${name} (TUID NUMBER NOT NULL,STATE NUMBER(10),TSTATEOBJ LONG RAW,PRIMARY KEY(TUID)) |
| wojms.persist.jdbc.table.WOJMSTACK35 | CREATE TABLE ${name} (TUID NUMBER NOT NULL,TXNACK LONG RAW) |
※ ストアを変更(ファイルストア⇔JDBCストア)する場合、それまでに永続化された情報(メッセージ、送信先、永続サブスクリプション、トランザクション)は、変更先のストアには引き継がれないことにご注意ください。
※ OracleのOCIドライバを利用する場合、「注意制限事項」-「JDBCデータソース」-「Oracleご利用時の注意・制限事項」を参考にしてください。JMSも/etc/WebOTX/otx.confの設定が有効になります。
ここでは、JMS認証を利用するためのユーザ管理について説明します。ドメイン認証を利用する場合は、ドメインによって管理されます。ドメインのユーザ管理については、「運用編」-「運用と操作」-「ユーザ管理」を参照してください。
認証に必要なユーザ管理は、wojmsusermgrコマンドで行います。wojmsusermgrコマンドの詳細については、「運用管理コマンドリファレンスマニュアル」-「JMS」-「wojmsusermgr」を参照してください。
ユーザ情報は、次の場所にあるファイルで管理されています。
${INSTANCE_ROOT}/wojms/instances/wojmsbroker/etc/passwd
| グループ |
説明 |
|---|---|
| admin | JMSに対する管理者権限を有するグループです。 |
| user | 管理者権限を持たず、クライアントアプリケーションからのアクセスに必要な権限だけを有するグループです。 コネクション確立時にユーザ認証を行う場合に使用するユーザをこのグループに定義します。 |
| anonymous | user同等の権限を有するグループです。 コネクション確立時にユーザ認証を行わない場合に暗黙的に使用するユーザを定義します。 このグループに定義できるユーザは唯一です。 |
管理者は任意ユーザの登録情報の状態(アクティブ/非アクティブ)を変更することができます。
次の文字は、ユーザ名として使用できません。
| 文字 |
説明 |
|---|---|
| * | アスタリスク |
| , | カンマ |
| : | コロン |
| ユーザ名 | パスワード | グループ | 状態 |
|---|---|---|---|
| admin | adminadmin | admin | アクティブ |
| guest | guest | anonymous | アクティブ |
※ JMSサーバの起動時にはadmin権限が必要です。JMSサーバを起動する運用管理エージェント側の定義には、あらかじめこのデフォルト値が設定されています。この設定を変更する場合には、管理エージェント側の設定も同時に変更してください。
JMS クライアントからの操作 (コネクション、送信先、送信先自動作成) に対するアクセス制御は、次の場所にあるアクセス制御プロパティファイルに定義します。
${INSTANCE_ROOT}/wojms/instances/wojmsbroker/etc/accesscontrol.properties
コネクションサービスへの権限を定義します。
connection.resourceVariant.access.principalType = principals
| 要素 |
説明 |
|---|---|
| resourceVariant | コネクションのタイプを指定します。 NORMAL ADMIN |
| Access | アクセス制御を指定します。 allow deny |
| principalType | 制御を受ける対象者を指定します。 user group |
| Principals | 権限の制御を受ける対象を指定します。 principalTypeがuserの場合は、ユーザ名(複数の場合はカンマで区切られたリスト)を指定します。 principalTypeがgroupの場合は、グループ名(複数の場合はカンマで区切られたリスト)を指定します。 両者とも、全てを対象とする場合には”*”を使用します。 |
デフォルトでは、通常のコネクションは全てのユーザに権限が、管理用のコネクションはadminグループにのみ権限が与えられています。
たとえば、通常のコネクション確立について、ユーザxxxを拒否するには、次の記述を追加します。
送信先に対する権限を定義します。
resourceType.resourceVariant.operation.access.principalType = principals
| 要素 |
説明 |
|---|---|
| resourceType | 送信先のタイプを指定します。 queue topic |
| resourceVariant | 送信先の名前、もしくはすべての送信先を意味する”*”を指定します。 |
| operation | クライアントのタイプを指定します。 produce consume browse |
| access | アクセス制御を指定します。 allow deny |
| principalType | 制御を受ける対象者を指定します。 user group |
デフォルトでは、すべてに権限が与えられています。
たとえば、トピックxxxからのメッセージ受信について、グループyyyを拒否するには、次の記述を追加します。
送信先の自動作成の権限を定義します。
resourceType.create.access.principalType = principals
| 要素 |
説明 |
|---|---|
| resourceType | 送信先のタイプを指定します。 queue topic |
| access | アクセス制御を指定します。 allow deny |
| principalType | 制御を受ける対象を指定します。 user group |
デフォルトでは、すべてに権限が与えられています。
たとえば、topicの自動作成について、ユーザxxxを拒否するには、次の記述を追加します。
JMSサーバとクライアントアプリケーションとの間、JMSサーバと管理ツールとの間で送受信されるメッセージをSSLで暗号化するために必要な設定について説明します。
前者はssljmsコネクションサービス、後者はssladminコネクションサービスが対象です。
ここでは、JMSサーバが使用するSSL、JDBCのパスワードを起動引数ではなく、パスワードファイルを使用して指定する方法について説明します。
| パスワード |
説明 |
|---|---|
| wojms.keystore.password | SSL運用時に必要なキーストアのパスワードを指定します。 |
| wojms.persist.jdbc.password | データベースとの接続時に必要なパスワードを指定します。 |
起動引数を指定した場合は、config.propertiesに設定した内容は無視されます。
Standard/Enterprise Editionにおいて、TPモニタ上でMDBやJMSの非同期受信を行うCORBAアプリケーションを起動する場合の設定について説明します。
MDBでTopicのマルチコンシューマ負荷分散を利用するには、クライアント識別子とその共有フラグを以下に示すいずれかの方法で設定する必要があります。
| プロパティ |
設定値 |
|---|---|
| clientId | クライアント識別子 |
| enableSharedClientID | true |
| プロパティ |
設定値 |
|---|---|
| wojmsConfiguredClientID | クライアント識別子 |
| wojmsEnableSharedClientID | true |
CORBAアプリケーションでTopicのマルチコンシューマ負荷分散を利用する場合は、自動的にクライアント識別子とその共有フラグを設定します。この場合のクライアント識別子は、[アプリケーショングループ名]_[プロセスグループ名]です。 以下の方法でクライアント識別子を明示的に指定することも可能です。
| プロパティ |
説明 |
|---|---|
| wojmsConfiguredClientID | クライアント識別子 |
| プロパティ |
説明 |
|---|---|
| wojmsConfiguredClientID | クライアント識別子 |
JMSの非同期受信を行うCORBAアプリケーションで次のようなWebOTXのアプリケーション管理機能を利用するための設定について説明します。
| プロパティ名 |
説明 |
|---|---|
| wojmsEnableReliableThread | アプリケーション管理機能を利用するかどうかを指定します。 true アプリケーション管理機能を有効にします。 false アプリケーション管理機能を無効にします(既定値)。 |
| wojmsReliableRetryAttempts | アプリケーション管理機能を有効にした場合の、管理機能に対する初期処理が失敗した場合のリトライ回数を指定します。 既定値は、200回です。 |
| wojmsReliableRetryInterval | アプリケーション管理機能を有効にした場合の、管理機能に対する初期処理が失敗した場合のリトライ間隔を、秒単位で指定します。 既定値は、3(秒)です。 |
ここでは、JMSサーバに接続するユーザの管理方式を設定する方法について説明します。
ユーザ管理方式を指定するためのプロパティについて説明します。ここではJMS認証を利用する際の例を示します。
| プロパティ名 |
説明 |
|---|---|
| wojms.authentication.provider | WOJMS |
| wojms.authentication.type | digest |
| wojms.authentication.digest.user_repository | file |
ここでは、ロールバックされたメッセージの再配信に関する設定について説明します。
再配信の遅延時間と回数は、JMSサーバのプロパティか、JMSサービスのMOの属性で指定します。ここで指定した値は、JMSサーバで動作するコンシューマ全体に有効になります。
| MOの属性 | JMSサーバのプロパティ名 | 説明 |
|---|---|---|
| wojmsRedeliveryDelay | wojms.redelivery.delay | 再配信遅延時間(秒) |
| wojmsRedeliveryLimit | wojms.redelivery.limit | 再配信回数の上限 |
各プロパティのデフォルト値などの詳細については、「8.2.2JMSのプロパティ/属性一覧」を参照してください。
なお、再配信の遅延時間は、コネクションファクトリ単位や、コンシューマプログラム向けに用意しているAPI(WebOTX V5よりサポート)で、セッションやメッセージ単位に指定することも可能です。
コネクションファクトリ単位に指定する場合は、以下のプロパティを指定してください。
| プロパティ |
説明 |
|---|---|
| wojmsRedeliveryDelay | 再配信遅延時間(秒) |
セッションや、メッセージ単位で指定する場合については、「APIリファレンスマニュアル」−「JMS」-「拡張インタフェース」を参照してください。
MDBに対して再配信遅延時間を指定するには、以下に示す方法があります。優先順位は、高いものから順に、1、2、3となっており、以下のいずれも指定されていない場合は、前述のJMSサーバの指定(wojms.redelivery.delay)に従って再配信されます。
| プロパティ |
説明 |
|---|---|
| RedeliveryDelay | 再配信遅延時間(秒) |
| プロパティ |
説明 |
|---|---|
| wojmsRedeliveryDelay | 再配信遅延時間(秒) |
| プロパティ |
説明 |
|---|---|
| wojmsRedeliveryDelay | 再配信遅延時間(秒) |
ここでは、破棄メッセージの転送に関する設定について説明します。「破棄メッセージ」とは、再配信回数を超過したメッセージや、有効期限切れのメッセージのことをさします。
破棄メッセージの転送先は、JMSサーバのプロパティか、JMSサービスのMOの属性で指定します。ここで指定した値は、JMSサーバ全体で有効になります。
| MOの属性 | JMSサーバのプロパティ名 | 説明 |
|---|---|---|
| wojmsRedeliveryDestination | wojms.redelivery.destination | 再配信回数を超過したメッセージを転送する送信先名 |
| wojmsExpirationDestination | wojms.expiration.destination | 有効期限切れメッセージを転送する送信先名 |
| フィールド名 |
値 |
|---|---|
| JMSCorrelationID | 変更しません。 |
| JMSDeliveryMode | PERSISTENTに変更します。 |
| JMSDestination | 転送先の送信先に変更します。 元の情報は、WOJMSOriginalDestinationNameに送信先名を含めて設定されます。 |
| JMSExpiration | クリアします。 |
| JMSMessageID | 新規のメッセージ識別子に変更します。 元の情報は、メッセージプロパティWOJMSOriginalMessageIDに設定されます。 |
| JMSPriority | 変更しません。 |
| JMSRedelivered | 変更しません。 |
| JMSReplyTo | 変更しません。 |
| JMSTimestamp | 移動した時刻に変更します。 |
| JMSType | 変更しません。 |
| フィールド名 |
値 |
|---|---|
| WOJMSDelayTime | 削除します。 |
| WOJMSOriginalMessageID | 更新前のJMSMessageIDを格納します。 |
| WOJMSOriginalDestinationName | 更新前のJMSDestinationから取得した送信先名と送信先タイプを連結した文字列を格納します。 |
| WOJMSDeletedReason | メッセージの削除理由を文字列で格納します。 再配信回数を超過したメッセージの設定値: DELETED 有効期限切れメッセージの設定値: EXPIRED |
非Java EE環境下で動作するJavaアプリケーションでは、実行時にJavaシステムプロパティを設定することにより、ログ出力が可能です。ログは、障害解析などに利用します。
ログを出力するには、以下をJavaシステムプロパティとして指定します。
各プロパティの詳細については、「8.2.2JMSのプロパティ/属性一覧」-「JMSクライアントのプロパティ」を参照してください。
Java EE環境で、JMSを分散トランザクションに参加させる場合、トランザクションサービスのJCAリソースを登録する必要があります。
JCAリソースの登録方法については、「運用編」-「運用と操作」-「Transaction サービスの運用操作」-「リソースの登録・削除」を参照してください。
ここでは、2つのJMSサーバで構成されるJMSサーバクラスタの設定方法について説明します。
設定は、以下のように、host1のdomain1で起動するJMSサーバ(JMS1)と、host2のdomain1で起動するJMSサーバ(JMS2)でJMSサーバクラスタを構成するものとします。また、マスターブローカとして、host1-domain1上のJMSサーバを指定します。

| 項目 | 設定値 |
|---|---|
| JMSサーバクラスタの使用 | true(チェックする) |
| クラスタに属するJMSサーバのアドレスリスト | host1:9700,host2:9700 |
| マスターブローカのアドレス | host1:9700 |
JMSサーバクラスタなどで、接続先の分散を行うためにアドレスリストを使用することができます。アドレスリストは、コネクションファクトリリソースの属性として設定します。
server.resources.jms-resource.jms-connection-factory.connection-factory-name :| 属性名 | 説明 | 既定値 |
|---|---|---|
| wojmsAddressList | 接続先のリストを指定します。 この値を設定した場合は、「JMSサーバのホスト名」(wojmsBrokerHostName)と、「JMSサーバのホストのポート番号」(wojmsBrokerHostPort)の設定は無視されますので、必要に応じてこの接続先をリストに含めてください。 アドレスの構文は、[hostName][:port]で、複数のアドレスを指定する場合は、「,」で区切ります。 |
|
| wojmsAddressListBehavior | アドレスリストから、接続先を選択する方法を指定します。 PRIORITY:アドレスリストに指定された順番 RANDOM:ランダムに選択 接続障害後の再接続は、いずれの場合も、接続がエラーになったJMSサーバに対するアドレスから始まります。 |
PRIORITY |
| wojmsAddressListIterations | 接続の試行を中止して例外を通知するまでの、アドレスリストの繰り返し回数を指定します。 | 1 |
次に、アドレスリストを設定した場合の動作について説明します。
JMSクライアントランタイムは、wojmsAddresListBehaviorの設定に応じて、wojmsAddressListから接続先を選択し接続を行います。最初に選択したアドレスで接続できなかった場合は、wojmsAddressListから「次の」アドレスを選択して接続を試みます。それでも接続できなければ「次の」アドレス、と進めていき、wojmsAddressListIterations回アドレスリストを繰り返して接続できなければ、例外を発生させるようになっています。

| 属性名 | 説明 | 既定値 |
|---|---|---|
| supportOrderedRedelivery | メッセージ再配信時の順序保証を行うかどうかを指定します。 true:再配信時の順序保証を行います。接続できるコンシューマ数は1になります。 false:再配信時の順序保証を行いません。 |
false (再配信時の順序保証はしない) |
| 有用なプロパティ |
|---|
| webotx.jndi.persistent=true |
| 格納先 |
|---|
| ${INSTANCE_ROOT}/lib |
|
otxadmin set server.java-config.server-classpath=/other/jms/lib/a.jar:/other/jms/lib/b.jar:/other/jms/lib/c.jar ※UNIXでの実行例です。(以降同様) |
| アダプタ名 |
|---|
| genjmsra |
| otxadmin create-resource-adapter-config --property ProviderIntegrationMode=jndi: SupportsXA=true:RMPolicy=OnePerPhysicalConnection:UseFirstXAForRedelivery=true: JndiProperties= java.naming.factory.initial\\=jp.co.nec.WebOTX.jndi.SerialInitContextFactory, java.naming.provider.url\\=corbaname\\:\\/\\/host\\:2809 genjmsra |
| プロパティ名 | 説 明 | 既定値 |
|---|---|---|
| ProviderIntegrationMode | 他社JMSプロバイダとの連携方式を指定します。 jndi:オブジェクトをJNDIからlookupします。 javabean:オブジェクトをリフレクションで生成します。 ※V8.1ではjavabeanをサポートしていません。必ずjndiを指定してください。 |
javabean |
| JndiProperties | JNDIプロバイダに適用するプロパティ群(カンマで区切られた名前と値のペア)を指定します。 WebOTX JNDIを利用する場合は、次のプロパティが必要です。 java.naming.factory.initial=jp.co.nec.WebOTX.jndi.SerialInitContextFactory java.naming.provider.url=corbaname://host:port 接続先のホスト名とポート番号を指定します。 |
|
| SupportsXA | XAのサポート可否を指定します。 true:XAをサポートします。 false:XAをサポートしません。 |
false |
| UserName | コネクション接続時に使用するユーザ名を指定します。 | |
| Password | コネクション接続時に使用するパスワードを指定します。 | |
| RMPolicy | 他社JMSプロバイダ実装のXAResourceをラップしたオブジェクトにおいて、isSameRM()呼び出しをどのように処理するかを指定します。 ProviderManaged:他社JMSプロバイダ実装のXAResourceに委譲します。 OnePerPhysicalConnection:ラップオブジェクトで判断します。 ※「IBM WebSphere MQ」の場合、同じキューマネージャに対する受信と送信が2フェーズコミットメントになるケースでOnePerPhysicalConnectionの指定が必要です。 |
ProviderManaged |
| UseFirstXAForRedelivery | MDBのアダプタ内での再配信機能が有効な場合に、再配信の有無が決定するまでXAトランザクションの開始を遅延させる処理を無効にするか否かを指定します。 true:無効にします。 false:有功にします。 ※「IBM WebSphere MQ」の場合、XAトランザクションの開始を遅延させることができません。MDBのアダプタ内での再配信機能を有功にする場合には必ずfalseを指定してください。 |
false |
| RARファイル |
|---|
| ${AS_INSTALL}/wojms/lib/genjmsra.rar |
| otxadmin deploy /opt/WebOTX/wojms/lib/genjmsra.rar |
| otxadmin create-connector-connection-pool --raname genjmsra --connectiondefinition javax.jms.QueueConnectionFactory --transactionsupport XATransaction --property ConnectionFactoryJndiName=other/ReplyQCF:ConnectionValidationEnabled=true mypool |
| プロパティ名 | 説 明 | 既定値 |
|---|---|---|
| ConnectionFactoryJndiName | 他社JMSプロバイダが登録したコネクションファクトリのJNDI名を指定します。 | |
| ConnectionValidationEnabled | 例外リスナでコネクション例外を捕捉し、CONNECTION_ERROR_OCCUREDイベントをアプリケーションサーバに通知するか否かを指定します。 true:通知します。 false:通知しません。 |
false |
| SyncExceptionListenerEnabled | 非同期受信型メッセージリスナを設定しなければ例外リスナが機能しないJMSプロバイダの場合、コネクション例外を認識することができません。これを回避するために、一時的な送信先を利用した非同期受信型メッセージリスナを生成するか否かを指定します。ConnectionValidationEnabledをtrueにした場合に有効です。 true:生成します。 false:生成しません。 |
false |
| ClientId | コネクションで使用するクライアントIDを指定します。 |
| otxadmin create-connector-resource --poolname mypool jms/ReplyQCF |
| otxadmin create-admin-object --raname genjmsra --restype javax.jms.Queue --property DestinationJndiName=other/ReplyQueue jms/ReplyQueue |
| プロパティ名 | 説 明 | 既定値 |
|---|---|---|
| DestinationJndiName | 他社JMSプロバイダが登録した送信先のJNDI名を指定します。 |
|
<?xml version="1.0" encoding="UTF-8"?> <nec-ejb-jar> <enterprise-beans> <ejb> <ejb-name>MyMDB</ejb-name> ・・・・・ <mdb-resource-adapter> <resource-adapter-mid>genjmsra</resource-adapter-mid> <activation-config> <activation-config-property> <activation-config-property-name>ConnectionFactoryJndiName</activation-config-property-name> <activation-config-property-value>other/RequestQCF</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>DestinationJndiName</activation-config-property-name> <activation-config-property-value>other/RequestQueue</activation-config-property-value> </activation-config-property> ・・・・・ </activation-config> </mdb-resource-adapter> </ejb> </enterprise-beans> </nec-ejb-jar> |
| 識別子 |
|---|
| genjmsra |
| プロパティ名 | 説 明 | 既定値 |
|---|---|---|
| ConnectionFactoryJndiName | 他社JMSプロバイダが登録したコネクションファクトリのJNDI名を指定します。 | |
| DestinationJndiName | 他社JMSプロバイダが登録した送信先のJNDI名を指定します。 | |
| DestinationType | 送信先のタイプを指定します。 javax.jms.Queue:キュー javax.jms.Topic:トピック |
|
| SubscriptionDurability | Topicサブスクリプションの持続性を指定します。 Durable:持続性 Non-Durable:非持続性 |
Non-Durable |
| SubscriptionName | Topicサブスクリプション名を指定します。 | |
| MessageSelector | メッセージセレクタを指定します。 | |
| ClientID | クライアントIDを指定します。 | |
| MaxPoolSize | メッセージの多重処理のためにリソースアダプタが生成するServerSessionPoolの最大数を指定します。 この値は、MDBの最大プール数に合わせてください。 |
8 |
| MaxWaitTime | ServerSessionPoolからのServerSession取得時の待ち合わせ時間(秒)を指定します。 この値を超えると、メッセージ配信が失敗します。 | 3 |
| ReconnectAttempts | コネクションの再接続回数を指定します。 | 0 |
| ReconnectInterval | コネクションの再接続間隔(秒)を指定します。 | 0 |
| RedeliveryAttempts | MDBで実行時例外が発生した場合にアダプタ内で再配信する回数を指定します。 | 0 |
| RedeliveryInterval | MDBで実行時例外が発生した場合にアダプタ内で再配信する間隔(秒)を指定します | 0 |
| EndpointReleaseTimeout | エンドポイントの解放待ち合わせ時間(秒)を指定します。 | 180 |
| SyncExceptionListenerEnabled | 非同期受信型メッセージリスナを設定しなければ例外リスナが機能しないJMSプロバイダの場合、コネクション例外を認識することができません。これを回避するために、一時的な送信先を利用した非同期受信型メッセージリスナを生成するか否かを指定します。ReconnectAttemptsが1以上の場合に有効です。 true:生成します。 false:生成しません。 |
false |