|
版本: |
其它(帖子中说明) |
小版本号: |
|
|
|
数据库: |
MS SQLServer |
服务器操作系统: |
Windows |
应用服务器: |
Tomcat |
客户端操作系统: |
|
浏览器: |
|
|
|
客户系统版本是5.2.7+5.3.7的集成版本
数据库是SQLServer
最近一段时间系统出现卡顿的问题,查看日志后发现很多“Caused by: java.sql.SQLException: 事务(进程 ID 54)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。”的问题,两周时间出现了几十次,希望平台能帮忙判断下原因,以及提供一些可行的处理方法。
以下是部分日志。
1-------------------------------------------------
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT SA_Task.sParentID AS sParent, SA_Task.SNAME AS sName, SA_Task.SCONTENT AS sContent, SA_Task.SREMARK AS sRemark, SA_Task.SFLOWID AS sFlowID, SA_Task.SSOURCEID AS sSourceID, SA_Task.SFRONTID AS sFrontID, SA_Task.SCATALOGID AS sCatalogID, SA_Task.SKINDID AS sKindID, SA_Task.SRESPONSIBLE AS sResponsible, SA_Task.SEXECUTEMODE2 AS sExecuteMode2, SA_Task.SEXECUTEMODE AS sExecuteMode, SA_Task.SPREEMPTMODE AS sPreemptMode, SA_Task.SREMINDMODE AS sRemindMode, SA_Task.STYPEID AS sTypeID, SA_Task.STYPENAME AS sTypeName, SA_Task.SIMPORTANCEID AS sImportanceID, SA_Task.SIMPORTANCENAME AS sImportanceName, SA_Task.SEMERGENCYID AS sEmergencyID, SA_Task.SEMERGENCYNAME AS sEmergencyName, SA_Task.SCURL AS sCURL, SA_Task.SEURL AS sEURL, SA_Task.SDISTRIBUTETIME AS sDistributeTime, SA_Task.SCREATETIME AS sCreateTime, SA_Task.SLASTMODIFYTIME AS sLastModifyTime, SA_Task.SLIMITTIME AS sLimitTime, SA_Task.SLIMITSECOND AS sLimitSecond, SA_Task.SWARNINGTIME AS sWarningTime, SA_Task.SEXECUTETIME AS sExecuteTime, SA_Task.SEXPECTSTARTTIME AS sExpectStartTime, SA_Task.SEXPECTFINISHTIME AS sExpectFinishTime, SA_Task.SACTUALSTARTTIME AS sActualStartTime, SA_Task.SACTUALFINISHTIME AS sActualFinishTime, SA_Task.SCREATORFID AS sCreatorFID, SA_Task.SCREATORFNAME AS sCreatorFName, SA_Task.SEXECUTORFID AS sExecutorFID, SA_Task.SEXECUTORFNAME AS sExecutorFName, SA_Task.SCREATORPERSONID AS sCreatorPersonID, SA_Task.SCREATORPERSONNAME AS sCreatorPersonName, SA_Task.SCREATORPOSID AS sCreatorPosID, SA_Task.SCREATORPOSNAME AS sCreatorPosName, SA_Task.SCREATORDEPTID AS sCreatorDeptID, SA_Task.SCREATORDEPTNAME AS sCreatorDeptName, SA_Task.SCREATOROGNID AS sCreatorOgnID, SA_Task.SCREATOROGNNAME AS sCreatorOgnName, SA_Task.SEXECUTORPERSONID AS sExecutorPersonID, SA_Task.SEXECUTORPERSONNAME AS sExecutorPersonName, SA_Task.SEXECUTORPOSID AS sExecutorPosID, SA_Task.SEXECUTORPOSNAME AS sExecutorPosName, SA_Task.SEXECUTORDEPTID AS sExecutorDeptID, SA_Task.SEXECUTORDEPTNAME AS sExecutorDeptName, SA_Task.SEXECUTOROGNID AS sExecutorOgnID, SA_Task.SEXECUTOROGNNAME AS sExecutorOgnName, SA_Task.SEXECUTORNAMES AS sExecutorNames, SA_Task.SCUSTOMERID AS sCustomerID, SA_Task.SCUSTOMERNAME AS sCustomerName, SA_Task.SPROJECTID AS sProjectID, SA_Task.SPROJECTNAME AS sProjectName, SA_Task.SPLANID AS sPlanID, SA_Task.SPLANNAME AS sPlanName, SA_Task.SDATA1 AS sData1, SA_Task.SDATA2 AS sData2, SA_Task.SDATA3 AS sData3, SA_Task.SDATA4 AS sData4, SA_Task.SVARIABLE AS sVariable, SA_Task.SACTIVE AS sActive, SA_Task.SSTATUSID AS sStatusID, SA_Task.SSTATUSNAME AS sStatusName, SA_Task.SAIACTIVE AS sAIActive, SA_Task.SAIID AS sAIID, SA_Task.SAISTATUSID AS sAIStatusID, SA_Task.SAISTATUSNAME AS sAIStatusName, SA_Task.SSEQUENCE AS sSequence, SA_Task.SLOCK AS sLock, SA_Task.SHINTS AS sHints, SA_Task.SSHORTCUT AS sShortcut, SA_Task.SPROCESS AS sProcess, SA_Task.SACTIVITY AS sActivity, SA_Task.SPROCESSNAME AS sProcessName, SA_Task.SACTIVITYNAME AS sActivityName, SA_Task.VERSION AS version, SA_Task.SPROCESSTEMPLATEID AS sProcessTemplateID, SA_Task.SPROCESSTEMPLATEITEMSEQUENCE AS sProcessTemplateItemSequence, SA_Task.STEMPPERMISSIONID AS sTempPermissionID, SA_Task.SESFIELD01 AS sESField01, SA_Task.SESFIELD02 AS sESField02, SA_Task.SESFIELD03 AS sESField03, SA_Task.SESFIELD04 AS sESField04, SA_Task.SESFIELD05 AS sESField05, SA_Task.SESFIELD06 AS sESField06, SA_Task.SESFIELD07 AS sESField07, SA_Task.SESFIELD08 AS sESField08, SA_Task.SEDFIELD21 AS sEDField21, SA_Task.SEDFIELD22 AS sEDField22, SA_Task.SEDFIELD23 AS sEDField23, SA_Task.SEDFIELD24 AS sEDField24, SA_Task.SETFIELD31 AS sETField31, SA_Task.SETFIELD32 AS sETField32, SA_Task.SETFIELD33 AS sETField33, SA_Task.SETFIELD34 AS sETField34, SA_Task.SEIFIELD41 AS sEIField41, SA_Task.SEIFIELD42 AS sEIField42, SA_Task.SEIFIELD43 AS sEIField43, SA_Task.SEIFIELD44 AS sEIField44, SA_Task.SEBFIELD51 AS sEBField51, SA_Task.SEBFIELD52 AS sEBField52, SA_Task.SEBFIELD53 AS sEBField53, SA_Task.SEBFIELD54 AS sEBField54, SA_Task.SENFIELD11 AS sENField11, SA_Task.SENFIELD12 AS sENField12, SA_Task.SENFIELD13 AS sENField13, SA_Task.SENFIELD14 AS sENField14, SA_Task.SSUMMARY AS sSummary, SA_Task.SACTIVITYNAMES AS sActivityNames, SA_Task.SCODE AS sCode, SA_Task.SWITHDRAW AS sWithdraw, SA_Task.SPROCESSTEMPLATEID2 AS sProcessTemplateID2, SA_Task.SACTIVITYINTEMPLATE AS sActivityInTemplate, SA_Task.sID AS SA_Task FROM SA_Task SA_Task WHERE ( ( (SA_Task.SWITHDRAW IS NULL) OR (SA_Task.SWITHDRAW = ?) ) AND ( ( (SA_Task.SKINDID = ?) AND (SA_Task.SEXECUTORPERSONID IS NOT NULL) AND ( SA_Task.SSTATUSID IN (?, ?, ?, ?, ?, ?) ) ) OR ( (SA_Task.SKINDID = ?) AND ( SA_Task.SSTATUSID IN (?, ?, ?, ?, ?) ) ) ) ) AND (SA_Task.SDATA1 = ?) ORDER BY SA_Task.SACTUALFINISHTIME ASC, binds: [0, tkTask, tesPaused, tesFinished, tesReturned, tesAborted, tesTransmited, tesWaited, tkExecutor, tesPaused, tesFinished, tesReturned, tesAborted, tesTransmited, D7917785F4324A67AA96EDC37570AC69]出错
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(TableUtilsImplement.java:412)
... 31 more
Caused by: java.sql.SQLException: 事务(进程 ID 54)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:792)
at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:146)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:424)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:693)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
... 33 more
2-------------------------------------------------
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT * FROM (SELECT TOP 100 PERCENT ROW_NUMBER() OVER( ORDER BY t.SCREATETIME DESC) AS JUSTEP_RN__, t.sID, t.SNAME AS sName, t.SCURL AS sCURL, t.SPROCESS AS sProcess, t.SACTIVITY AS sActivity, t.SCREATETIME AS sCreateTime, t.SEXECUTORFNAME AS sExecutorFName, t.SEXECUTORNAMES AS sExecutorNames, t.SEURL AS sEURL, t.SCREATORFNAME AS sCreatorFName, t.SSHORTCUT AS sShortcut, t.SHINTS AS sHints, t.SCREATORFID AS sCreatorFID, t.SEXECUTORFID AS sExecutorFID, t.SKINDID AS sKindID FROM SA_Task t WHERE ( (t.SSTATUSID = ?) OR (t.SSTATUSID = ?) ) AND ( ? LIKE t.SEXECUTORFID + ?) AND (t.SEXECUTORFID LIKE ?) ORDER BY t.SCREATETIME DESC) AS JUSTEP_TABLE__ WHERE JUSTEP_RN__ >= 1 AND JUSTEP_RN__<9, binds: [tesReady, tesExecuting, /8B66371CB6C64D9D8E70387EDBADF34E.ogn/618F5E58D46744B582EB529D202E55CC.ogn/3F8E8CC2A04F4C7798A8F14274143E35.dpt/4E045A63C5164A9789F55B6FAD31C3A7.dpt/14AA14C22D224D9EBCCF6FAC7434464E.pos/64CA698727F742F69143CB9EEC7C6D31@14AA14C22D224D9EBCCF6FAC7434464E.psm, %, /%]出错
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(TableUtilsImplement.java:412)
... 31 more
Caused by: java.sql.SQLException: 事务(进程 ID 61)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:792)
at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:146)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:424)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:693)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
... 33 more
3-------------------------------------------------
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT * FROM (SELECT TOP 100 PERCENT ROW_NUMBER() OVER( ORDER BY SF_GDYSFY.SJ_KJMC ASC, SF_GDYSFY.FSFXMMC ASC, SF_GDYSFY.FFYKSRQ ASC) AS JUSTEP_RN__, SF_GDYSFY.VERSION AS version, SF_GDYSFY.FGDSFXID AS fGDSFXID, SF_GDYSFY.SJ_KJBS AS SJ_KJBS, SF_GDYSFY.SJ_KJMC AS SJ_KJMC, SF_GDYSFY.SJ_KJLJ AS SJ_KJLJ, SF_GDYSFY.FKHID AS fKHID, SF_GDYSFY.FKHMC AS fKHMC, SF_GDYSFY.FSFXMID AS fSFXMID, SF_GDYSFY.FSFXMMC AS fSFXMMC, SF_GDYSFY.FDJ AS fDJ, SF_GDYSFY.FDW AS fDW, SF_GDYSFY.FSFZQDW AS fSFZQDW, SF_GDYSFY.FYMJXC AS fYMJXC, SF_GDYSFY.FJFMJFS AS fJFMJFS, SF_GDYSFY.FKJMJ AS fKJMJ, SF_GDYSFY.FJFMJ AS fJFMJ, SF_GDYSFY.FSL AS fSL, SF_GDYSFY.FGDYSFY AS fGDYSFY, SF_GDYSFY.FFYKSRQ AS fFYKSRQ, SF_GDYSFY.FFYJSRQ AS fFYJSRQ, SF_GDYSFY.FYSFY AS fYSFY, SF_GDYSFY.FKZZK AS fKZZK, SF_GDYSFY.FZK AS fZK, SF_GDYSFY.FTSZK AS fTSZK, SF_GDYSFY.FKHPJ AS fKHPJ, SF_GDYSFY.FZHJE AS fZHJE, SF_GDYSFY.FZKJE AS fZKJE, SF_GDYSFY.FJMJE AS fJMJE, SF_GDYSFY.FHJJE AS fHJJE, SF_GDYSFY.FYJJE AS fYJJE, SF_GDYSFY.FWJJE AS fWJJE, SF_GDYSFY.FZT AS fZT, SF_GDYSFY.FZTMC AS fZTMC, SF_GDYSFY.FSCRID AS fSCRID, SF_GDYSFY.FSCRMC AS fSCRMC, SF_GDYSFY.FSCSJ AS fSCSJ, SF_GDYSFY.FYSBJ AS fYSBJ, SF_GDYSFY.FJQBJ AS fJQBJ, SF_GDYSFY.FSHWTGYY AS fSHWTGYY, SF_GDYSFY.FSHRID AS fSHRID, SF_GDYSFY.FSHRMC AS fSHRMC, SF_GDYSFY.FSHSJ AS fSHSJ, SF_GDYSFY.FFFYID AS fFFYID, SF_GDYSFY.FFFRID AS fFFRID, SF_GDYSFY.FFFRMC AS fFFRMC, SF_GDYSFY.FFFSJ AS fFFSJ, SF_GDYSFY.FFFFF AS fFFFF, SF_GDYSFY.FFFJE AS fFFJE, SF_GDYSFY.FFFMJ AS fFFMJ, SF_GDYSFY.FFFRQ AS fFFRQ, SF_GDYSFY.FKHFF AS fKHFF, SF_GDYSFY.FBGDID AS fBGDID, SF_GDYSFY.FBGYID AS fBGYID, SF_GDYSFY.FBGRID AS fBGRID, SF_GDYSFY.FBGRMC AS fBGRMC, SF_GDYSFY.FBGSJ AS fBGSJ, SF_GDYSFY.FBGYY AS fBGYY, SF_GDYSFY.FPCH AS fPCH, SF_GDYSFY.FZFRID AS fZFRID, SF_GDYSFY.FZFRMC AS fZFRMC, SF_GDYSFY.FZFSJ AS fZFSJ, SF_GDYSFY.FZFYY AS fZFYY, SF_GDYSFY.FBGBB AS fBGBB, SF_GDYSFY.FDQBB AS fDQBB, SF_GDYSFY.FREMARK AS fRemark, SF_GDYSFY.FHISTORY AS fHistory, SF_GDYSFY.FYZT AS fYZT, SF_GDYSFY.FYZTMC AS fYZTMC, SF_GDYSFY.FZZRID AS fZZRID, SF_GDYSFY.FZZRMC AS fZZRMC, SF_GDYSFY.FZZSJ AS fZZSJ, SF_GDYSFY.FZZYY AS fZZYY, STR(SF_GDYSFY.FGDYSFY, ?, ?) + ? + SF_GDYSFY.FSFZQDW AS SFGZ, SF_GDYSFY.fID AS SF_GDYSFY FROM SF_GDYSFY SF_GDYSFY WHERE (SF_GDYSFY.SJ_KJLJ LIKE ?) AND ( (SF_GDYSFY.FZT = ?) OR (SF_GDYSFY.FZT = ?) ) AND ( (UPPER(SF_GDYSFY.SJ_KJMC) LIKE ?) OR (UPPER(SF_GDYSFY.FSFXMMC) LIKE ?) ) ORDER BY SF_GDYSFY.SJ_KJMC ASC, SF_GDYSFY.FSFXMMC ASC, SF_GDYSFY.FFYKSRQ ASC) AS JUSTEP_TABLE__ WHERE JUSTEP_RN__ >= 1 AND JUSTEP_RN__<21, binds: [18, 2, /, /_is_root_/DB60B94A1ED14A3FB27B38CC9A195AED/98D66C709ECF4E998EFF515B3B35DA97%, 1, 2, %10-1-1001%, %10-1-1001%]出错
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(TableUtilsImplement.java:412)
... 31 more
Caused by: java.sql.SQLException: 事务(进程 ID 68)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:792)
at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:146)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:424)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:693)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
... 33 more
4-------------------------------------------------
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT count(*) FROM SF_GDYSFY SF_GDYSFY WHERE (SF_GDYSFY.SJ_KJLJ LIKE ?) AND ( (SF_GDYSFY.FZT = ?) OR (SF_GDYSFY.FZT = ?) ) AND ( (UPPER(SF_GDYSFY.SJ_KJMC) LIKE ?) OR (UPPER(SF_GDYSFY.FSFXMMC) LIKE ?) ) , binds: [/_is_root_/BDCD93EF8E6E4F2ABCFC650DDCCF5D42/F808D7631A7D4B41BC9F6D33E0365978%, 1, 2, %2-1-1510%, %2-1-1510%]出错
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
... 30 more
Caused by: java.sql.SQLException: 事务(进程 ID 65)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:792)
at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:146)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:424)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:693)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
... 31 more
|
|