Symfoware Serverで、.NETアプリケーションを実行したときのメモリ不足例外について

Symfoware Server の技術情報はこちら

Symfoware Serverで、.NETアプリケーションを実行したところ、System.OutOfMemoryExceptionという例外が発生しました。原因と対処方法を教えてください。
[原因]
以下が原因の可能性があります。
  • バイナリ列データ型やその他の大きなデータ構造のテーブルに対して、ExecuteReader()を実行している
  • データベースへの接続文字列で、PreloadReader=trueを指定している
上記の実行や指定は、結果セット全体のデータをメモリに保持します。そのため、大量のメモリを消費し、メモリ不足になった可能性があります。

[対処方法]
以下の変更ができないか検討してください。
  • ExecuteReader()をExecuteReader(CommandBehavior.SequentialAccess)に変更する
  • PreloadReader=Trueを、PreloadReader=Falseに変更する

ExecuteReader(CommandBehavior.SequentialAccess)の詳細は、"Microsoft Docs"の".NETのドキュメント"で、"Command?Behavior 列挙型"を参照してください。

PreloadReaderの詳細は以下のマニュアルを参照してください。

  FUJITSU Software Symfoware Server V12.4.0
    アプリケーション開発ガイド
      第4章 .NET Data Provider
        4.3 データベースへの接続
          4.3.4 接続文字列

なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス区分 Symfoware
製品・サービス情報
対象製品Symfoware Server (Open Interface),
Symfoware Server (Postgres)
バージョンV12.4.0, V12.3.0, V12.2.0, V12.1.1, V12.1.0, V12.0.1, V12.0.0
プラットフォームWindows,Solaris,Linux
アンサー種別 設計/開発
このページの先頭へ