日期:2014-05-16  浏览次数:20499 次

iBatis删除大批量记录时 出错


Last packet sent to the server was 1 ms ago.; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:

--- The error occurred in sqlmap/VisitImpl.xml.
--- The error occurred while applying a parameter map.
--- Check the VisitDaoImpl.deleteByShopid-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: socket closed

STACKTRACE:

java.net.SocketException: socket closed
??????? at java.net.SocketInputStream.socketRead0(Native Method)
??????? at java.net.SocketInputStream.read(SocketInputStream.java:129)
??????? at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
??????? at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
??????? at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
??????? at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
??????? at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2411)
??????? at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916)
??????? at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
??????? at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
??????? at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
??????? at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
??????? at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:882)
??????? at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
??????? at java.lang.reflect.Method.invoke(Method.java:597)
??????? at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
??????? at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
??????? at $java.sql.Statement$$EnhancerByProxool$$e51738e7.execute(<generated>)
??????? at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80)
??????? at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
??????? at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
??????? at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:457)
??????? at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.delete(SqlMapExecutorDelegate.java:480)
??????? at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.delete(SqlMapSessionImpl.java:98)
??????? at org.springframework.orm.ibatis.SqlMapClientTemplate$11.doInSqlMapClient(SqlMapClientTemplate.java:438)
??????? at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
??????? at org.springframework.orm.ibatis.SqlMapClientTemplate.delete(SqlMapClientTemplate.java:436)
??????? at com.testapp.stats.dao.impl.VisitRecordDAOImpl.deleteByShopid(VisitRecordDAOImpl.java:47)
??????? at com.testapp.stats.service.CheckShopService.deleteVisit(CheckShopService.java:45)
??????? at com.testapp.stats.filter.QuartzSyncJob.ClearShopGarbage(QuartzSyncJob.java:162)
??????? at com.testapp.stats.filter.QuartzSyncJob.executeInternal(QuartzSyncJob.java:122)
??????? at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
??????? at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
??????? at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)


** END NESTED EXCEPTION **

?

?

因为自己做本地测试时,从来不出错,都能正常运行。baidu到其它人的分析http://bbs.csdn.net/topics/390051943

?

我认为? 回复于: 2012-05-16 12:15:06?
也许是查询太慢导致timeou