다음을 통해 공유


SymStore 트랜잭션

SymStore에 대한 모든 호출은 트랜잭션으로 기록됩니다. 트랜잭션에는 추가 및 삭제의 두 가지 유형이 있습니다.

기호 저장소가 만들어지면 서버 루트 아래에 “000admin”이라는 디렉터리가 생성됩니다. 000admin 디렉터리에는 각 트랜잭션에 대해 하나의 파일과 server.txt 및 history.txt 로그 파일이 포함됩니다. server.txt 파일에는 현재 서버에 있는 모든 트랜잭션 목록이 포함되어 있습니다. history.txt 파일에는 모든 트랜잭션의 시간 기록이 포함됩니다.

SymStore가 기호 파일을 저장하거나 제거할 때마다 새 트랜잭션 번호가 생성됩니다. 그런 다음, 이름이 이 트랜잭션 번호인 파일이 000admin으로 만들어집니다. 이 파일에는 해당 트랜잭션 중에 기호 저장소에 추가된 모든 파일 또는 포인터 목록이 포함됩니다. 트랜잭션이 삭제되면 SymStore는 해당 트랜잭션 파일을 읽어서 삭제해야 하는 파일과 포인터를 확인합니다.

adddel 옵션은 추가 또는 삭제 트랜잭션을 수행할지 여부를 지정합니다. 추가 작업에 /p 옵션을 포함하면 포인터를 추가하도록 지정됩니다. /p 옵션을 생략하면 실제 기호 파일을 추가하도록 지정됩니다.

두 단계로 기호 저장소를 만들 수도 있습니다. 첫 번째 단계에서는 /x 옵션과 함께 SymStore를 사용하여 인덱스 파일을 만듭니다. 두 번째 단계에서는 /y 옵션과 함께 SymStore를 사용하여 인덱스 파일의 정보에서 파일 또는 포인터의 실제 저장소를 만듭니다.

이는 다양한 이유로 유용한 기술이 될 수 있습니다. 예를 들어 이 기술을 사용하면 인덱스 파일이 계속 존재하는 한 저장소가 손실된 경우 기호 저장소를 쉽게 다시 만들 수 있습니다. 또는 기호 파일이 포함된 컴퓨터는 기호 저장소가 만들어질 컴퓨터에 대한 네트워크 연결이 느려질 수 있습니다. 이 경우 기호 파일과 동일한 컴퓨터에 인덱스 파일을 만들고, 인덱스 파일을 두 번째 컴퓨터로 전송한 다음, 두 번째 컴퓨터에 저장소를 만들 수 있습니다.

모든 SymStore 매개 변수의 전체 목록은 SymStore Command-Line 옵션을 참조하세요.

참고 SymStore는 여러 사용자의 동시 트랜잭션을 지원하지 않습니다. 한 명의 사용자가 기호 저장소의 “관리자”로 지정되고 모든 adddel 트랜잭션을 처리하는 것이 좋습니다.

트랜잭션 예제

다음은 Windows 2000 빌드 2195의 기호 포인터를 \\MyDir\symsrv에 추가하는 SymStore의 두 가지 예입니다.

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의 예제는 다음과 같습니다. 트랜잭션 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

트랜잭션 유형입니다. 이 필드는 add 또는 del일 수 있습니다.

ptr

파일 또는 포인터가 추가되었는지 여부입니다. 이 필드는 file 또는 ptr일 수 있습니다.

10/09/99

트랜잭션이 발생한 날짜입니다.

00:08:32

트랜잭션이 시작된 시간입니다.

Windows Vista SP 1

제품

x86 fre

버전(선택 사항)입니다.

Added from

설명(선택 사항)입니다.

사용 안 함

(나중에 사용하도록 예약되었습니다.)

다음은 트랜잭션 파일 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 트랜잭션을 사용하여 원래 add 트랜잭션을 실행 취소하면 이러한 줄이 server.txt에서 제거되고 다음 줄이 history.txt에 추가됩니다.

0000000105,del,0000000096

삭제 트랜잭션에 대한 필드는 다음과 같이 설명됩니다.

필드 설명

0000000105

SymStore에서 만든 트랜잭션 ID 번호입니다.

del

트랜잭션 유형입니다. 이 필드는 add 또는 del일 수 있습니다.

0000000096

삭제된 트랜잭션입니다.