Thanks Vasily,
I have corrected the plans. How are the plans going for Oracle? I think that we need to be able to
specify select for update to achieve the right consistency level for SPECj2004. Curious what your
feedback is.
Vasily Zakharov (JIRA) wrote:
[ http://issues.apache.org/jira/browse/GERONIMO-1046?page=comments#action_12416551 ]
Vasily Zakharov commented on GERONIMO-1046:
-------------------------------------------
There's a typo in this bug's resolution - the package name for
<ejb-ql-compiler-factory> is org.tranql.ejbQLcompiler.
So the right line would be:
<ejb-ql-compiler-factory>org.tranql.ejbqlcompiler.OracleEJBQLCompilerFactory</ejb-ql-compiler-factory>
ORA-00920 SQL Exception thrown when testing day trader with Oracle
------------------------------------------------------------------
Key: GERONIMO-1046
URL: http://issues.apache.org/jira/browse/GERONIMO-1046
Project: Geronimo
Type: Bug
Security: public(Regular issues)
Versions: 1.0
Environment: All
Reporter: Matt Hogstrom
Assignee: Matt Hogstrom
Fix For: 1.0
The following exception occurs when running day trader with Oracle:
15:54:36,575 WARN [/trade] /trade/app: java.rmi.RemoteException: Unable to
commit container transaction; nested exception is:
javax.transaction.SystemException: Unable to commit container
transaction
at
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java(Compiled
Code))
at
org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$c46b8cb8.login(<generated>)
at
org.apache.geronimo.samples.daytrader.TradeAction.login(TradeAction.java:421)
at
org.apache.geronimo.samples.daytrader.web.TradeServletAction.doLogin(TradeServletAction.java:341)
at
org.apache.geronimo.samples.daytrader.web.TradeAppServlet.performTask(TradeAppServlet.java:124)
at
org.apache.geronimo.samples.daytrader.web.TradeAppServlet.doPost(TradeAppServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
at
org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:99)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
at
org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter(OrdersAlertFilter.java:84)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicati
onHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5
68)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplication
Context.java:635)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
at org.mortbay.http.HttpServer.service(HttpServer.java:954)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
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.transaction.SystemException: Unable to commit container transac
tion
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.rollbackAndThrow(InheritableTransactionContext.java:327)
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.complete(InheritableTransactionContext.java(Compiled Code))
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.commit(InheritableTransactionContext.java(Compiled Code))
at org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPo
licy.java(Compiled Code))
at org.openejb.transaction.TransactionContextInterceptor.invoke(Transact
ionContextInterceptor.java(Compiled Code))
at org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionIntercep
tor.java(Compiled Code))
at org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java(Compi
led Code))
... 27 more
Caused by: org.tranql.ql.QueryException: Error executing statement: UPDATE Accou
ntEJB SET creationDate = CASE WHEN ? THEN ? ELSE creationDate END, openBalance =
CASE WHEN ? THEN ? ELSE openBalance END, logoutCount = CASE WHEN ? THEN ? ELSE
logoutCount END, balance = CASE WHEN ? THEN ? ELSE balance END, lastLogin = CASE
WHEN ? THEN ? ELSE lastLogin END, loginCount = CASE WHEN ? THEN ? ELSE loginCou
nt END, profile_userID = CASE WHEN ? THEN ? ELSE profile_userID END WHERE accoun
tID = ?
at org.tranql.sql.jdbc.JDBCUpdateCommand.execute(JDBCUpdateCommand.java(
Compiled Code))
at org.tranql.cache.SimpleFlushStrategy.flush(SimpleFlushStrategy.java(C
ompiled Code))
at org.tranql.cache.SimpleFlushStrategy.flush(SimpleFlushStrategy.java(C
ompiled Code))
at org.tranql.cache.InTxCache.flush(InTxCache.java(Inlined Compiled Code
))
at org.apache.geronimo.transaction.context.AbstractTransactionContext.fl
ushState(AbstractTransactionContext.java(Compiled Code))
... 33 more
Caused by: java.sql.SQLException: ORA-00920: invalid relational operator
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java(Compiled Cod
e))
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java(Inlined Comp
iled Code))
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java(Compiled Code))
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.
java(Compiled Code))
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedS
tatement.java(Compiled Code))
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java(Compiled Code))
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
aredStatement.java(Compiled Code))
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java(Compiled Code))
at org.tranql.connector.jdbc.PreparedStatementHandle.executeUpdate(Prepa
redStatementHandle.java(Compiled Code))
... 38 more
15:54:36,585 WARN [ServletHandler] /trade/app:
java.rmi.RemoteException: Unable to commit container transaction; nested excepti
on is:
javax.transaction.SystemException: Unable to commit container transactio
n
at org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor
.java(Compiled Code))
at org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$c46b8cb8.login(<
generated>)
at org.apache.geronimo.samples.daytrader.TradeAction.login(TradeAction.j
ava:421)
at org.apache.geronimo.samples.daytrader.web.TradeServletAction.doLogin(
TradeServletAction.java:341)
at org.apache.geronimo.samples.daytrader.web.TradeAppServlet.performTask
(TradeAppServlet.java:124)
at org.apache.geronimo.samples.daytrader.web.TradeAppServlet.doPost(Trad
eAppServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427
)
at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolde
r.java:99)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:830)
at org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter(
OrdersAlertFilter.java:84)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171
)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicati
onHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5
68)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplication
Context.java:635)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
at org.mortbay.http.HttpServer.service(HttpServer.java:954)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
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.transaction.SystemException: Unable to commit container transac
tion
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.rollbackAndThrow(InheritableTransactionContext.java:327)
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.complete(InheritableTransactionContext.java(Compiled Code))
at org.apache.geronimo.transaction.context.InheritableTransactionContext
.commit(InheritableTransactionContext.java(Compiled Code))
at org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPo
licy.java(Compiled Code))
at org.openejb.transaction.TransactionContextInterceptor.invoke(Transact
ionContextInterceptor.java(Compiled Code))
at org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionIntercep
tor.java(Compiled Code))
at org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java(Compi
led Code))
... 27 more
Caused by: org.tranql.ql.QueryException: Error executing statement: UPDATE Accou
ntEJB SET creationDate = CASE WHEN ? THEN ? ELSE creationDate END, openBalance =
CASE WHEN ? THEN ? ELSE openBalance END, logoutCount = CASE WHEN ? THEN ? ELSE
logoutCount END, balance = CASE WHEN ? THEN ? ELSE balance END, lastLogin = CASE
WHEN ? THEN ? ELSE lastLogin END, loginCount = CASE WHEN ? THEN ? ELSE loginCou
nt END, profile_userID = CASE WHEN ? THEN ? ELSE profile_userID END WHERE accoun
tID = ?
at org.tranql.sql.jdbc.JDBCUpdateCommand.execute(JDBCUpdateCommand.java(
Compiled Code))
at org.tranql.cache.SimpleFlushStrategy.flush(SimpleFlushStrategy.java(C
ompiled Code))
at org.tranql.cache.SimpleFlushStrategy.flush(SimpleFlushStrategy.java(C
ompiled Code))
at org.tranql.cache.InTxCache.flush(InTxCache.java(Inlined Compiled Code
))
at org.apache.geronimo.transaction.context.AbstractTransactionContext.fl
ushState(AbstractTransactionContext.java(Compiled Code))
... 33 more
Caused by: java.sql.SQLException: ORA-00920: invalid relational operator
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java(Compiled Cod
e))
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java(Inlined Comp
iled Code))
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java(Compiled Code))
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.
java(Compiled Code))
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedS
tatement.java(Compiled Code))
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java(Compiled Code))
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
aredStatement.java(Compiled Code))
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java(Compiled Code))
at org.tranql.connector.jdbc.PreparedStatementHandle.executeUpdate(Prepa
redStatementHandle.java(Compiled Code))
... 38 more