Fixpack 8.5.5.2 oder höher

Sicherstellen, dass während der erneuten Erstellung des Kontextpools keine Threads geblockt werden

Verwenden Sie die folgenden Informationen, um sicherzustellen, dass die Threads, die versuchen, mit dem LDAP-Server zu kommunizieren, bei inaktivem Server nicht geblockt werden, bis das Zeitlimit der Leseoperation überschritten ist.

Problem

Wenn ein LDAP-Server inaktiv ist, wird eine Ausnahme ausgelöst, sobald ein neuer Thread versucht, Informationen vom Server zu lesen. Virtual Member Manager versucht dann, den LDAP-Kontextpool erneut zu erstellen. Während der erneuten Erstellung des Kontextpools werden alle eingehenden Threads geblockt. Wenn die Verbindung nicht innerhalb von 120 Sekunden hergestellt werden kann, wird eine Ausnahme ausgelöst und die Threads können die Verarbeitung abschließen. Es werden jedoch alle anfordernden Threads 120 Sekunden lang geblockt, bis die Ausnahme ausgelöst wird.

Lösung

Um sicherzustellen, dass während der erneuten Erstellung des Kontextpools keine Threads geblockt werden, können Sie die folgenden drei angepassten Eigenschaften konfigurieren, um die Anzahl oder die exakte Anzahl der zu blockenden Threads zu verringern:
  • minimizeContextPoolThreadBlock
    Die angepasste Eigenschaft minimizeContextPoolThreadBlock wird verwendet, um das Verhalten für das Sperren von Threads zu definieren, das Anwendung findet, wenn ein LDAP-Server inaktiv ist und versucht wird, Informationen vom Server zu lesen. Wenn der Wert der Eigenschaft true ist, wird nur eine minimale Anzahl von Threads bei Leseoperationen geblockt und die restlichen Threads schlagen umgehend ohne Warnung fehl. Ist der Wert der Eigenschaft false, wird jeder Thread, der die Leseanforderung absetzt, geblockt, bis für den angeforderten LDAP-Server ein Kontext erstellt wird oder bei der Kontexterstellung das Zeitlimit überschritten wird. Die Standardzeit für die Kontexterstellung beträgt 120 Sekunden.
    Information Wert
    Datentyp Boolean
    Standardwert True
  • maxThreadsToBlock
    Die Eigenschaft maxThreadsToBlock wird mit der Eigenschaft minimizeContextPoolThreadBlock verwendet. Wenn die Eigenschaft minimizeContextPoolThreadBlock auf true gesetzt ist, bestimmt maxThreadsToBlock die maximale Anzahl von Threads, die geblockt werden müssen, sobald eine Leseoperation für den LDAP-Server ausgeführt wird.
    Information Wert
    Datentyp Integer
    Standardwert 5
  • bindTimeout
    Die angepasste Eigenschaft bindTimeout gibt die Zeit in Millisekunden an, in der Bindungen vom Typ quick überwacht werden. Alle Bindungen, die mehr Zeit als angegeben benötigen, werden dem Protokoll hinzugefügt, falls das Traceprotokoll aktiviert ist.
    Information Wert
    Datentyp Millisekunden
    Standardwert 1000

Sie können den Wert in der angepassten Eigenschaft bindTimeout in Millisekunden angeben, um das Bindungszeitlimit zu überwachen.

Verwenden Sie den Befehl setIdMgrCustomProperty, um diese Eigenschaften im föderierten LDAP-Repository zu definieren.
$AdminTask setIdMgrCustomProperty {-id <LDAP-Repository-ID> -name minimizeContextPoolThreadBlock -value true}

$AdminTask setIdMgrCustomProperty {-id <LDAP-Repository-ID> -name maxThreadsToBlock -value 5}

$AdminTask setIdMgrCustomProperty {-id <LDAP-Repository-ID> -name bindTimeout -value <Millisekunden>}
Dabei ist LDAP-Repository-ID die Repository-ID des in Virtual Member Manager konfigurierten LDAP-Servers und Millisekunden ist für die Überwachung von Bindungen vom Typ quick vorgesehen. Die Bindungen, die mehr Zeit als angegeben benötigen, werden dem Protokoll hinzugefügt, falls das Traceprotokoll aktiviert ist.
Sie können die Konfiguration speichern, indem Sie den folgenden Befehl nach Abschluss des vorherigen Befehls ausführen:
$AdminConfig save


Rechtliche Hinweise | Feedback