S2JMS 開発記 訂正の訂正:ExecutionContext と TransactionManager

01/03 に書いた「ExecutionContext と TransactionManager」は大間違いだったと 01/05 に訂正したのですが,結局最初の方が正しかったみたい.
少なくとも ActiveMQ はメッセージの受信を TcpTransportChannel とかいうスレッドで受信して,内部的なキューを通してワーカスレッドにディスパッチしています.


じゃあ,その TcpTransportChannel はどういうトランザクションコンテキストで実行されているのか謎ですが,とりあえずは気にしなくていいみたい.
結局,ActiveMQXAResourceトランザクションに enlist してあげれば受信したメッセージもそのトランザクションの一部になります.


ActiveMQ は XA に対応しているわけですが,これがどんな風に実装されているかもちょっと見ておいた方がいいのかなぁ.
新年会ではぶさんが気にしていたし.
個人的にはっていうか自分の仕事的には IBM Websphere MQ と Oracle AQ がメインで (非トランザクショナルだと Tibco 製品も),実案件で ActiveMQ を使う可能性は皆無に近そうなのであまり気にならないのですが.