Hi Pavel,

I am not sure about the transactional part but I can help you with the asnyc interface.

The easiest way to achieve asynch behaviour is to create a method with only an in message and no out message. CXF will by default make the call asynchronous. The new wsdl first example on the subversion head shows this.

The other way to use async is to use a binding file that declares

Pavel schrieb:
* How do async bindings with JMS scale?
I.e. in my mind lots of messages with response time in minutes or perhaps
even hours leads to numerous listeners with numerous selectors.
Also to large correlation map.
The JMS transport uses a spring DefaultMessageListenerContainer. Using the JMSConfigFeature you can tweak it´s params.
http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html

You can define the number of listener threads and then also the number of threads the executor allows. So there should be no problem with overloading. When all listeners and executors are blocked no additional messages will be processed and wait in the JMS queue. You could even make sure that only one message is processed at a time.
* How reliable async binding is for high load/slow response case?
  E.g. if client goes down, correlation map is lost, so are all responses.
Or did I miss the way to recover after that?
I think you can turn off the correlation and use the async interface. So any response should be processed. As you say you have the correlation information in your
data this should work.

If that does not work you could use two one way services. One for request one for reply. So there would be no correlation.

BTW. In your case of purely asynchronous communication that is only correlated by the data it could also be an option to use simply XML over JMS. You can serialize and deserialize with JAXB. Apache Camel allows to do such things very easily. If you are interested I could make a small example for this case.
* Does it work for static response queues?
  E.g. http://cwiki.apache.org/CXF20DOC/jms-transport.html states that
"static reply queue can not be shared by several instances of the service
client", but it is unclear if the issue is still relevant.
The problem was that with a static queue and an open selector the wrong clients would retrieve the responses. But in your case this would be desired.
Also if anyone already has experience with CXF/SOAP/JMS deployment and could
share, that would be really great.

We use SOAP over JMS as the main service transport at EnBW (germany energy company). Till now it works very well. We have not that big throughput though.

Greetings

Christian


--

Christian Schneider
---
http://www.liquid-reality.de

Reply via email to