[Seasar-user:21494] Re: jdbc.diconにおけるPostgreSQLのautoCommit設定について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2012年 11月 7日 (水) 09:30:05 JST
ひが様。
customizer.diconファイルを確認したところ、以下の箇所を誤ってコメントアウト
していました。
<initMethod name="addCustomizer">
<arg>
<component
class="org.seasar.framework.container.customizer.AspectCustomizer">
<initMethod name="addInterceptorName">
<arg>"j2ee.requiredTx"</arg>
</initMethod>
<property name="pointcut">"do.*, initialize,
prerender"</property>
</component>
</arg>
</initMethod>
コメントアウトを削除したところ、autocommitはoffになりました。
回答ありがとうございました。
YASUO HIGA <higa @ isid.co.jp>
送信者: seasar-user-bounces @ ml.seasar.org
2012/11/06 13:39
返信の際にはseasar-user @ ml.seasar.org へ
返信してください
宛先
"seasar-user @ ml.seasar.org" <seasar-user @ ml.seasar.org>
cc
件名
[Seasar-user:21492] Re: jdbc.diconにおけるPostgreSQLのautoCommit設定につい
て
ひがです。
トランザクションと連動していれば、自動でautocommitはoffになるはずなので、
まずは、トランザクションの設定を見直してみてください。
差出人: seasar-user-bounces @ ml.seasar.org
[seasar-user-bounces @ ml.seasar.org] が次の人の代理で送信しました:
saraki @ pacific-systems.co.jp [saraki @ pacific-systems.co.jp]
送信日時: 2012年11月6日 11:45
宛先: seasar-user @ ml.seasar.org
件名: [Seasar-user:21491] jdbc.diconにおけるPostgreSQLのautoCommit設定につ
いて
はじめまして。荒木と申します。
PostgreSQL + S2Dao + Teedaの開発をしています。
動作環境
jdk1.6.0_34
tomcat-6.0.35
eclipse3.4.2
Teeda 1.0.12
S2Dao 1.0.47
PostgreSQL 9.1.5
jdbc.diconで以下の通りautoCommitを無効にしているのですが、update文などが実
行されても自動的にコミットされてしまいます。
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"org.postgresql.Driver"
</property>
<property name="URL">
"jdbc:postgresql://PORTAL_IFRS_IT_DB/test"
</property>
<property name="user">"test"</property>
<property name="password">"test"</property>
<initMethod name="addProperty">
<arg>"autoCommit"</arg>
<arg>"false"</arg>
</initMethod>
</component>
jdbc.diconでautoCommitを無効にするにはどうしたらよいのでしょうか。
なお、S2Dao+jdbc.diconではなく、以下の通りsetAutoCommitメソッドを明示的に
記述するとautoCommitが無効になりました。
try {
// JDBCドライバの登録
String driver = "org.postgresql.Driver";
// データベースの指定
String url = "jdbc:postgresql://PORTAL_IFRS_IT_DB/test";
String user = "test"; //データベース作成ユーザ名
String password = "test"; //データベース作成ユーザパスワー
ド
Class.forName (driver);
// データベースとの接続
Connection con = DriverManager.getConnection(url, user,
password);
con.setAutoCommit (false);
Statement stmt = con.createStatement ();
String sql = "UPDATE m_kanri_kengen SET update_dt = now()
WHERE kanri_kengen_cd = 'G110'";
stmt.executeUpdate(sql);
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println("SQL failed.");
e.printStackTrace ();
} catch (ClassNotFoundException ex) {
ex.printStackTrace ();
}
以上、宜しくお願い致します。
_______________________________________________
Seasar-user mailing list
Seasar-user @ ml.seasar.org
https://ml.seasar.org/mailman/listinfo/seasar-user
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20121107/b620738d/attachment.html>
Seasar-user メーリングリストの案内