严重: null
INFO   | jvm 1    | 2011/03/27 20:36:43 | [dscp:/subroutine/lol_DB_Utility/1.pnut line: 291]:
INFO   | jvm 1    | 2011/03/27 20:36:43 |     executeInterfaceQuery(sun.jdbc.odbc.JdbcOdbcConnection@b67cf0, "select * from equipmentStateInfo where isEfficiency='0' and   EquipmentID in ('OP0020','OP0030','OP0050','OP0090','OP0100','OP0110','OP0190','OP0210','OP0230','OP0250','OP0280','OP0350','OP0370','OP0380','OP0410-1','OP0420','OP0430','OP2010-1','OP2020','OP2040','OP2060','OP2080','OP3010','OP3020','OP3030')")
INFO   | jvm 1    | 2011/03/27 20:36:43 | java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionRead (recv()).我的程序会频繁的连数据库,是没有办法的.一段时间就会出现这个错误.求高手指教.谢谢谢谢.executeInterfaceQuery(conn,sql) 内容为:
statem = conn.createStatement()
    resultSet = statem.executeQuery(sql)
    return resultSet

解决方案 »

  1.   

    是否用了定时器?
    在Eclipse中打断点跟踪下吧。
      

  2.   

    是否是不定期的出现此问题?是否只在你的特定的主机上有这个问题?错误是SqlServer的ODBC链接报出来的,换一台SqlServer的服务器再测,如果是那台机器才会有这样的问题,重装该机器的ODBC驱动
      

  3.   

    为什么要频繁连接数据库啊。怎么不用单例模式?
    package flight.assist;import java.sql.*;
    /**
     * 数据库访问辅助类,使用了Singleton软件设计模式
     */
    public class DataBaseManager {
      private static DataBaseManager instance;
      private Connection con;
      private ResultSet rs;
      private Statement stmt;  public static DataBaseManager getInstance() {
        if (instance == null) {
          instance = new DataBaseManager();
        }
        return instance;
      }  private DataBaseManager() {
        try {
          String url = "jdbc:odbc:flight";
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          con = DriverManager.getConnection(url);
          stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                     ResultSet.CONCUR_UPDATABLE);
        }
        catch (SQLException sqle) {
          System.out.println(sqle.toString());
        }
        catch (ClassNotFoundException cnfex) {
          cnfex.printStackTrace();
        }
      }  public ResultSet getResult(String strSQL) {
        try {
          rs = stmt.executeQuery(strSQL);
          return rs;
        }
        catch (SQLException sqle) {
          System.out.println(sqle.toString());
          return null;
        }  }  public int updateSql(String strSQL) {
        try {
          int i = stmt.executeUpdate(strSQL);
          con.commit();
          return i;
        }
        catch (SQLException sqle) {
          System.out.println(sqle.toString());
          return -1;
        }
      }  public void closeConnection() {
        try {
          con.close();
          this.instance=null;
        }
        catch (SQLException sqle) {
          System.out.println(sqle.toString());
        }
      }
    }
      

  4.   

    session 和statement及时关闭没