I made changes in openejb.xml, now it is working fine. My modified
openejb.xml is given bellow.

<Resource id="MySqlDS" type="DataSource">
     #  MySQL example
     #
     #  This connector will not work until you download the driver at:
     #  http://www.mysql.com/downloads/api-jdbc-stable.html
 
     JdbcDriver     com.mysql.jdbc.Driver
     JdbcUrl         jdbc:mysql://localhost:3306/test
     UserName     root
     Password      root
     JtaManaged  false
</Resource>



sujith k wrote:
> 
> 
> 
> 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-tp16485977p16583836.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to