geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santosh Koti" <Santosh_K...@infosys.com>
Subject RE: ejb transaction exception..!!
Date Thu, 11 May 2006 06:35:08 GMT

Thanks, Matt.
I referred ur earlier post & resolved it.

By the way, in the same post (I guess, not sure) some people were
speaking about the 'CASE' & its importance in performance.

What is ur stand on that ? (in future releases) 

Thanks for ur time,

Santosh.
"Don't talk about yourself; it will be done when you leave. "
 

-----Original Message-----
From: Matt Hogstrom [mailto:matt@hogstrom.org] 
Sent: Thursday, May 11, 2006 8:25 AM
To: user@geronimo.apache.org
Subject: Re: ejb transaction exception..!!

The CASE syntax is a poor choice and we will address it.  For DB2 and
Oracle there are alternate 
syntax factories that are available.  Here is a sample from the
DayTrader deployment plan.

             <!--
             ##
             ##  C o n n e c t i o n  F a c t o r y  D e f i n i t i o n
             ##
             ##
             ##
             -->
             <cmp-connection-factory>
                 <resource-link>jdbc/TradeDataSource</resource-link>
             </cmp-connection-factory>

<ejb-ql-compiler-factory>com.tranql.sql.ejbcompiler.OracleEJBQLCompilerF
actory</ejb-ql-compiler-factory> 
 
<db-syntax-factory>com.tranql.sql.oracle.OracleDBSyntaxFactory</db-synta
x-factory>

This will generate code that is not using the CASE Statement



Santosh Koti wrote:
> Hi Folks,
> 
> 
> 
> I am facing a problem in running ejb based transaction.
> 
> 
> 
> Here is stack trace for my exception (in parts):
> 
> 
> 
> javax.ejb.TransactionRolledbackLocalException
> 
>         at
>
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolic
> y.java:123)
> 
>         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)
> 
>                   .......
> 
>                   .......
> 
> 
> 
>  Caused by: javax.ejb.EJBException: Error executing statement: UPDATE
> AccountDetails SET bankID = CASE WHEN ? THEN ? ELSE bank
> 
>         at
>
com.infosys.j2ee.setlbank.appservice.accounts.impl.AccountsInfoEJB.credi
> t(AccountsInfoEJB.java:322)
> 
> 
> 
>                   .......
> 
>                   .......
> 
> Caused by: javax.ejb.FinderException: Error executing statement:
UPDATE
> AccountDetails SET bankID = CASE WHEN ? THEN
> 
>         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)
> 
>                   .......
> 
>                   .......
> 
> 
> 
> Caused by: org.tranql.ql.QueryException: Error executing statement:
> UPDATE AccountDetails SET bankID = CASE WHEN ? THEN ? ELSE
> 
>         at
>
org.tranql.sql.jdbc.JDBCUpdateCommand.execute(JDBCUpdateCommand.java:69)
> 
>         at
>
org.tranql.cache.SimpleFlushStrategy.flush(SimpleFlushStrategy.java:64)
> 
> 
> 
> 
> 
> Caused by: java.sql.SQLException: ORA-00920: invalid relational
operator
> 
>                   .......
> 
>                   .......
> 
> 
> 
>         at
> oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
> 
>         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
> 
>         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
> 
> 
> 
> 
> 
> 
> 
> I think the key word : 'CASE'  is giving problem, because it is not
been
> recognized by Oracle during the execution of the query.
> 
> 
> 
> But any ways to remove that , or can any1 suggest some  workarounds
> which will be of great help...!!
> 
> I tried many options , but no luck :-(
> 
> Thanks,
> 
> Santosh.
> 
> "Don't talk about yourself; it will be done when you leave. "
> 
> 
> 
> 
> 
> **************** CAUTION - Disclaimer *****************
> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended
solely for the use of the addressee(s). If you are not the intended
recipient, please notify the sender by e-mail and delete the original
message. Further, you are not to copy, disclose, or distribute this
e-mail or its contents to any other person and any such actions are
unlawful. This e-mail may contain viruses. Infosys has taken every
reasonable precaution to minimize this risk, but is not liable for any
damage you may sustain as a result of any virus in this e-mail. You
should carry out your own virus checks before opening the e-mail or
attachment. Infosys reserves the right to monitor and review the content
of all messages sent to or from this e-mail address. Messages sent to or
from this e-mail address may be stored on the Infosys e-mail system.
> ***INFOSYS******** End of Disclaimer ********INFOSYS***

Mime
View raw message