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

QQ登录

只需一步,快速开始

查看: 2425|回复: 20

[结贴] 长时间无登陆后重新登录提示“事务回滚错误”

[复制链接]

22

主题

104

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
发表于 2014-4-17 16:31:16 | 显示全部楼层 |阅读模式
5.26企业版   ORACLE数据库  下出现的如题错误。
参照http://bbs.justep.com/forum.php?mod=viewthread&tid=55130
的解决办法但是还是没有解决,请老师们帮解决一下。
发表于 2014-4-17 16:33:24 | 显示全部楼层
在长时间没有访问tomcat后,数据库连接已经失效,连接池因为没有检测,所以认为连接有效,导致连接出错。避免这种错误的方法是设置连接有效查询sql语句。设置后,连接池会使用该sql语句测试连接是否有效,如果无效,会重新建立连接。
设置方法为:在server.xml中的<Resource>节点中增加属性validationQuery="select   sysdate  from  dual;"。例如:
<Resource name="system" auth="Container" type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://127.0.0.1:1433/x5_1900"
username="sa" password="sa" maxActive="10" maxIdle="5"
validationQuery="select  sysdate  from  dual;"/>
  其中
select   sysdate  from  dual这句话是在连oracle时用的,mysql里你可以用
select current_date或者select current_time;
ms sql 可以用select getdate()

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

22

主题

104

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
 楼主| 发表于 2014-4-17 16:35:22 | 显示全部楼层
我用的是ORACLE
回复 支持 反对

使用道具 举报

发表于 2014-4-17 16:46:15 | 显示全部楼层
keshu 发表于 2014-4-17 16:35
我用的是ORACLE

那不是 写了方法吗select   sysdate  from  dual这句话是在连oracle时用的
回复 支持 反对

使用道具 举报

22

主题

104

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
 楼主| 发表于 2014-4-17 16:47:28 | 显示全部楼层
validationQuery="select  sysdate  from  dual;"
我加的也是这句啊
回复 支持 反对

使用道具 举报

发表于 2014-4-17 16:50:42 | 显示全部楼层
keshu 发表于 2014-4-17 16:47
validationQuery="select  sysdate  from  dual;"
我加的也是这句啊

写了之后还是回滚错误?把你的 那个文件 Resource 这一段贴出来看看,还有看你是否写对了地方。。。是在system这个里面写
回复 支持 反对

使用道具 举报

22

主题

104

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
 楼主| 发表于 2014-4-17 16:57:20 | 显示全部楼层
<Context processTlds="false" docBase="../../runtime/BusinessServer" path="/BusinessServer" reloadable="false">
          <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false" maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1">
            <Store className="org.apache.catalina.session.FileStore" directory="seskep"/>
          </Manager>  
          <Resource name="system" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@10.9.9.1:1521:orcl" username="mytz" password="aaa" maxActive="200" maxIdle="15" validationQuery="select  sysdate  from  dual;"/>
          <Resource name="mytz" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@10.9.9.1:1521:orcl" username="mytz" password="aaa" maxActive="200" maxIdle="15" />
        </Context>  
写在这里启动都启动不了。放下面那句后面可以启动,但是没有效果
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:09:27 | 显示全部楼层
keshu 发表于 2014-4-17 16:57
写在这里启动都启动不了。放 ...

看着好像没什么错误
回复 支持 反对

使用道具 举报

22

主题

104

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
 楼主| 发表于 2014-4-17 17:12:32 | 显示全部楼层
我也是看不出问题了才跑来求救啊,不知道为啥别人改了就好了而我得还不行
修改的文件是apache-tomcat\conf里面的server.xml
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:21:32 | 显示全部楼层
keshu 发表于 2014-4-17 17:12
我也是看不出问题了才跑来求救啊,不知道为啥别人改了就好了而我得还不行
修改的文件是apache-tomcat\conf ...

select  sysdate();直接加这句试试看
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 02:53 , Processed in 0.066981 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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