[Seasar-user:3210] Re: トランザクションの制御について

tarumi yuutarumi
2006年 2月 17日 (金) 13:36:37 JST


tarumiです。

J.r0ckさん、小林さんありがとうございます。

>自分は、C/Sシステムでは、一時表はよく使ってますよ。
レスポンスを早くする為に良く使いますよね。
S2Daoではつかえるものなのでしょうか?
>
>でも、S2DAOではコネクションプールを使用しているんですよね。
>であれば、セッションはプール任せになるので...
>つまりAの理由となるので一時表は厳しいのでは?
>
>あと、もしかしたら勘違いがあるかもしれないので...
>「j2ee.requiredTx」は、Oracleのコネクションのローカルな
>トランザクションではないですよ...ね。
ええと、Daoが2つあって、それを呼び出すManagerが1つ
あります。このManagerにデフォルトで書いてあった、
j2ee.requiredTxを使用しています。
ってのはこれに該当するのでしょうか?
もしや、ぜんぜん違う事を言ってますか?

> S2DBCP は一つのトランザクションの元では常に同じ
> JDBC コネクションを返します (論理・物理とも).
> 
> ストアドを実行するところと,データを取得するところに
> ブレークポイントを付けるなどすればコネクションが
> 同一であることを確認できるはず.
> # 異なっていたら j2ee.requiresNewTx などが紛れ込んでるかも
なるほど、論理を張りなおしていると言うことは、
コネクションが違う可能性が高いと言うことですね。
デバッグで確認してみます。

じつは構成がManager1つ-dao2つとなっているのですが、
Managerにセッターインジェクションを用意しても、
呼び出されていなかったので、Managerで
S2Containerから、Daoを取得していました。
このManagerもActionでS2Containerから取得してます。

ただ、Managerにj2ee.requiredTxを指定していれば、
いけるのかな?と思っていたのですが、
これが原因ですかね・・・。

以上、よろしくお願い致します。



Seasar-user メーリングリストの案内