[前][次][番号順一覧][スレッド一覧]

mysql:15633

From: Kenji Funasaki <Kenji Funasaki <kenji.funasaki@xxxxxxxxxx>>
Date: Tue, 27 Sep 2011 20:31:51 +0900
Subject: [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@1cd2b82 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@dc294 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@dc294 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

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

舟崎

[前][次][番号順一覧][スレッド一覧]

->   15633 2011-09-27 20:31 [Kenji Funasaki <kenj] データ更新時のエラーについて            
     15634 2011-09-28 11:04 ┗[HIRATSUKA Sadao <hir]