JBOSS 點滴

          豐豐的博客

          明宇報表測試

          錯誤提示
          10:53:34,046 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for ser
          vlet jsp threw exception
          com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 已關閉。
                  at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(U
          nknown Source)
                  at com.microsoft.sqlserver.jdbc.SQLServerResultSet.checkClosed(Unknown S
          ource)
                  at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(Unknown Source)
                  at org.jboss.resource.adapter.jdbc.WrappedResultSet.next(WrappedResultSe 

           測試辦法
          rs = CCommonDAO.getReSult(sql,"ELOGISDBCON");
          之后請先注釋掉報表相關代碼,使用下面的測試代碼遍歷一下結果集試試看
          while(rs.next()){
              System.out.println(rs.getObject(1));
          }
          現在還在測試中,表面提示好象是代碼有問題,但在不同的服務器上得出的結果卻不一樣,真叫人深思

          問題已查出.,因報表寫法不合規則,所以造成CPU沒有得到釋放,在JBOSS3.2.5中允許不合規格的寫法,但在JBOSS4.0中不允許這種寫法.
          原寫法: 
           try{
           rs = CCommonDAO.getReSult(sql,"ELOGISDBCON");
           MREngine engine = new MREngine(pageContext,"/RepRoot/");
           engine.addDataSet("usp_inbill_order",rs);
           engine.bind("Report/ware_report/inbill_order");
           rs.close();
            }finally{
              //rs.close();
            }
          規則寫法:
           try{

           pCon =ConnectionManager.getConnection("ELOGISDBCON");
           ps = pCon.prepareStatement(sql);
           rs = ps.executeQuery();

              MREngine engine = new MREngine(pageContext,"/RepRoot/");
           engine.addDataSet("usp_copyinout_rpt",rs);
           engine.bind("Report/ware_report/inout_rpt");
           ps.close();
           rs.close();
              pCon.close();
              }catch(Exception e){
                ps.close();
             rs.close();
                pCon.close();
                e.printStackTrace();
                throw new Exception("查詢失敗");   
              }finally{
                ps.close();
             rs.close();
                pCon.close();
            }



          錯誤提示2:
          Reached the report count limit!是正常的提示,有兩個可能的原因:
          1、服務器上插的是設計器的加密鎖。設計器加密鎖可以做引擎的加密鎖用,運行報表程序,但是有加載模板數量的限制。出錯以后,重啟Webserver可以再加載報表,或直接找明宇公司再買個顯示加密狗。
          2、服務器上部署的引擎文件mr.jar是試用版的文件,或者有試用版的jar文件在服務器上,刪掉試用版的jar文件,換成正式版,清除webserver臨時文件,重啟webserver的就可以了。

          posted on 2006-11-13 10:58 半導體 閱讀(1766) 評論(5)  編輯  收藏 所屬分類: 報表

          評論

          # re: 明宇報表測試 2008-01-30 14:58 王子6號

          這么寫也有可能錯誤哦。  回復  更多評論   

          # re: 明宇報表測試 2008-01-30 14:59 王子6號

          catch(Exception e){
          ps.close();
          rs.close();
          pCon.close();
          e.printStackTrace();
          throw new Exception("查詢失敗");
          }finally{
          ps.close();
          rs.close();
          pCon.close();
          }

          如果這里的rs或者pCon根本就沒有打開,是null的時候,你的惡夢就來了。
          所以,你最好是,先判斷以后再來
          if(null != rs)
          rs.close();  回復  更多評論   

          # re: 明宇報表測試 2008-08-02 16:28 fiele

          @王子6號
          有道理  回復  更多評論   

          # re: 明宇報表測試 2012-12-27 11:56 Reached the report count limit!

          Reached the report count limit!
          怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!怎么解決!  回復  更多評論   

          # re: 明宇報表測試 2013-01-04 17:01 半導體

          @Reached the report count limit!
          您好,不好意思,沒有看到你的問題,如果你碰到這種問題,說明你用的是設計加密狗,設計加密狗規定,查看報表不能超過十個。
          解決辦法:建議你去明宇買個顯示狗吧,臨時解決辦法,重啟服務器!  回復  更多評論   

          主站蜘蛛池模板: 洞口县| 门源| 漾濞| 蚌埠市| 嘉峪关市| 读书| 宁明县| 淮南市| 陆河县| 阿勒泰市| 天津市| 涿鹿县| 西林县| 友谊县| 普洱| 如东县| 名山县| 广安市| 保康县| 甘谷县| 子洲县| 营山县| 平顶山市| 宜阳县| 无为县| 吴江市| 西宁市| 辉县市| 闽清县| 新源县| 梁山县| 松潘县| 西城区| 福泉市| 邯郸县| 龙南县| 天峨县| 滨海县| 上林县| 康马县| 景泰县|