次の方法で共有


SymStore のトランザクション

SymStore の呼び出しはすべてトランザクションとして記録されます。 トランザクションには、追加と削除の 2 種類があります。

シンボル ストアが作成されると、"000admin" という名前のディレクトリがサーバーのルートの下に作成されます。 000admin ディレクトリには、トランザクションごとに 1 つのファイルと、server.txt および history.txtログ ファイルが含まれています。 server.txt ファイルには、現在サーバー上にあるすべてのトランザクションの一覧が含まれています。 history.txt ファイルには、すべてのトランザクションの時系列履歴が含まれています。

SymStore がシンボル ファイルを格納または削除するたびに、新しいトランザクション番号が作成されます。 次に、このトランザクション番号を名前とするファイルが 000admin に作成されます。 このファイルには、このトランザクション中にシンボル ストアに追加されたすべてのファイルまたはポインターの一覧が含まれています。 トランザクションが削除されると、SymStore はトランザクション ファイルを読み取り、削除する必要があるファイルとポインターを決定します。

add オプションと del オプションは、追加または削除トランザクションを実行するかどうかを指定します。 追加操作に /p オプションを含めると、ポインターが追加されることを指定します。 /p オプションを省略すると、実際のシンボル ファイルが追加されます。

シンボル ストアは、2 つの異なるステージで作成することもできます。 最初のステージでは、 /x オプションと共に SymStore を使用してインデックス ファイルを作成します。 2 番目のステージでは、 /y オプションを指定して SymStore を使用して、インデックス ファイル内の情報からファイルまたはポインターの実際のストアを作成します。

これは、さまざまな理由で便利な手法です。 たとえば、これにより、インデックス ファイルがまだ存在する限り、ストアが何らかの形で失われた場合にシンボル ストアを簡単に再作成できます。 シンボル ファイルを含むコンピューターが、シンボル ストアが作成されるコンピューターへのネットワーク接続が遅い場合もあります。 この場合、シンボル ファイルと同じコンピューターにインデックス ファイルを作成し、インデックス ファイルを 2 台目のコンピューターに転送してから、2 台目のコンピューターにストアを作成できます。

すべての SymStore パラメーターの完全な一覧については、「 SymStore Command-Line オプション」を参照してください。

手記 SymStore では、複数のユーザーからの同時トランザクションはサポートされません。 1 人のユーザーにシンボル ストアの "管理者" を指定し、すべての 追加 トランザクションと del トランザクションを担当することをお勧めします。

トランザクションの例

Windows 2000 のビルド 2195 のシンボル ポインターを \\MyDir\symsrv に追加する SymStore の 2 つの例を次に示します。

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\ のシンボル ファイルのコレクションに基づいてインデックス ファイルを作成します。 この場合、インデックス ファイルは 3 番目のコンピューター \\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 の例を次に示します。 トランザクション ID (この場合は 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 によって作成されたトランザクション ID 番号。

追加する

トランザクションの種類。 このフィールドには、 add または del を指定できます。

ptr

ファイルまたはポインターが追加されたかどうか。 このフィールドには、 file または ptr のいずれかを指定できます。

10/09/99

トランザクションが発生した日付。

00:08:32

トランザクションが開始された時刻。

Windows Vista SP 1

製品

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 によって作成されたトランザクション ID 番号。

del

トランザクションの種類。 このフィールドには、 add または del を指定できます。

0000000096

削除されたトランザクション。