2015-05-14 55 views
2

我們遇到了代碼問題。我得到的錯誤是在java代碼中從oracle數據庫打開的最大遊標。我們嘗試過Try-catch-finally,在finally節中關閉resultSet和preparedStatement。一旦處理了所有記錄,關閉連接。最大光標問題

Map<String,String> idMap = new HashMap<String, String>(); 
    try{ 

    Long aId = null; 
    if(bId != null){ 

     aId = bId.toLong(); 
    } 
    // Create the prepared statement 
    retrieveStatement = super.prepareStatement(getSqlFromProps("findPersonInfo") ); 
for(int i =0 ; i < 100; i++){ 
    super.setDate(1, today, retrieveStatement); 
    super.setDate(2, today, retrieveStatement); 
    super.setDate(3, today, retrieveStatement); 
    super.setDate(4, today, retrieveStatement); 
    super.setString(5, theCaseNumber, retrieveStatement); 
    super.setString(6, theCaseId, retrieveStatement); 
    super.setLong(7, aId, retrieveStatement); 
    super.executeUnboundedQuery(retrieveStatement); 

    } 
    }catch(Exception e){ 
    }finally{ 
    if (retrieveStatement != null) { 
      retrieveStatement.close(); 
     } 
    } 



    return idMap; 
+2

請粘貼您的代碼塊。 –

+0

該錯誤幾乎總是表明您的應用程序中存在遊標泄漏。我們需要查看代碼來幫助您找出問題所在。 –

+1

缺少'resultSet.close()'? – BretC

回答

0

遊標與結果集相關聯。關閉結果集和光標也會被關閉,你將不會有這樣的例外。