2014-02-26 216 views
1

我在Birt中遇到了這個問題,在我嘗試生成報告的時候,以及在處理報告時,我取消了報告並嘗試再次生成相同的報告,我得到ReportServiceException。但是,如果我在一段時間後嘗試重新生成報告,則報告會生成正常。時間差可能有時多達2分鐘。ReporterException在Birt報告

我將部分堆棧跟蹤附加到此問題。有人能告訴我一個解決這個問題的方法嗎?

我正在運行Birt 2.5.2。我已經升級到4.1.3並試圖查看結果,但結果是一樣的。

org.eclipse.birt.report.service.api.ReportServiceException: Failed to open the report document. 
    at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1096) 
    at org.eclipse.birt.report.service.ReportEngineService.openReportDocument(ReportEngineService.java:495) 
    at org.eclipse.birt.report.service.BirtViewerReportService.openReportDocument(BirtViewerReportService.java:269) 
    at org.eclipse.birt.report.service.BirtViewerReportService.getPageCount(BirtViewerReportService.java:704) 
    at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:138) 
    at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:104) 
    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) 
    at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) 
    at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) 

回答

0

有很多變數,我不知道你提供了足夠的細節來識別問題。

如果您使用的是SQL數據庫

查詢到的數據庫可能仍在運行,並阻止新的嘗試連接。嘗試設置SQL超時。

  • 在「屬性編輯器」的「數據集」
  • 在「高級」選項卡,展開「ODA數據集」
  • 在「&查詢超時(秒)」設置值(我認爲5秒允許最小)

如果這沒有解決您的問題。

如果您的SQL查詢超時時間不超過5秒,那麼您的查詢運行速度不夠快,但報表創建,佈局或部署中出現問題。在您的問題中提供更多詳細信息,確定您遇到的具體問題。

0

我找到了解決方案。就我而言,報告的臨時文件名具有固定值。在生成新報告之前,必須刪除舊的臨時文件。

問題的解決方案是查看報告參數__document的值(此參數設置臨時文件名)每次都會獲取一個新值。最佳解決方案是每次將時間戳添加到此報告參數中的值。請注意,這將導致每次生成報告時都會創建大量臨時文件。必須小心看到臨時文件現在被刪除。