Oracleのスクロール可能カーソルの実装
S2Pagerを使っていたら大量な検索結果のあるSQLで、OutOfMemoryError。
原因を調べていたら、これ。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/doc_v5/java.101/B13514-02.pdf
via http://otn.oracle.co.jp/forum/thread.jspa?messageID=11006931
P17-5 基礎となるサーバーがスクロール可能なカーソルをサポートしていないので、スクロール可 能性は別のレイヤーでOracle JDBC によって実装する必要があります。 この機能は、スクロール可能な結果セットの行をクライアント側のメモリー・キャッシュに 格納することにより、実現されていることに注意してください。 重要: スクロール可能な結果セットの行はすべて、クライアント側の キャッシュに格納されます。そのため、結果セットに多くの行、多くの列 または非常に大きな列が含まれていると、クライアント側のJava Virtual Machine に障害が発生する可能性があります。大きな結果セットにはスク ロール可能性を指定しないでください。
とりあえず、PagerStatementFactory を使用せずに、BasicStatementFactory を使用するようにすることで対応。