Oracle-会话仍保持锁定状态

问题描述 投票:0回答:1

我们正在使用MULE(Anypoint Studio)作为ESB(企业服务总线)层。我们正在使用bitronix交易管理器。通过在JBOSS上运行的EJB,可以在事务内部建立到ORACLE的数据库连接。

我们有这样一种情况,其中MULE服务器将在不进行事务处理的情况下被停止,COMMITTED或ROLLED BACK。

当我重新启动MULE服务器时,正在建立新的ejb连接,并且旧会话没有超时。

当我查询数据库时使用:

select 
   sid,
   serial#
from
   v$session
where
   sid in (
   select
      session_id
   from
      dba_dml_locks
   where
      name = '<table_name>');

我可以看到两个会话仍处于活动状态,并且已锁定表。桌上的锁什么时候释放。我应该为此超时在JBOSS或MULE或ORACLE中设置任何属性吗?我还可以看到,手动终止这些会话会释放锁。但这在生产环境中是不可能的。 会话是否会自动超时吗?

我可以看到,在给定时间之后,在ORACLE中更改配置文件的IDLE_TIME会释放锁定。

ALTER PROFILE DEFAULT LIMIT IDLE_TIME <time>;

但是客户不会接受,因为它会影响完整的个人资料。是否有办法仅使特定表的空闲会话超时?

我们正在使用MULE(Anypoint Studio)作为ESB(企业服务总线)层。我们正在使用bitronix交易管理器。通过事务在事务内部建立到ORACLE的数据库连接...

java oracle ejb oracle-sqldeveloper ejb-3.0
1个回答
0
投票

我的建议是,如果响应花费时间,并且如果任何事情在use子成功之前都无法使用,则添加超时。

© www.soinside.com 2019 - 2024. All rights reserved.