Utilizzo del multithreading
L'API a più thread consente alle applicazioni di creare più sessioni con il server IBM® Storage Protect nello stesso processo. È possibile immettere nuovamente l'API. Tutte le chiamate possono essere eseguite in parallelo dall'interno di thread differenti.
Per eseguire l'API in modalità multithread, impostare il valore mtflag su DSM_MULTITHREAD sulla chiamata dsmSetUp . La chiamata dsmSetUp deve essere la prima chiamata dopo la chiamata dsmQueryAPIVersionEx . Questa chiamata deve essere restituita prima che un thread richiami la chiamata dsmInitEx . Quando tutti i thread completano l'elaborazione, immettere una chiamata a dsmCleanUp. Il processo primario non deve terminare prima che tutti i thread completano l'elaborazione. Vedi callmt1.c nell'applicazione di esempio.
Limitazione: il valore predefinito per l'API è la modalità a thread singolo. Se un'applicazione non richiama dsmSetUp con il valore mtflag impostato su DSM_MULTITHREAD, l'API consente una sola sessione per ciascun processo.
Una volta completato correttamente dsmSetUp , l'applicazione può iniziare più thread e immettere più chiamate dsmInitEx . Ogni chiamata dsmInitEx restituisce un handle per tale sessione. Qualsiasi chiamata successiva su tale thread per tale sessione deve utilizzare tale valore di gestione. Alcuni valori sono variabili di ambiente a livello di processo (valori impostati su dsmSetUp). Ogni chiamata dsmInitEx analizza nuovamente le opzioni. Ogni thread può essere eseguito con opzioni differenti specificando un file di sovrascrittura o una stringa di opzioni sulla chiamata dsmInitEx . Ciò consente a thread differenti di passare a server differenti o utilizzare nomi nodo differenti.
Suggerimento: su HP, impostare lo stack di thread su 64K o su un valore superiore. Il valore predefinito dello stack di thread (32K) potrebbe non essere sufficiente
Per consentire agli utenti dell'applicazione di avere una sessione LAN - free, utilizzare dsmSetUp mtFlag DSM_MULTITHREAD nell'applicazione. Ciò è necessario anche se l'applicazione è a thread singolo. Questo indicatore attiva il thread necessario per l'interfaccia LAN - free di IBM Storage Protect .