【发布时间】:2014-01-20 16:34:24
【问题描述】:
我正在编写一个 Java 批处理,它正在侦听来自队列 (Oracle AQ) 的消息并将它们发送到另一个队列 (Tibco EMS),在那里它们由 Tibco 进程 (BW) 处理。
问题在于 Oracle AQ 驱动程序会自动向消息(JMSXGroupID、JMSXGroupSeq)添加一些属性,这些属性在 Tibco 进程处理它们时会导致错误,因为它们具有错误的值:JMSXGroupSeq 应该是一个 int 但设置为 null。 Tibco 在尝试解析消息属性时出错...
所以我想从所有消息中只删除这两个属性,但似乎 jms api 只提供 clearProperties() 方法但没有单个属性删除方法(我使用的是 javax.jms.Message 接口)。
目前,我可以看到两种解决方案:
为这 2 个属性设置正确的值,因为我假设它们会 不会被 Tibco 进一步使用
读取所有属性并重建没有导致问题的 2 的消息。但是这种做法很丑……
谁有其他解决方案?
【问题讨论】: