[ https://issues.apache.org/jira/browse/CXF-6531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schneider resolved CXF-6531. -------------------------------------- Resolution: Not A Problem Can be solved by using redelivery limits > Exception-triggerring messages are re-delivered in endless loop > --------------------------------------------------------------- > > Key: CXF-6531 > URL: https://issues.apache.org/jira/browse/CXF-6531 > Project: CXF > Issue Type: Bug > Components: JMS, Transports > Affects Versions: 3.0.5 > Reporter: Waldemar Szostak > Assignee: Christian Schneider > Priority: Critical > > In one-way communication (fire & forget), if: > * there is an exception thrown by the user code, or > * the message is not a valid SOAP message, or > * the message's SOAP body is not a valid XML, > the exception is not handled, but instead propagated down to the message > listener causing the session to be rolled back (and thus the message to be > un-acknowledged), which sort of puts the message back in the topic and makes > it eligible for a re-delivery. > Of course, the message itself is not modified, so we have a circle.. > Even though this is one-way communication, I would either expect a fault > message to be generated, or the exception to be logged as error and have the > message acknowledged ('removed from the topic'). The latter scenario at least > for validation or unmarshalling exception - the exception will always be > generated then (unlike the user code exceptions which may be due to temporary > problems). > In my project, I need transactions in my fire&forget communication to ensure > the message will be processed, despite any temporary problems, eg, with the > database (=exceptions from my code). However, in situations when a client > sends an invalid message to my service, I definitely do not want this message > to block my service by being constantly re-delivered. > Especially, please note that currently I have no control via my code or CXF > configuration to have such invalid XML messages simply disregarded. Either I > need to turn off transactions (which I do not want to do because of my > business exceptions which should cause the message to be re-delivered), or > override the is-one-way property (see also JMSDestination.processExceptions): > {code}message.getExchange().setOneWay(false);{code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)