Have there been any signifigant improvements to the various Invocation Layers from the JBoss 2.4.4 release to the most recent releases?
We have a system that takes in hundreds of thousands of messages a day. For most of these messages we some measure of control on how fast we can run them through the system. We use the "in-JVM" IL service within the receiving server and it works just fine for our needs. It is extremely fast. However, problems arise when we pass notifications using the Optimized Invocation Layer to a part of our software that is on a different machine.
We've found that using OIL, that as the (ObejctMessage) messages flow in(at a whopping 2-4 messages a second), as the messages fall behind, there are increasingly large pauses on the receiving end followed by bursts of messages as the Subscriber pulls things off. It almost appears that there is some sort of priority queue that gives priority to the publisher, and only during the odd moment or breaks in the flow of messages, is the subscriber able to catch up. This point of notification has essentially turned into a bottleneck in our processing.
A brief synopsis of our attempts to use the other Invocation layers.
RMI IL: very slow, unable to keep up with even 1 message/second rates, and seems to drop messages
UIL: unsure -- when attempting to use this layer, JBoss hung when trying to start the first of our beans that used this ConnectionFactory.
The performance difficulties of the OIL Service were a bucket of cold water in the face, and it left us scratching our heads... It could be that there are some configuration issues that are eluding us. We are currently using JBoss 2.4.4 only because it appeared stable when we began development, and if there have been large improvements in the IL's then perhaps it's time for an upgrade. It's a shame, the rest of our system which is built around JBoss runs very quickly until we have to publish something outside the JVM.
In addition would there be advantages to batching up
messages prior to publishing(fewer large ObjectMessages verses many smaller ones)? It looks as though we may have to switch to a 3rd party message queue system if we can't find some way to tweak things.
Thanks in advance for any response -- Overall, JBoss is a really amazing product. It's a shame that the majority of our needs are in the messaging department.