【问题标题】:Using JMS to put a Message in a MQ Queue And Consuming Message by SPLUNK使用 JMS 将消息放入 MQ 队列并通过 SPLUNK 消费消息
【发布时间】:2015-02-02 18:34:03
【问题描述】:

我正在尝试将消息放入 MQ 队列。这是我的源代码:

        QueueConnection queueConn;
        QueueSession queueSession;
        QueueSender queueSender;

        queueConn = connectionFactory.getConnection();
        queueSession = queueConn.createQueueSession(false,
                Session.AUTO_ACKNOWLEDGE);
        queueSender = queueSession.createSender(queueSession
                .createQueue(KEY_CONFIG_QUEUE_NAME));
        queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

        TextMessage message = queueSession.createTextMessage(logBase);

        queueSender.send(message);

我没有来自队列消费者的源代码,即发送消息给 SPLUNK 的那个。但是在 SPLUNK 控制台上,我可以意识到该消息是由 JMS HEADER + 我的文本消息 (logBase) 组成的。

我喜欢没有 JMS 标头的消息。有人可以帮助我了解问题出在哪里吗?可以在消费端吗?可能是错误或缺少 SPLUNK 配置??

【问题讨论】:

    标签: java jms ibm-mq mq splunk


    【解决方案1】:

    假设您无法更改消费者的源代码,有一种方法可以通过管理方式执行此操作。您可以更改队列定义,以便不将这些消息属性提供给获取应用程序。

    ALTER QLOCAL(q-name) PROPCTL(NONE)
    

    相关链接

    【讨论】:

    • 你好莫拉格。我们正在尝试更改 Splunk 配置,以便我们可以定义 de 消息格式。更改队列配置不是我们的选择。
    • 我很好奇为什么无法更改队列管理器配置(例如队列定义)?对于大多数环境来说,更改队列定义比更改应用程序要容易得多。
    • 您好,莫拉格,感谢您的回答。这是不可能的,因为该队列被许多其他应用程序使用,我们不知道该配置在考虑这种情况时会产生什么影响。
    【解决方案2】:

    如果您能够并且乐于更改生产者,则可以查看 MQ JMS 目标的 Target Client 属性。

    这会通知 JMS 客户端消费应用程序不是 JMS 应用程序,因此它会删除额外的标头。

    【讨论】:

    • 很遗憾我不能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2013-08-08
    • 2015-09-19
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多