2009-02-18 3 views
1

Мы конвертируем большой 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, мы не можем найти способ продлить транзакцию. (Есть время сделки жить действительно вопрос?)

ответ

1

В LiveCycle консоли администрирования просто перейдите Главной> Услуги> Приложения и услуги> Управление Службы> ConvertPdfService

Тайм-аут службы может быть изменен там.

При тестировании с преобразованием pdf (сгенерировано iText), содержащим 39 тыс. Страниц (13 начальных, каждый клонированный 3000 раз, размер ~ 15 МБ) - окончательный вывод PostScript-файла - 1,25 ГБ. Целая работа заняла около 2 часов. Но это сработало, никаких проблем.

(я предполагаю, что этот ответ делает вопрос не программирования связаны между собой, но эй.)