JCA 入門記 ライフサイクル管理 その 2

今日も頑張ってハッスル! ハッスル!!
そんなわけで (どんなわけで?),昨日出てきた二つの interface について学習します♪

5.3.2 ManagedConnectionFactory JavaBean and Outbound Communication
まずは次の interface

  • ManagedConnectionFactory

こいつを実装したクラスもまた JavaBean らしいです.
その Bean が何者かというと,アプリケーションから EIS への outbound な接続に関する情報を表現するそうな.
ちなみに,「outbound」「inbound」って日本語ではなんというのでしょう? 意味は分かるんだけどっていうか気持ちは分かるんだけど,どんな言葉を使えばいいかが分かりません.無念だ.
昔風 (?) の言い方だと「発呼」「着呼」? とりあえず outbound/inbound のままでいいか.
なんにせよ,javax.sql.DataSourcejavax.jms.ConnectionFactory と似たような位置づけですね.奴らと同じように,接続先を示す情報を持つようです.
ただし,大きな違いが一つあって,それは ManagedConnectionFactory はリソースアダプタのインスタンスと結びつけられていること.それで何かいいことがあるのかというと,コンフィグレーション情報の「デフォルト値」を引き継ぐのだとか.っていうか,引き継ぐように ManagedConnectionFactory を実装しなければならないということか?
そんなわけで (どんなわけで?),ManagedConnectionFactory の実装クラスは,次の interfaceimplements することができるようです (must とは書いてないみたいだけど must かも?).

  • ResourceAdapterAssociation

こいつは次のメソッドを持っています.

    • void setResourceAdapter(ResourceAdapter)

なんか Spring 臭いなぁ.(^^;
JavaBean という扱いならこんな interface 必要ない気もするのですけどね?
ともあれ (JW),アプリケーションサーバはこのメソッドを呼び出すことで,ManagedConnectionFactory な JavaBean を ResourceAdapter と関連づけなければなりません.それはきっちり一回だけとのこと.一つの ManagedConnectionFactory をいろいろな ResourceAdapter に使い回ししてはいけないということね.
ManagedConnectionFactory は,setResourceAdapter(ResourceAdapter) が呼び出された際にいろいろ初期化したりするものと思われますが,それに失敗したら例外 (ResourceException) をスローすればいいようです.
outbound な通信はアプリケーションからの要求により開始されます.その際に使われるスレッドはアプリケーションのものですが,リソースアダプタは自前のスレッド (昨日出てきた Work を使うのでしょう) を介してもいいらしいです.


5.3.3 ActivationSpec JavaBean and Inbound Communication
続いては次の interface

  • ActivationSpec

implements した JavaBean について.
こいつは ManagedConnectionFactory とは逆に,EIS からアプリケーションへの inbound な接続に関する情報を表現したものらしいです.
それでですね,こいつは ResourceAdapterAssociationextends した interface なんですねぇ〜.ManagedConnectionFactory はそうなってないんだけど.どうして非対称?
ともあれ (JW),こいつもまた ResourceAdapter な JavaBean に関連づけられて,それをデフォルトのコンフィグレーションとして引き継ぐようです.
ManagedConnectionFactory の場合と同様,setResourceAdapter(ResourceAdapter) が呼び出されるのは正確に一回きり.失敗したら ResourceException をスローするがよい.
inbound な通信は EIS 側から開始されます.その際に使われるスレッドはリソースアダプタのスレッドで,アプリケーションのスレッドは使用されません.


ということで本日はここまで.
ちょっとあっけないけど次のがちょっと長く見えたので.
っていうか,ちょっと気になる記事を見かけたのでそっちを書きたいのだ (苦笑).