自作のJCA1.6インバウンドリソースアダプタ(RA)を設定したい。私の大きな問題は、RAが、RAを使用するアプリケーションに存在するいくつかの(動的な)構成データにアクセスする必要があることです。これは、JCAのアイデア全体の元のアイデアに反していることがわかりましたが、残念ながら、このデザインを希望するほど迅速に変更することはできません。RAに到達するために必要なデータは
- リッスンするはずのポート、
- アプリケーション全体に使用されるライセンス(RAが提供する機能には追加のライセンスが必要です)
- データベースに保存されている追加の構成データ
私は4つのアイデアを思いついた:
- asadmincreate-resource-adapter-configを使用します。RAによっては、glassfishがアプリを再起動しないように見えるため、この後、アプリケーションを再起動する必要があります。この試みはポートには適していますが、他のデータには適合しません。
管理対象オブジェクトを使用して、アプリケーションにデータをRAに渡す手段を提供します。このアイデアはここで言及されています。私はこれがそれを行うと思いますが、仕様は第13.4.2.3章で次のように述べています
管理対象オブジェクトは、メッセージエンドポイントへの非同期メッセージ配信の設定には使用されないことに注意してください。ActivationSpec JavaBeanは、非同期メッセージ配信のセットアップに必要なすべてのアクティベーション情報を保持するために使用されます。
しかし、ActivationSpecオブジェクトに動的データを取得できません(DeploymentDescriptorまたはアノテーションのいずれかを介して)。それとも私はここで何かを逃しましたか?:-)
JDBCを直接使用してデータにアクセスします(ここからアイデアを取得しました)。これはおそらく最良のアイデアですが、データベースに保存されていないため、前述のライセンスデータでは機能しません。
私が持っていた最後のアイデアは、RA内からデータをフェッチするために使用されるメソッドをMessageDrivenBeanに(私のインターフェースを介して)配置することでした。そのメソッドはRAから呼び出すことができ、データを提供します。しかし:RAをアプリに結合するので、それは非常に虐待的だと思います。
親愛なるコミュニティ、これについてどう思いますか?これらの質問に対する答えを見つけるのはそれほど簡単ではないので、私は意見に非常に満足しています!
おかげで、歓声、ジュリアス