Our attempt at copying the batching in the Bridge class has hit a bit of a problem. Our
version didn't work as even though all messages were passed through and processed (and
commited), some processed messages were still visible in the database after, and were
re-processed after a jboss restart. These lingering messages were always the first message
in the messages collection per transaction. In the jmx-console the messages are marked as
currently being delivered, but the bridge believes (and rightly so) that it has delivered
all messages
Hence we have created a test based on the Bridge class, all we have changed is the jboss
logger to become an apache logger, and instead of the ConnectionFactoryFactory and
DestinationFactory jndi wrappers we're just passing the
ConnectionFactory/Destinations directly. Messages are read off a test queue and then put
on the dead letter queue after.
Our test uses a queue with the following config on the queue:
clustered=true, maxdeliveryattempts=1
The connectionFactory (we were using ClusteredConnectionFactory) has:
supportsfailover=true, supportsLoadBalancing=true,prefetchsize=1000.
The Bridge class is created using:
new Bridge(getConnectionFactory(), getConnectionFactory(),
getQueue("queue/testingQueue"), getQueue("queue/DLQ"), null, null,
null, null, null, 1000, 10, Bridge.QOS_ONCE_AND_ONLY_ONCE, 100, 1000, null, null, false);
The connection factories are the same, so that local tx's are used.
This is happening consistently, 5 messages in 1000 so I think it probably more likely mis
configuration than anything else. The environment remains the same as earlier in the post
(Jboss AS 4.2.2.GA and JBM 1.4.0.SP3 backed by a mysql 5 database and JRE 6 on a debian
OS)
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4136342#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...