cjwmorgan-sol commented on issue #4: [WIP] Failover implementation URL: https://github.com/apache/activemq-nms-amqp/pull/4#issuecomment-503306794 I appreciate this is a work in progress, so perhaps you already have plans for what follows. From what I see so far, here are some consideration that may effect your plans. Using QPID JMS as a model for the provider interface is excellent. It was my inspiration as well when separating the functional layers. The NMS 'cloak' and JMS 'facade' are pretty much a one to one mapping. You may find a lot of useful code here to save retyping in the same classes and methods. There are a couple of fundamental differences between Proton AMQP and AmqpNetLite that need to considered. There is the fundamental lack of control of the transport session. This forced me to defer creating the connection until some action, like start, was taken just to allow the application to set the connection ID. I see you have reworked this since yesterday along the same lines. A bigger problem is that Proton provides a JMS friendly threading model. AmqpNetLite does not, and all the callbacks occur on the transport thread. JMS/NMS requires callbacks occur on known/dedicated threads for each session. I chose a simple model, where a thread per session is created to make callbacks as well as a thread per connection for exceptions. The AmqpNetLite transport callback just queue events to be processed on the dedicated threads. This could perhaps be overhauled using .NET thread pools or task, but it is important to take into account in your design. The NMS Provider cannot be simply pass through to AmqpNetLite, it must take a more active role to control the threading model. I'll try to keep up to date on the changes as they come.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
