Frage

Wir sind mit OpenLDAP-Client-Bibliothek zu einem LDAP-Server conect. Das Problem ist, dass, wenn es keine Aktivität für einige Zeit, Server (oder Firewall in der Mitte) fällt TCP-Verbindung.

Unsere aktuellen Implementierung von „keep-alive“ gerade tut Suche nach baseDN von Zeit zu Zeit - eine bessere Idee?

War es hilfreich?

Lösung 3

Die einzige Alternative scheint Reconnect zu sein:

ldap_set_option( ld, LDAP_OPT_RECONNECT, LDAP_OPT_ON );

Andere Tipps

LDAP Abandon funktionieren könnte:

if (ldap_abandon(ld, 0, sctrls, cctrls) != LDAP_SUCCESS)
    {
       /* handle ldap error */
    };

Es gab eine Diskussion darüber auf der OpenLDAP-Mailingliste:

http://www.openldap.org/lists/openldap- devel / 200905 / msg00008.html

In aller Kürze: Die aufgeben Anfrage eine Meldung an den Server sendet, aber der Server eine Antwort nicht an den Client zurückschicken für Anfragen verlassen. Null ist keine gültige MSGID für LDAP-Anfragen. Da die Null ein ungültiger MSGID ist und der Server nicht reagiert Anfragen zu verlassen, wird der Server in der Theorie ignorieren für msgid Null eine im Stich lassen Anfrage. Dies würde Aktivität auf dem TCP-Socket bereitstellen, um die Firewall zu verhindern, dass die Verbindung fallen.

Siehe auch:

  • RFC 4511, Abschnitt 4.11: Abandon Bedienung
  • RFC 4511, Abschnitt 4.1.1.1: MessageID

http://tools.ietf.org/html/rfc4511

LDAP_OPT_RECONNECT ist in OpenLDAP nicht verfügbar

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top