Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Another concurrency issue?

Avatar

Level 3

Here's another failure that seems related to processing batches larger than one file at a time.  Has anyone else seen this?

Failure Time----Tue Jan 25 11:01:09 EST 2011
source location ---- Reason of failure is-----[com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] The transaction is not active!
[com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] The transaction is not active!
java.lang.IllegalStateException: [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] The transaction is not active!
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:223)
at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:501)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:411)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:960)
at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:430)
at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:103)
at $Proxy158.doRequiresNew(Unknown Source)
at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvider.java:143)
at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInterceptor.java:72)
at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
at com.adobe.idp.dsc.interceptor.impl.InvocationStrategyInterceptor.intercept(InvocationStrategyInterceptor.java:55)
at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateInterceptor.java:37)
at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterceptor.java:188)
at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
at com.adobe.idp.dsc.interceptor.impl.JMXInterceptor.intercept(JMXInterceptor.java:48)
at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)
at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.invoke(ServiceEngineImpl.java:121)
at com.adobe.idp.dsc.routing.Router.routeRequest(Router.java:129)
at com.adobe.idp.dsc.provider.impl.base.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:93)
at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:225)
at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:66)
at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
at com.adobe.idp.jobmanager.execution.workadapter.AbstractExecutableJob.invokeRequest(AbstractExecutableJob.java:127)
at com.adobe.idp.jobmanager.execution.workadapter.PersistentExecutableJob.execute(PersistentExecutableJob.java:60)
at com.adobe.idp.dsc.workmanager.adapter.UnManagedAsynchronousWorkAdapter.run(UnManagedAsynchronousWorkAdapter.java:39)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
at java.lang.Thread.run(Thread.java:619)

6 Replies

Avatar

Former Community Member

I have seen this problem when the barcode decoder fails to find any barcodes in the current document so the transaction fails. You will need to handle the failure itself by creating a route or wrapping the decode service in your own code.

Avatar

Level 3

Thanks Lee.  Unfortunately it seems to take forever for LC to throw this exception, and the system gets terribly bogged down if we hit a few of these at the same time.

Regarding your suggestion to create a route, do you mean to create an exception event for this type of exception?  Can you provide a pointer to documentation for this process?

Regarding the suggestion to wrap the decode service in my own code, again, could you point me to documentation or examples?  Do you mean writing a java component that wraps the underlying decoder class or a subprocess at the livecycle workbench level or ???

Best Regards,

Noam

Avatar

Former Community Member

The best place for code examples would be the Quickstarts here:

http://help.adobe.com/en_US/livecycle/9.0/programLC/help/index.htm?content=000448.html. A custom DSC that uses the decode service would probably give you the control you were looking for but I thnk the delay you may be experiencing in the decode is the decoder "trying" to find the barcode on the page. ie: rotating the page, looking again. etc. So the wrapper would help you handle the error better but not the delay. For that you could place a timeout on the decode service itself. Have the decode service time out if it takes more than 60 secodes to decode on a page.

Avatar

Former Community Member

By the way, make sure you are specifically searching for only the type of barcode you have on your documents. i.e.: don't check off all the barcode boxes.

Avatar

Level 3

Thank you for the pointer to the quickstart.  Do you have a good reference for handling exceptions from LiveCycle Workbench?

Also in response to your other note, I have only Code 128 checked.

Rahul K at adobe support has suggested we use the ConvertPDFService "toimage" operation to transform the PDF to TIFF prior to scanning for barcodes and this has helped in some instances, but led to other issues.  Apparently "toimage" doesn't like non-flattened documents so we will need to also use the OutputService "transformPDF" operation to flatten, but of course, some of the barcodes are tagged data which will be lost, so we need to have multiple versions of the document floating around.  Also, to use PDFGenerator we need to install Acrobat Pro Extended.  Still sorting through all of this.

Please chime in if you have additional suggestions.  Sorry to be asking questions that are all over the map, but I'm trying to attack the problem from a number of angles in the hope of getting past this.

Thanks again,

Noam

Avatar

Level 3

Regarding setting the decode service timeout - how is this accomplished?

Thanks!