Strictly speaking, this is not a problem, rather it's a curiosity.
ejabberd 2.1.9
I use LDAP for authentication, shared roster and vcard. My full config is here.
The only place where I define the LDAP servers is in the global auth section. There I define two servers.
I also use override_* to make sure that no older config is effective.
As I can see in ejabberd.log, and also in the logs on my LDAP servers, there are repeating
=WARNING REPORT==== 2012-02-15 23:15:12 ===
W(<0.297.0>:eldap:610) : LDAP server closed the connection: dc2.pi.local:636
In State: active
This is expected: the LDAP policy on the servers is set to close idle connections after 900 seconds.
What I don't understand is this:
there are seven distinct process ids in ejabberd.log that report these disconnects (once every 15 minutes each), and I would expect only 6 (2 for auth, 2 for shared roster, and 2 for vcard). Where does the seventh come from?
Also, isn't it possible to make some optimization here:
- reuse already existing ldap pool instead of creating new for every module (if connection parameters are the same, of course);
or
- don't reopen timed out connection instantly, but wait for some activity and connect on demand?
Thank you for attention.