eclipse-ee4j / eclipse-ee4j/genericmessagingra

Reconnect does not happen when the endpoint release throws exception

Open
#24 8 comments 0 reactions 1 assignee Claimed by @glassfishrobot View on GitHub
Component: core ERR: Assignee Priority: Major Type: Bug
Dominant language
Java
Stars
2
Forks
5
PR merge metrics
No merged PRs in 30d

Description

When a connection with the broker fails the generic ra tries to reconnect to the
broker ( if configured in the activation spec). During this time, the ra tries
to release the endpoint ( stop the pool) before reconnecting to the broker. If
the release endpoint ( which inturn calls afterDelivery() on the enpoint) fails
then the reconnect does not happen. There are 2 issues here

1\. There is a timeout in the inbound resource pool to release all the resources
in the pool, but there is no timeout for releasing a single resource. So ideally
the total pool release timeout should be divided across the resources in the
pool ( simplest solution of course).

2\. If releasing one of the resources in the pool causes an exception, ( which is
not handled now) then the other resources are not released properly. This
indirectly affects the reconnection feature in the following way. When an
existing MQ connection throws an exception then the ReconnectHelper in the RA
tries to reconnect to the broker, before doing this the jms resource pool is
stopped and reinitialized, and if there is an exception while stopping the pool
( which is dependendent on releasing the endpoint) then the pool does not get
re-initialized and the reconnection does not happen. So, the exceptions need to
be handled appropriately.

This issue can can be reproduced by installing a broker on a remote machine and
the app server and ra on one machine and then causing a network outage when the
messages are in transit.
#### Environment
Operating System: All
Platform: All
#### Affected Versions
[v1.6]

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.