Table of contents
TOC
Comprimi il sommario
Espandi il sommario

La modalità di gestione dei cookie Server LDAP

Bill Mathers|Ultimo aggiornamento: 10/03/2017
|
1 Collaboratore

Si applica a: Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

In LDAP, impostare alcuni risultati di query in un risultato di grandi dimensioni. Tali query presentano alcuni problemi al Server di Windows.

La raccolta e la creazione di questi set di risultati di grandi dimensioni è notevole. Molti degli attributi devono essere convertiti da una rappresentazione interna per la rappresentazione di filo LDAP. Per molti attributi, una conversione da un formato interno, spesso binario, deve verificarsi in un formato basato su testo UTF-8 nel frame di risposta LDAP.

Un'altra sfida è che i set di risultati con decine di migliaia di oggetti diventano enormi, facilmente diverse centinaia Mega-byte. Questi quindi richiedono numerose virtuale spazio indirizzo e il trasferimento in rete ha anche problemi come lo sforzo intero viene perso quando la sessione TCP suddivide in transito.

Queste capacità e operazioni inerenti hanno indotto gli sviluppatori Microsoft LDAP per la creazione di un'estensione LDAP nota come "Query di paging". Che viene implementato un controllo LDAP per separare una query di grandi dimensioni in blocchi più piccoli gruppi di risultati. È diventato uno standard RFC come RFC 2696.

Il metodo di Query di paging utilizza le dimensioni della pagina impostare dal client o tramite una criteri LDAP ("MaxPageSize"). Il client deve sempre attivare il paging mediante l'invio di un controllo LDAP.

Quando si lavora su una query con troppi risultati, ad un certo punto viene raggiunto il numero massimo di oggetti consentito. Il server LDAP pacchetti il messaggio di risposta e aggiunge un cookie che contiene informazioni necessarie per continuare in seguito la ricerca.

L'applicazione client deve considerare il cookie come blob opaco. È possibile recuperare il numero di oggetti nella risposta e continua la ricerca in base alla presenza del cookie cookie.The continua la ricerca inviando la query al server LDAP nuovamente con gli stessi parametri come oggetto di base e filtro e include il valore del cookie che è stato restituito nella risposta precedente.

Se il numero di oggetti non riempire una pagina, la query LDAP è completa e la risposta non contiene alcun cookie della pagina. Se nessun cookie viene restituito dal server, il client necessario considerare il tipo di ricerca per essere completata.

Se viene restituito un errore dal server, il client necessario considerare la ricerca di paging per l'esito negativo. Nuovo tentativo in corso la ricerca produrrà riavviare la ricerca dalla prima pagina.

Il Server Windows restituisce il cookie al client e talvolta le informazioni relative ai cookie sul server. Questo informazioni sono memorizzate sul server in una cache e presenta alcuni limiti.

Il cookie inviato al client dal Server in questo caso, viene utilizzato anche dal server per cercare le informazioni dalla cache del server. Quando il client continua la ricerca per pagina, il Server di Windows utilizzerà cookie del client, nonché tutte le informazioni correlate dalla cache del cookie server per continuare la ricerca. Se il server è possibile trovare informazioni correlate cookie dalla cache del server per qualsiasi motivo, la ricerca viene interrotta e viene restituito l'errore al client.

Ovviamente, il server LDAP fungere da più client contemporaneamente e anche più di un client alla volta può avviare una query che richiedono l'utilizzo di cookie server cache.Thus di Windows Server vi è una verifica dell'utilizzo di pool di cookie e limiti vengono allocati in modo che il pool di cookie non richiede troppe risorse. I limiti possono essere impostati dall'amministratore utilizzando le seguenti impostazioni nel criterio LDAP. Le impostazioni predefinite e le spiegazioni sono:

MinResultSets: 4

Il server LDAP non viene considerata la dimensione massima del pool descritta di seguito, se ci siano meno MinResultSets voci nella cache di cookie del server.

MaxResultSetSize: 262,144 byte

La dimensione della cache totale cookie sul server non deve superare il numero massimo di MaxResultSetSize in byte. In caso affermativo, i cookie a partire dal meno recente vengono eliminati fino a quando il pool è inferiore a MaxResultSetSize byte o inferiore a MinResultSets cookie sono nel pool. Ciò significa che utilizzando le impostazioni predefinite, il server LDAP considera un pool di 450KB sarà OK se sono presenti solo 3 cookie memorizzati.

MaxResultSetsPerConn: 10

Il server LDAP consente non più di MaxResultSetsPerConn i cookie per la connessione LDAP nel pool.

La rimozione delle informazioni dei cookie dalla cache del Server LDAP non comporta un errore immediato per le applicazioni in tutti i casi. Le applicazioni possono riavviare dall'inizio la ricerca di paging e completarlo in un altro tentativo. Alcune applicazioni presentano questo tipo di un meccanismo di ripetizione per aggiungere la robustezza.

Alcune applicazioni possono eseguire una ricerca di pagina e mai completarla. Ciò potrebbe rendere le voci del server LDAP cache dei cookie, che è gestita tramite il meccanismo nella sezione 4. Ciò è essenziale per liberare la memoria del server per le ricerche LDAP active.

