我们正在使用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的数据库连接...
我的建议是,如果响应花费时间,并且如果任何事情在use子成功之前都无法使用,则添加超时。