[Seasar-user:3207] Re: トランザクションの制御について
J.r0ck
j69
2006年 2月 16日 (木) 21:36:06 JST
J.r0ckです。
> tarumiです
(中略)
> 通常テーブルに変更すると、7でデータを取得できることから
> A.「4と7のDBセッションが違う」もしくは
> B.「Temporaryテーブルからデータが取得できない」
> という理由のどちらかだと思います。
>
> まずAなのですが、トランザクション中で
> 別DBセッションになってしまうことはあるのでしょうか?
> DBセッションは2の物理コネクションを取得の所以外で、
> 生成される可能性はあるのでしょうか?
>
> またBですが、TemporaryTableの使用した処理を行っている
> 方いらっしゃいませんでしょうか?
自分は、C/Sシステムでは、一時表はよく使ってますよ。
一時表の定義はすべてのセッションで参照できますが、
一時表内のデータを参照できるのは、そのデータを表に挿入する
セッションのみです。
セッションが1:1なので、C/Sシステムなんかは問題が起こらない。
でも、S2DAOではコネクションプールを使用しているんですよね。
であれば、セッションはプール任せになるので...
つまりAの理由となるので一時表は厳しいのでは?
あと、もしかしたら勘違いがあるかもしれないので...
「j2ee.requiredTx」は、Oracleのコネクションのローカルな
トランザクションではないですよ...ね。
以上
On Thu, 16 Feb 2006 19:58:19 +0900
"tarumi" <[E-MAIL ADDRESS DELETED]> wrote:
> tarumiです
>
> 現在S2DBCPとS2DAOを使用し、
> 以下のような処理を行っています。
>
> 1.トランザクション開始
> 2. 物理的なコネクションを取得
> 3. 論理的なコネクションを取得
> 4.ストアドプロシージャ実行(Temporary TableにデータをInsert)
> 5. 論理的なコネクションを閉じる
> 6. 論理的なコネクションを取得
> 7.Temporary Tableからデータを取得
> 8. 論理的なコネクションを閉じる
> 9.トランザクションをコミット
>
> 4のTemporaryTableはDBセッション中で
> Commit、RollBackのタイミングまで
> データを保持する設定になっております。
> またトランザクションは「j2ee.requiredTx」に設定しています。
>
> 本来ならば
> 4で追加したデータを7で取得出来るはずなのですが、
> 現状、7で取得できていません。
>
> 通常テーブルに変更すると、7でデータを取得できることから
> A.「4と7のDBセッションが違う」もしくは
> B.「Temporaryテーブルからデータが取得できない」
> という理由のどちらかだと思います。
>
> まずAなのですが、トランザクション中で
> 別DBセッションになってしまうことはあるのでしょうか?
> DBセッションは2の物理コネクションを取得の所以外で、
> 生成される可能性はあるのでしょうか?
>
> またBですが、TemporaryTableの使用した処理を行っている
> 方いらっしゃいませんでしょうか?
>
> 環境:
> DB:Oracle9.0.1
> S2DAO:1.0.30
>
> 以上、よろしくお願い致します。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
--
J.r0ck <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内