数据库闪断问题

陶-涛 2014-02-14 09:55:38
Caused by: com.jiuqi.dna.core.da.SQLExecutionException: Connection reset
at com.jiuqi.dna.core.internal.db.metadata.DbMetadata.raise(DbMetadata.java:156)
at com.jiuqi.dna.core.internal.db.metadata.SqlserverMetadata.raise(SqlserverMetadata.java:463)
at com.jiuqi.dna.core.internal.db.datasource.StatementWrap.raise(StatementWrap.java:128)
at com.jiuqi.dna.core.internal.db.datasource.StatementWrap.execute(StatementWrap.java:80)
at com.jiuqi.dna.core.internal.db.sync.DbStructCtl.execute(DbStructCtl.java:93)
at com.jiuqi.dna.core.internal.db.sync.DbStructCtl.execute(DbStructCtl.java:88)
at com.jiuqi.dna.core.internal.db.sync.DbStructCtl.createIndex(DbStructCtl.java:221)
at com.jiuqi.dna.core.internal.db.sync.sqlserver.SqlserverDbSync.createIndex(SqlserverDbSync.java:44)
at com.jiuqi.dna.core.internal.db.sync.sqlserver.SqlserverDbSync.createIndex(SqlserverDbSync.java:1)
at com.jiuqi.dna.core.internal.db.sync.DbSyncBase.syncIndex(DbSyncBase.java:862)
at com.jiuqi.dna.core.internal.db.sync.DbSyncBase.syncIndexes(DbSyncBase.java:761)
at com.jiuqi.dna.core.internal.db.sync.DbSyncBase.sync(DbSyncBase.java:392)
at com.jiuqi.dna.core.internal.db.sync.DbSyncBase.sync(DbSyncBase.java:54)
... 27 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1339)
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1654)
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:3694)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:5022)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:676)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:649)
at com.jiuqi.dna.core.internal.db.datasource.StatementWrap.execute(StatementWrap.java:77)
... 36 more
com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(SQLServerConnection.java:319)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement(SQLServerConnection.java:1829)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement(SQLServerConnection.java:1542)
at com.jiuqi.dna.core.internal.db.datasource.PooledConnection.check(PooledConnection.java:74)
at com.jiuqi.dna.core.internal.db.datasource.ConnectionPool.revoke(ConnectionPool.java:514)
at com.jiuqi.dna.core.internal.db.datasource.PooledConnection.release(PooledConnection.java:119)
at com.jiuqi.dna.core.impl.DBAdapterImpl.unuse(DBAdapterImpl.java:233)
at com.jiuqi.dna.core.impl.DBAdapterImpl.resolveTranse(DBAdapterImpl.java:356)
at com.jiuqi.dna.core.impl.DBAdapterImpl.resetTrans(DBAdapterImpl.java:338)
at com.jiuqi.dna.core.impl.Transaction.finishDBTrans(Transaction.java:348)
at com.jiuqi.dna.core.impl.Transaction.internalFinish(Transaction.java:555)
at com.jiuqi.dna.core.impl.Transaction.finish(Transaction.java:523)
at com.jiuqi.dna.core.impl.ContextImpl.resolveTrans(ContextImpl.java:3078)
at com.jiuqi.dna.core.impl.CoreMetadataTableLoadStep$2.doVisit(CoreMetadataTableLoadStep.java:59)
at com.jiuqi.dna.core.impl.CoreMetadataTableLoadStep$2.doVisit(CoreMetadataTableLoadStep.java:1)
at com.jiuqi.dna.core.impl.StringKeyMap.visitAll(StringKeyMap.java:218)
at com.jiuqi.dna.core.impl.CoreMetadataTableLoadStep.doStep(CoreMetadataTableLoadStep.java:37)
at com.jiuqi.dna.core.impl.CoreMetadataTableLoadStep.doStep(CoreMetadataTableLoadStep.java:1)
at com.jiuqi.dna.core.impl.ResolveHelper.startup(ResolveHelper.java:225)
at com.jiuqi.dna.core.impl.Site.doInit(Site.java:102)
at com.jiuqi.dna.core.impl.Site.active(Site.java:174)
at com.jiuqi.dna.core.impl.ApplicationImpl.<init>(ApplicationImpl.java:390)
at com.jiuqi.dna.core.impl.ApplicationImpl.startApp(ApplicationImpl.java:699)
at com.jiuqi.dna.core.impl.Activator.start(Activator.java:16)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1177)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

客户的应用服务器和数据库服务器是centos系统,在每次加载我们的程序的过程中,都会有很大量的数据需要加载到内存。研发人员说是由于网络闪断造成的数据和表结构加载不正确,但是启动过程中ping数据库服务器也没有丢包现象。请问问题可能出现在哪些地方?后台报这个错。请各位高手帮忙分析一下问题原因。
...全文
487 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2014-02-14
  • 打赏
  • 举报
回复
大量数据,是在同一次操作中查询数据库得到,还是多次查询数据库得到? 如果是多次查询,是并发的还是串行的? 我们之前有个项目也有启动时加载相关数据到内存,数据量也不小。我们的做法是,将一些非常非常核心的且不经常变动的表数据优先加载到内存,其它表数据,可以在使用的时候,判断为空了再查表加载到内存(类似懒加载)。
teemai 2014-02-14
  • 打赏
  • 举报
回复
确定没有代码逻辑错误吗?或者人为因素造成连接被中断?

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