[pgpool-general-jp: 1192] JDBC API の executeBatch() メソッドの実行について

沖賢治 kenjio @ h-t.co.jp
2013年 9月 6日 (金) 19:43:19 JST


はじめまして、沖と申します。
お世話になっております。

現在、pgpool 3.4.1  を利用していまして
pgpool-II 3.3.0 へのアップグレードを検討しています。
しかし、問題が発生して、困っています。
ご意見いただければ幸いでございます。

【現在発生している問題】
弊社では、Javaベースのシステムを構築しているのですが
JDBC APIのexecuteBatch()メソッドを実行すると
以下のエラーが出力され実行が行えません。

java.lang.ArrayIndexOutOfBoundsException: 5
at org.postgresql.core.v3.SimpleParameterList.setResolvedType(SimpleParameterList.java:269)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1738)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:405)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2893)
・・・

このエラーは、現在利用している pgpool 3.4.1 環境下では発生せず、
pgpool-II 3.3.0 環境下では発生致します。
また、pgpool-II 3.3.0 環境下でも JDBCの接続文字列に 「protocolVersion=2」
を付加して接続を行うと正常に実行されます。
出来ましたら、
pgpool-II 3.3.0 環境下でも、protocolVersion=2の指定なし(プロトコルバージョンV3)で
接続させてxecuteBatch()メソッドを動作できるようにしたいのですが
なにか原因となる部分が想定できますでしょうか?

検証しました環境は、以下の通りとなります。
pgpool-II 3.3.0
postgreql 9.2.4
JDBCドライバー  postgresql-9.2-1003.jdbc4.jar
Java  1.6.0_34-b04

DBサーバは、2台構成で
replication_mode = on
load_balance_mode = on
で設定しています。

※ pgpool 以外は、現在運用を行っている環境と同じ設定となっております。


以上となります。
何卒、よろしくお願い致します。


pgpool-general-jp メーリングリストの案内