【问题标题】:Why is triggerJob disabled in Quartz's JMX?为什么在 Quartz 的 JMX 中禁用 triggerJob?
【发布时间】:2012-02-03 19:06:07
【问题描述】:

我已成功配置我们的应用程序以将 Quartz 的 MBean 导出到 JMX 中,并且可以在 JConsole 中查看所有内容。我可以运行大部分调度程序操作。

我真正想要运行的是“triggerJob”,但它在 JConsole 中显示为灰色/禁用,因此我无法运行它。

我已经扫描了将 JMX 代码添加到 Quartz 的提交,但看不到 triggerJob 和其他启用的操作之间的任何差异。

有人知道发生了什么吗?

编辑 - 找到解释

另一个 StackOverflow 问题描述了正在发生的事情:Why are some methods on the JConsole disabled

triggerJob(和其他两个操作)采用非原始参数,这些复杂的参数无法在 JConsole 中提供。

我不清楚 MBean 提供者是否可以为 JConsole(或类似的)提供自定义编辑器,但至少我有我的答案。

【问题讨论】:

    标签: quartz-scheduler jmx


    【解决方案1】:

    感谢您的解释。我已经使用以下 Groovy 代码通过 JMX 成功地远程触发了作业:

    def callParams = new Object[3]
    callParams[0] = 'com.test.project.TestJob'
    callParams[1] = 'DEFAULT_JOB_GROUP'
    callParams[2] = new HashMap()
    
    def callSignature = new String[3]
    callSignature[0] = 'java.lang.String'
    callSignature[1] = 'java.lang.String'
    callSignature[2] = 'java.util.Map'
    
    // server is an instance of MBeanServerConnection
    server.invoke('triggerJob', callParams, callSignature)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      相关资源
      最近更新 更多