마지막 업데이트: 2020년 3월 24일
문제
Office 365와 이전 버전의 Office가 모두 MSI로 설치되어 있고, OLEDB 인터페이스 또는 ADO.Net 인터페이스를 사용하는 프로그램이 있는 경우 연결을 닫은 후에도 데이터베이스 잠겨 있음을 나타내는 오류가 발생할 수 있습니다.
이 문제는 Office 365 버전 2002가 설치되어 있고 MSI를 통해 이전 버전의 Office가 설치된 경우에만 발생합니다. 예를 들어, Office 365과 2013 액세스 런타임이나 2010 Access 데이터베이스 엔진 재배포 가능 패키지가 설치되어 있을 수 있습니다.
시나리오
데이터베이스 파일에 대한 연결을 열고 닫은 후 .Net 프로그램에서 데이터베이스 파일을 삭제하려고 하면 다음과 같은 예외가 표시될 수 있습니다.
System.IO.Exception: '다른 프로세스에서 사용하고 있기 때문에 프로세스에서 '데이터베이스에 대한 경로' 파일에 액세스할 수 없습니다.
데이터베이스의 위치를 살펴보면 Ace 데이터베이스 잠금 파일 (databasename.laccdb)이 여전히 있는 것을 볼 수 있습니다.
일반적으로 몇 초에서 몇 분 사이의 시간이 경과하면 잠금 파일이 제거되고 데이터베이스에 대한 액세스가 복원됩니다.
Office 365의 버전 2002부터는 Office 365과 함께 제공되는 Ace 버전이 COM OLEDB 인터페이스용 공급자이며, 이전 버전의 경우에는 MSI 제품에 포함된 Ace 버전이 사용됩니다.
작동에는 차이가 있습니다. 특히 Office 365의 경우 연결은 기본적으로 OLEDB 리소스 풀링을 사용하는 반면 MSI에서는 연결이 기본적으로 풀링을 사용하지 않았습니다. 이에 대한 영향은 시스템이 잠재적 재사용을 위해 연결을 유지하기 때문에 닫히거나 파괴될 때 연결이 즉시 해제되지 않는다는 것입니다. 그러나 이는 풀이 연결을 해제할 때까지 데이터베이스 파일에 대한 잠금을 해제하지 않는 영향을 미칩니다.
상태: 해결됨
이 문제는 이제 해결되었습니다. Access를 시작하는 경우 '파일', '계정', '업데이트 옵션', 그리고 '지금 업데이트'를 차례로 클릭하면 최신 버전을 사용할 수 있으며 모든 버전에 문제해결 사항이 제공됩니다.
버전 2002(현재 채널)를 사용하는 경우 빌드 16.0.12527.20278 및 그 이상에서 문제가 해결되었습니다.
버전 2003(현재 채널(미리보기))을 사용하는 경우 빌드 16.0.12624.20176 및 그 이상에서 문제가 해결되었습니다.
버전 2004(베타 채널)를 사용하는 경우 빌드 16.0.12705.10000 및 그 이상에서 문제가 해결되었습니다.
다른 버전은 이 문제의 영향을 받지 않습니다.