I've been using auto-acknowledge for my producer up until now. I'm looking for some ways to increase throughput.
So I changed my producer to send messages to a session which is transactional. After sending about 500 messages, I then commit.
What I found was that all the producers are blocked in the commit process.
I increased jms address space:
That didn't change anythign so I increased the window size
Still no change.
There are no exceptions and the producer is permanently blocked:
- locked java.lang.Object@316fcf58
When I <ctrl>-c the program generating an interrupt exception, oddly the current batch of messages waiting for commit are sent and then the program exits.
The code I use is almost identical to the JMS Transactional Session Example except I'm using
HornetQConnectionFactory hqcf = HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.QUEUE_CF, transportConfiguration);
Could anyone please offer any expanation or even a guess as to what might be wrong?