Мы конвертируем большой PDF-файл с использованием сервиса Adobe LiveCycle ConvertPDF.Как увеличить тайм-аут транзакции на сервере Adobe LiveCycle? Длинный вызов службы завершается с ошибкой таймаута
Это прекрасно подходит для небольших файлов PDF, но не удается, когда мы пытаемся преобразовать большой файл PDF (около 150 МБ - не спрашивайте).
Похоже, что 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, мы не можем найти способ продлить транзакцию. (Есть время сделки жить действительно вопрос?)