来自队列OSB JMS WLS的已提取消息中没有用户定义的传输头

时间:2014-04-24 09:18:27

标签: jms message-queue weblogic11g osb

我正面临着我的jms messeages的问题。 案例是: 在我的mainPS中,我根据请求提供了一个employeeId路由到BS,以便雇员使用emploeeId> =而不是给定。响应是员工聚集。 在mainPS中的响应操作中,我遍历整个集合,并且id喜欢将JMS队列作为简单消息逐个添加到JMS队列中。在每个循环迭代中,在if语句中将用户定义的传输头设置为msgName'even'或'odd'取决于出站请求中的employeeId。在loged结果我可以看到标题已正确添加。 然后(仍为每个员工)我发布了我的JMS-BS,它将消息添加到队列中。 当我想在JMSConsumerPS中提取我的消息时,我没有添加任何传输头。消费者将“所有标题”属性设置为“是”。 我登录消费者我的整个

$inbound/ctx:transport 

我得到的是:

<con:transport>
<con:uri>myURI</con:uri>
<con:mode>request</con:mode>
<con:qualityOfService>best-effort</con:qualityOfService>
<con:request xsi:type="jms:JmsRequestMetaData" xmlns:jms="http://www.bea.com/wli/sb/transports/jms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <tran:headers xsi:type="jms:JmsRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <jms:JMSDeliveryMode>2</jms:JMSDeliveryMode>
    <jms:JMSExpiration>0</jms:JMSExpiration>
    <jms:JMSMessageID>ID:&lt;834866.1398327222060.0></jms:JMSMessageID>
    <jms:JMSPriority>4</jms:JMSPriority>
    <jms:JMSRedelivered>false</jms:JMSRedelivered>
    <jms:JMSTimestamp>1398327222060</jms:JMSTimestamp>
    <jms:JMSXDeliveryCount>1</jms:JMSXDeliveryCount>
  </tran:headers>
  <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">UTF-8</tran:encoding>
  <jms:message-type>Text</jms:message-type>
</con:request>

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

只是一个猜测。

  

我正在将传输标头设置在正确的位置。我有一个“发布”   代理中的操作,我正在设置传输标头   发布行动。我移动了“传输标题设置”   在“发布”动作/任务中。现在它按预期工作。

取自https://community.oracle.com/thread/2155298?tstart=165,链接很可能很快就会消失 - Oracle社区......

答案 1 :(得分:0)

非常感谢你。这几乎是同一个问题。我所做的是将“传输标题设置”移动到已发布BS的请求操作中。事情是我在问之前尝试过,但不知道为什么它不起作用。可能原因可能是我开启时通过管道传递所有标题[?]。不知道这是否会造成如此混乱。谢谢你的重播。