잠시 동안 OleDbConnection
과 (과) 싸워 왔습니다. 기본적으로 다른 응용 프로그램에서 작성된 공유 Access 데이터베이스에 액세스하고 나서 값을 읽는 중입니다 (마지막 쓰기 시간 및 후속 1 초 지연을 통해 플러시되었는지 확인).OleDbConnection 캐시를 비활성화/플러시
불행히도, 이것은 전적으로 신뢰할 수 없습니다.
이 외에도_connection.Close();
_connection.Dispose();
_connection = null;
OleDbConnection.ReleaseObjectPool();
GC.Collect();
연결을 : 나는 읽기 (그리고 미쳐) 다시 연결하기 전에 다음을 수행하는 각각의 가능한 업데이트 후, 연속적으로 연결 풀링을 해제하고 생각하는 방법을 봤는데
string은 OLE DB Services = -2
으로 연결 풀링을 비활성화합니다. 마지막으로, Jet 4.0의 레지스트리에서 PageTimeout
을 '10'으로 변경했습니다.
이러한 모든 조치는 불행히도 효과가 없습니다. 이제 내가 생각할 수있는 유일한 것은 this Microsoft KB Article에 언급 된 내용이며 JRO.JetEngine.RefreshCache
으로 전화하십시오. 유일한 문제는 인수가 ADODB.Connection
이라는 것입니다. 차라리 내 전체 데이터베이스 계층을 다시 작성하지 않고 레거시 COM 개체를 사용하여이 기능을 사용하기 위해 내 소프트웨어에서 레코드를 읽는 위치가 있지만이 방법이 유일한 방법 일 수 있습니다.
제 질문은 현재 ADODB (ADO.NET조차도 사용하지 않음)를 사용하여 다시 작성하는이 작업을 수행하면서 OleDbConnection
의 캐싱을 비활성화 할 수 있습니까?