我们正在使用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配置,我们无法找到让交易活得更久的方法。 (在事务的生存时间真正的问题?)