2010-01-08 4 views
2

나는 C# .NET에서 NSF 파일에 액세스 Domino.dll을 사용하고 초과 된 2.0최대 수는

나는 한 번에 액세스 4 개 NSF 파일을 여러 개의 스레드를 사용하고 그 작은 NSF 파일을 잘 작동하지만 큰 NSF 파일에 액세스하려고하면 메모리가 부족합니다. 예외 및 Notes가 지원할 수있는 메모리 세그먼트의 최대 수가을 초과했습니다. 난 잠시 루프 큰 NSFVIewFolder에서 NotesDocument 개체를 액세스 할 때

이 예외 보통 일어난다.

Marshal.ReleaseComObject (NotesDocument)를 사용하여 NotesDocument의 인스턴스를 릴리스합니다. 여전히 동일한 예외가 발생합니다.

내 목표는 대규모 NSF 파일 (GB 단위 일 수 있음)의 경우 한 번에 여러 개의 NSF 파일 (한 번에 최대 4 개의 NSF 파일)에 액세스하는 것입니다.

+5

Lotus Notes : aaaaaargh! –

+0

질문에 들여 쓰기를하지 마십시오. – SLaks

+0

Lotus Notes를 고안하고 설계 한 사람들은 엄청나게 영리하고 재능이 있어야한다고 생각했습니다. 그래서 WTF가 일어난거야? –

답변

1

C# 인터페이스에는 익숙하지 않지만 Java에서는 다음 문서로 진행하기 전에 notes 문서에서 recycle() 메서드를 명시 적으로 호출해야합니다. 이 작업을 수행하지 않으면 메모 문서와 관련된 자원이 정리되지 않습니다.

1

문제는 this 문제와 유사합니다. 어떤 버전의 Domino를 사용하여 데이터베이스에 액세스합니까? 개체를 효과적으로 파괴해야합니다. 나는 ReleaseComObject가 서버가 COM에 데이터를 제공하는 데 사용할 메모리를 효과적으로 해제하지 않아 메모리가 부족하다고 생각하지 않습니다.

메모리 관리가 COM보다 훨씬 더 잘 지원되므로 Java를 사용해 보시기 바랍니다. This 문서 및 this Java 용 Domino 작성에 도움이됩니다. This 간단한 예제는 문서 컬렉션을 통해 얻는 방법에 대한 아이디어를 제공합니다.

관련 문제