我問這個問題前面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