Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 46557 invoked from network); 9 Apr 2006 06:49:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 9 Apr 2006 06:49:05 -0000 Received: (qmail 97485 invoked by uid 500); 9 Apr 2006 06:49:03 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 97098 invoked by uid 500); 9 Apr 2006 06:49:02 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 97080 invoked by uid 99); 9 Apr 2006 06:49:02 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 08 Apr 2006 23:49:02 -0700 X-ASF-Spam-Status: No, hits=1.4 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_WHOIS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [216.136.173.58] (HELO smtp014.mail.yahoo.com) (216.136.173.58) by apache.org (qpsmtpd/0.29) with SMTP; Sat, 08 Apr 2006 23:49:01 -0700 Received: (qmail 94641 invoked from network); 9 Apr 2006 06:48:40 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Received:Mime-Version:In-Reply-To:References:Content-Type:Message-Id:Content-Transfer-Encoding:From:Subject:Date:To:X-Mailer; b=OTNPOLLrgieymiC5T0Ti3EXu43RBntvF09luQkMuWx2cvZaaNZwhBLPxdpO9/C3Ze7rEHQoA0QUiwhBRaLJDTRM0nJhodcOVAodOR09bCcku1a2dmVn8Kdw7g1AuxAk8ZVDWMvcvecC7DmIb+h/jS4bhqLFYxEp51xRIPokHgZc= ; Received: from unknown (HELO ?10.11.55.46?) (david?jencks@63.105.20.225 with plain) by smtp014.mail.yahoo.com with SMTP; 9 Apr 2006 06:48:40 -0000 Mime-Version: 1.0 (Apple Message framework v746.2) In-Reply-To: References: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: David Jencks Subject: Re: TranQL issue at SPECjAppServer2004 atomicity tests Date: Sat, 8 Apr 2006 23:48:45 -0700 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.746.2) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N It looks to me as if a local-tx only connector is being used as if it supports xa. It shouldn't be possible to deploy a connector with a correct ra.xml in such a way as to create this problem. Can you supply the geronimo plan for the connector, and indicate which connector you deployed, and exactly how you deployed it? With this information figuring out what is wrong and how to fix it should be easy (famous last words :-) Many thanks, david jencks On Apr 8, 2006, at 2:10 PM, Zakharov, Vasily M wrote: > Hi, all, > > I've successfuly deployed SPECjAppServer2004 benchmark on Geronimo 1.0 > (see http://issues.apache.org/jira/browse/GERONIMO-1800), but I have > trouble running the basic atomicity tests > (http://localhost:8080/SPECjAppServer/ page, link "Atomicity Tests") > that check the correctness of the benchmark operation - all three > tests > are marked FAILED. > > The investigation (see below) showed that the root cause for the > problem > is the following piece of code: > > org.tranql.connector.jdbc.ManagedJDBCConnection: > 123 public XAResource getXAResource() throws ResourceException { > 124 throw new NotSupportedException("XAResource not available > from > a LocalTransaction connection"); > 125 } > > The question is, how critical this situation is? Does it mean > SPECjAppServer2004 uses things it shouldn't use? Or the problem > lies in > TranQL implementation, or maybe Derby database or Derby JDBC > driver? Or > does it mean SPECjAppServer2004 can't run on Geronimo at all? > > Any ideas, suggestion and comments are highly welcome! > > Thanks! > > > Here's the original stack displayed in Geronimo console window at each > atomicity tests' run: > > javax.transaction.TransactionRolledbackException: > javax.ejb.FinderException: Error executing statement: SELECT C.C_ID > FROM > C_CUSTOMER C WHERE C.C_ID = ? > at > org.openejb.transaction.ContainerPolicy$TxRequired.invoke > (ContainerPolic > y.java:126) > at > org.openejb.transaction.TransactionContextInterceptor.invoke > (Transaction > ContextInterceptor.java:80) > at > org.openejb.slsb.StatelessInstanceInterceptor.invoke > (StatelessInstanceIn > terceptor.java:98) > at > org.openejb.transaction.ContainerPolicy$TxRequired.invoke > (ContainerPolic > y.java:140) > at > org.openejb.transaction.TransactionContextInterceptor.invoke > (Transaction > ContextInterceptor.java:80) > at > org.openejb.SystemExceptionInterceptor.invoke > (SystemExceptionInterceptor > .java:82) > at > org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238) > at > org.openejb.proxy.EJBMethodInterceptor.intercept > (EJBMethodInterceptor.ja > va:129) > at > org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$ > $4084bef.checkCustom > erCredit() > at > org.spec.jappserver.servlet.helper.SpecAction.atomicityTestTwo > (SpecActio > n.java:166) > at > org.spec.jappserver.servlet.helper.SpecServletAction.doAtomicityTests( > Sp > ecServletAction.java:1304) > at > org.spec.jappserver.servlet.SpecAppServlet.performTask > (SpecAppServlet.ja > va:166) > at > org.spec.jappserver.servlet.SpecAppServlet.doGet > (SpecAppServlet.java:96) > at javax.servlet.http.HttpServlet.service(HttpServlet.java: > 595) > at javax.servlet.http.HttpServlet.service(HttpServlet.java: > 688) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) > at > org.apache.geronimo.jetty.JettyServletHolder.handle > (JettyServletHolder.j > ava:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter > (Web > ApplicationHandler.java:830) > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter > (Web > ApplicationHandler.java:821) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch > (WebApplicationH > andler.java:471) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 568) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle > (WebApplicationCon > text.java:633) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at > org.mortbay.http.HttpConnection.service(HttpConnection.java:816) > at > org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) > at > org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) > at > org.mortbay.http.SocketListener.handleConnection > (SocketListener.java:244 > ) > at > org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at > org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > > Note that the SQL prepared statement causing the error is correct and > references the table and fields that really exist in the database. > Executing this statement from a separate Java application using JDBC > causes no problem. > > The code throwing this exception is: > > org.openejb.transaction.ContainerPolicy$TxRequired.invoke(): > 117 try { > 118 ejbInvocation.setTransactionContext(callerContext); > 119 return interceptor.invoke(ejbInvocation); > 120 } catch (Throwable t){ > 121 callerContext.setRollbackOnly(); > 122 if (ejbInvocation.getType().isLocal()) { > 123 throw new > TransactionRolledbackLocalException().initCause(t); > 124 } else { > 125 // can't set an initCause on a > TransactionRolledbackException > 126 -> throw new TransactionRolledbackException(t.getMessage > ()); > 127 } > 128 } finally { > 129 ejbInvocation.setTransactionContext(null); > 130 } > > So, the real cause for the exception is unknown. Adding > t.printStackTrace() at line 125 provided the following stack: > > javax.ejb.EJBException: javax.ejb.FinderException: Error executing > statement: SELECT C.C_ID FROM C_CUSTOMER C WHERE C.C_ID = ? > at > org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.checkCustomerC > re > dit(CustomerSesEJB.java:246) > at > org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB$ > $FastClassByCGLI > B$$c445ce6f.invoke() > at > org.openejb.dispatch.AbstractMethodOperation.invoke > (AbstractMethodOperat > ion.java:90) > at > org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67) > at > org.openejb.dispatch.DispatchInterceptor.invoke > (DispatchInterceptor.java > :72) > at > org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke > (Compo > nentContextInterceptor.java:56) > at > org.openejb.ConnectionTrackingInterceptor.invoke > (ConnectionTrackingInter > ceptor.java:81) > at > org.openejb.transaction.ContainerPolicy$TxRequired.invoke > (ContainerPolic > y.java:119) > at > org.openejb.transaction.TransactionContextInterceptor.invoke > (Transaction > ContextInterceptor.java:80) > at > org.openejb.slsb.StatelessInstanceInterceptor.invoke > (StatelessInstanceIn > terceptor.java:98) > at > org.openejb.transaction.ContainerPolicy$TxRequired.invoke > (ContainerPolic > y.java:142) > at > org.openejb.transaction.TransactionContextInterceptor.invoke > (Transaction > ContextInterceptor.java:80) > at > org.openejb.SystemExceptionInterceptor.invoke > (SystemExceptionInterceptor > .java:82) > at > org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238) > at > org.openejb.proxy.EJBMethodInterceptor.intercept > (EJBMethodInterceptor.ja > va:129) > at > org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$ > $82edd9c9.checkCusto > merCredit() > at > org.spec.jappserver.servlet.helper.SpecAction.atomicityTestTwo > (SpecActio > n.java:166) > at > org.spec.jappserver.servlet.helper.SpecServletAction.doAtomicityTests( > Sp > ecServletAction.java:1304) > at > org.spec.jappserver.servlet.SpecAppServlet.performTask > (SpecAppServlet.ja > va:166) > at > org.spec.jappserver.servlet.SpecAppServlet.doGet > (SpecAppServlet.java:96) > at javax.servlet.http.HttpServlet.service(HttpServlet.java: > 595) > at javax.servlet.http.HttpServlet.service(HttpServlet.java: > 688) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) > at > org.apache.geronimo.jetty.JettyServletHolder.handle > (JettyServletHolder.j > ava:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter > (Web > ApplicationHandler.java:830) > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter > (Web > ApplicationHandler.java:821) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch > (WebApplicationH > andler.java:471) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 568) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle > (WebApplicationCon > text.java:633) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at > org.mortbay.http.HttpConnection.service(HttpConnection.java:816) > at > org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) > at > org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) > at > org.mortbay.http.SocketListener.handleConnection > (SocketListener.java:244 > ) > at > org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at > org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > Caused by: javax.ejb.FinderException: Error executing statement: > SELECT > C.C_ID FROM C_CUSTOMER C WHERE C.C_ID = ? > at > org.openejb.entity.cmp.SingleValuedFinder.execute > (SingleValuedFinder.jav > a:83) > at > org.openejb.dispatch.DispatchInterceptor.invoke > (DispatchInterceptor.java > :72) > at > org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke > (Compo > nentContextInterceptor.java:56) > at > org.openejb.ConnectionTrackingInterceptor.invoke > (ConnectionTrackingInter > ceptor.java:81) > at > org.openejb.entity.EntityInstanceInterceptor.invoke > (EntityInstanceInterc > eptor.java:136) > at > org.openejb.entity.cmp.InTxCacheInterceptor.invoke > (InTxCacheInterceptor. > java:90) > at > org.openejb.transaction.ContainerPolicy$TxRequired.invoke > (ContainerPolic > y.java:119) > at > org.openejb.transaction.TransactionContextInterceptor.invoke > (Transaction > ContextInterceptor.java:80) > at > org.openejb.SystemExceptionInterceptor.invoke > (SystemExceptionInterceptor > .java:82) > at > org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238) > at > org.openejb.proxy.EJBMethodInterceptor.intercept > (EJBMethodInterceptor.ja > va:129) > at > org.openejb.proxy.EntityEJBLocalHome$$EnhancerByCGLIB$ > $bc77798c.findByPr > imaryKey() > at > org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.checkCustomerC > re > dit(CustomerSesEJB.java:243) > ... 38 more > Caused by: org.tranql.ql.QueryException: Error executing statement: > SELECT C.C_ID FROM C_CUSTOMER C WHERE C.C_ID = ? > at > org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:79) > at > org.tranql.cache.cache.FindByPKCacheQueryCommand.execute > (FindByPKCacheQu > eryCommand.java:66) > at org.openejb.entity.cmp.CMPFinder.execute(CMPFinder.java:99) > at > org.openejb.entity.cmp.SingleValuedFinder.execute > (SingleValuedFinder.jav > a:80) > ... 50 more > Caused by: java.sql.SQLException > at > org.tranql.connector.jdbc.DataSource.getConnection(DataSource.java:61) > at > $javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke() > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) > at > org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept > (Conne > ctorMethodInterceptor.java:53) > at > $javax.sql.DataSource$$EnhancerByCGLIB$$5149252c.getConnection > ( d>) > at > org.tranql.sql.DataSourceDelegate.getConnection > (DataSourceDelegate.java: > 39) > at > org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:61) > ... 53 more > Caused by: XAResource not available from a LocalTransaction connection > at > org.tranql.connector.jdbc.ManagedJDBCConnection.getXAResource > (ManagedJDB > CConnection.java:124) > at > org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor. > ge > tConnection(XAResourceInsertionInterceptor.java:43) > at > org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor > .i > nternalGetConnection(SinglePoolConnectionInterceptor.java:63) > at > org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInt > er > ceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:73) > at > org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor > .g > etConnection(TransactionEnlistingInterceptor.java:47) > at > org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.g > et > Connection(TransactionCachingInterceptor.java:81) > at > org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.get > Co > nnection(ConnectionHandleInterceptor.java:43) > at > org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection > (TCC > LInterceptor.java:39) > at > org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.g > et > Connection(ConnectionTrackingInterceptor.java:66) > at > org.apache.geronimo.connector.outbound.AbstractConnectionManager.alloc > at > eConnection(AbstractConnectionManager.java:57) > at > org.tranql.connector.jdbc.DataSource.getConnection(DataSource.java:56) > ... 59 more > > Vasily Zakharov > Intel Middleware Product Division