2

私の状況: 私は、ジャーナルを作成しない方法で IBM-i でファイルを作成した多くの RPG プログラマーと仕事をしています。db2 jdbc ドライバーを使用してファイルに接続し、更新、挿入などを行う Grails アプリを作成しました。次のエラーが表示されます。

com.ibm.db2.jdbc.app.DB2DBException: MYFILE in MYLIB not valid for operation.
  Cause . . . . . :   The reason code is 3 .  Reason codes are:
  ...blah blah blah...
  3 -- MYFILE not journaled, no authority to the journal, or the journal state is *STANDBY.  Files with an RI constraint action of CASCADE, SET NULL, or SET DEFAULT must be journaled to the same journal. 
  ...blah blah blah...

STRJRNPF を使用してファイルのジャーナリングを開始できることはわかっていますが、それについていくのはやめておきます (叱らないでください)。コミットしようとしないことを知らせるために設定できるdb2 jdbc接続URLのパラメーターはありますか?

現在の接続情報は次のとおりです。

dataSource
{
  dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
  pooled = true
  url = "jdbc:db2:*local;naming=system;libraries=LIBS;errors=full"
  driverClassName = "com.ibm.db2.jdbc.app.DB2Driver"
  username = "user"
  password = "pass"
  dialect = org.hibernate.dialect.DB2400Dialect.class
}

編集:これが私が試したことです:

url = "jdbc:db2:*local;naming=system;libraries=LIBS;errors=full;transaction isolation=none"
4

2 に答える 2

1

最後に、これは最終的に Grails/Hibernate に関係することになりました。最終的にデータソースは次のようになります。

dataSource
{
  dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
  pooled = true
  url = "jdbc:db2:*local;naming=system;libraries=LIBS;errors=full;transaction isolation=none"
  driverClassName = "com.ibm.db2.jdbc.app.DB2Driver"
  username = "user"
  password = "pass"
  dialect = org.hibernate.dialect.DB2400Dialect.class
  properties{                      
    defaultTransactionIsolation = 0
  }
}

@Buck Calabro のコメントとこの質問に感謝します。

于 2013-03-08T21:50:12.993 に答える
-1

「それに追いつく」には何が必要だと思いますか?デフォルトでは、システムが多くのジャーナル管理を行います。IBMiへようこそ。;-)

于 2013-03-08T20:41:44.727 に答える