Thank you for your replay. I have set up my application to run using
openejb. Tomcat
datasource lookup is working fine.  In my application we r using kodo O/R
mapping
and persistence engine.  While executing the application it is giving error,
but the
transaction is committing.  The error message is given bellow.

NestedThrowables:
java.sql.SQLException: Commit can not be set while enrolled in a transaction
        at
kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:42)
        at
kodo.jdbc.sql.SQLExceptions.getFatalDataStore(SQLExceptions.java:24)
        at
kodo.jdbc.runtime.JDBCStoreManager.commit(JDBCStoreManager.java:137)
        at
kodo.runtime.DelegatingStoreManager.commit(DelegatingStoreManager.java:100)
        at
kodo.runtime.PersistenceManagerImpl.endTransaction(PersistenceManagerImpl.java:1035)
        at
kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:842)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:534)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.afterCompletion(TransactionImpl.java:527)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:326)
        at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245)
        at
org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141)
        at
org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:245)
        at
org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
        at $Proxy106.getVisitInfoFromId(Unknown Source)
        at
org.amma.aitf.his.mrdviewer.controller.BlankPageController.addNewForm(BlankPageController.java:126)
        at
org.amma.aitf.his.mrdviewer.controller.BlankPageController.doPageRequested(BlankPageController.java:75)
        at
org.amma.aitf.hmoscore.ui.controller.BaseController.pageRequested(BaseController.java:441)
        at com.salmonllc.html.HtmlPage.notifyListeners(HtmlPage.java:1159)
        at
com.salmonllc.jsp.JspController.notifyListeners(JspController.java:973)
        at com.salmonllc.jsp.JspController.doGet(JspController.java:589)
        at com.salmonllc.jsp.tags.PageTag.doStartTag(PageTag.java:215)
        at
org.apache.jsp.BlankPage_jsp._jspx_meth_jade_page_0(BlankPage_jsp.java:167)
        at org.apache.jsp.BlankPage_jsp._jspService(BlankPage_jsp.java:100)
        at com.salmonllc.jsp.JspServlet.service(JspServlet.java:328)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
        at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at
org.apache.openejb.tomcat.OpenEJBValve.invoke(OpenEJBValve.java:45)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Commit can not be set while enrolled in a
transaction
        at
org.apache.commons.dbcp.managed.ManagedConnection.commit(ManagedConnection.java:210)
        at
com.solarmetric.jdbc.DelegatingConnection.commit(DelegatingConnection.java:184)
        at
com.solarmetric.jdbc.LoggingConnectionDecorator$LoggingConnection.commit(LoggingConnectionDecorator.java:219)
        at
com.solarmetric.jdbc.DelegatingConnection.commit(DelegatingConnection.java:184)
        at
com.solarmetric.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.commit(ConfiguringConnectionDecorator.java:127)
        at
com.solarmetric.jdbc.DelegatingConnection.commit(DelegatingConnection.java:184)
        at
kodo.jdbc.runtime.JDBCStoreManager.commit(JDBCStoreManager.java:132)
        ... 45 more


David Blevins wrote:
> 
> 
> On Apr 3, 2008, at 11:47 PM, sujith k wrote:
>>
>> In our development environment currently we are using mokeEJB and we  
>> are
>> planning to switch to OpenEJB.
>> As I am new to OpenEJB and I have some doubts regarding the OpenEJB.
>>
>> 1) In my openejb.xml I have given the resource as
>>      <Resource id="MySqlDS" type="DataSource">
>>           JdbcDriver  com.mysql.jdbc.Driver
>>           JdbcUrl     jdbc:mysql://localhost:3306/test
>>           UserName    root
>>           Password    root
>>      </Resource>
>>   How can I lookup this resource in my servlet which is called while
>> startup itself (I am using Tomcat.)
>>
>> 2) In our current application we are accessing the DataSource as
>>      DataSource ds = (DataSource)context.lookup("java:/MySqlDS"); is it
>> possible to get the datasouce object like this in OpenEJB?
> 
> The absolute simplest way is to annotate your servlet like so:
> 
>   @Resource(name="MySqlDS")
>   private DataSource mySqlDS;
> 
> We will inject the data source right into your servlet and you don't  
> have to bother with messy lookups.
> 
> On a side note, "java:/MySqlDS" is a non standard jndi name that isn't  
> portable.  The portable way is to use the annotation above or to  
> declare a <resource-ref> tag in your web.xml with a <resource-ref- 
> name> like "MySqlDS" and a lookup like "java:comp/env/MySqlDS".
> 
> -David
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/DataSource-Look-up-using-Tomcat-tp16485977p16537327.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to