> That leaves the option of an out-of-band transformer, it would seem?

That would be my recommendation.  Have a local consumer which receives the 
message and makes the necessary REST call(s) back to A and then finally sends 
the message where it needs to go.


Justin

----- Original Message -----
From: "Matthew Karlsen" <mkarl...@idbs.com>
To: users@activemq.apache.org
Sent: Tuesday, May 3, 2016 8:57:41 AM
Subject: RE: [Artemis, Qpid JMS] Sending persistent message to Artemis blocks 
while transformer runs?

Hello Justin,

Thank you very much for the response.

We have messages being sent from A. These messages need to be small to avoid 
slowing down A. However, B and C require more information than is contained 
within the initial message sent by A. We therefore have two transformers that 
augment the initial message with further information. These transformers make 
rest calls back to A, in sequence, to augment the messages with the required 
information for B and C. This also prevents B and C having to make rest calls 
back to A with the associated security implications.

Unfortunately non-durable messages are not an option. Speeding up the 
transformation logic may work but the speed increase is unlikely to be 
sufficient. That leaves the option of an out-of-band transformer, it would seem?

Thank you & regards,
Matthew



-----Original Message-----
From: Justin Bertram [mailto:jbert...@apache.com] 
Sent: 03 May 2016 14:21
To: users@activemq.apache.org
Subject: Re: [Artemis, Qpid JMS] Sending persistent message to Artemis blocks 
while transformer runs?

A durable message won't be acknowledged by the broker until it is written to 
disk.  The transformation is almost certainly being done before the message is 
written to disk so the sender ostensibly must wait for the transformation to 
complete before it receives the ack from the broker.

Potential workarounds:

  1) Speed up the transformation logic.
  2) Send non-durable messages.
  3) Use an out-of-band transformer so that the message is written to disk 
before the transformation occurs.

Can you elaborate on how you've configured your transformer?


Justin

----- Original Message -----
From: "Matthew Karlsen" <mkarl...@idbs.com>
To: users@activemq.apache.org
Sent: Tuesday, May 3, 2016 7:47:31 AM
Subject: [Artemis, Qpid JMS] Sending persistent message to Artemis blocks while 
transformer runs?

Hello All,

I have a Qpid JMS messaging client sending a persistent message to Artemis. I 
am finding that the send() method is blocking until the transformer I have 
configured in Artemis completes (which takes several seconds).

Can I confirm that this is intended behaviour? i.e. if a client sends a 
persistent message it only gets acknowledged as sent once the transformer 
completes...

Are there any work-arounds whilst ensuring that the messages are stored in 
event of Artemis shutdown?

Thank you & regards,
Matthew

Reply via email to