JMS cause of FIFO problems?

Hi there,

I have seen some strange behaviour with JMS and the FIFO-flag and just want to see if other people have noticed the same thing...

My application is using JMS and a Master-worker configuration. Both are configured using Spring. I've used two pages as example to set this up:

When using these functions separately (that is: both configurations not active at the same time), I have no problems and everything works just fine.

But as a test I want my application to send and receive a JMS message and then execute a worker call, all initiated from a single method. This is where I'm having problems.

The JMS call still works without problems. But the master-worker call fails. The exception I'm getting is:

Exception in thread "Thread-11" java.lang.IllegalStateException: com.j_spaces.core.InvalidFifoClassException: Entry was introduced with a non-matching FIFO order.
        Rejected attempt to set the class org.springmodules.javaspaces.gigaspaces.remote.GigaSpacesMethodResultEntry with FIFO false
         Class FIFO-type is known as true
        at org.springmodules.javaspaces.DelegatingWorker$1.doInSpace(DelegatingWorker.java:116)
...

Using the space-browser, list classes shows the following list with master-worker only:

  • org.springmodules.javaspaces.entry.AbstractMethodCallEntry
  • org.springmodules.javaspaces.gigaspaces.remote.GigaSpacesMethodResultEntry
  • org.springmodules.javaspaces.gigaspaces.remote.GigaSpacesServiceSeekingMethodCallEntry

And list classes with both JMS and master-worker:

  • MyMessage (my JMS message object)
  • MyQueue (the JMS queue I used)
  • org.springmodules.javaspaces.entry.AbstractMethodCallEntry
  • org.springmodules.javaspaces.gigaspaces.remote.GigaSpacesMethodResultEntry
  • org.springmodules.javaspaces.gigaspaces.remote.GigaSpacesServiceSeekingMethodCallEntry

When not using the JMS config, the GigaSpacesMethodResultEntry and GigaSpacesServiceSeekingMethodCallEntry classes have been marked with: 'FIFO enabled: false'. But when enabling the JMS config at the same time as the master-worker config, these classes are marked as: 'FIFO enabled: true' !

How can this have changed? I think it is a side-effect of the creation of the JMS queue object, which was created with FIFO enabled (because it's a queue and it's supposed to be FIFO). But it seems like the FIFO-flag is sticky when creating other objects.... ? :?

Any ideas?

This thread was imported from the previous forum.
For your reference, the original is available here

asked 2007-04-13 08:55:01 -0500

martijn gravatar image

updated 2013-08-08 09:52:00 -0500

jaissefsfex gravatar image
edit retag flag offensive close merge delete