मैंने डीबी 2 प्रक्रिया वापस कर दी है जो तालिका में से किसी एक के लिए कर्सर लौटा रही है।जावा में कॉल करने योग्य वक्तव्य से CURSOR पुनर्प्राप्ति के दौरान अपवाद को हल करने के लिए कैसे हुआ?
यह प्रक्रिया मेरी जावा कोड से फोन किया और कर रहा है और एक परिणाम के रूप में सेट कर्सर होने बह SqlException अपवाद लॉग पुनः प्राप्त करने,
com.ibm.db2.jcc.am.jo: [jcc][t4][10335][10366][4.7.85]
Invalid operation: Connection is closed. ERRORCODE=-4470, SQLSTATE=08003
at com.ibm.db2.jcc.am.dd.a(dd.java:666)
at com.ibm.db2.jcc.am.dd.a(dd.java:60)
मैं इस अपवाद के लिए समाधान की खोज और आईबीएम वेबसाइट link पर इस समाधान पाया truing जो लॉग कॉन्फ़िगरेशन बदलने के लिए सुझाव देते हैं,
लॉग फ़ाइल आकार और प्राथमिक और माध्यमिक लॉग फ़ाइलों की संख्या बढ़ाएं। Num_log_span मान भी समायोजित किया जा सकता है।
यहाँ प्रक्रिया उदाहरण है,
CREATE OR REPLACE PROCEDURE ABC(c_dump OUT SYS_REFCURSOR) IS
BEGIN
open c_dump FOR
select feild1,feild1,.... from RSPNSE_TABLE;
END;
जावा कोड नीचे दी गई है,
public void callStoredProc(){
Connection dbConnection = null;
CallableStatement callableStatement = null;
ResultSet rs = null;
String proc = "{call ABC(?)}";
try {
dbConnection = connection;
callableStatement = dbConnection.prepareCall(proc);
callableStatement.registerOutParameter(1, DB2Types.CURSOR);
// execute getDBUSERCursor store procedure
callableStatement.executeUpdate();
// get cursor and cast it to ResultSet
rs = (ResultSet) callableStatement.getObject(1);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
इस जावा कोड में अब इस लाइन पर टूट रहा है callableStatement = dbConnection.prepareCall(proc);
नोट: अपवाद लॉग के बावजूद "कनेक्शन बंद है" पाठ मैं उल्लेख करना चाहता हूं कि मैंने जेडीबीसी का उपयोग कर डेटाबेस सामान्य पुनर्प्राप्ति के साथ सफलतापूर्वक कनेक्शन स्थापित किया है, इसमें कोई समस्या नहीं है।
चालक का कहना है कि कनेक्शन बंद है, आप कहते हैं कि यह नहीं है; विश्वास करने के लिए कौन? हो सकता है कि आप 'readyCall()' से पहले कनेक्शन पर 'isclosed()' या 'isValid()' कॉल करना चाहते हैं? – mustaccio
क्या आप उत्पाद का उपयोग और संस्करण संख्या प्रदान कर सकते हैं? सर्वर ओएस, डीबी 2 और जेडीबीसी चालक? –