Как увеличить время ожидания транзакции на сервере Adobe LiveCycle? Длинный сервисный вызов завершается неудачно с исключением тайм-аута - PullRequest
1 голос
/ 18 февраля 2009

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

Ответы [ 2 ]

1 голос
/ 30 августа 2009

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

1 голос
/ 13 марта 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...