【问题标题】:Max Size of unique JMSMessageID唯一 JMSMessageID 的最大大小
【发布时间】:2012-04-17 18:26:20
【问题描述】:

我在我的应用程序中使用 JMS 来满足我的一项要求。我想将每个消息的唯一 ID(实际上是 MDB)存储在数据库中,我通过该数据库使用以下代码获取唯一 ID:

@Override
public void onMessage(Message msg) {
        try {
            id = msg.getJMSMessageID();             
        } catch (JMSException e1) {
        } 
}

从上面的代码我有消息唯一 ID,但我想知道任何消息的最大大小可能是什么,因此我需要相应地配置数据库。

我正在使用 Weblogic 服务器。

【问题讨论】:

    标签: java jakarta-ee jms weblogic-10.x


    【解决方案1】:

    JMS 消息 ID 的最大长度由 JMS 提供者定义。

    您至少需要查阅您的提供者文档以确定适合您的数据库列的大小。对于更便携的解决方案,您应该将其设置为相当大的值 - 这样您就不会依赖任何供应商的 JMS 实现来规定列的大小。

    我想说,对于最便携的解决方案,如果可以避免的话,根本不应该存储 JMS 消息 ID。您始终可以为消息生成自己的 ID 并将其存储起来,这样您就可以为自己的目的定义正确的列长度。

    【讨论】:

    • 实际上,我想在流程完成后更新该特定消息的数据库,因为我将消息 ID 存储在数据库中。采纳您的建议创建我自己的 ID,我可以设置该唯一 ID在 Message.setJMSMessageID(XX) 中并通过调用 Message.getJMSMessageID() 在 MDB 类中使用该 ID?
    • 您是否必须与依赖此 ID 的其他系统通信?或者您是否以某种方式在其他地方记录了 ID?因为如果不是,您可以简单地为消息存储自己的唯一 ID,然后在整个处理阶段使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多