-2

derby update via の非アトミック バッチ エラーとは何stmt.executeBatch()ですか?

反対票を投じてすみません。しかし、私はエラーを持っています.: 私はこのようなコードを書きました: stmt.executeBatch(query);. 実はstmt.executeBatch();正しい。

別のコードで設定setAutoCommit(false)して作り忘れていたsetAutoCommit(true)のですが、この2つを修正したらメッセージが消えてしまいました。

4

1 に答える 1

1

これは、非アトミック バッチで「問題が発生した」ことを意味します。「非アトミック バッチ」ビットは、(私が思うに) バッチが複数のトランザクションを含み、全体をロールバックできなかったことを意味します。

完全な例外メッセージは、おそらく次のようなものです。

Exception in thread "main" org.apache.derby.client.am.BatchUpdateException: 
    Non-atomic batch failure. The batch was submitted, but at least one 
    exception occurred on an individual member of the batch. Use getNextException() 
    to retrieve the exceptions for specific batched elements.
        at org.apache.derby.client.am.Agent.endBatchedReadChain(Agent.java:267)
        at org.apache.derby.client.am.PreparedStatement.executeBatchRequestX(PreparedStatement.java:1596)
        at org.apache.derby.client.am.PreparedStatement.executeBatchX(PreparedStatement.java:1467)
        at org.apache.derby.client.am.PreparedStatement.executeBatch(PreparedStatement.java:945)
        at AOIB.main(AOIB.java:24)

(事実上) 「バッチ内の 1 つ以上の操作が失敗しました。どれかはわかりませんが、を呼び出すことで確認できますgetNextException()。」と表示されます。

于 2013-04-29T06:39:00.987 に答える