社区
Java EE
帖子详情
挑战:EJB事务超时后,如何中断SQL执行?
xiongdigujunfeng
2012-05-23 04:49:58
有个查询SQL,运行时间非常久10分钟,EJB事务超时设置为300s,调用SQL的方法在10钟后会返回结果,但EJB却提示事务已经超时,这种情况下EJB的事务超时还有什么用呢?
我想要达到的目的是:如果SQL运行时间超过timeout时间,就自动中止SQL执行,方法直接返回
提高SQL查询效率之类的办法就不要说了,治标不治本
...全文
272
7
打赏
收藏
挑战:EJB事务超时后,如何中断SQL执行?
有个查询SQL,运行时间非常久10分钟,EJB事务超时设置为300s,调用SQL的方法在10钟后会返回结果,但EJB却提示事务已经超时,这种情况下EJB的事务超时还有什么用呢? 我想要达到的目的是:如果SQL运行时间超过timeout时间,就自动中止SQL执行,方法直接返回 提高SQL查询效率之类的办法就不要说了,治标不治本
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loveofmylife
2012-05-24
打赏
举报
回复
其实我还想说的是,提高查询效率才是治本的方式,造成查询时间长的原因有很多,你应该想着去解决这个问题而不是去放弃这个问题,你kill掉这个sql的同时也有可能会造成数据的回滚等,如果不幸的话,同样会占用数据库大量的资源而导致你应用的阻塞
loveofmylife
2012-05-24
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
我是想能够由应用程序自动检测如果查询超时就自动kill掉自己的session,否则容易造成数据库压力
[/Quote]
可以啊
举个例子,oracle 11g来说
v$session中有两列,sql_id和prev_sql_id分别代表当前的sqlid以及上一个执行的sqlid
对你当前的schema授权v_$session,v_$process,v_$sql
然后通过v$sql找出sql_text like 你的当前sql的sqlid,通过sqlid去v$session中找到paddr,然后通过这个paddr去v$process中找到os的pid(字段为spid),然后在os中kill这个spid的进程或者线程就可以了
xiongdigujunfeng
2012-05-24
打赏
举报
回复
我是想能够由应用程序自动检测如果查询超时就自动kill掉自己的session,否则容易造成数据库压力
loveofmylife
2012-05-24
打赏
举报
回复
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
如果非得要终止,那么只能在os里kill掉这个sql的session了
xiongdigujunfeng
2012-05-24
打赏
举报
回复
不明白1楼的意思,请说的详细些
xiongdigujunfeng
2012-05-24
打赏
举报
回复
我也认同提高查询效率是治本方式,但对于查询时间超EJB的timeout的情况,界面实际上是取不到数据的,这种情况下SQL的执行结果已经无人接收,所以我觉得合理的方式应该马上返回异常,然后异步停止执行,这样就比较好了,不过看来EJB没有这种处理方式。
beowulf2005
2012-05-23
打赏
举报
回复
另起一个线程
事务
连接
中断
_Spring
事务
与
事务
抽象
日常开发中,Spring框架已经成为了主流必不可少的一部分,同样在
事务
处理上,Spring给我们提供了一致的
事务
管理抽象,这个抽象是Spring最重要的抽象之一,能实现为不同的
事务
Api提供一致的编程模型,本篇我们将从
事务
开始学习Spring的
事务
抽象
事务
事务
(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序
执行
单元(unit)。事...
java
事务
是怎么处理的_Java
事务
处理
Java
事务
处理总结一、什么是Java
事务
通常的观念认为,
事务
仅与数据库相关。
事务
必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。
事务
的原子性表示
事务
执行
过程中的任何失败都将导致
事务
所做的任何修改失效。一致性表示当
事务
执行
失败时,所有被该
事务
影响的数据都应该恢复...
事务
处理总结【JDBC
事务
|JTA
事务
|容器
事务
一、什么是Java
事务
通常的观念认为,
事务
仅与数据库相关。
事务
必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。
事务
的原子性表示
事务
执行
过程中的任何失败都将导致
事务
所做的任何修改失效。一致性表示当
事务
执行
失败时,
Java中的
事务
及使用
什么是
事务
?
事务
(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序
执行
单元(unit)。
事务
通常由高级数据库操纵语言或编程语言(如
SQL
,C++或Java)书写的用户程序的
执行
所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。
事务
由
事务
开始(begin transacti...
java
事务
是什么_在java中,
事务
是什么?
一、什么是Java
事务
通常的观念认为,
事务
仅与数据库相关。
事务
必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。
事务
的原子性表示
事务
执行
过程中的任何失败都将导致
事务
所做的任何修改失效。一致性表示当
事务
执行
失败时,所有被该
事务
影响的数据都应该恢复到
事务
执行
前的状态。...
Java EE
67,535
社区成员
225,851
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章