概要
リソースアダプタを使用するための設定ファイルには,次のコンポーネントを定義します.
ResourceAdapterDeployer(必須)ResourceAdapterDeployerはMOMとの接続に使用するリソースアダプタを S2コンテナ内で利用可能にするコンポーネントです. 詳細は「リソースアダプタの設定 」を参照してください.BootstrapContext(任意)BootstrapContextはリソースアダプタが使用するスレッドプール等を提供するコンポーネントです. 詳細は「スレッドプールの設定 」を参照してください.
リソースアダプタの設定
ResourceAdapterDeployer
ResourceAdapterDeployerは,リソースアダプタを使用可能にするためのコンポーネントです.
ResourceAdapterDeployerの実装クラスを以下に示します.
org.seasar.jca.deploy.impl.RarResourceAdapterDeployerorg.seasar.jca.deploy.impl.FsResourceAdapterDeployerorg.seasar.jms.core.deploy.impl.WmqResourceAdapterDeployer
RarResourceAdapterDeployer
Rarファイルにパッケージングされているリソースアダプタを使用可能にするためのコンポーネントです.
Rarファイル内にパッケージされているJarファイルと,Rarファイルと同じディレクトリにあるJarファイルがクラスパスに追加されます.
コンストラクタ引数
| 引数 | 説明 |
|---|---|
nThreads |
スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定 」を参照してください. |
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
path |
Yes | リソースアダプタが提供するRarファイルへのパスを指定します. | N/A |
tempDir |
No |
リソースアダプタのJarファイルを解凍するディレクトリを指定します
省略時はデフォルトの一時ディレクトリが使用されます.
java.io.File
クラスによって提供されます.
|
File
クラスが提供する一時ディレクトリ
|
メソッド
| メソッド | 説明 |
|---|---|
setProperty(String key, String value) |
リソースアダプタ固有のプロパティを指定します. |
FsResourceAdapterDeployer
ファイルシステム上に展開されているリソースアダプタを使用可能にするためのコンポーネントです.
コンストラクタ引数
| 引数 | 説明 |
|---|---|
nThreads |
スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定 」を参照してください. |
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
path |
Yes | リソースアダプタが提供するRarが展開されているディレクトリへのパスを指定します. | N/A |
メソッド
| メソッド | 説明 |
|---|---|
setProperty(String key, String value) |
リソースアダプタ固有のプロパティを指定します. |
WmqResourceAdapterDeployer
Generic Resource Adapter for JMS と IBM WebSphere MQ (formerly known MQSeries) を組み合わせて使用するためのコンポーネントです.
Rarファイル内にパッケージされているJarファイルと,Rarファイルと同じディレクトリにあるJarファイルがクラスパスに追加されます. IBM WebSphere MQのJarファイルはGeneric Resource Adapter for JMSのRarファイルと同じディレクトリに配置してください.
コンストラクタ引数
| 引数 | 説明 |
|---|---|
nThreads |
スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定 」を参照してください. |
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
path |
Yes | Generic Resource Adapter for JMS が提供するRarファイルへのパスを指定します. | N/A |
tempDir |
No |
リソースアダプタのJarファイルを解凍するディレクトリを指定します
省略時はデフォルトの一時ディレクトリが使用されます.
java.io.File
クラスによって提供されます.
|
File
クラスが提供する一時ディレクトリ
|
メソッド
| メソッド | 説明 |
|---|---|
setProperty(String key, String value) |
リソースアダプタ固有のプロパティを指定します. |
リソースアダプタ固有のプロパティ
リソースアダプタ固有のプロパティは,使用するリソースアダプタのドキュメントを参照してください. 主なプロダクトのドキュメントを以下に示します.
- Apache ActiveMQ
- Sun Generic Resource Adapter for JMS の「Resource Adapter properties」
スレッドプールの設定
BootstrapContext
通常は,ResourceAdapterDeployerのコンストラクタ引数で
スレッドプールのスレッド数を指定します. この場合,
Executors#newFixedThreadPool(int nThreads)
で作成されたスレッドプールが使用されます.
異なるスレッドプール実装を使いたい場合は,次のようにBootstrapContextImplを定義し,コンストラクタ引数で
Executor
を実装したコンポーネントを指定します.
<component class="org.seasar.jca.lifecycle.BootstrapContextImpl">
<arg>
<component class="org.seasar.jca.work.WorkManagerImpl">
<arg>
@java.util.concurrent.Executors@newCachedThreadPool()
</arg>
</component>
</arg>
</component>
スレッドプールのスレッドがどのように使われるかはリソースアダプタの実装に依存します. リソースアダプタに合わせて適切に設定してください.
多くの場合,アウトバウンド通信ではスレッドプールはあまり使われていないようです.
インバウンド通信では同時に処理できるメッセージの数に影響します.
多くのリソースアダプタは,インバウンド通信で同時に受信するメッセージ数を
ActivationSpecDeployer
で設定することができます.
ResourceAdapterDeployerのスレッドプールの最大数は,
ResourceAdapterDeployerを共有する
ActivationSpecDeployer
の
同時に受信するメッセージ数の合計よりも多くなるようにしてください.
