如何用Groovy更快地连接到JMX

5

我使用WebLogic示例:http://groovy.codehaus.org/Groovy+and+JMX连接JMX和Groovy。

问题是连接时间太长:

    long time = System.currentTimeMillis();

    println System.currentTimeMillis() - time;
    def server = JMXConnectorFactory.connect(serviceURL, h).MBeanServerConnection
    println System.currentTimeMillis() - time;

我有大约200个Groovy脚本。每个脚本都在做不同的事,但都需要连接到JMX。当我想要执行它们所有时,需要花费大约一小时甚至更长时间。有没有一些选项可以让它更快?


这是一个选项,但我不知道如何实现。每个脚本也应该能够独立运行。 - hudi
@tim_yates 你有什么想法可以在脚本之间共享连接吗? - hudi
1
doSomething() { DoSomething.groovy -F request.xml ) 这个不太有意义...这是bash脚本还是groovy脚本?你能把你的确切用例(可能带有示例)放到问题中吗?如果我们不知道你的情况,很难提出适合你情况的解决方案。 - tim_yates
你是需要帮助的人,写清楚问题是你的责任。 - Martin Spamer
问题出在哪里? - hudi
显示剩余7条评论
2个回答

2
所以答案非常简单。我需要使用这个项目:http://kobo.github.io/groovyserv/。然后我只需创建一个名为JmxSharedConection的类,并添加静态方法来添加连接,现在它运行得更快了。

1
我会采纳Tim的建议,并实现一个共享连接,作为[synchronized]单例。因此,实际上,您只需建立一次连接,然后每个脚本根据需要使用它。为了额外的特色,请向您的JMXConnection注册connection listener,当连接丢失时,启动重新连接循环,并将异常抛出到调用脚本,直到重新连接。

你能为我展示一些例子吗?我不知道该如何开始。 - hudi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接