ResultSet Already closed error

Posted by javatraniee on Stack Overflow See other posts from Stack Overflow or by javatraniee
Published on 2010-05-08T05:04:50Z Indexed on 2010/05/08 5:08 UTC
Read the original article Hit count: 231

Filed under:

why am i getting an error of resultset already closed error

public class Server implements Runnable { private static int port=1600, maxConnections=0; public static Connection connnew=null; public static Connection connnew1=null; public static Statement stnew,stnew1,stnew2,stnew3,stnew4; public void getConnection() { try{ Class.forName("org.gjt.mm.mysql.Driver"); connnew= DriverManager.getConnection("jdbc:mysql://localhost/db_alldata","root","flashkit"); connnew1= DriverManager.getConnection("jdbc:mysql://localhost/db_main","root","flashkit"); stnew=connnew.createStatement(); stnew1=connnew.createStatement(); stnew2=connnew1.createStatement(); stnew3=connnew1.createStatement(); stnew4=connnew1.createStatement(); }catch (Exception e) { System.out.print("Get Connection Exception---"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"----- > "+e); }

} public void closeConnection() { try{ if(!(connnew.isClosed())) { stnew.close(); stnew1.close(); connnew.close(); } if(!(connnew1.isClosed())) { stnew2.close(); stnew3.close(); stnew4.close(); connnew1.close(); }

}catch (Exception e) { System.out.print("Close Connection Closing Exception-----"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"------->"+e); }

} Server() { try{

}catch(Exception ee) { System.out.print("Server Exceptions in main connection--"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"------>"+ee); } } public static void main(String[] args) throws SQLException { int i=0; Server STUD= new Server(); STUD.getConnection();

try { ServerSocket listener = new ServerSocket(port); Socket server; while((i++ < maxConnections) || (maxConnections == 0)) {

   @SuppressWarnings("unused")
   doComms connection;
   server = listener.accept();
   try{
    ResultSet checkconnection=stnew4.executeQuery("select count(*) from t_studentdetails");
    if(checkconnection.next())
    {
     //DO NOTHING IF EXCEPTION THEN CLOSE ALL CONNECTIONS AND OPEN NEW CONNECTIONS
    }

   }catch (Exception e) {
    System.out.print("Db Connection Lost Closing And Re-Opning It--------"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"--------"+e);
    STUD.closeConnection();
    STUD.getConnection();
   }
   doComms conn_c= new doComms(server,stnew,stnew1,stnew2,stnew3);
   Thread t = new Thread(conn_c);
   t.start();
  }
}catch (IOException ioe) 
 {
  System.out.println("Main IOException on socket listen: " + ioe);

 }

} public void run() {

} }

class doComms implements Runnable { private Socket server; private String input; static Connection conn=null; static Connection conn1=null; static Statement st,st1,st2,st3; doComms(Socket server, Statement st,Statement st1,Statement st2,Statement st3 ) { this.server=server; doComms.st=st; doComms.st1=st1; doComms.st2=st2; doComms.st3=st3; } @SuppressWarnings("deprecation") public void run () { input=""; //char ch; try { DataInputStream in = new DataInputStream (server.getInputStream()); OutputStreamWriter outgoing=new OutputStreamWriter(server.getOutputStream()); while(!(null==(input=in.readLine()))) {

    savetodatabase(input,server.getPort(),outgoing);    

   }
  //server.close();
  } catch (IOException ioe) 
   {
    System.out.println("RUN IOException on socket listen:-------"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"----- " + ioe);
    ioe.printStackTrace();
   }

} public void savetodatabase(String line, int port1, OutputStreamWriter outgoing) { try { String Rollno="-",name="-",div="-",storeddate="-",storedtime="-",mailfrom=""; String newline=line; String unitid="-";

  storeddate=new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
  storedtime=new SimpleDateFormat("HH:mm:ss").format(new java.util.Date());
  String sql2="delete from t_currentport where PortNumber='"+port1+"''";
  st2.executeUpdate(sql2);
  sql2="insert into t_currentport (unitid, portnumber,thedate,thetime) values ('"+unitid+"','"+port1+"','"+storeddate+"','"+storedtime+"')";
  st2.executeUpdate(sql2);
  String tablename=GetTable();
  String sql="select * from t_studentdetails where Unitid='"+unitid+"'";
  ResultSet rst=st2.executeQuery(sql);
  if(rst.next())
  {
   Rollno=rst.getString("Rollno");
   name=rst.getString("name");
   div=rst.getString("div");
  }
  String sql1="insert into studentInfo StoredDate,StoredTime,Subject,UnitId,Body,Status,Rollno,div,VehId,MailDate,MailTime,MailFrom,MailTo,Header,UnProcessedStamps) values('"+storeddate+"','"+storedtime+"','"+unitid+"','"+unitid+"','"+newline+"','Pending','"+Rollno+"','"+div+"','"+name+"','"+storeddate+"','"+storedtime+"','"+mailfrom+"','"+mailfrom+"','-','-')";
  st1.executeUpdate(sql1);
  }catch(Exception e)
  {
   System.out.print("Save to db Connection Exception--"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"-->"+e);

  }

}

}

© Stack Overflow or respective owner

Related posts about java