JBossAS7 データソース設定 WebコンソールとCLIの違い
JBossAS7でEJBのコンテナ管理トランザクションが動かないことではまっていたが、WebコンソールとCLIでJTAを有効にするかどうかのデフォルトが違ったのが原因だったようだ。
Webコンソールの場合
Webコンソールから作成すると、デフォルトでUse JTA?はfalseになっている。この属性がfalseになっていると、データソースから取得したコネクションはautocommit=trueになっていた。このため、EJBのコンテナ管理トランザクションがうまく動かず、insert/update/deleteするとEJBのトランザクション管理を待たずして即時にコミットされていた。
standalone.xmlからもjta属性がfalseになっていることが確認できる。
<datasource jta="false" jndi-name="java:/test" pool-name="test" use-ccm="false">