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