DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データベースからデータ取得時のエラー

環境/言語:[winXp, VB.NET2005 Framework2.0]
分類:[.NET]

いつも参考にさせてもらっています。
現在、Oracle8(Server)にOracle DataAccessProviderを使用してデータを
抽出しているのですが下記のようなエラーが発生しました。

エラー内容

System.OutOfMemoryExceptionの例外がスローされました。

ヘルプで調べたら、
「プログラムの実行を継続するためのメモリが不足している場合にスローされる例外」
とあるのですが、メモリは十分にあると思っているので何が原因なのか不明です。
このような現象が発生したことのあるかたみえましたら解消方法等教えて下さい。
お願い致します。
ちょうどODAP for .NETを使ったプロジェクトを今やってますw 10gですが。

■No17172に返信(Kenさんの記事)
> とあるのですが、メモリは十分にあると思っているので何が原因なのか不明です。
(実行を継続する)メモリが足りないから、この例外が発生したんでしょう。

まず例外が発生した箇所の特定してみてください。
#DebugコンパイルでOutOfMemoryException.SourceやStackTraceを参照

推測ですが、大量データをメモリに取り込んでるのではないでしょうか?
遅くなりすいません。

■No17175に返信(dedさんの記事)
> ちょうどODAP for .NETを使ったプロジェクトを今やってますw 10gですが。
>
> ■No17172に返信(Kenさんの記事)
>>とあるのですが、メモリは十分にあると思っているので何が原因なのか不明です。
> (実行を継続する)メモリが足りないから、この例外が発生したんでしょう。
>
> まず例外が発生した箇所の特定してみてください。
> #DebugコンパイルでOutOfMemoryException.SourceやStackTraceを参照
>

現在動作している環境には、開発環境がないためデバックしながらはできません。
エラー表示時にStackTraceも表示してあるのですが何も表示されませんでした。

> 推測ですが、大量データをメモリに取り込んでるのではないでしょうか?
確かに数万件あるデータの中から200〜300件ぐらいのデータを抽出し処理を
行っています。
これでもやはりメモリ不足になるのでしょうか?もう少し様子をみてみようと思うのですが…
>>まず例外が発生した箇所の特定してみてください。
>
> 確かに数万件あるデータの中から200〜300件ぐらいのデータを抽出し処理を
> 行っています。
> これでもやはりメモリ不足になるのでしょうか?もう少し様子をみてみようと思うのですが…

OutOfMemoryですので製品(Oracle)うんぬんや「様子を見る」では解決しません。
dedさんの言われるように、どこでどんな行為をおこなったかを突き止めなければなりません。
たいがいの場合、資源の解放漏れや無限ループなどによるエラーですし。

DOBON.NET | プログラミング道 | プログラミング掲示板