Cosa succede quando questo tipo di cookie viene eliminato dal server e il client continuerà la ricerca con questo handle cookie? Il Server LDAP non trova il cookie nel server di cache dei cookie e restituirà un errore per la query, la risposta di errore sarà simile a:

00000057: LdapErr: DSID-xxxxxxxx, comment: Error processing control, data 0, v1db1  
Nota

Il valore esadecimale "DSID" variano a seconda della versione di compilazione dei file binari server LDAP.

Il Server LDAP è in grado di registrare gli eventi tramite la categoria "interfaccia Ldap 16" di chiave diagnostics NTDS. Se si imposta questa categoria a "2", è possibile ottenere i seguenti eventi:

Log Name:      Directory Service  
Source:        Microsoft-Windows-ActiveDirectory_DomainService  
Event ID:      2898  
Task Category: LDAP Interface  
Level:         Information  
Description:  
Internal event: The LDAP server has reached the limit of the number of Result Sets it will maintain for a single connection.  A stored Result Set will be discarded.  This will result in a client being unable to continue a paged LDAP search.  
Maximum number of Result Sets allowed per LDAP connection:  
10  
Current number of Result Sets for this LDAP connection:  
11  

User Action  
The client should consider a more efficient search filter.  The limit for Maximum Result Sets per Connection may also be increased.  
Log Name:      Directory Service  
Source:        Microsoft-Windows-ActiveDirectory_DomainService  
Event ID:      2899  
Task Category: LDAP Interface  
Level:         Information  
Description:  
Internal event: The LDAP server has exceeded the limit of the LDAP Maximum Result Set Size. A stored Result Set will be discarded.  This will result in a client being unable to continue a paged LDAP search.   

Number of result sets currently stored:   
4   
Current Result Set Size:   
263504   
Maximum Result Set Size:   
262144   
Size of single Result Set being discarded:   
40876   
User Action   
The client should consider a more efficient search filter.  The limit for Maximum Result Set Size may also be increased.  

Gli eventi indicano che è stato rimosso un cookie memorizzato. Ciò significa che un client ha riscontrato l'errore LDAP, ma solo che il Server LDAP ha raggiunto i limiti di amministrazione per la cache. In alcuni casi, un client LDAP potrebbe aver abbandonato la ricerca di paging e potrebbe non vedere mai l'errore.

Se non si verificano mai errori di ricerca LDAP del dominio, non è necessario monitorare il pool di cookie LDAP server pagina ricerca. Nel caso in cui si vedere pagina LDAP ricerca errori correlati nel proprio ambiente, potrebbe essere un problema con i limiti di amministrazione del pool di cookie.

Eventi 2898 e 2899 sono gli unici modi per sapere che il server LDAP ha raggiunto i limiti di amministratore. Quando si verifica tale errore di query LDAP out poiché il controllo precedente errore di elaborazione, è necessario esaminare aumentando i limiti di uno o più delle impostazioni dei criteri LDAP menzionate nella sezione 4, a seconda di quale evento si desidera ottenere.

Se viene visualizzato sul Server LDAP a controller di dominio/evento 2898, si consiglia di impostare MaxResultSetsPerConn su 25. Più di 25 ricerche di paging in parallelo su un'unica connessione LDAP non è normale. Se si continua a vedere evento 2898, si consiglia di analizzare l'applicazione client LDAP che rileva l'errore. Si sarebbe il sospetto che in qualche modo Ottiene bloccato il recupero di ulteriori risultati, lascia il cookie in sospeso e si riavvia una nuova query. Per vedere se l'applicazione a un certo punto avrebbe cookie sufficienti per la propria, è inoltre possibile aumentare il valore di MaxResultSetsPerConn oltre 25.When vedere eventi 2899 registrati nei controller di dominio, il piano sarà diverso. Se il server di controller di dominio/LDAP viene eseguito su un computer con memoria sufficiente (diversi GB di memoria libera), si consiglia di impostare il MaxResultsetSize per il server LDAP a > = 250MB. Questo limite è sufficiente per grandi volumi di ricerche pagina LDAP anche su grandi directory.

Se si è ancora visualizzare gli eventi 2899 con un pool di 250MB o più, è probabile che con molti client con un numero molto elevato di oggetti restituiti, eseguire una query in modo molto frequente. I dati, è possibile ottenere con la insieme agenti di raccolta dati di Active Directory possibile disponibilità consentono di trovare query ripetitive di paging che consentono di mantenere i server LDAP. Tali query verranno visualizzati con un numero di "Voci restituite" che corrisponde alle dimensioni della pagina utilizzato.

Se possibile, è opportuno esaminare la progettazione dell'applicazione e implementare un approccio diverso con una frequenza inferiore, volume di dati e/o meno le istanze di client eseguendo una query in questo caso data.In delle applicazioni per cui si dispone di accesso al codice sorgente, questa Guida alla creazione di applicazioni abilitate per Active Directory efficiente "http://msdn.microsoft.com/en-us/library/ms808539.aspx" collegamento IPERTESTUALE aiuta a comprendere il modo ottimale per le applicazioni di accedere a Active Directory.

Se non è possibile modificare il comportamento della query un approccio consiste nell'aggiungere anche più istanze replicate dei contesti di denominazione necessari per ridistribuire i client e alla fine di ridurre il carico dei singoli server LDAP.

© 2017 Microsoft