起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: mtai

[结贴] X5无法登陆

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-4-29 17:40:01 | 显示全部楼层
这个就是web应用的session个数

不是x5的在线用户数,在线用户数会小于等于这个

其他客户数据这个地方都可以看到
而且这个工具不是x5的,可以到网上查一下是否跟什么设置有关
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-4 12:00:54 | 显示全部楼层
jishuang 发表于 2015-4-29 17:40
这个就是web应用的session个数

不是x5的在线用户数,在线用户数会小于等于这个

是数据库连接池满了 请问有没有什么方法可以定位到那个程序 或者action 在占用数据库连接?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-5-4 14:17:29 | 显示全部楼层
平台的数据库连接用完之后都会自己关闭,如果自己写了数据库连接要看是否关闭了

可以在java代码中搜一下数据库连接的代码看一下


如果使用的人比较多可以数据库连接池的大小


或者在tomcat的server.xml文件的数据源配置上加上下面的参数控制看看
maxWait="30000"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"

axWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
无限制。


设置了removeAbandoned="true"时,当连接池连接数到达(getNumIdle() < 2) and (getNumActive() > getMaxActive() - 3)时便会启动连接回收,那种活动时间超过removeAbandonedTimeout="60"的连接将会被回收,同时如果logAbandoned="true"设置为true,程序在回收连接的同时会打印日志。removeAbandoned是连接池的高级功能,理论上这中配置不应该出现在实际的生产环境,因为有时应用程序执行长事务,可能这种情况下,会被连接池误回收,该种配置一般在程序测试阶段,为了定位连接泄漏的具体代码位置,被开启,生产环境中连接的关闭应该靠程序自己保证。
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-4 17:27:35 | 显示全部楼层
jishuang 发表于 2015-5-4 14:17
平台的数据库连接用完之后都会自己关闭,如果自己写了数据库连接要看是否关闭了

可以在java代码中搜一下数 ...

2015-05-04 17:05:28 [http-8080-13] [com.justep.business.server.BusinessServer] ERROR: action:<?xml version="1.0" encoding="UTF-8"?>
<action process="/SA/task/taskView/taskViewProcess" activity="mainActivity" name="queryTaskSummaryAction" executeContext="" content-type="application/xml"><parameters/></action>
java.lang.reflect.InvocationTargetException
        at sun.reflect.GeneratedMethodAccessor212.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)
        at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: select countAll() as taskCount  from SA_Task t  where (t.sKindID='tkTask' or t.sKindID='tkExecutor' or t.sKindID='tkNotice' or t.sKindID IS NULL)  and (t.sStatusID='tesReady' or t.sStatusID='tesExecuting')  and (t.sTypeID IS NULL or t.sTypeID <> 'WORKREMIND') and (('/ORG01.ogn/3BD17AD755CF43C0B0B996065DBC8623.dpt/1474@3BD17AD755CF43C0B0B996065DBC8623.psm' like concat(t.sExecutorFID, '%')) and (t.sExecutorFID like '/%'))
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.KSQL.select(Unknown Source)
        at TaskViewProcedure.queryWaitCount(TaskViewProcedure.java:177)
        at TaskViewProcedure.queryTaskSummary(TaskViewProcedure.java:138)
        ... 27 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: (SELECT  COUNT(*) AS taskCount FROM SA_Task t  WHERE  ( (t.SKINDID = ?) OR (t.SKINDID = ?) OR (t.SKINDID = ?) OR (t.SKINDID IS NULL) ) AND ( (t.SSTATUSID = ?) OR (t.SSTATUSID = ?) ) AND ( (t.STYPEID IS NULL) OR (t.STYPEID <> ?) ) AND ( (? LIKE t.SEXECUTORFID + ?) AND (t.SEXECUTORFID LIKE ?) ) ), binds: [tkTask, tkExecutor, tkNotice, tesReady, tesExecuting, WORKREMIND, /ORG01.ogn/3BD17AD755CF43C0B0B996065DBC8623.dpt/1474@3BD17AD755CF43C0B0B996065DBC8623.psm, %, /%]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
        ... 33 more
Caused by: java.sql.SQLException: 事务(进程 ID 129)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
        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)
        ... 34 more
