1 Reply Latest reply on Oct 4, 2011 3:08 PM by Clebert Suconic

    Core Bridge not propagating JMSExpiration Property

    bence magyar Newbie

      Hi HornetQ community:

       

      I have two hosts:  Host A, and Host B.  There is a HornetQ 2.2.8 EAP standalone server running on on each host.  Each HornetQ server has a single topic configured:  let us call it "exampleTopic".

       

      Host A has a msg publisher writing to exampleTopic on Host A.  The messages get diverted from the topic to a queue, then "bridged" to exampleTopic on Host B.  There is a single subscriber reading the messages off exampleTopic on Host B.

       

      My Bridge is set up like:

       

      <bridges>

            <bridge name="example-bridge">

            <queue-name>jms.queue.exampleQueue</queue-name>

            <forwarding-address>jms.topic.exampleTopic</forwarding-address>

            <static-connectors>

                 <connector-ref>remote-connector</connector-ref>

            </static-connectors>

            </bridge>

      </bridges>

       

       

       

      All is well with this simple setup untill I start adding a TimeToLive property to the JMS messages being sent out on Host A.  Before I send out the messages, I confirm that the JMSException property is correctly set = GMT+TTL.

       

      I also print out the JMSException property on Host B where the messages are recieved.  Only this time JMSExpiration = 0.  (Never Expire!)

       

      So my question is:

      At what point in this topology is the JMSExpiration value being wiped out?  (i.e not propogated)

       

      Is it when the the message gets diverted from my topic to my queue?

       

      Is it when the message gets bridged from the queue to the remote host?

       

       

      Thanks,

        • 1. Re: Core Bridge not propagating JMSExpiration Property
          Clebert Suconic Master

          I'm not aware of anything that would remove that... all we do is to forward the message again.

           

          Maybe you are hitting a bug. Can you make sure you don't have any transformers or anything doing that?

           

          If you can debug BridgeImpl...

           

          Add BridgeImpl to do trace log (FINEST if you are using standalone), and look at what's being sent before on this:

           

           

                  

                   if (log.isTraceEnabled())

                   {

                      log.trace("XXX going to send message " + message);

                   }

                  

          BTW: I just removed the XXX from the code :-) It was a mistake.. I sometims will place XXX on the traces I need while debugging stuff.