- - PR -
SQLServerの複数のデータベースにトランザクションをかけたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-18 16:24
JSPでSQLServerの複数のデータベースに対して同時にトランザクションをかけ、どちらかがエラーになった時には、両方ともロールバックをかけるようにしたいのですが、どなたかよい方法をご存知ないでしょうか?
よろしくお願いします。 |
|
投稿日時: 2006-03-18 16:40
同時にトランザクションをかける、とは同時にコミットする、という意味でしょうか?
たとえばスレッドAとスレッドB、同時にコミットを始めたら片方の失敗を関知することもロールバックすることもできませんので難しそうです。 1. それぞれのスレッドでは「仮です」フラグと識別用のID をつけて insert 2. 追って第三のトランザクションで「仮です」フラグと同じ識別用IDがあったらまとめて「仮です」フラグを下ろす といった処理はいかがでしょう。 最初から一つのトランザクションにまとめるのがシンプルですが。 |
|
投稿日時: 2006-03-18 16:56
SQLServerとJavaの組み合わせで分散トランザクションを行うには、
JTAがいいと思います。 SQLServerとJTAで検索すると、結構ヒントが出ていたりしますよ。 |
|
投稿日時: 2006-03-18 17:13
あぁ、複数スレッド、ではなくて複数のデータベースでしたね。
またまたナナメヨミでとんだ見当違いな発言をしておりました。流してください。 かつのりさんの仰るとおり JTA で 2PC するのが正解ですね。 |
|
投稿日時: 2006-03-21 09:26
ありがとうございます。
早速調べてみます。 |
1