File Geodatabase API .NET 래퍼 : 테이블 / 피처 클래스가 잠겨 있는지 확인하는 방법?


10

gdb API .NET 래퍼 파일을 사용하고 있으며 ArcObjects를 사용하는 것과 비교하여 내 요구에 매우 적합합니다. 내가 아직 이해하지 못한 것 중 하나는 테이블이나 피처 클래스 (fc)가 쓰기를 시도하기 전에 잠겨 있는지 판단 할 수있는 적절한 방법이 있는지입니다.

내가하고있는 일은 try / catch에 업데이트 / 삽입을 래핑하는 것입니다. '잠금 예외를 얻을 수 없습니다 ...'가되면 객체가 다른 것에 의해 잠겨 있다는 것을 알고 있습니다.

주어진 테이블이나 fc를 쓸 수 있는지 더 잘 알 수 있습니까?


또한 File Geodatabase API뿐만 아니라 ArcObjects에 대해서도이 질문에 대한 답변에 관심이 있습니다.
stakx

그것들은 완전히 다른 두 개의 API이기 때문에 별도의 질문을하는 것이 좋습니다. 현상금을 옮길 수 있는지 확실하지 않습니다.
blah238

@ blah238에 동의합니다. ArcObjects에 대한 답은 ISchemaLockInfo 및 ISchemaLock을 사용하여 스키마 잠금에 대한 정보를 제공하는 것입니다. Filegeodatbase API에 대한 답변이 없다고 생각합니다
Devdatta Tengshe

2
파일 지오 데이터베이스 API를 통해 잠금이 노출되지 않습니다. 쓰기를 시도하거나 쓰기 잠금을 얻어 예외를 처리해야합니다.
트래비스

2
Esri :: FileGDB :: Table :: IsEditable을 시도 했습니까?
Kirk Kuykendall

답변:


1

지오 데이터베이스 API에 명시 적으로 후크가 있다고 생각하지 않습니다. 그러나 위에서 언급 한 것처럼 "..sr.lock"파일이 있는지 파일 시스템을 검사하여 해결 방법을 사용할 수 있습니다.

파일 지오 데이터베이스는 파일 시스템의 폴더처럼 읽히고 파일 지오 데이터베이스 (_gdb 테이블에 하나) 및 / 또는 기능에 활성 (또는 종료되지 않은 ...) 연결되어있는 각 사용자 컴퓨터에 대해 이러한 파일 중 하나가 있습니다. 현재 연결된 클래스

액세스 실패에서 오류가 리턴되기를 기다리는 것보다 빠릅니다. 잠금 대시 보드에 대한 MattB의 답변은 여러 사용자에게 훌륭한 아이디어입니다.


0

ArcObjects를 사용하고 언급 한 try / catch 방법을 사용했습니다.

필자의 경우 두 명 이상의 사용자가 지오 데이터베이스의 동일한 피쳐 클래스에서 데이터를 읽고 쓸 필요가 있습니다. 나는 "로드 화면"이 나타나고 사용자에게 데이터가 사용 중임을 알리고 잠금이 만들어 질 때까지 백그라운드에서 몇 초마다 루프가 계속 시도합니다.

내가 자물쇠를 사용한 다른 방법은 아래에 설명되어 있습니다. 잠금 파일을 보는이 방법을 사용하는 것이 원하는 것과 다르지만 개념은 동일하며 잠금 유형을 결정해야하거나 잠금이 속한 사람을 결정하면 비슷한 것을 사용할 수 있습니다 . 관심이 있으시면 여기에 정보가 있습니다.

Windows 탐색기에서 지오 데이터베이스 내부를 살펴보면 특정 잠금 파일, 해당 파일의 소유자, 잠금 유형 등을 확인할 수 있으므로 특정 잠금 파일을 모니터링하는 독립형 "상태"응용 프로그램을 만드는 것입니다 우리 모두가 사용하는 기능 클래스.

이 방법을 사용하면 해당 기능 클래스가 잠긴 (컴퓨터 이름 기반) 누가 어떤 잠금 유형을 가지고 있는지 쉽게 읽을 수있는 대시 보드에서 실시간으로 볼 수 있습니다. 예를 들어 "sr"(스키마) 잠금이 표시되는 경우 기능 클래스가 목차에 추가 된 것을 알고 있습니다. "rd"잠금은 기능 클래스에서 읽는 중임을 의미하고 "wr"잠금은 작성 중임을 의미합니다. 데이터 및 "ed"잠금은 기능 클래스에서 편집 세션이 열려 있음을 의미합니다.

이것은 유지 보수를 수행 할 때 매우 유용하며 다른 사람에게 부정적인 영향을 미치지 않도록합니다. "알 수 없음"항목은 예상치 못한 기능 클래스를 사용중인 사람에게 알림을 표시하며 추가 조사를 수행 할 수 있습니다.

여기 내가 사용하는 대시 보드의 스크린 샷이 있습니다. FeatureClass 상태 대시 보드

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.