首先谢谢大家。
代码如下:
    try {
            ctx = getContext();
            if (ds == null) {
                ds = (DataSource) ctx.lookup(CONTEXT_PRE + sDBCode);
            }
            conn = ds.getConnection();  // ------------------------------ 1
            if (conn == null) {
                conn = getJdbcConnection();
            }
        } catch (Exception e) {
            conn = getJdbcConnection();
            e.printStackTrace();
        }
代码执行到1处,既没有抛出异常,又没有继续往下执行,程序就死在那了。请问各位大侠有谁知道到底是什么原因吗?
或者在什么情况下会出现这种问题啊?
注:整个程序是循环读取数据库数据,刚开始都没有问题,就是在中间有时候会死那。

解决方案 »

  1.   

    代码贴出来的不多,你说  "就是在中间有时候会死那。"
    说明很可能是你以前打开的数据库连接一直没有关闭,然后你有一直用 conn = ds.getConnection();  
    获取连接,达到连接池的上限后就获得不到连接了,就出现你这种情况`
      

  2.   

      <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>把 maxActive 设置大些试试。