activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Albert Barmettler (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-5125) Broker and clients hang
Date Fri, 28 Mar 2014 17:20:16 GMT

     [ https://issues.apache.org/jira/browse/AMQ-5125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Albert Barmettler updated AMQ-5125:
-----------------------------------

    Description: 
JMS clients start to hang after a while in calls such as session.createObjectMessage(). Both
the broker and the hanging clients can't be easily shut down when this happens - only forcefully
applied kill's do the job.

I'm using queues and transactional sessions. All clients (producers and consumers) are in
the same Java VM. There is only one JMS connection between the application and the broker.
Each client has its own session, but they all share the same connection.

Normally, the data directory of the LevelDb contains only a few log files. But in my case,
the number of log files is steadily increasing.

Furthermore, I was able to track down the issue to following circumstance: The problem only
occurs, when consumers do a rollback instead of a commit when they receive the message. The
rollback / redelivery works as expected - the same message is received again after a previous
rollback.

As far as I can tell, the problem does not occur with KahaDb.

I'll attach a test program that provokes the error. It sets up a few hundred queues, consumers
and producers. The consumers just receive the message and commit the session, but they also
do "random" rollbacks. It can be observed immediately that the number of files starts increasing
in the data directory. After a few minutes, the clients hang - sometimes sooner, sometimes
later. I'll also attach the config file for the broker.

I am aware, that heavy rollbacking should not happen in normal operation. But from a long
term stability perspective, this is a blocker for us.



  was:
JMS clients start to hang after a while in calls such as session.createObjectMessage(). Both
the broker and the hanging clients can't be easily shut down when this happens - only forcefully
applied kill's do the job.

I'm using queues and transactional sessions. All clients (producers and consumers) are in
the same Java VM. There is only one JMS connection between the application and the broker.
Each client has its own session, but they all share the same connection.

Normally, the data directory of the LevelDb contains only a few log files. But in my case,
the number of log files is steadily increasing.

Furthermore, I was able to track down the issue to following circumstance: The problem only
occurs, when consumers do a rollback instead of a commit when they receive the message. The
rollback / redelivery works as expected - the same message is received again after a previous
rollback.

As far as I can tell, the problem does not occur with KahaDb.

I'll attach a test program that provokes the error. It sets up a few hundred queues, consumers
and producers. The consumers just receive the message and commit the session, but they also
do "random" rollbacks. It can be observed immediately that the number of files starts increasing
in the data directory. After a few minutes, the clients hang - sometimes sooner, sometimes
later. I'll also attach the config file for the broker.

I am aware, that heavy rollbacking should not happen in normal operation. But from a long
term stability this is a blocker for us.




> Broker and clients hang
> -----------------------
>
>                 Key: AMQ-5125
>                 URL: https://issues.apache.org/jira/browse/AMQ-5125
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.9.0
>         Environment: Windows 7
> ActiveMQ 5.9.0 with LevelDB storage adapter enabled
>            Reporter: Albert Barmettler
>            Priority: Blocker
>         Attachments: VM.PNG, activemq.xml, src.zip
>
>
> JMS clients start to hang after a while in calls such as session.createObjectMessage().
Both the broker and the hanging clients can't be easily shut down when this happens - only
forcefully applied kill's do the job.
> I'm using queues and transactional sessions. All clients (producers and consumers) are
in the same Java VM. There is only one JMS connection between the application and the broker.
Each client has its own session, but they all share the same connection.
> Normally, the data directory of the LevelDb contains only a few log files. But in my
case, the number of log files is steadily increasing.
> Furthermore, I was able to track down the issue to following circumstance: The problem
only occurs, when consumers do a rollback instead of a commit when they receive the message.
The rollback / redelivery works as expected - the same message is received again after a previous
rollback.
> As far as I can tell, the problem does not occur with KahaDb.
> I'll attach a test program that provokes the error. It sets up a few hundred queues,
consumers and producers. The consumers just receive the message and commit the session, but
they also do "random" rollbacks. It can be observed immediately that the number of files starts
increasing in the data directory. After a few minutes, the clients hang - sometimes sooner,
sometimes later. I'll also attach the config file for the broker.
> I am aware, that heavy rollbacking should not happen in normal operation. But from a
long term stability perspective, this is a blocker for us.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message