Ordering Group and Queue-FullSize reload problem
mclu Jun 18, 2009 8:40 AMHi Howard!
Again me with a JBM OrderingGroup BUG.
Using newest Build of 1.4.5 (7304)
My test scenario:
- Client adds 500 Messages (Text with incrementing number) to a Queue.
- The Queue is set to
<attribute name="FullSize">50</attribute> <attribute name="PageSize">25</attribute> <attribute name="DownCacheSize">25</attribute>
- The handler is slower than the producer.
- On receiving side I see well ordered messages.
like:
... 14:20:12,234 INFO [TestMessageHandlerBean] Got:176 mID:ID:JBM-475cc9ad-cbf7-4039-9fb5-8edf19d3d3c1 14:20:12,250 INFO [TestMessageHandlerBean] Got:177 mID:ID:JBM-f9f56a49-5d82-453a-80c7-9d850d090f73 14:20:12,265 INFO [TestMessageHandlerBean] Got:178 mID:ID:JBM-657effd8-3099-47bc-887c-fd4289009635 ...
But if I kill jboss while it handles the 500 messages (lets say at message 100) and restart it I see the following:
The rest(400) of the 500 Messages are in the Queue!
While starting jboss up the messaging system reloads the messages from the database. I can see that inside the table the first 50 messages have page_ord null and the others incrementing numbers.
Then it starts handling by continue at the last message.
101, 102, 103 and so on.
But while reloading messages after the fullsize barrier the order is scambled.
On my first test only one message/number was missing which was handled then after message 500
My second test all messages are fine and in order
My third test results in:
... 14:20:16,265 INFO [TestMessageHandlerBean] Got:208 mID:ID:JBM-c3d5eaa5-01aa-48de-b37d-f193f203fb49 14:20:16,296 INFO [TestMessageHandlerBean] Got:209 mID:ID:JBM-b0e4841c-4acb-487d-9c89-d0fa7045bb7e 14:20:16,328 INFO [TestMessageHandlerBean] Got:210 mID:ID:JBM-1a451bc1-c8a6-43f8-9bb6-e070fff2942a 14:20:16,343 INFO [TestMessageHandlerBean] Got:492 mID:ID:JBM-64b01947-59fb-4404-8e3a-3cae255fb91f 14:20:16,343 ERROR [TestMessageKeeper] Number sequence is not ok. Expected 211 but was:492 14:20:16,359 ERROR [TestMessageKeeper] Resetting to:492 14:20:16,375 INFO [TestMessageHandlerBean] Got:493 mID:ID:JBM-018565ac-4ed3-453c-84fb-14b7251062a4 14:20:16,421 INFO [TestMessageHandlerBean] Got:494 mID:ID:JBM-cfc1f42b-6c5d-4309-8e71-d3c39cd91866 14:20:16,453 INFO [TestMessageHandlerBean] Got:495 mID:ID:JBM-2f052b3a-e2c7-4c58-9615-b3bd299e8d9f 14:20:16,468 INFO [TestMessageHandlerBean] Got:496 mID:ID:JBM-42841e9f-cd32-4aa9-89d7-d0232edc9987 14:20:16,500 INFO [TestMessageHandlerBean] Got:497 mID:ID:JBM-aaf28cb8-6f1c-4e86-aac6-cee850440801 14:20:16,531 INFO [TestMessageHandlerBean] Got:498 mID:ID:JBM-cdfac31d-3b21-497a-8e44-c649c4aead0c 14:20:16,531 INFO [TestMessageHandlerBean] Got:499 mID:ID:JBM-3a2226c1-6375-49b9-baed-ca1945b41e02 14:20:16,562 INFO [TestMessageHandlerBean] Got:500 mID:ID:JBM-0e720c52-1eb9-4b77-9596-9d78e31031ff 14:20:16,578 INFO [TestMessageHandlerBean] Got:211 mID:ID:JBM-20ccaeca-f409-455a-b3b4-69519fd065e2 14:20:16,578 ERROR [TestMessageKeeper] Number sequence is not ok. Expected 501 but was:211 14:20:16,578 ERROR [TestMessageKeeper] Resetting to:211 14:20:16,640 INFO [TestMessageHandlerBean] Got:212 mID:ID:JBM-67d13844-da4b-4a75-a78c-707e7c1b0d9e 14:20:16,718 INFO [TestMessageHandlerBean] Got:213 mID:ID:JBM-84831294-f9d5-431d-982d-38994135c978 14:20:16,765 INFO [TestMessageHandlerBean] Got:214 mID:ID:JBM-e99d350a-f824-42a8-9536-d265a0babc9b 14:27:34,453 INFO [TestMessageHandlerBean] Got:215 mID:ID:JBM-41c58e16-fda5-449f-b508-a7c65f1f3d6e ...
So it seams that the order is not garanteed anymore if the size of the queue exceeds the FullSize setting.
Is this a BUG?
By the way. I tested this Rollback Bug of OrderingGroup. This works now perferct! Good (and fast) Job :-)