5 Replies Latest reply on Mar 27, 2014 2:53 PM by markaddleman

    Maximum update query

    jallman

      Is there a maximum update query that can be sent through the LDAP translator?

      We are using an extended LDAP translator and are having an issue sending a very large update.

      This works for us.

      Execute UPDATE acf2admingrp=lids,HOST=DE30,O=CAI,C=US SET audit = 'Y', account = 'Y', consult = 'Y', leader = 'Y', refresh = 'Y', security = 'Y', noncncl = 'Y', readall = 'Y', rsrcvld = 'Y', rulevld = 'Y', acctpriv = 'Y', acf2cics = 'Y', allcmds = 'Y', attr2 = 'AAAA', autodump = 'Y', bdt = 'Y', cancel = 'Y', char = 'Y', cics = 'Y', cicsid = 'KKK', cicsopt = 'Y', cmdlong = 'Y', cmdprop = 'Y', dftpfx = 'ACK', dumpauth = 'Y', ims = 'Y', intercom = 'Y', jcl = 'Y', job = 'Y', line = 'C', lidzmax = 'Y', lidzmin = 'Y', lgnacct = 'Y', lgndest = 'Y', lgnmsg = 'Y', lgnperf = 'Y', lgnproc = 'Y', lgnrcvr = 'Y', lgntime = 'Y', lgnunit = 'Y', logshift = 'Y', maint = 'Y', modemsg = 'Y', monlog = 'Y', monitor = 'Y', mount = 'Y', msgid = 'Y', multsign = 'Y', musass = 'Y', musdlid = 'Z123', musid = 'ACB', musidinf = 'Y', musupdt = 'Y', noinh = 'Y', nomaxvio = 'Y', noomvs = 'Y', nosmc = 'Y', nostats = 'Y', nostore = 'Y', operator = 'Y', pause = 'Y', pmtacct = 'Y', pmtproc = 'Y', program = 'ROMN', ppgm = 'Y', pptrc = 'Y', pptrcv = 'Y', prefix = 'ABCD', privctl = 'Y', prompt = 'Y', pswdexp = 'Y', pswdupp = 'Y', pwpallow = 'Y', pticket = 'Y', recover = 'Y', restrict = 'Y', rstdacc = 'Y', stc = 'Y', subauth = 'Y', syncnode = 'A1B3', syspexcl = 'Y', tapeblp = 'Y', tapelbl = 'Y', tso = 'Y', tsotrc = 'Y', tsocmds = 'ZXC', tsofscrn = 'Y', tsorba = 'CCCCCC', unicntr = 'Y', vldproc = 'Y', vldrstct = 'Y', wtp = 'Y' WHERE acf2admingrp=lids,host=xe42_cia,o=ca,c=us?SUBTREE_SCOPE.DN = '"acf2lid=ACF2WOLF,acf2admingrp=lids,HOST=DE30,O=CAI,C=US"' against org.teiid.translator.ldap.LDAPUpdateExecution@3f2c2eba with userid: flow36

       

      If we add one more attribute and value we get a teiid exception : BaseTransaction.rollback - ARJUNA016074: no transaction!

      Any assistance would be much appreciated!

        • 1. Re: Maximum update query
          shawkins

          There is no limitation that I'm aware of and I'd expect a more specific exception in the logs somewhere.  The rollback exception may just be something that is happening later.

          • 2. Re: Maximum update query
            jallman

            This is the log of the error that occurred.

             

              <messageString>An error occurred in a database:  BaseTransaction.rollback - ARJUNA016074: no transaction!.  38000.</messageString>

              <messageId>ETJDS091E</messageId>

              <isOverridable>false</isOverridable>

              <messageDetails>

                <string>org.teiid.jdbc.TeiidSQLException: BaseTransaction.rollback - ARJUNA016074: no transaction!&#xd;

            at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)&#xd;

            at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)&#xd;

            at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)&#xd;

            at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)&#xd;

            at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)&#xd;

            at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)&#xd;

            at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)&#xd;

            at org.teiid.jdbc.PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:217)&#xd;

            at com.ca.chorus.db.DbExecutor$9.call(DbExecutor.java:846)&#xd;

            at com.ca.chorus.db.DbExecutor$9.call(DbExecutor.java:822)&#xd;

            at com.ca.chorus.aop.guice.PerfTracer.trace(PerfTracer.java:57)&#xd;

            at com.ca.chorus.db.DbExecutor.executeDml(DbExecutor.java:821)&#xd;

            at com.ca.chorus.db.DbExecutor.executeDml(DbExecutor.java:791)&#xd;

            at com.ca.mfui.chorusR2.server.service.ObjectsServiceImpl.updateFormObject(ObjectsServiceImpl.java:1362)&#xd;

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xd;

            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)&#xd;

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xd;

            at java.lang.reflect.Method.invoke(Method.java:601)&#xd;

            at com.ca.mfui.chorusR2.servlet.ChorusGWTServlet.processCall(ChorusGWTServlet.java:272)&#xd;

            at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)&#xd;

            at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)&#xd;

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)&#xd;

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)&#xd;

            at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)&#xd;

            at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)&#xd;

            at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.ca.mfui.chorusR2.servlet.TransactionFilter$1.call(TransactionFilter.java:54)&#xd;

            at com.ca.mfui.chorusR2.servlet.TransactionFilter$1.call(TransactionFilter.java:43)&#xd;

            at com.ca.chorus.server.transaction.TransactionRunner.invoke(TransactionRunner.java:19)&#xd;

            at com.ca.chorus.server.transaction.TransactionRunner$$EnhancerByGuice$$6233951a.CGLIB$invoke$1(&lt;generated&gt;)&#xd;

            at com.ca.chorus.server.transaction.TransactionRunner$$EnhancerByGuice$$6233951a$$FastClassByGuice$$9776f4b2.invoke(&lt;generated&gt;)&#xd;

            at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)&#xd;

            at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)&#xd;

            at com.ca.chorus.aop.guice.PerfTracer.trace(PerfTracer.java:75)&#xd;

            at com.ca.chorus.aop.guice.PerfTracer.trace(PerfTracer.java:92)&#xd;

            at com.ca.chorus.server.transaction.TransactionalMethodInterceptor.invoke(TransactionalMethodInterceptor.java:31)&#xd;

            at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)&#xd;

            at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)&#xd;

            at com.ca.chorus.server.transaction.TransactionRunner$$EnhancerByGuice$$6233951a.invoke(&lt;generated&gt;)&#xd;

            at com.ca.mfui.chorusR2.servlet.TransactionFilter.doFilter(TransactionFilter.java:42)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)&#xd;

            at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)&#xd;

            at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)&#xd;

            at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)&#xd;

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)&#xd;

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)&#xd;

            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)&#xd;

            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)&#xd;

            at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)&#xd;

            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)&#xd;

            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)&#xd;

            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)&#xd;

            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)&#xd;

            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)&#xd;

            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)&#xd;

            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)&#xd;

            at java.lang.Thread.run(Thread.java:722)&#xd;

            Caused by: org.teiid.core.TeiidException: BaseTransaction.rollback - ARJUNA016074: no transaction!&#xd;

            at org.teiid.client.ResultsMessage.setException(ResultsMessage.java:172)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.sendError(RequestWorkItem.java:810)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.close(RequestWorkItem.java:483)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:318)&#xd;

            at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)&#xd;

            at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)&#xd;

            at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)&#xd;

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xd;

            at java.lang.reflect.Method.invoke(Method.java:601)&#xd;

            at org.teiid.logging.LogManager$LoggingProxy.invoke(LogManager.java:121)&#xd;

            at org.teiid.jboss.TransportService$2.invoke(TransportService.java:205)&#xd;

            at $Proxy19.executeRequest(Unknown Source)&#xd;

            at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)&#xd;

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xd;

            at java.lang.reflect.Method.invoke(Method.java:601)&#xd;

            at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)&#xd;

            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)&#xd;

            at java.util.concurrent.FutureTask.run(FutureTask.java:166)&#xd;

            at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)&#xd;

            at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)&#xd;

            at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)&#xd;

            at $Proxy19.executeRequest(Unknown Source)&#xd;

            at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)&#xd;

            at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)&#xd;

            ... 61 more&#xd;

            Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!&#xd;

            at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:130)&#xd;

            at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114)&#xd;

            at org.teiid.dqp.internal.process.TransactionServerImpl.rollbackDirect(TransactionServerImpl.java:409)&#xd;

            at org.teiid.dqp.internal.process.TransactionServerImpl.rollback(TransactionServerImpl.java:500)&#xd;

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xd;

            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)&#xd;

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xd;

            at java.lang.reflect.Method.invoke(Method.java:601)&#xd;

            at org.teiid.logging.LogManager$LoggingProxy.invoke(LogManager.java:121)&#xd;

            at $Proxy17.rollback(Unknown Source)&#xd;

            at org.teiid.query.processor.proc.ProcedurePlan.pop(ProcedurePlan.java:577)&#xd;

            at org.teiid.query.processor.proc.ProcedurePlan.close(ProcedurePlan.java:382)&#xd;

            at org.teiid.query.processor.QueryProcessor.closeProcessing(QueryProcessor.java:227)&#xd;

            at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:178)&#xd;

            at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)&#xd;

            at org.teiid.query.processor.proc.ForEachRowPlan.nextBatch(ForEachRowPlan.java:123)&#xd;

            at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118)&#xd;

            at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)&#xd;

            at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)&#xd;

            at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)&#xd;

            at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)&#xd;

            at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)&#xd;

            at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)&#xd;

            at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)&#xd;

            at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)&#xd;

            • 3. Re: Maximum update query
              shawkins

              Are there other exceptions in the log?  This exception is happening when a procedure is not completing normally.  It should actually be caught and may be preventing the actual exception from being reported. What version is this? 

              • 4. Re: Maximum update query
                shawkins

                I can't really determine from what we have here what else is going on, but the exception at least is handled better with https://issues.jboss.org/browse/TEIID-2907

                 

                Would it be possible to rerun your scenario with the patch from TEIID-2907?

                 

                Also a lot of the transaction handling with procedures was cleaned up with [TEIID-2205] Temp table and procedure block transactions issue - JBoss Issue Tracker and later issues, so hopefully at least the erroneous transactional part of this may have been addressed.

                 

                Steve

                • 5. Re: Maximum update query
                  markaddleman

                  Thanks for the info Steve.  We'll be upgrading to Teiid 8.6 pretty soon and we can retry.  In the meantime, I noticed the following:

                  • The update command is successful if there are 92 fields updated in both our application and the Eclipse DB explorer
                  • The update command fails if there are 93 fields updated in our application but succeeds in the DB explorer
                  • When it fails, we get this exception from the distributed transaction manager
                  • The only relevant difference I can find is in the connection URL.  Our application calls setAutoCommitTxn("OFF") in the Teiid data source while the DB Explorer uses the default DETECT setting.

                  We're in the process of retesting the DB explorer scenario with autoCommitTxn=DETECT