Compartir a través de


Transacciones de SymStore

Cada llamada a SymStore se registra como una transacción. Hay dos tipos de transacciones: agregar y eliminar.

Cuando se crea el almacén de símbolos, se crea un directorio denominado "000admin" en la raíz del servidor. El directorio 000admin contiene un archivo para cada transacción, así como los archivos de registro server.txt y history.txt. El archivo server.txt contiene una lista de todas las transacciones que están actualmente en el servidor. El archivo history.txt contiene un historial cronológico de todas las transacciones.

Cada vez que SymStore almacena o quita los archivos de símbolos, se crea un nuevo número de transacción. A continuación, se crea un archivo, cuyo nombre es este número de transacción, en 000admin. Este archivo contiene una lista de todos los archivos o punteros que se han agregado al almacén de símbolos durante esta transacción. Si se elimina una transacción, SymStore leerá a través de su archivo de transacción para determinar qué archivos y punteros debe eliminar.

Las opciones add y del especifican si se va a realizar una transacción de adición o eliminación. La inclusión de la opción /p con una operación add especifica que se va a agregar un puntero; si se omite la opción /p , se especifica que se va a agregar el archivo de símbolos real.

También es posible crear el almacén de símbolos en dos fases independientes. En la primera fase, se usa SymStore con la opción /x para crear un archivo de índice. En la segunda fase, se usa SymStore con la opción /y para crear el almacén real de archivos o punteros a partir de la información del archivo de índice.

Esto puede ser una técnica útil por diversos motivos. Por ejemplo, esto permite volver a crear fácilmente el almacén de símbolos si el almacén se pierde de alguna manera, siempre y cuando el archivo de índice todavía exista. O quizás el equipo que contiene los archivos de símbolos tiene una conexión de red lenta al equipo en el que se creará el almacén de símbolos. En este caso, puede crear el archivo de índice en el mismo equipo que los archivos de símbolos, transferir el archivo de índice al segundo equipo y, a continuación, crear el almacén en el segundo equipo.

Para obtener una lista completa de todos los parámetros de SymStore, consulte SymStore Command-Line Options.

Nota SymStore no admite transacciones simultáneas de varios usuarios. Se recomienda que un usuario se designe como "administrador" del almacén de símbolos y sea responsable de todas las transacciones de adición y del.

Ejemplos de transacciones

Estos son dos ejemplos de SymStore que agregan punteros de símbolo para la compilación 2195 de 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"

En el ejemplo siguiente, SymStore agrega los archivos de símbolos reales para un proyecto de aplicación en \\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"

Este es un ejemplo de cómo se usa un archivo de índice. En primer lugar, SymStore crea un archivo de índice basado en la colección de archivos de símbolos en \\largeapp\appserver\bins\. En este caso, el archivo de índice se coloca en un tercer equipo, \\hubserver\hubshare. Use la opción /g para especificar que el prefijo de archivo "\\largeapp\appserver" podría cambiar en el futuro:

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

Ahora supongamos que mueve todos los archivos de símbolos de la máquina \\largeapp\appserver y los coloca en \\myarchive\appserver. A continuación, puede crear el propio almacén de símbolos desde el archivo de índice \\hubserver\hubshare\myindex.txt como se indica a continuación:

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"

Por último, este es un ejemplo de SymStore que elimina un archivo agregado por una transacción anterior. Consulte la sección "Archivos de server.txt y history.txt" a continuación para obtener una explicación de cómo determinar el identificador de transacción (en este caso, 0000000096).

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

Archivos de server.txt y history.txt

Cuando se agrega una transacción, se agregan varios elementos de información a server.txt y history.txt para la funcionalidad de búsqueda futura. A continuación se muestra un ejemplo de una línea en server.txt y history.txt para una transacción add:

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

Se trata de una línea separada por comas. Los campos se explican de la siguiente manera:

Campo Descripción

0000000096

Número de identificador de transacción, tal y como lo creó SymStore.

agregar

Tipo de transacción. Este campo puede ser agregar o del.

ptr

Si se agregaron archivos o punteros. Este campo puede ser file o ptr.

10/09/99

Fecha en que se produjo la transacción.

00:08:32

Hora a la que se inició la transacción.

Windows Vista SP 1

Producto.

x86 fre

Versión (opcional).

Se ha agregado desde

Comentario (opcional)

No utilizado

(Reservado para su uso posterior).

Estas son algunas líneas de ejemplo del archivo de transacción 0000000096. Cada línea registra el directorio y la ubicación del archivo o puntero que se agregó al directorio.

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

Si usa una transacción del para deshacer las transacciones de adición originales, estas líneas se quitarán de server.txt y se agregará la siguiente línea a history.txt:

0000000105,del,0000000096

Los campos de la transacción de eliminación se describen de la siguiente manera.

Campo Descripción

0000000105

Número de identificador de transacción, tal y como lo creó SymStore.

del

Tipo de transacción. Este campo puede ser agregar o del.

0000000096

Transacción que se eliminó.