Как увеличить время ожидания транзакции на сервере Adobe LiveCycle?Вызов длительного обслуживания завершился неудачно с исключением тайм-аута

StackOverflow https://stackoverflow.com/questions/561858

  •  05-09-2019
  •  | 
  •  

Вопрос

Мы конвертируем большой PDF-файл с помощью сервиса Adobe LiveCycle ConvertPDF.

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

Это было полезно?

Решение

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

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

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

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

Другие советы

Эта запись в блоге продукта LiveCycle также может помочь:http://blogs.adobe.com/livecycle/2008/10/livecycle_processing_big_docum.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top