我正在运行JBoss 4.2.2。我想,以确定正确的代码都:以编程方式刷新JBoss 4.2.2连接池
- 查找的org.jboss.resource.connectionmanager.JBossManagedConnectionPool
- 执行的flush()操作上说池。
我发现了一些其他问题没有答案。我希望这不会成为他们中的又一个。
最接近的问题,到目前为止,我发现:https://community.jboss.org/message/637784
我正在运行JBoss 4.2.2。我想,以确定正确的代码都:以编程方式刷新JBoss 4.2.2连接池
我发现了一些其他问题没有答案。我希望这不会成为他们中的又一个。
最接近的问题,到目前为止,我发现:https://community.jboss.org/message/637784
下面是一个使用常规匆匆例如基础。 首先,你想在你的类路径中使用jboss-4.2.2/client/jbossall-client.jar。 接下来,您需要数据源的JMX ObjectName。在JMX控制台中找到此信息可能会有所帮助,您可以在http://localhost:8080/jmx-console/或您已部署的位置找到此信息。所以ObjectName的字符串值是域+“:”+属性。
例如:
的ObjectName为:jboss.jca:名称= DefaultDS的,服务= ManagedConnectionPool。
接下来,在JNDI中查找RMIAdaptor。这是MBeanServer接口,它将允许您调用目标MBean上的刷新操作。然后调用调用。而已。
import javax.management.*;
import javax.naming.*;
p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL, "localhost:1099");
ctx = new InitialContext(p);
rmiAdaptor = ctx.lookup("jmx/rmi/RMIAdaptor");
rmiAdaptor.invoke(new ObjectName("jboss.jca:name=DefaultDS,service=ManagedConnectionPool"), "flush", [] as Object[], [] as String[]);
有意义吗?
=====更新=====
如果从JBoss的JVM内部执行这个,你不需要JNDI设置:
import javax.management.*;
import org.jboss.mx.util.MBeanServerLocator;
MBeanServer server = MBeanServerLocator.locateJBoss();
server.invoke(new ObjectName("jboss.jca:name=DefaultDS,service=ManagedConnectionPool"), "flush", [] as Object[], [] as String[]);
我的天堂”随着其他优先事项的出现,我们能够进行测试。它在我的队列中,当我尝试过时,我一定会回到这里。 – 2012-04-19 15:20:30