-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Rebalancing connections #257
Comments
it is not just about the initial connection. the typical use case is:
another approach (may be simpler) to solving this problem is to recognize a clustered artemis url this is assuming we work closely with the underneath pool.
could a functionally equivalent be supported? we do not need a MDB, but we do need a managed listener with JTA integration. |
Aside from the fact that I lack a deeper understanding of that particular feature of JMS, I currently do not have time to work in this issue. I have, however, a few thoughts about this, especially wrt. pooling. For pooling, we rely on https://github.com/quarkiverse/quarkus-pooled-jms (cc @zhfeng), so I am not really sure how much control we have on how many connections go where. I am not even sure we can easily integrate cluster connections into pooled-jms. |
I'm playing around with https://github.com/gastaldi/quarkus-jca, which enables you to deploy the Artemis JCA adapter in Quarkus. It's an early prototype, so don't get your hopes too high (it's in my organization, because I am not yet sure if or when it should be promoted to Quarkiverse org) :) I can see it works with the rebalance connection flag set BTW (the warnings in the log were displayed when I shutdown the Artemis server) and it recovered when I got it back up:
|
@quarkiverse/quarkiverse-artemis Do you think it would make sense to have an extension here for cases where you'd need the Artemis RA? The extension should provide a |
It should be possible (and relatively straight-forward). Counter-question: is there a reason why we should have a separate extension? Why not simply always provide the The main concern I have is that the feature should also work with quarkus-pooled-jms. As I said before: I am not familiar (enough) with JCA to understand whether providing the factory here is sufficient, or whether a separate integration on quarkus-pooled-jms would be needed. |
Great!
I am not sure that would work because the extension will be in charge of producing ConnectionFactories and other features that may overlap with the current extension, but I'm happy to be proven wrong.
I think the RA already does this job so I am not sure if the quarkus-pooled-jms is necessary TBH, but again, happy to be proven wrong 😉 |
IMO, quarkus-ironjacamar (JCA) can provide pooling and XA support. So I think there is no need for I'd like to provide a PR. |
@gastaldi is iron-jacamar available for quarkus |
@turing85 it is built against Quarkus 3.2.x, so I believe yes |
Nice! This means we can backport it to quarkus-artemis |
The activemq-artemis JCA Resource archive supports rebalancing of all inbound MDB connections when the underlying Artemis cluster topology changes so that when nodes are added/removed from the cluster, the MDB can connect to them instead of being stuck to the topology when the MDB initially connected to the cluster.
More info here:
Since MDBs are not supported in this extension, it would be nice if the extension could support this feature for JMS consumers (perhaps by having a
quarkus.artemis.rebalance-connections=true
config option).The text was updated successfully, but these errors were encountered: