Skip to content

Session re-creates durable JMS topic exchange between restarts #456

@acogoluegnes

Description

@acogoluegnes

The library creates a session-scoped durable JMS topic exchange for durable topic subscribers with a selector. It uses a UUID in the name. The exchange is not deleted between restarts (to keep messages for closed durable subscribers), so a new session would create yet another exchange. The documentation explains this design. A new binding with the selector arguments is created between the exchange and the subscriber queue.

This avoids creating an exchange for each subscriber, but it makes it impossible to re-use the existing exchange, making the exchanges leak until the subscribers unsubscribe.

It'd be more appropriate to create a dedicated exchange for each durable subscriber with a selector. The name would be based on the topic and subscription names (using a hashing mechanism, to control the length), this way the exchange could be re-used between restarts.

The name could use a MD5 of the topic and subscription names, with a base 64 encoding (+ replaced by -, / by _, = removed). This is the algorithm used for server-named queues.

Original discussion: #454

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions