[Seasar-user:18966] S2JDBC で複数のデータソース

秋山 純子 [E-MAIL ADDRESS DELETED]
2009年 12月 4日 (金) 17:26:00 JST


秋山と申します。お世話になります。

sastrutsで開発を行っています。
複数データソースを使用したいのですが、オラクルエラーが発生してしまいます。

データベースA、Bに対応させるために、以下のファイルを作成し、
jdbc-a.dicon
jdbc-b.dicon
s2jdbc-a.dicon
s2jdbc-b.dicon

サービス中で 以下の様に取得しています。
@Resource(name="jdbcManagerB")
protected JdbcManager jdbcManager;

これで、データベースA,Bそれぞれに接続され、検索・更新などができるのですが
ある一部分だけ必ずエラーが発生します。

その処理内容は
select for update nowait を発行し
delete、続いてinsert を発行するというものですが
ここで
「ORA-02049: タイムアウト: 分散トランザクションがロックを待機しています。」
のエラーが発生します。

確かに この処理を行う対象のテーブルは、
データベースリンクとシノニムを用いて間接的にアクセスしている状態です。

ですが、複数のデータソースではなく
sastrutsをインストールした時点のデフォルトの単一の接続設定で
同じ処理を行ってみると、エラーが発生せず処理が完了します。

どの部分に問題があるのか全く分からない状態です。
解決方法をご存知の方教えていただけないでしょうか

どうぞ宜しくお願いいたします。



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