0

これは、行に 1 つ以上のCLOBが含まれるリモート (TCP/IP 接続) 結果セットを取得するときに、リリース 1.3.165 で発生した問題と同じです。リリース 1.3.166 での修正は、リモートCLOBを保持するためのキャッシュ サイズをSysProperties.SERVER_RESULT_SET_FETCH_SIZE * 2 に設定することです。これにより、新しい問題が発生します。

私の特定のテーブルにはたまたま行ごとに 5 つのCLOBがあるため、行ごとのCLOBの数に基づいて適切な小さな数でクライアント側で常にsetFetchSizeを呼び出すことがわかっていない限り、これを機能させる方法はありません。与えられた結果セット。

キャッシュ サイズがSysProperties.SERVER_CACHED_OBJECTSに設定されていたリリース1.3.165では、 SERVER_RESULT_SET_FETCH_SIZEのデフォルト値に、結果セットと次に、サーバー側でそれに応じてSERVER_CACHED_OBJECTSを設定し、それを忘れてください。これにより、すべてのクエリでデフォルトのフェッチ サイズを使用できるようになり、おそらくより効率的になります。そのため、1.3.165 に戻りました。

4

1 に答える 1

0

これは簡単に修正できない制限です。デフォルトのサイズを に変更しますSysProperties.SERVER_RESULT_SET_FETCH_SIZE * 5が、これはもちろん回避策にすぎません。本当の解決策はもっと複雑です。問題の 1 つは、トランザクションがコミットされるまで LOB を開いたままにしておく必要があることです。TCP サーバーとクライアント コンポーネントは、これがいつ行われるかを常に認識しているわけではありません。

于 2012-04-24T19:55:21.500 に答える