Condividi tramite


Transazioni SymStore

Ogni chiamata a SymStore viene registrata come transazione. Esistono due tipi di transazioni: aggiungere ed eliminare.

Quando viene creato l'archivio simboli, viene creata una directory denominata "000admin" nella radice del server. La directory 000admin contiene un file per ogni transazione, nonché i file di log server.txt e history.txt. Il file server.txt contiene un elenco di tutte le transazioni attualmente presenti nel server. Il file history.txt contiene una cronologia cronologica di tutte le transazioni.

Ogni volta che SymStore archivia o rimuove i file di simboli, viene creato un nuovo numero di transazione. Viene quindi creato un file il cui nome è questo numero di transazione, in 000admin. Questo file contiene un elenco di tutti i file o puntatori aggiunti all'archivio simboli durante la transazione. Se una transazione viene eliminata, SymStore leggerà il relativo file di transazione per determinare quali file e puntatori eliminare.

Le opzioni add e del specificano se deve essere eseguita una transazione di aggiunta o eliminazione. L'inclusione dell'opzione /p con un'operazione di aggiunta specifica che deve essere aggiunto un puntatore; omettendo l'opzione /p viene specificato che il file di simboli effettivo deve essere aggiunto.

È anche possibile creare l'archivio simboli in due fasi separate. Nella prima fase si usa SymStore con l'opzione /x per creare un file di indice. Nella seconda fase si usa SymStore con l'opzione /y per creare l'archivio effettivo di file o puntatori dalle informazioni nel file di indice.

Questa può essere una tecnica utile per diversi motivi. Ad esempio, ciò consente di ricreare facilmente l'archivio simboli se l'archivio viene in qualche modo perso, purché il file di indice esista ancora. O forse il computer contenente i file di simboli ha una connessione di rete lenta al computer in cui verrà creato l'archivio simboli. In questo caso, è possibile creare il file di indice nello stesso computer dei file di simboli, trasferire il file di indice nel secondo computer e quindi creare l'archivio nel secondo computer.

Per un elenco completo di tutti i parametri symstore, vedere SymStore Command-Line Opzioni.

Nota SymStore non supporta transazioni simultanee da più utenti. È consigliabile designare un utente "amministratore" dell'archivio simboli e essere responsabile di tutte le transazioni di aggiunta e di inserimento.

Esempi di transazioni

Ecco due esempi di SymStore che aggiungono puntatori ai simboli per la build 2195 di Windows 2000 a \\MyDir\symsrv:

symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 free" /c "Sample add"
symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 checked" /c "Sample add"

Nell'esempio seguente SymStore aggiunge i file di simboli effettivi per un progetto di applicazione in \\largeapp\appserver\bins a \\MyDir\symsrv:

symstore add /r /f \\largeapp\appserver\bins\*.* /s \\MyDir\symsrv /t "Large Application" /v "Build 432" /c "Sample add"

Di seguito è riportato un esempio di come viene usato un file di indice. Per prima cosa, SymStore crea un file di indice basato sulla raccolta di file di simboli in \\largeapp\appserver\bins\. In questo caso, il file di indice viene inserito in un terzo computer, \\hubserver\hubshare. Usare l'opzione /g per specificare che il prefisso del file "\\largeapp\appserver" potrebbe cambiare in futuro:

symstore add /r /p /g \\largeapp\appserver /f \\largeapp\appserver\bins\*.* /x \\hubserver\hubshare\myindex.txt

Si supponga ora di spostare tutti i file di simboli dal computer \\largeapp\appserver e inserirli in \\myarchive\appserver. È quindi possibile creare l'archivio simboli stesso dal file di indice \\hubserver\hubshare\myindex.txt come indicato di seguito:

symstore add /y \\hubserver\hubshare\myindex.txt /g \\myarchive\appserver /s \\MyDir\symsrv /p /t "Large Application" /v "Build 432" /c "Sample Add from Index"

Ecco infine un esempio di symstore che elimina un file aggiunto da una transazione precedente. Vedere la sezione "The server.txt and history.txt Files" (File di server.txt e history.txt) di seguito per una spiegazione di come determinare l'ID transazione (in questo caso 0000000096).

symstore del /i 0000000096 /s \\MyDir\symsrv

File server.txt e history.txt

Quando viene aggiunta una transazione, vengono aggiunti diversi elementi di informazioni a server.txt e history.txt per la funzionalità di ricerca futura. Di seguito è riportato un esempio di riga in server.txt e history.txt per una transazione di aggiunta:

0000000096,add,ptr,10/09/99,00:08:32,Windows Vista SP 1,x86 fre 1.156c-RTM-2,Added from \\mybuilds\symbols,

Si tratta di una riga delimitata da virgole. I campi vengono spiegati come segue:

Campo Descrizione

0000000096

Numero ID transazione, creato da SymStore.

add

Tipo di transazione. Questo campo può essere aggiunto o del.

ptr

Indica se sono stati aggiunti file o puntatori. Questo campo può essere file o ptr.

10/09/99

Data in cui si è verificata la transazione.

00:08:32

Ora di avvio della transazione.

Windows Vista SP 1

Prodotto.

x86 fre

Versione (facoltativa).

Aggiunto da

Commento (facoltativo)

Non utilizzato

(Riservato per un uso successivo).

Ecco alcune righe di esempio del file di transazione 0000000096. Ogni riga registra la directory e il percorso del file o del puntatore aggiunto alla directory.

canon800.dbg\35d9fd51b000,\\mybuilds\symbols\sp4\dll\canon800.dbg
canonlbp.dbg\35d9fd521c000,\\mybuilds\symbols\sp4\dll\canonlbp.dbg
certadm.dbg\352bf2f48000,\\mybuilds\symbols\sp4\dll\certadm.dbg
certcli.dbg\352bf2f1b000,\\mybuilds\symbols\sp4\dll\certcli.dbg
certcrpt.dbg\352bf04911000,\\mybuilds\symbols\sp4\dll\certcrpt.dbg
certenc.dbg\352bf2f7f000,\\mybuilds\symbols\sp4\dll\certenc.dbg

Se si utilizza una transazione del per annullare le transazioni di aggiunta originali, queste righe verranno rimosse da server.txt e la riga seguente verrà aggiunta a history.txt:

0000000105,del,0000000096

I campi per la transazione di eliminazione sono descritti di seguito.

Campo Descrizione

0000000105

Numero ID transazione, creato da SymStore.

del

Tipo di transazione. Questo campo può essere aggiunto o del.

0000000096

Transazione eliminata.