Symfoware

Symfowareについての考察blog

DB2 10.5にJavaから一括登録時「SQL Error: SQLCODE=-964, SQLSTATE=57011」

DB2 10.5にJavaから一括コミットでデータを登録しようとすると、
こんなエラーが発生しました。。


com.ibm.db2.jcc.am.SqlException:
DB2 SQL Error: SQLCODE=-964, SQLSTATE=57011, SQLERRMC=null, DRIVER=4.16.53




エラーコードで調べてみると、
[DB2 LUW] トランザクション・ログがフル (SQL0964C) になったときの対応 (IM-10-00W)

なるほど、トランザクションログがあふれたのか。
このコマンドで現在の設定が確認できるようです。


db2 get db cfg for [データベース名]




Logに絞って表示してみます。


$ db2 get db cfg for sample | grep Log
Log retain for recovery status                         = NO
Log buffer size (4KB)                        (LOGBUFSZ) = 2149
Log file size (4KB)                         (LOGFILSIZ) = 1024
Log archive retry Delay (secs)         (ARCHRETRYDELAY) = 20
Log pages during index build            (LOGINDEXBUILD) = OFF
Log DDL Statements                     (LOG_DDL_STMTS) = NO
Log Application Information             (LOG_APPL_INFO) = NO




「1024」が初期値のようです。
10倍の10240に変更しました。


$ db2 update db cfg for sample using LOGFILSIZ 10240




値の反映には、データベースの再起動が必要のようなので、一旦停止。f


$ db2stop
SQL1025N The database manager was not stopped because databases are still active.



止まってくれない。

SQL1025N
こちらを参考に、接続しているアプリケーションがあるか見てみました。


$ db2 list application
Auth Id Application    Appl.     Application Id                DB     # of
         Name         Handle                                 Name    Agents
-------- -------------- ---------- ----------------------------- -------- -----
DB2INST1 db2bp         168        *LOCAL.db2inst1.140315124518 SAMPLE 1




なんかいます。
強制切断します。


$ db2 force application all





これでstop & startが行えました。


$ db2stop
SQL1064N DB2STOP processing was successful.

$ db2start
SQL1063N DB2START processing was successful.




ちゃんと設定内容が反映されているか確認します。


$ db2 get db cfg for sample | grep Log
Log retain for recovery status                         = NO
Log buffer size (4KB)                        (LOGBUFSZ) = 2149
Log file size (4KB)                         (LOGFILSIZ) = 10240
Log archive retry Delay (secs)         (ARCHRETRYDELAY) = 20
Log pages during index build            (LOGINDEXBUILD) = OFF
Log DDL Statements                     (LOG_DDL_STMTS) = NO
Log Application Information             (LOG_APPL_INFO) = NO





このあと、同じ一括更新のプログラムを実行すると、エラーにならず終了しました。

関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2014/03/16(日) 00:18:30|
  2. DB2
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<DB2 10.5 表データの一括削除(TRUNCATE TABLE) | ホーム | DB2 10.5にJavaからXMLデータを登録・検索する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1339-95b0ae73
この記事にトラックバックする(FC2ブログユーザー)