[Seasar-user:17405] [S2JDBC-Gen]oidを含む列をダンプできない
Takafumi Yoshida
[E-MAIL ADDRESS DELETED]
2009年 5月 11日 (月) 13:53:16 JST
いつもお世話になります。吉田@オプティクスです。
Seasar 2.4.34
PostgreSQL 8.1.4
上記の環境で、S2JDBC-GenのGen-ddlタスクで以下のようなエラーが発生します。
問題が発生するのは、フィールドにoid列を含むテーブルをダンプする際に発生しているようです。
C:\test\s2jdbc-gen-build.xml:51: Exception in thread "main"
org.seasar.extension.jdbc.gen.exception.CommandFailedRuntimeException:
[ES2JDBCGen0005]コマンド(org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand)の実行に失敗しました。理由はorg.seasar.framework.exception.SRuntimeException:
[ES2JDBCGen0021]トランザクションに関する例外が発生しました。理由はorg.postgresql.util.PSQLException:
Large Objects may not be used in auto-commit mode.
at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:160)
at org.seasar.extension.jdbc.gen.internal.command.CommandInvokerImpl.invoke(CommandInvokerImpl.java:29)
at org.seasar.extension.jdbc.gen.command.CommandAdapter.main(CommandAdapter.java:61)
Caused by: org.seasar.framework.exception.SRuntimeException:
[ES2JDBCGen0021]トランザクションに関する例外が発生しました。理由はorg.postgresql.util.PSQLException:
Large Objects may not be used in auto-commit mode.
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpTableWithSort(DumperImpl.java:125)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dump(DumperImpl.java:83)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand$DdlVersionIncrementerCallback$1.execute(GenerateDdlCommand.java:1353)
at org.seasar.extension.jdbc.gen.internal.sql.SqlUnitExecutorImpl.executeInternal(SqlUnitExecutorImpl.java:92)
at org.seasar.extension.jdbc.gen.internal.sql.SqlUnitExecutorImpl.execute(SqlUnitExecutorImpl.java:71)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand$DdlVersionIncrementerCallback.execute(GenerateDdlCommand.java:1350)
at org.seasar.extension.jdbc.gen.internal.version.DdlVersionIncrementerImpl.increment(DdlVersionIncrementerImpl.java:122)
at org.seasar.extension.jdbc.gen.internal.command.GenerateDdlCommand.doExecute(GenerateDdlCommand.java:1160)
at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:158)
... 2 more
Caused by: org.postgresql.util.PSQLException: Large Objects may not be
used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:172)
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:158)
at org.postgresql.jdbc2.AbstractJdbc2BlobClob.<init>(AbstractJdbc2BlobClob.java:39)
at org.postgresql.jdbc2.AbstractJdbc2Blob.<init>(AbstractJdbc2Blob.java:22)
at org.postgresql.jdbc3.AbstractJdbc3Blob.<init>(AbstractJdbc3Blob.java:22)
at org.postgresql.jdbc3.Jdbc3Blob.<init>(Jdbc3Blob.java:20)
at org.postgresql.jdbc3.Jdbc3ResultSet.getBlob(Jdbc3ResultSet.java:54)
at org.seasar.extension.jdbc.gen.internal.sqltype.BlobType.getValue(BlobType.java:67)
at org.seasar.extension.jdbc.gen.internal.data.DumpFileWriter.writeRowData(DumpFileWriter.java:209)
at org.seasar.extension.jdbc.gen.internal.data.DumpFileWriter.writeRows(DumpFileWriter.java:169)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpRows(DumperImpl.java:178)
at org.seasar.extension.jdbc.gen.internal.data.DumperImpl.dumpTableWithSort(DumperImpl.java:113)
... 10 more
どのようにすれば、Gen-ddlタスクを実行できますでしょうか?
Seasar-user メーリングリストの案内