Hi Mukta, The below code will work for getting Connection from EntityManager:
DelegatingConnection deConn = (DelegatingConnection)OpenJPAPersistence.*cast *(getEntityManager()).getConnection(); conn = deConn.getInnermostDelegate(); Directly typecasting to EntityManager (in first statement) without using DelegatingConnection is throwing ClassCastException (something like CMPEntityManagerTxScoped cannot be cast to Connection). On 7/22/08, Mukta Vishwanath Divekar <[EMAIL PROTECTED]> wrote: > > > Hello, > > > My project is doing its initial database operations through OpenJPA. And > it has to perform rest of the operations through JDBC. > Data insertion in a table is happening through OpenJPA. But when the same > inserted data is queried through JDBC its not available it seems since > entire process is a part of single transaction. Is there any way using which > we can commit the transaction in between and continue the JDBC operation in > a single process. > > Instead of creating a new JDBC connection, I tried creating connection like > : > > EntityManager em = emf.createEntityManager(); > broker = (Broker) JPAFacadeHelper.toBroker(em); > JDBCStore store = (JDBCStore)broker.getStoreManager(); > conn = store.getConnection(); > > By providing persistence unit name to 'EntityManagerFactory' but it gave me > exception like: > > javax.persistence.PersistenceException: Provider error. Provider: > org.apache.openjpa.persi > stence.PersistenceProviderImpl > at javax.persistence.Persistence.createFactory(Persistence.java:176) > at > javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:112) > at > javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:66) > at > com.symcor.pcbi.irx.icre.fileconversion.ICREDataProcessorImpl.isTableDataMoved( > ICREDataProcessorImpl.java:117) > at > com.symcor.pcbi.irx.icre.fileconversion.ICREFileParserImpl.processICREFiles(ICR > EFileParserImpl.java:285) > at > com.symcor.pcbi.irx.icre.fileconversion.ICREFileParserImpl.process(ICREFilePars > erImpl.java:147) > at > com.symcor.pcbi.irx.icre.fileconversion.ICREFacade.initiateProcess(ICREFacade.j > ava:57) > at > com.symcor.pcbi.irx.icre.timer.IRXTimer.startTimer(IRXTimer.java:135) > at > com.symcor.pcbi.irx.icre.timer.IRXTimer.initializeTimer(IRXTimer.java:104) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja > va:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invo > ke(ReflectionInvocationContext.java:146) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(Reflect > ionInvocationContext.java:129) > at > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.ja > va:67) > at > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer > .java:203) > at > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer. > java:165) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxy > Handler.java:211) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler > .java:65) > at > org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java > :244) > at > org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHand > ler.java:49) > at $Proxy45.initializeTimer(Unknown Source) > at > com.symcor.pcbi.irx.icre.servlet.IRXTimerServlet.init(IRXTimerServlet.java:38) > at javax.servlet.GenericServlet.init(GenericServlet.java:215) > at > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1053) > > at > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:955) > at > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:403 > 5) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4338) > at > org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardC > ontext.java:60) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(Ger > onimoStandardContext.java:343) > at > org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBefore > AfterValve.java:47) > at > org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContex > t.java:196) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) > > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) > at > org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:355) > > at > org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(< > generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.ja > va:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124 > ) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker > .java:35) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodIn > terceptor.java:96) > at > org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$$78a8e440.addContex > t(<generated>) > at > org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java > :524) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.ja > va:996) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInst > anceState.java:268) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.j > ava:102) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:539) > at > org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDepende > ncy.java:111) > at > org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.jav > a:146) > at > org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.jav > a:120) > at > org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLi > fecycleMonitor.java:176) > at > org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycl > eMonitor.java:44) > at > org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster. > fireRunningEvent(BasicLifecycleMonitor.java:254) > > Thanks n regards, > Mukta. > > > > > **************** 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*** >
