社区
Java EE
帖子详情
挑战:EJB事务超时后,如何中断SQL执行?
xiongdigujunfeng
2012-05-23 04:49:58
有个查询SQL,运行时间非常久10分钟,EJB事务超时设置为300s,调用SQL的方法在10钟后会返回结果,但EJB却提示事务已经超时,这种情况下EJB的事务超时还有什么用呢?
我想要达到的目的是:如果SQL运行时间超过timeout时间,就自动中止SQL执行,方法直接返回
提高SQL查询效率之类的办法就不要说了,治标不治本
...全文
213
7
打赏
收藏
挑战:EJB事务超时后,如何中断SQL执行?
有个查询SQL,运行时间非常久10分钟,EJB事务超时设置为300s,调用SQL的方法在10钟后会返回结果,但EJB却提示事务已经超时,这种情况下EJB的事务超时还有什么用呢? 我想要达到的目的是:如果SQL运行时间超过timeout时间,就自动中止SQL执行,方法直接返回 提高SQL查询效率之类的办法就不要说了,治标不治本
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
另起一个线程
EJB
连接Oracle数据库
EJB
(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可复用、安全且
事务
处理能力强大的企业级应用程序。在
EJB
中连接Oracle数据库是常见的操作,这对于开发涉及数据库交互的应用至关重要。Oracle数据库...
ejb
数据源配置文件
8. **
事务
管理**:
EJB
支持容器管理的
事务
(CMT)和bean管理的
事务
(BMT)。在数据源配置中,可能需要设定
事务
的隔离级别、回滚规则等。 9. **性能调优**:数据源配置还涉及许多性能优化参数,如最大连接数、最小...
EJB
3使用说明中文版
- **生命周期管理**:
EJB
容器负责管理 Bean 的创建、销毁以及
事务
管理等,从而减轻了开发者的工作负担。 #### 二、
EJB
3 运行环境配置 **2.1 下载与安装**: - **JBoss AS**: 需要下载并安装支持
EJB
3 的 JBoss AS...
揭秘JDBC
超时
机制完整版
Transaction Timeout通常在框架(如Spring、
EJB
)或应用程序级别设定,用于限制一系列
SQL
语句(即一个
事务
)的总
执行
时间。它不是单个statement的
超时
,而是所有statement加上其他非
SQL
执行
时间(如垃圾回收)的总和...
weblogic10下配置
Sql
Server 数据源
在WebLogic 10中配置
SQL
Server数据源是企业级应用...通过这个配置,你的WebLogic应用就能顺利地与
SQL
Server数据库进行交互,
执行
查询、
事务
和其他数据库操作。确保每个步骤都准确无误,以保证系统的稳定性和性能。
Java EE
67,550
社区成员
225,863
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章