JMS の汎用リソースアダプタは Java EE Connector 1.5 リソースアダプタで、IBM Websphere MQ、Tibco EMS、および Sonic MQ などの外部 JMS プロバイダの JMS クライアントライブラリをラップできるため、任意の JMS プロバイダを Sun Java System Application Server などの Java EE 1.4 アプリケーションサーバーに統合します。アダプタは Java EE 1.4 アプリケーションサーバーの管理ツールを使用して配備および設定可能な .rar アーカイブです。
アプリケーションサーバーの管理ツールを使用して、JMS の汎用リソースアダプタを配備および設定できます。ここでは、Sun Java System Application Server を使用して、JMS の汎用リソースアダプタを設定する方法を説明します。概して、リソースアダプタを設定して、JMS プロバイダが XA をサポートするかどうかを示すことができます。さらに、JMS プロバイダで可能な統合のモードを示すこともできます。リソースアダプタでは、2 つの統合のモードをサポートしています。最初のモードは、統合の手段として JNDI を使用します。この場合、管理対象オブジェクトを JMS プロバイダの JNDI ツリーに設定し、汎用リソースアダプタがそれらを検索し、使用します。このモードが統合に適切でない場合は、JMS 管理対象オブジェクト JavaBean クラスの Java リフレクションを統合のモードとして使用することもできます。Sun Java System Application Server の管理コンソールまたは CLI を使用して、リソースアダプタを設定できます。これは、他のリソースアダプタの設定と変わりありません。
リソースアダプタを配備する前に、アプリケーションサーバーで JMS クライアントライブラリを使用できるようにします。一部の JMS プロバイダでは、クライアントライブラリにネイティブライブラリも含まれている場合があります。そのような場合は、これらのネイティブライブラリもアプリケーションサーバー JVM から使用できるようにします。
コネクタモジュールを配備する場合と同じように、汎用リソースアダプタを配備します。
この手順については、管理コンソールのオンラインヘルプを参照してください。配備時に、汎用リソースアダプタの場所として install-dir/lib/addons/resourceadapters/genericjmsra/genericra.rar を指定してください。さらに、「リソースアダプタのプロパティー」の節で説明するプロパティーを指定する必要があります。
コネクタ接続プールを作成します。
この手順については、管理コンソールのオンラインヘルプを参照してください。「コネクタ接続プールを作成」ページの「リソースアダプタ」コンボボックスから、genericra を選択します。さらに、「接続定義」コンボボックスで、 javax.jms.QueueConnectionFactory を選択します。また、「ManagedConnectionFactory のプロパティー」の節で説明するプロパティーを指定します。
コネクタリソースを作成します。
この詳細な手順については、管理コンソールのオンラインヘルプを参照してください。「コネクタリソースを作成」ページで、前の手順で作成したプールを選択します。
管理対象オブジェクトリソースを作成します。
この詳細な手順については、管理コンソールのオンラインヘルプを参照してください。「管理オブジェクトリソースを作成」ページで、「リソースアダプタ」として genericra を、「リソースタイプ」として javax.jms. Queue を選択します。「次へ」をクリックし、2 番目のページで、「プロパティーを追加」をクリックします。「追加プロパティー」テーブルで、値 Name\\=clientQueue を持つ DestinationProperties という新しいプロパティーを指定します。その他のプロパティーについては、「管理対象オブジェクトリソースのプロパティー」を参照してください。
Sun Java System Application Server セキュリティーポリシーを次のように変更します。
sjsas_home/domains/domain1/config/server.policy を変更して、java.util.logging.LoggingPermission "control" を追加します。
sjsas_home/lib/appclient/client.policy を変更して、permission javax.security.auth.PrivateCredentialPermission "javax.resource.spi.security.PasswordCredential * \"*\"","read"; を追加します。
次の表に、リソースアダプタの作成時に使用するプロパティーを示します。
ManagedConnectionFactory プロパティーは connector-connection-pool の作成時に指定します。リソースアダプタの作成時に指定されたすべてのプロパティーは、ManagedConnectionFactory でオーバーライドできます。 ManagedConnectionFactory でのみ使用可能な追加のプロパティーを次に示します。
プロパティー名 |
有効な値 |
デフォルト値 |
説明 |
---|---|---|---|
ClientId |
有効なクライアント ID |
なし |
JMS 1.1 仕様に指定されている ClientID |
ConnectionFactoryJndiName |
JNDI 名 |
なし |
JMS プロバイダの JNDI ツリーにバインドされた接続ファクトリの JNDI 名。管理者は、JMS プロバイダ自体にすべての接続ファクトリプロパティー (clientID を除く) を指定するようにしてください。このプロパティー名は ProviderIntegratinMode が jndi の場合にのみ使用されます。 |
ConnectionValidationEnabled |
true/false |
FALSE |
true に設定した場合、リソースアダプタは例外リスナーを使用して、接続の例外をキャッチし、CONNECTION_ERROR_OCCURED イベントをアプリケーションサーバーに送信します。 |
このプロパティーは、管理対象オブジェクトリソースの作成時に指定します。リソースアダプタのすべてのプロパティーは、管理対象リソースオブジェクトでオーバーライドできます。管理対象オブジェクトでのみ使用可能な追加のプロパティーを次に示します。
プロパティー名 |
有効な値 |
デフォルト値 |
説明 |
---|---|---|---|
DestinationJndiName |
JNDI 名 |
なし |
JMS プロバイダの JNDI ツリーにバインドされた送信先の JNDI 名。管理者は JMS プロバイダ自体にすべてのプロパティーを指定するようにしてください。このプロパティー名は ProviderIntegrationMode が jndi の場合にのみ使用されます。 |
DestinationProperties |
コンマで区切られた名前と値のペア |
なし |
これは JMS クライアントの送信先の javabean プロパティー名と値を指定します。ProviderIntegrationMode が javabean である場合にのみ必要です。 |
このプロパティーは、activation-config-properties として MDB の Sun 固有の配備記述子に指定されています。すべてのリソースアダプタのプロパティーは有効化仕様でオーバーライドできます。有効化仕様でのみ使用可能な追加のプロパティーを次に示します。
プロパティー名 |
有効な値 |
デフォルト値 |
説明 |
---|---|---|---|
MaxPoolSize |
整数 |
8 |
並行メッセージ配信用のリソースアダプタによって、内部で作成されるサーバーセッションプールの最大サイズ。これは MDB オブジェクトの最大プールサイズに等しくなるべきです。 |
MaxWaitTime |
整数 |
3 |
リソースアダプタは、その内部プールからサーバーセッションを取得するために、このプロパティーに指定された秒単位の時間を待機します。この制限を超えると、メッセージ配信が失敗します。 |
SubscriptionDurability |
持続性または非持続性 |
非持続性 |
JMS 1.1 仕様に指定されている SubscriptionDurability |
SubscriptionName |
なし |
JMS 1.1 仕様に指定されている SubscriptionName |
|
MessageSelector |
有効なメッセージセレクタ |
なし |
JMS 1.1 仕様に指定されている MessageSelector |
ClientID |
有効なクライアント ID |
なし |
JMS 1.1 仕様に指定されている ClientID |
ConnectionFactoryJndiName |
有効な JNDI 名 |
なし |
JMS プロバイダで作成された接続ファクトリの JNDI 名。この接続ファクトリはリソースアダプタが接続を作成し、メッセージを受け取るために使用します。ProviderIntegrationMode が jndi と設定されている場合にのみ使用します。 |
DestinationJndiName |
有効な JNDI 名 |
なし |
JMS プロバイダで作成された送信先の JNDI 名。この送信先は、リソースアダプタが接続を作成し、メッセージを受け取るために使用します。ProviderIntegrationMode が jndi と設定されている場合にのみ使用します。 |
DestinationType |
javax.jms.Queue または javax.jms.Topic |
null |
MDB が待機する送信先のタイプ。 |
DestinationProperties |
コンマで区切られた名前と値のペア |
なし |
これは JMS クライアントの送信先の javabean プロパティー名と値を指定します。ProviderIntegrationMode が javabean である場合にのみ必要です。 |
RedeliveryAttempts |
integer |
MDB でメッセージによって実行時例外が発生した場合に、メッセージが配信される回数。 |
|
RedeliveryInterval |
秒単位での時間 |
MDB でメッセージによって実行時例外が発生した場合に、配信を繰り返す間隔。 |
|
SendBadMessagesToDMD |
true/false |
false |
配信の試行回数を超えた場合に、リソースアダプタがデッドメッセージ送信先にメッセージを送信すべきかどうかを示します。 |
DeadMessageDestinationJndiName |
有効な JNDI 名。 |
なし |
JMS プロバイダによって作成された送信先の JNDI 名。これは、デッドメッセージのターゲット送信先です。これは ProviderIntegrationMode が jndi の場合にのみ使用します。 |
DeadMessageDestinationClassName |
送信先オブジェクトのクラス名。 |
なし |
ProviderIntegrationMode が javabean の場合に使用します。 |
DeadMessageDestinationProperties |
コンマで区切られた名前と値のペア |
なし |
これは JMS クライアントの送信先の javabean プロパティー名と値を指定します。これは ProviderIntegrationMode が javabean の場合のみ必要です。 |
ReconnectAttempts |
integer |
例外リスナーが接続時のエラーをキャッチした場合に試行される再接続の回数。 |
|
ReconnectInterval |
秒単位での時間 |
再接続の間隔。 |