Hi all,
I'm new here although active within the progress/openedge community for many years now (4GL/ABL).
I was wondering if there are people out there that could help with getting more insights on the dimensioning of brokers. We have a hot-hot failover setup in 7.6.2 (on RedHat) and we want to connect a 600 clients directly to the databrokers. At this moment all requests are channeled through a single server (and a single point of failure). Each client needs a listener but also a sender (at least one). I build my own adapter for this. At this moment the sender will try to reuse the connection every time it needs to send a message (but this is strictly not needed). A small calculation will show that we would have 600 listeners (next to a 50 now) and between 600 and 3000 senders (next to 50 now). The maximum throughput for all these connections would be 12000 messages send and 12000 messages received a day during ofice hours. Not that much in my opinion.
We have 2 databrokers (which each have a backup). Should they be able to handle the prox. 4000 connections or should my sender be changed to disconnect after each message send? This would result in a prox. of 1000 connections at any time.
BTW. The servers are both dual quad-core servers with each 64Gb of RAM.
All input is welcome!
Marc
I'm not clear on how you 600 clients translates into 4000 connections, but you should look to reduce the number of simultaneous connections to a broker if possible. Each active connection will translate into at least one thread in the broker JVM (possibly more than one per connection for a HTTP Tunneling acceptor), the overhead of stack space and context switching for 2000+ threads per broker JVM is less than optimal. Rather than 'disconnect after each message send', you may want to consider connection sharing/pooling.
You are correct, your max throughput per day is not enough to cause the broker to break a sweat.
Hi,
The math behind the 4000 connections is that the senders could be started from each session being used (which could in theory add up to approx. 3000 sessions) and the listeners are approx 600 (shops). That is also based on the current setup of the adapter. For now I want to redesign for the senders to drop the connection after each send messages. (Each shop sends approx 20-50 messages a day so no real advantage on skipping the disconnect and connect).
Maybe in the future I would need to reconsider the adapter setup.
Marc
"The math behind the 4000 connections is that the senders could be started from each session being used (which could in theory add up to approx. 3000 sessions) ..." - there is a significant difference in broker overhead for sessions vs. connnections. You seem to be equating the two. Approximately how many connections would the 3000-4000 sessions be spread across?