- PR -

executeBatchについて

1
投稿者投稿内容
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-09-24 10:45
こんにちわ。みーちくと申します。

現在下記のようなシステム設定でJAVAの開発をしております。
DBでトランザクション処理をしようと思い、Statement.addBatchでPostgres
に接続したところ下記のようなエラーが出ました。
一番はじめの行の
at org.postgresql.jdbc2.Statement.executeBatch(Unknown Source)
↑Unknown Sourceと書いてあります。
たしか、Statement.addBatchを使えるJDBCのバージョンは2.0からだと思うのですが。
まだ、設定がおかしいのでしょうか?
全部で6テーブルにinsertしたいと考えており、はじめの1個目でエラーとなっております。

Javaの開発を始めて、まだ1ヶ月もたっていない未熟者ですが、宜しくお願い致します。

【システム設定】
RedHat7.1/apache1.3.26/tomcat3.2.3/ant1.4.1/jdk1.3.1/postgresql7.2.1

【エラーメッセージ】
[root@gateway bin]# Batch entry 0 insert into s_apply_tbl (product_no, apply_flg,
product _name, client_cd, client_name, saihan_flg, old_product_no, start_hope_date,
finish_plan_date, stock_flg, approval_flg, sys_user_name, sys_del_id) values
('11111111',1,'DBテスト','333333','株式会社テスト テスト事業部',0,'','1001',
'1030',0,0,'sinsei',0) was aborted.
at org.postgresql.jdbc2.Statement.executeBatch(Unknown Source)
at Turbo.AddDB.doInsert(AddDB.java:75)
at Turbo.AddServlet.service(AddServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.connector.Ajp13ConnectionHandler.processConnection
(Ajp13ConnectionHandler.java:160)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:479)

[root@gateway bin]#
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-09-30 10:24
自己レスです。

いろいろ調べてみたのですが。
java.sql
 └DatabaseMetaData(データベースに関する包括的な情報です。)
  └supportsBatchUpdates(バッチ更新が可能かどうか)

というのがありましたので調べてみたのですが、「true」がかえってきました。
JDBCドライバーは対応しているみたいなのですが。
どうしても、executeBatch(Unknown Source) となってしまいます。
今回はBatchを使用しないで作成を進めているのですが、どなたかこの原因がわかる方
いっらっしゃいますか?

調べた時のソースを載せておきます。
try{
con = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPass);
DatabaseMetaData dmd = con.getMetaData();
System.out.println("Batch:"+ dmd.supportsBatchUpdates());
}
1

スキルアップ/キャリアアップ(JOB@IT)