我问这个问题前面How to change value of com.arjuna.ats.jbossatx.jta.TransactionManagerService TransactionTimeout at the run-time?如何在运行时更改com.arjuna.ats.jbossatx.jta.TransactionManagerService TransactionTimeout的值?继续
按照所提供的答案,我发现这个Java代码来完成我的工作:
MBeanServer mBeanServer = MBeanServerLocator.locateJBoss();
TransactionManagerDelegate tmd = (TransactionManagerDelegate) mBeanServer.getAttribute(new ObjectName("jboss:service=TransactionManager"), "TransactionManager");
System.out.println("Prev: " + tmd.getTransactionTimeout());
tmd.setTransactionTimeout(200);
System.out.println("New: " + tmd.getTransactionTimeout());
现在,这里的问题是...代码执行罚款,但是当我从JMX控制台检查交易超时仍然是相同的。
当我调试,我发现TM例如从JMX控制台上可用的MBeanServer和TM的实例获取是不同的!
有什么办法来更新TM实例,它可以用JMX控制台?
谢谢@Nicholas! !最终我能够弄清楚同样的道理。您的解决方案已为我工作。 – SiB 2012-07-16 06:09:50