2015-05-04 17:05:46 [http-8080-100] [com.justep.business.server.BusinessServerServlet] ERROR: Not registed session:C1F3FBD0BC30BF63A7D738EE9F8CA0DE, jsessionid:JSESSIONID=3BDC80706EEED550C37437841F430B5F, action: <?xml version="1.0" encoding="UTF-8"?>
<action direct-execute="true" process="/CCTCERP/PM/process/BZZTBGZL/bZZTBGZLProcess" activity="mainActivity" action-flag="__action_0__" executor="5185" execute-context="" name="closeActivityAction"/>

每次不能登录之前都会发生这个错误 但是出现这个错误不一定导致不能登录
似乎是已办待办的程序导致的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-5-4 17:41:55 | 显示全部楼层
数据库中能看出来是什么操作导致的被锁了, 如何查看是数据库标准的,可以到网上查找相关的信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-4 17:45:38 | 显示全部楼层
jishuang 发表于 2015-5-4 17:41
数据库中能看出来是什么操作导致的被锁了, 如何查看是数据库标准的,可以到网上查找相关的信息 ...

我知道是那个表锁住了 不知道是什么原因
回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-4 17:53:41 | 显示全部楼层
jishuang 发表于 2015-5-4 17:41
数据库中能看出来是什么操作导致的被锁了, 如何查看是数据库标准的,可以到网上查找相关的信息 ...

我们对taskcenter做过调整
增加了待办的分组 并限制数据为本月
请老师帮忙检查一下我们的程序有没有什么问题

taskcenter.zip

5.28 KB, 下载次数: 267

修改过的taskcenter

回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-5 08:43:37 | 显示全部楼层
jishuang 发表于 2015-5-4 17:41
数据库中能看出来是什么操作导致的被锁了, 如何查看是数据库标准的,可以到网上查找相关的信息 ...

