C++ Broker - Limiting Connections based on ProcId

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

C++ Broker - Limiting Connections based on ProcId

Weibel, David C
Hi,


I inherited an existing application leveraging the Apache QPid C++ broker.  According to my those before me things have been working fine for years.  Although I'm starting to suspect they were just lucky.


Recently I was tasked to migrate this application to docker/swarm.  The side effect of this is that every client now in its own container and they each now have the procid/pid of 1.  They do connect with unique client IP addresses to the broker though.


The problem I'm encountering is one the first client is allowed to connect.  (Within docker-compose there was an open 'pid: host' which changed the pid assignment in the containers.  This allowed more clients to start connecting.  Although this option is not available in docker/swarm.


This lead me to notice that things are working by luck in the real application.  When I client attempts to connect to the broker with a procid/pid that is already connected if fails and the process restarted which caused it to get a new procid/pid.  After awhile things would stabilize and things would work.


I'm trying to understand how unique connection/sessions are identified?  I'm assuming we are doing something wrong in the existing design related to this topic.  Any pointers are appreciated.


Thanks

-David


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: C++ Broker - Limiting Connections based on ProcId

Gordon Sim
On 04/03/2019 10:59 pm, Weibel, David C wrote:

> Hi,
>
>
> I inherited an existing application leveraging the Apache QPid C++ broker.  According to my those before me things have been working fine for years.  Although I'm starting to suspect they were just lucky.
>
>
> Recently I was tasked to migrate this application to docker/swarm.  The side effect of this is that every client now in its own container and they each now have the procid/pid of 1.  They do connect with unique client IP addresses to the broker though.
>
>
> The problem I'm encountering is one the first client is allowed to connect.  (Within docker-compose there was an open 'pid: host' which changed the pid assignment in the containers.  This allowed more clients to start connecting.  Although this option is not available in docker/swarm.
>
>
> This lead me to notice that things are working by luck in the real application.  When I client attempts to connect to the broker with a procid/pid that is already connected if fails and the process restarted which caused it to get a new procid/pid.  After awhile things would stabilize and things would work.
>
>
> I'm trying to understand how unique connection/sessions are identified?  I'm assuming we are doing something wrong in the existing design related to this topic.  Any pointers are appreciated.

What client library (and protocol version) are the clients using? Is
there any error logged by the broker when the client connections are failed?

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]