我們正在使用Adobe LiveCycle ConvertPDF服務轉換大型PDF文件。如何增加Adobe LiveCycle服務器中的事務超時?長時間服務呼叫失敗,超時異常
這適用於較小的PDF文件,但當我們試圖轉換一個大的PDF文件時(150MB左右 - 不要問)會失敗。
看起來Adobe似乎將事務超時設置爲14(?)分鐘左右。由於我們龐大的PDF的處理時間超過此時間,操作會中止。 我們嘗試了多個PDF文件,因此這可能不是由輸入文件損壞引起的。
下面是異常產生的輸出:
com.adobe.livecycle.convertpdfservice.exception.ConvertPdfException: ALC-DSC-000-000: com.adobe.idp.dsc.DSCException: Internal error.
at com.adobe.convertpdf.docservice.ConvertPdfServiceImpl.toPS2WithSMT(ConvertPdfServiceImpl.java:117)
at com.adobe.convertpdf.docservice.ConvertPdfServiceImpl.toPS2(ConvertPdfServiceImpl.java:93)
[...]
Caused by: ALC-DSC-000-000: com.adobe.idp.dsc.DSCException: Internal error.
at com.adobe.convertpdf.docservice.ConvertPdfServiceImpl$1.doInTransaction(ConvertPdfServiceImpl.java:110)
at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionBMTAdapterBean.doRequiresNew(EjbTransactionBMTAdapterBean.java:218)
[...]
Caused by: com.adobe.livecycle.convertpdfservice.exception.ConvertPdfException: Cannot convert PDF file to PostScript.
Exception: "Transaction timed out: Couldn't connect to Datamanager Service"
at com.adobe.convertpdf.ConvertPdfBmcWrapper.convertPdftoPs(ConvertPdfBmcWrapper.java:207)
at com.adobe.convertpdf.ConvertPdfServer.convertPdftoPs(ConvertPdfServer.java:121)
at com.adobe.convertpdf.docservice.ConvertPdfServiceImpl.toPS2InTxn(ConvertPdfServiceImpl.java:129)
[...]
到目前爲止 - 似乎是合乎邏輯。
但是,我找不到事務長度的配置。我想如果我們將超時時間增加到30分鐘,我們的問題就會消失。 (同樣的問題會消失,如果我們有調用這個操作沒有任何交易的方式......)
比方說,我們只運行這樣的:
ServiceClientFactory factory = com.adobe.idp.dsc.clientsdk.ServiceClientFactory.createInstance(connectionProps);
ConvertPdfServiceClient convertPDFClient = new com.adobe.livecycle.convertpdfservice.client.ConvertPdfServiceClient(factory);
// ... set-up details skipped ...
com.adobe.idp.Document result_postscript = convertPDFClient.toPS2(inPdf,options);
result_postscript.copyToFile(new File("c:/Adobe/output.ps"))
然而,無論我們是不是正確設置ServiceClientFactory,或者可能沒有正確讀取JBoss配置,我們無法找到讓交易活得更久的方法。 (在事務的生存時間真正的問題?)