(SELECT  t.sID, t.SLASTMODIFYTIME AS sLastModifyTime, t.SPROCESSTEMPLATEITEMSEQUENCE AS sProcessTemplateItemSequence, t.SEXECUTETIME AS sExecuteTime, t.SENFIELD11 AS sENField11, t.SEXECUTORDEPTID AS sExecutorDeptID, t.SENFIELD12 AS sENField12, t.SCREATORDEPTID AS sCreatorDeptID, t.SFLOWID AS sFlowID, t.SPROCESS AS
sProcess, t.SFRONTID AS sFrontID, t.SESFIELD06 AS sESField06, t.SESFIELD05 AS sESField05, t.SCREATETIME AS sCreateTime, t.SESFIELD04 AS sESField04, t.SESFIELD03 AS sESField03, t.SESFIELD02 AS sESField02, t.SESFIELD01 AS sESField01, t.SACTIVITYINTEMPLATE AS sActivityInTemplate, t.SEXPECTSTARTTIME AS
sExpectStartTime, t.SCREATORFID AS sCreatorFID, t.sParentID AS sParent, t.SEXPECTFINISHTIME AS sExpectFinishTime, t.SCREATORPOSNAME AS sCreatorPosName, t.SPROJECTNAME AS sProjectName, t.SSTATUSID AS sStatusID, t.SESFIELD07 AS sESField07, t.SCREATORDEPTNAME AS sCreatorDeptName, t.SESFIELD08 AS sESField08,
t.SIMPORTANCEID AS sImportanceID, t.SSTATUSNAME AS sStatusName, t.SPLANNAME AS sPlanName, t.SACTIVITYNAMES AS sActivityNames, t.SEXECUTORFID AS sExecutorFID, t.SVARIABLE AS sVariable, t.SENFIELD14 AS sENField14, t.SENFIELD13 AS sENField13, t.SCREATOROGNNAME AS sCreatorOgnName, t.SRESPONSIBLE AS sResponsible,
t.SAISTATUSNAME AS sAIStatusName, t.SEXECUTOROGNID AS sExecutorOgnID, t.SWITHDRAW AS sWithdraw, t.SPROCESSTEMPLATEID AS sProcessTemplateID, t.VERSION AS version, t.SEXECUTORDEPTNAME AS sExecutorDeptName, t.SLIMITTIME AS sLimitTime, t.STEMPPERMISSIONID AS sTempPermissionID, t.SPROJECTID AS sProjectID, t.SSOURCEID
AS sSourceID, t.SPREEMPTMODE AS sPreemptMode, t.SIMPORTANCENAME AS sImportanceName, t.SEURL AS sEURL, t.SEXECUTORNAMES AS sExecutorNames, t.SDATA3 AS sData3, t.SDATA4 AS sData4, t.SDATA1 AS sData1, t.SDATA2 AS sData2, t.SACTIVE AS sActive, t.SSUMMARY AS sSummary, t.SETFIELD33 AS sETField33, t.SETFIELD34 AS
sETField34, t.SLOCK AS sLock, t.SETFIELD31 AS sETField31, t.SEXECUTORPOSID AS sExecutorPosID, t.SCUSTOMERNAME AS sCustomerName, t.SETFIELD32 AS sETField32, t.SKINDID AS sKindID, t.SEDFIELD23 AS sEDField23, t.SEDFIELD22 AS sEDField22, t.SEDFIELD24 AS sEDField24, t.SREMINDMODE AS sRemindMode, t.SCREATORFNAME AS sCreatorFName, t.SPROCESSTEMPLATEID2 AS sProcessTemplateID2, t.SCUSTOMERID AS sCustomerID, t.SEXECUTORPOSNAME AS sExecutorPosName, t.SSHORTCUT AS sShortcut, t.SEDFIELD21 AS sEDField21, t.SEXECUTEMODE AS sExecuteMode, t.SPROCESSNAME AS sProcessName, t.SWARNINGTIME AS sWarningTime, t.SEBFIELD51 AS sEBField51, t.SEBFIELD52 AS sEBField52, t.SEBFIELD53 AS sEBField53, t.SEBFIELD54 AS sEBField54, t.SCREATORPERSONNAME AS sCreatorPersonName, t.SEIFIELD44 AS sEIField44, t.SEXECUTOROGNNAME AS sExecutorOgnName, t.SEIFIELD43 AS sEIField43, t.SEIFIELD42 AS sEIField42, t.SEIFIELD41 AS sEIField41, t.SDISTRIBUTETIME AS sDistributeTime, t.SCONTENT AS sContent, t.STYPENAME AS sTypeName, t.SAISTATUSID AS sAIStatusID, t.SACTUALSTARTTIME AS sActualStartTime, t.SEMERGENCYID AS sEmergencyID, t.SCREATORPERSONID AS sCreatorPersonID, t.SCURL AS sCURL, t.SCATALOGID AS sCatalogID, t.SSEQUENCE AS sSequence, t.SEXECUTORPERSONID AS sExecutorPersonID, t.SAIID AS sAIID, t.SAIACTIVE AS sAIActive, t.SACTIVITY AS sActivity, t.SCREATORPOSID AS sCreatorPosID, t.SCREATOROGNID AS sCreatorOgnID, t.STYPEID AS sTypeID, t.SEMERGENCYNAME AS sEmergencyName, t.SREMARK AS sRemark, t.SCODE AS sCode, t.SACTIVITYNAME AS sActivityName, t.SPLANID AS sPlanID, t.SEXECUTEMODE2 AS sExecuteMode2, t.SEXECUTORFNAME AS sExecutorFName, t.SACTUALFINISHTIME AS sActualFinishTime, t.SHINTS AS sHints, t.SEXECUTORPERSONNAME AS sExecutorPersonName, t.SNAME AS sName FROM SA_Task t  WHERE t.SFLOWID =  @P0 )

找到了 这段SQL导致死锁 然后怎么处理?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-5-5 08:48:30 | 显示全部楼层
看不出什么问题,可以先用平台原始的任务中心看看是否还有锁表的情况

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

304

帖子

784

积分

高级会员

Rank: 4

积分
784
QQ
 楼主| 发表于 2015-5-5 08:51:36 | 显示全部楼层
mtai 发表于 2015-5-5 08:43
(SELECT  t.sID, t.SLASTMODIFYTIME AS sLastModifyTime, t.SPROCESSTEMPLATEITEMSEQUENCE AS sProcessTe ...

UPDATE SA_Task SET SA_Task.SLASTMODIFYTIME =   @P0  , SA_Task.SEXPECTFINISHTIME =   @P1  , SA_Task.SSTATUSID =   @P2  , SA_Task.SSTATUSNAME =   @P3  , SA_Task.SLOCK =   @P4  , SA_Task.SAISTATUSID =   @P5  , SA_Task.SACTUALFINISHTIME =   @P6    WHERE  (SA_Task.sID =  @P7 ) AND (SA_Task.SLOCK =  @P8 )
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-5 18:40 , Processed in 0.115254 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表