大きなデータをクライアントに送る場合、考慮すべき4つの問題があります。
1. エンジンによるデータビューの送信
メモリ上の制限は、各クライアント側のPCに依存します。メモリの上限を超えた場合、Magicエンジンはクラッシュします。従って、[タスク特性]の[チャンクサイズ]特性に適切な値を設定することでメモリの割り当てをコントロールする必要があります。チャンクサイズの指定値は、1レコードのサイズと利用するPCで利用可能なメモリ容量に依存します。
[チャンクサイズ]特性を「1」に設定すると、1度に1レコードずつ送信されます。
2. クライアントが受け取るデータビュー
適切なデータビューがサーバから送られると、JVMはそれを受け取るために適切なメモリ領域を準備する必要があります。JVMのメモリ領域の上限は、-Xms256m -Xmx750mをJVMパラメータに設定することによってコントロールすることができます。このパラメータは、Magic.iniファイル内の[MAGIC_JAVA]セクションで以下のように設定できます。(m:メガ)
JVM_ARGS = -Xms256m -Xmx750m |
-Xms : 初期ヒープサイズ
-Xmx :最大ヒープサイズ
3. 通信
送受信の両方で対応した場合、通信のための時間を十分に確保できるように適切なHTTPタイムアウトを設定する必要性が発生します。
4. 表示モード
スクリーンモードの場合は、1レコード分のみメモリを使用しますが、ラインモード([テーブル]コントロールを使用する)のフォームは、各ページ毎にテーブルのサイズ分のメモリを使用します。スクリーンモードで表示させるようにして必要なレコードのみを取得することで、クライアント側で使用するメモリーをコントロールすることができます。