以下に示すように、50,000 個のオブジェクトを ArrayList に追加する for ループがあるため、実行に時間がかかります。
public List<GoogleFeedEntry> getEntries(Iterator it) {
GoogleFeedUtil gfu = new GoogleFeedUtil(host, prefix, domain, serverName);
List<GoogleFeedEntry> entry = new ArrayList<GoogleFeedEntry>();
GoogleFeedEntry gfe;
GoogleFeedEntryShipping shipping;
while (it.hasNext()) {
gfe = new GoogleFeedEntry();
shipping = new GoogleFeedEntryShipping();
ProductBO product = (ProductBO) it.next();
entry.add(gfe);
}
return entry;
}
このメソッドの後、次のような別のメソッドを呼び出しています
public void doSomething(){
//some code here
}
これら 2 つのメソッドを別のメソッド内で呼び出しています。リストに限られた数のオブジェクトを配置した場合、問題なく動作しています。50,000 オブジェクトの場合、次の例外がスローされます
java.sql.SQLException: Maximum open cursors exceeded ORA-01000
これはオラクルとは何の関係もないと感じました(私が正しければ)。もちろん、データベースからすべてのオブジェクトをロードしています。
最初のメソッドでブレークポイントを設定すると、正常に動作します。
最初のメソッドが実行されるまで、どうすれば 2 番目のメソッドを停止できますか?
その理由は何ですか?