Skip to content

Concurrent Consumers Not Allowed for Durable Subscription [SPR-10037] #14671

@spring-projects-issues

Description

@spring-projects-issues

Ales Bukovsky opened SPR-10037 and commented

While using DefaultMessageListenerContainer for durable subscription listener within Grails 2.1.1 application, the exception is thrown if number of concurrent consumers is increased above 1. This is described in documentation and makes sense in "vanilla" JMS configuration.

Most JMS providers however account one way or another for high-availability solution where multiple listeners share the same subscription. For example: ActiveMQ provides concept of virtual destinations and Weblogic has sharable connection factory for this very purpose. Since the solution for shared access to a single subscription is in these cases provided by lower level (vendor-specific) implementation, concurrent consumer restrictions on teh container level effectively prevents the application from using it.

The simplest solution appears to be the container class extension that bypasses/consumes the corresponding exception. The problem is that a generic invalid argument error is being thrown and the only way to ensure it is the correct one is to actually parse exception message (which is not a good design).

It would be greatly appreciated if the container class actually provides a simple and clean way to suppress the concurrent consumer restriction should the developer explicitly wish so.


Affects: 3.1.2

Referenced from: commits 4058f69, 0933734

Backported to: 3.1.4

Metadata

Metadata

Assignees

Labels

in: messagingIssues in messaging modules (jms, messaging)status: backportedAn issue that has been backported to maintenance branchestype: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions