6 Replies Latest reply on Apr 18, 2011 11:33 AM by nstopak

    Another concurrency issue?

    nstopak Level 1

      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(TransactionImp le.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(EjbTransactionProvi der.java:143)
      at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInt erceptor.java:72)
      at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
      at com.adobe.idp.dsc.interceptor.impl.InvocationStrategyInterceptor.intercept(InvocationStra tegyInterceptor.java:55)
      at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
      at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateIntercep tor.java:37)
      at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
      at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterc eptor.java:188)
      at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
      at com.adobe.idp.dsc.interceptor.impl.JMXInterceptor.intercept(JMXInterceptor.java:48)
      at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.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(AbstractMessage Receiver.java:93)
      at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:22 5)
      at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:66)
      at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
      at com.adobe.idp.jobmanager.execution.workadapter.AbstractExecutableJob.invokeRequest(Abstra ctExecutableJob.java:127)
      at com.adobe.idp.jobmanager.execution.workadapter.PersistentExecutableJob.execute(Persistent ExecutableJob.java:60)
      at com.adobe.idp.dsc.workmanager.adapter.UnManagedAsynchronousWorkAdapter.run(UnManagedAsync hronousWorkAdapter.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)

        • 1. Re: Another concurrency issue?
          leesutton Level 3

          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.

          1 person found this helpful
          • 2. Re: Another concurrency issue?
            nstopak Level 1

            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

            • 3. Re: Another concurrency issue?
              leesutton Level 3

              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.

              1 person found this helpful
              • 4. Re: Another concurrency issue?
                leesutton Level 3

                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.

                1 person found this helpful
                • 5. Re: Another concurrency issue?
                  nstopak Level 1

                  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

                  • 6. Re: Another concurrency issue?
                    nstopak Level 1

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

                     

                    Thanks!