I'm confused. If you use AMQ configured for reliable storage on disk, how do you lose things with the existing CXF transport?
On Fri, Jul 8, 2011 at 8:23 AM, Florent BENOIT <[email protected]> wrote: > Hi CXF guys, > > I would like to introduce a new CXF transport that we've developed and that > could be contributed back to the CXF community. It is called "Reliable JMS > transport" > > When this transport has been designed, the goal was to have a reliable > transport that we could called "Enterprise Transport" as we wanted to use > transactions and JMS by using containers like Java EE EJB or Spring MDP (we > support both). We don't want to loose any requests or answers and we want to > avoid waiting threads. This transport has not been designed from scratch as > it is using the JMS layer and share some classes with the current CXF JMS > transport but there are some differences between them. But we couldn't > change the current transport as the design is not the same. > > First, let me give you details about this transport and why it's different > from the current JMS CXF transport. > > The current CXF JMS transport is not reliable. For example, if you restart a > client or a server you may loose some requests/answers. This is because the > mechanism that is used is keeping data in memory. So after a JVM crash, all > the data are lost. > Also, for this new transport, we wanted to guarantee the delivery so it is > using transactions. (A transaction manager is then required). > As said before, we wanted to avoid the use of threads waiting for an answer. > If there are 100 requests, we don't want 100 threads waiting their answer. > This is because we can use either EJB MDB or Spring MDP to handle the > answer. In this way, resources are allocated only if an answer is handled > and not during all the waiting time. So the number of threads is > dramatically reduced. Also by relying on EJB MDB or Spring MDP we're based > on existing patterns. > > Here is a link to the documentation of this transport and pictures that are > illustrating this solution : > http://wiki.jonas.ow2.org/xwiki/bin/view/Main/ReliableJMS_Transport_CXF > This illustrates how the > > And the errors handling that is working with all kind of JVM crash : > http://wiki.jonas.ow2.org/xwiki/bin/download/Main/ReliableJMS_Transport_CXF/cxf-reliablejms-execution-flow-simple-failure-english.png > > There are integration tests included in this transport that are launched > through our continous integration tool on http://bamboo.ow2.org > For now, they're using JOnAS as Java EE server as we need a JTA manager and > we test both EJB MDB and Spring MDP providers. > > To sum up, is there an interest in CXF to integrate this transport ? What > kind of changes need to be done, etc. > Also I hope to get some feedback about this protocol. > > Regards, > > Florent > > >
