Транзакции SymStore
Каждый вызов SymStore записывается как транзакция. Существует два типа транзакций: добавление и удаление.
При создании хранилища символов в корневом каталоге сервера создается каталог с именем "000admin". Каталог 000admin содержит по одному файлу для каждой транзакции, а также файлы журналов server.txt и history.txt. Файл server.txt содержит список всех транзакций, которые в настоящее время находятся на сервере. Файл history.txt содержит хронологический журнал всех транзакций.
Каждый раз, когда SymStore сохраняет или удаляет файлы символов, создается новый номер транзакции. Затем в 000admin создается файл с именем этого номера транзакции. Этот файл содержит список всех файлов или указателей, добавленных в хранилище символов во время этой транзакции. Если транзакция удалена, SymStore считывает файл транзакции, чтобы определить, какие файлы и указатели ей следует удалить.
Параметры add и del указывают, следует ли выполнять транзакцию добавления или удаления. Включение параметра /p с операцией добавления указывает, что нужно добавить указатель; Пропуск параметра /p указывает, что фактический файл символов должен быть добавлен.
Хранилище символов также можно создать в два отдельных этапа. На первом этапе для создания файла индекса используется SymStore с параметром /x . На втором этапе вы используете SymStore с параметром /y , чтобы создать фактическое хранилище файлов или указателей на основе сведений в файле индекса.
Это может быть полезным методом по различным причинам. Например, это позволяет легко воссоздать хранилище символов, если оно каким-то образом потеряно, если файл индекса все еще существует. Или, возможно, компьютер, содержащий файлы символов, имеет медленное сетевое подключение к компьютеру, на котором будет создано хранилище символов. В этом случае можно создать файл индекса на том же компьютере, что и файлы символов, перенести файл индекса на второй компьютер, а затем создать хранилище на втором компьютере.
Полный список всех параметров SymStore см. в разделе Параметры Command-Line SymStore.
Примечание SymStore не поддерживает одновременные транзакции от нескольких пользователей. Рекомендуется назначить одного пользователя администратором хранилища символов и нести ответственность за все транзакции add и del .
Примеры транзакций
Ниже приведены два примера добавления указателей символов SymStore для сборки 2195 Windows 2000 в \\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"
В следующем примере SymStore добавляет фактические файлы символов для проекта приложения в \\largeapp\appserver\bins в \\MyDir\symsrv:
symstore add /r /f \\largeapp\appserver\bins\*.* /s \\MyDir\symsrv /t "Large Application" /v "Build 432" /c "Sample add"
Ниже приведен пример использования файла индекса. Сначала SymStore создает файл индекса на основе коллекции файлов символов в папке \\largeapp\appserver\bins\. В этом случае файл индекса помещается на третий компьютер, \\hubserver\hubshare. Используйте параметр /g , чтобы указать, что префикс файла "\\largeapp\appserver" может измениться в будущем:
symstore add /r /p /g \\largeapp\appserver /f \\largeapp\appserver\bins\*.* /x \\hubserver\hubshare\myindex.txt
Теперь предположим, что вы переместили все файлы символов с компьютера \\largeapp\appserver и поместили их в \\myarchive\appserver. Затем можно создать само хранилище символов из файла индекса \\hubserver\hubshare\myindex.txt следующим образом:
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"
Наконец, ниже приведен пример удаления SymStore файла, добавленного предыдущей транзакцией. Сведения об определении идентификатора транзакции (в данном случае 0000000096) см. в разделе "Файлы server.txt и history.txt".
symstore del /i 0000000096 /s \\MyDir\symsrv
Файлы server.txt и history.txt
При добавлении транзакции несколько элементов информации добавляются в server.txt и history.txt для возможности поиска в будущем. Ниже приведен пример строки в server.txt и history.txt для транзакции добавления:
0000000096,add,ptr,10/09/99,00:08:32,Windows Vista SP 1,x86 fre 1.156c-RTM-2,Added from \\mybuilds\symbols,
Это строка, разделенная запятыми. Поля описываются следующим образом:
Поле | Описание |
---|---|
0000000096 |
Номер идентификатора транзакции, созданный SymStore. |
add |
Тип транзакции. Это поле может быть либо add , либо del. |
ptr |
Были ли добавлены файлы или указатели. Это поле может быть как file , так и ptr. |
10/09/99 |
Дата, когда произошла транзакция. |
00:08:32 |
Время начала транзакции. |
Windows Vista с пакетом обновления 1 (SP1) |
Продукт. |
x86 fre |
Версия (необязательно). |
Добавлено из |
Комментарий (необязательно) |
Не используется |
(Зарезервировано для последующего использования.) |
Ниже приведены примеры строк из файла транзакций 0000000096. В каждой строке записывается каталог и расположение файла или указателя, добавленного в каталог.
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
Если вы используете транзакцию del для отмены исходных транзакций добавления , эти строки будут удалены из server.txt, а следующая строка будет добавлена в history.txt:
0000000105,del,0000000096
Поля для транзакции удаления описаны следующим образом.
Поле | Описание |
---|---|
0000000105 |
Номер идентификатора транзакции, созданный SymStore. |
del |
Тип транзакции. Это поле может быть либо add , либо del. |
0000000096 |
Удаленная транзакция. |