Freigeben über


SymStore-Transaktionen

Jeder SymStore-Aufruf wird als Transaktion aufgezeichnet. Es gibt zwei Arten von Transaktionen: Hinzufügen und Löschen.

Beim Erstellen des Symbolspeichers wird unter dem Stammverzeichnis des Servers ein Verzeichnis mit dem Namen "000admin" erstellt. Das Verzeichnis 000admin enthält eine Datei für jede Transaktion sowie die Protokolldateien server.txt und history.txt. Die server.txt-Datei enthält eine Liste aller Transaktionen, die sich derzeit auf dem Server befinden. Die datei history.txt enthält einen chronologischen Verlauf aller Transaktionen.

Jedes Mal, wenn SymStore Symboldateien speichert oder entfernt, wird eine neue Transaktionsnummer erstellt. Anschließend wird eine Datei, deren Name diese Transaktionsnummer ist, in 000admin erstellt. Diese Datei enthält eine Liste aller Dateien oder Zeiger, die dem Symbolspeicher während dieser Transaktion hinzugefügt wurden. Wenn eine Transaktion gelöscht wird, liest SymStore die Transaktionsdatei durch, um zu bestimmen, welche Dateien und Zeiger gelöscht werden sollen.

Die Optionen zum Hinzufügen und Löschen geben an, ob eine Add- oder Delete-Transaktion ausgeführt werden soll. Das Einschließen der Option /p mit einem Add-Vorgang gibt an, dass ein Zeiger hinzugefügt werden soll. Wenn Sie die Option /p weglassen, wird angegeben, dass die tatsächliche Symboldatei hinzugefügt werden soll.

Es ist auch möglich, den Symbolspeicher in zwei separaten Phasen zu erstellen. In der ersten Phase verwenden Sie SymStore mit der Option /x , um eine Indexdatei zu erstellen. In der zweiten Phase verwenden Sie SymStore mit der Option /y , um den tatsächlichen Speicher von Dateien oder Zeigern aus den Informationen in der Indexdatei zu erstellen.

Dies kann aus verschiedenen Gründen eine nützliche Technik sein. Für instance kann der Symbolspeicher so einfach neu erstellt werden, wenn der Speicher irgendwie verloren geht, solange die Indexdatei noch vorhanden ist. Oder vielleicht verfügt der Computer mit den Symboldateien über eine langsame Netzwerkverbindung mit dem Computer, auf dem der Symbolspeicher erstellt wird. In diesem Fall können Sie die Indexdatei auf demselben Computer wie die Symboldateien erstellen, die Indexdatei auf den zweiten Computer übertragen und dann den Speicher auf dem zweiten Computer erstellen.

Eine vollständige Auflistung aller SymStore-Parameter finden Sie unter SymStore Command-Line Optionen.

Hinweis SymStore unterstützt keine gleichzeitigen Transaktionen von mehreren Benutzern. Es wird empfohlen, einen Benutzer als "Administrator" des Symbolspeichers zu bezeichnen und für alle Add- und Del-Transaktionen verantwortlich zu sein.

Transaktionsbeispiele

Im Folgenden finden Sie zwei Beispiele für das Hinzufügen von Symbolzeigern von SymStore für Build 2195 von Windows 2000 zu \\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"

Im folgenden Beispiel fügt SymStore die eigentlichen Symboldateien für ein Anwendungsprojekt in \\largeapp\appserver\bins zu \\MyDir\symsrv hinzu:

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

Hier sehen Sie ein Beispiel für die Verwendung einer Indexdatei. Zunächst erstellt SymStore eine Indexdatei basierend auf der Sammlung von Symboldateien in \\largeapp\appserver\bins\. In diesem Fall wird die Indexdatei auf einem dritten Computer platziert, \\hubserver\hubshare. Sie verwenden die Option /g , um anzugeben, dass sich das Dateipräfix "\\largeapp\appserver" in Zukunft ändern könnte:

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

Angenommen, Sie verschieben alle Symboldateien vom Computer \\largeapp\appserver und legen sie auf \\myarchive\appserver ab. Anschließend können Sie den Symbolspeicher selbst aus der Indexdatei erstellen \\hubserver\hubshare\myindex.txt wie folgt:

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"

Schließlich sehen Sie hier ein Beispiel für das Löschen einer Datei, die von einer vorherigen Transaktion hinzugefügt wurde. Im Abschnitt "Die server.txt- und history.txt-Dateien" finden Sie eine Erläuterung zur Ermittlung der Transaktions-ID (in diesem Fall 0000000096).

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

Die server.txt- und history.txt-Dateien

Wenn eine Transaktion hinzugefügt wird, werden mehrere Informationselemente zu server.txt und history.txt für zukünftige Nachschlagefunktionen hinzugefügt. Es folgt ein Beispiel für eine Zeile in server.txt und history.txt für eine Add-Transaktion:

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

Dies ist eine durch Trennzeichen getrennte Linie. Die Felder werden wie folgt erläutert:

Feld BESCHREIBUNG

0000000096

Transaktions-ID-Nummer, wie sie von SymStore erstellt wurde.

hinzufügen

Transaktionstyp. Dieses Feld kann entweder add oder del sein.

ptr

Gibt an, ob Dateien oder Zeiger hinzugefügt wurden. Dieses Feld kann entweder datei oder ptr sein.

10/09/99

Datum des Transaktionsvorgangs.

00:08:32

Zeitpunkt, zu dem die Transaktion gestartet wurde.

Windows Vista SP 1

Produkt

x86 fre

Version (optional).

Hinzugefügt von

Kommentar (optional)

Nicht verwendet

(Für die spätere Verwendung reserviert.)

Hier sind einige Beispielzeilen aus der Transaktionsdatei 0000000096. Jede Zeile zeichnet das Verzeichnis und den Speicherort der Datei oder des Zeigers auf, die dem Verzeichnis hinzugefügt wurde.

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

Wenn Sie eine del-Transaktion verwenden, um die ursprünglichen Add-Transaktionen rückgängig zu machen, werden diese Zeilen aus server.txt entfernt, und die folgende Zeile wird history.txt hinzugefügt:

0000000105,del,0000000096

Die Felder für die Löschtransaktion werden wie folgt beschrieben.

Feld BESCHREIBUNG

0000000105

Transaktions-ID-Nummer, wie sie von SymStore erstellt wurde.

del

Transaktionstyp. Dieses Feld kann entweder add oder del sein.

0000000096

Transaktion, die gelöscht wurde.