2011年9月27日

[mysql 15633] データ更新時のエラーについて

初めまして、舟崎と申します。
投稿先が間違っておりましたら、申し訳ございません。

MySQL DB 上のテーブルのデータを更新する時に生じるエラーについて
質問させてください。

MySQL DB に対して、Java の Web アプリケーションから
データを更新する時に、下記の例外が毎回生じます。


同じテーブルの他の行のデータは更新ができますが、どうも
特定の行のみ更新ができないようです。

----------------------
Caused by: <openjpa-2.0.1-r422266:989424 fatal store error>
org.apache.openjpa.persistence.RollbackException: Streaming result set
com.mysql.jdbc.RowDataDynamic@xxxxx is still active. No statements
may be issued when any
streaming result sets are open and in use on a given connection.
Ensure that you have called
.close() on any active streaming result sets before attempting more queries.
at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:584)

Caused by: <openjpa-2.0.1-r422266:989424 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: Streaming result
set com.mysql.jdbc.RowDataDynamic@xxxxx is still active. No statements
may be issued when any streaming result sets are open and in use on a
given connection. Ensure that you have called .close() on any active
streaming result sets before attempting more queries.
at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4832)
at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4792)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:110)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:62)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.begin(JDBCStoreManager.java:215)
at org.apache.openjpa.kernel.DelegatingStoreManager.begin(DelegatingStoreManager.java:91)
at org.apache.openjpa.kernel.BrokerImpl.beginStoreManagerTransaction(BrokerImpl.java:1396)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2097)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:560)
... 32 more
Caused by: java.sql.SQLException: Streaming result set
com.mysql.jdbc.RowDataDynamic@xxxxx is still active. No statements may
be issued when any streaming result sets are open and in use on a
given connection. Ensure that you have called .close() on any active
streaming result sets before attempting more queries.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData(MysqlIO.java:2724)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1895)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5022)
at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:220)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:220)
at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringConnectionDecorator.java:132)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:220)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.begin(JDBCStoreManager.java:212)
... 41 more
----------------------

上記の例外により、データは更新されません。

特定の行のレコードがまだ active (≒更新中のステータス?)となっており、
更新ができないのではないかと考えております。

MySQL DB を再起動、および Java アプリケーションが動作する
Tomcat を再起動しましたが、解消されません。

どのようにすれば、上記の状態を解消し、データを更新できるか?
どなたかご助言頂けますと大変助かります。

・環境
   DB: MySQL 5.1.52 InnoDB
AP: Tomcat 上に Java の動的 Web アプリケーションを配備、
     OpenJPA を使って、MySQL DB にアクセス
   Java: JDK 1.6

他に必要な情報等ありましたら、ご指摘頂けますと幸いです。
よろしくお願いします。

舟崎


投稿者 xml-rpc : 2011年9月27日 20:31
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106525
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。