Argomento precedente: UUID

Argomento successivo: Clausole where

Elenchi

Alcuni metodi dei servizi Web restituiscono elenchi, rappresentati da un handle intero univoco. Un elenco è una raccolta di oggetti dello stesso tipo. Gli elenchi sono particolarmente utili quando si lavora con grandi quantità di oggetti (ad esempio, tutti i contatti del sistema) poiché è possibile recuperare le informazioni sulle voci presenti in un intervallo dell'elenco. Lo svantaggio è rappresentato dal fatto che è necessario effettuare più chiamate ai metodi per ottenere un handle dell'elenco, recuperare le informazioni e infine rilasciare l'handle dell'elenco. Se il numero di righe previsto è limitato, utilizzare i metodi che non includono gli handle di elenco, ad esempio il metodo doSelect().

Di seguito sono riportate ulteriori informazioni sugli elenchi:

Gli elenchi sono omogenei

Un elenco può contenere oggetti di un solo tipo, ad esempio elenchi di contatti, di organizzazioni e così via.

Gli elenchi sono statici

Ad esempio, se si ottiene un oggetto elenco per tutti i contatti e un altro contatto viene aggiunto al sistema, l'elenco non viene aggiornato. È necessario ottenere un altro handle di elenco per ottenere i dati aggiornati.

Handle di elenco

Una richiesta per un elenco restituisce un handle intero che rappresenta l'elenco degli oggetti dello stesso tipo. Al client non vengono inviate altre informazioni. Il client può eseguire una query sull'elenco per richiedere informazioni specifiche sulle proprie righe. Quando il client termina le operazioni con un elenco, l'handle deve essere rilasciato utilizzando il metodo freeListHandles(). Il server di CA SDM gestisce l'elenco con conseguente consumo di risorse di sistema. Quindi, è importante rilasciare gli elenchi. Contrariamente agli handle degli oggetti, gli handle di elenco non sono persistenti nelle sessioni.

Indice intero

Alcuni metodi richiedono un indice intero in un elenco. Gli elenchi sono su base zero, quindi il primo elemento si trova nella posizione indice = 0.

Come detto in precedenza, l'utilizzo degli handle di elenco è particolarmente utile per grandi volumi di dati su cui è possibile che vengano eseguite più query. Tuttavia, per determinate operazioni gli elenchi non sono necessari. Sono disponibili vari metodi ma quello più interessante è il metodo doSelect(), poiché restituisce le informazioni richieste su un set di dati senza il sovraccarico degli handle di elenco.

I vantaggi nell'utilizzo degli handle di elenco rispetto ai metodi, ad esempio il metodo doSelect(), sono da ricercarsi in termini di prestazioni e praticità. Ad esempio, si supponga che l'applicazione elabori nel sistema complessivamente 15.000 contatti. Il metodo doSelect() può recuperare tutti i dati sui contatti con una singola chiamata, ma la risposta giungerà con ritardo e impatterà negativamente sulle prestazioni del sistema, poiché verrà restituito un volume di dati estremamente elevato. Il metodo doQuery(), in questo caso, restituirà rapidamente un riferimento all'elenco. Sui dati ottenuti è possibile eseguire query direttamente dall'elenco, con conseguente miglioramento dei tempi di risposta da parte del server. Si consiglia di utilizzare i riferimenti agli elenchi se il set di dati supera i 250 elementi.

Talvolta non ha senso utilizzare gli handle di elenco. Ad esempio, una problematica dispone di un elenco di registri attività. In base al tipo di installazione, i registri possono essere pochi o alcune dozzine. Probabilmente richiedere i dati tutti in una volta è il modo più veloce anziché richiedere un riferimento all'elenco, eseguire query su di esso e infine rilasciare l'elenco.

Di seguito sono riportati esempi di metodi che restituiscono set di dati e non riferimenti agli elenchi:

Come precedentemente dimostrato, le query che restituiscono un numero elevato di righe possono avere un impatto estremamente negativo sulle prestazioni del server. Per evitare che ciò accada, in CA SDM il numero di righe restituite è stato limitato a 250. Questo limite influisce su tutti i metodi dei servizi Web di CA SDM che restituiscono elenchi di oggetti, inclusi i seguenti:

Questo limite è valido anche se si imposta uno di questi metodi per recuperare più di 250 righe.

Per recuperare grandi quantità di righe, è necessario ottenere un handle dell'elenco dei risultati e utilizzare il metodo getListValues() per recuperare dei blocchi di 250 righe massimo ognuno. Questa strategia consente al server di fornire grandi quantità di dati mantenendo inalterate le prestazioni.