2

Domino.dll を使用して C#.NET 2.0 の NSF ファイルにアクセスしています

一度に 4 つの NSF ファイルにアクセスするために複数のスレッドを使用しています。小さな NSF ファイルでは問題なく動作しますが、大きな NSF ファイルにアクセスしようとすると、メモリ不足の例外が発生し、Notes がサポートできるメモリ セグメントの最大数がを超えました。

この例外は通常、while ループで大きなNSFVIewFolderからNotesDocumentオブジェクトにアクセスしたときに発生します。

Marshal.ReleaseComObject(NotesDocument); を使用してNotesDocumentのインスタンスを解放しています。それでも同じ例外がスローされます。

私の目標は、一度に複数の NSF ファイルにアクセスして (一度に最大 4 個の NSF ファイル)、大きな NSF ファイル (GB 単位の場合もあります) にアクセスすることです。

4

2 に答える 2

1

私は C# インターフェイスには詳しくありませんが、Java では、次のドキュメントに進む前に、メモ ドキュメントで recycle() メソッドを明示的に呼び出す必要があります。これを行わないと、メモ ドキュメントに関連付けられたリソースがクリーンアップされません。

于 2010-02-24T00:16:46.447 に答える
1

あなたの問題はこの問題に似ています。データベースへのアクセスに使用している Domino のバージョンは何ですか? オブジェクトを効果的に破壊する必要があります。サーバーがデータを COM に提供するためにも使用するメモリを、ReleaseComObject が効果的に解放していて、メモリが不足しているとは思いません。

メモリ管理は COM よりもはるかに優れているため、これを行うには Java を試すことをお勧めします。 この記事とこの記事は、 Java for Domino を作成するのに役立つはずです。この簡単な例は、ドキュメント コレクションを処理する方法を示しています。

于 2010-03-25T12:25:40.307 に答える