Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Weblogic connection pool with Oracle database
I have a problem with the weblogic connection pool, when used with
callable statements and an Oracle Thin driver. I am using the oracle
JDBC classes to get 'Oracle object' (STRUCT and ARRAY) out parameters
from a PLSQL procedure. I retrieve a connection from my Weblogic
connection pool (this connection is created by the Oracle thin
driver). My code (see attached file and error message below) then
crashes with a class cast exception when it tries to run Oracle
specific (OracleConnection) methods.
If I run the same code outside of Weblogic (and get an Oracle thin
driver connection straight away and not via a Weblogic pool), the code
runs successfully.
I imagine the class information for the connection has been lost
during casting. Any idea how I can solve this? Are there any methods
on the weblogic.jdbc.pool.Connection class that will give me access to
the original Oracle class?
I have attached the code and my config.xml in a zip file.
Thanks,
The Exception occurs on this line of my code:
ArrayDescriptor attributesOracleDescrip = ArrayDescriptor.createDescriptor("TAB_NOT_ATTRIBUTES",conn);
The weblogic console displays this error:
Connection Pool info: weblogic.jdbc.pool.Connection_at_43b164class
weblogic.jdbc.po
ol.Connection
requestedRoles null
java.rmi.RemoteException: EJB Exception: ; nested exception is:
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
java.lang.ClassCastException: weblogic.jdbc.pool.Connection java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:87) at com.intrasoft.common.wf.owf.OWFNotificationManager.getNotifications(O WFNotificationManager.java:249) at com.intrasoft.common.wf.owf.OWFNotificationManager.getTaskList(OWFNot ificationManager.java:79) at com.intrasoft.common.wf.owf.OWFManager.getTasks(OWFManager.java:157) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB.getTasks( WFSWorkflowAccessEJB.java:175) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl.getTasks(WFSWorkflowAccessEJB_27mmiv_EOImpl.java:37) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:296) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR ef.java:93) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav a:265) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166End server side stack trace
)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java: 92) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:11 2) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:255) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:222) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy79.getTasks(Unknown Source) at com.intrasoft.wfs.control.service.WFSMultiUserService.getTaskData(WFS MultiUserService.java:291) at java.lang.reflect.Method.invoke(Native Method) at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146) at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java :129) at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet. java:287) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2039) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
Start server side stack trace:
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:87) at com.intrasoft.common.wf.owf.OWFNotificationManager.getNotifications(O WFNotificationManager.java:249) at com.intrasoft.common.wf.owf.OWFNotificationManager.getTaskList(OWFNot ificationManager.java:79) at com.intrasoft.common.wf.owf.OWFManager.getTasks(OWFManager.java:157) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB.getTasks( WFSWorkflowAccessEJB.java:175) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl.getTasks(WFSWorkflowAccessEJB_27mmiv_EOImpl.java:37) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:296) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR ef.java:93) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav a:265) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166End server side stack trace
)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java: 92) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:11 2) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:255) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:222) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy79.getTasks(Unknown Source) at com.intrasoft.wfs.control.service.WFSMultiUserService.getTaskData(WFS MultiUserService.java:291) at java.lang.reflect.Method.invoke(Native Method) at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146) at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java :129) at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet. java:287) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2039) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
Start server side stack trace:
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:87) at com.intrasoft.common.wf.owf.OWFNotificationManager.getNotifications(O WFNotificationManager.java:249) at com.intrasoft.common.wf.owf.OWFNotificationManager.getTaskList(OWFNot ificationManager.java:79) at com.intrasoft.common.wf.owf.OWFManager.getTasks(OWFManager.java:157) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB.getTasks( WFSWorkflowAccessEJB.java:175) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl.getTasks(WFSWorkflowAccessEJB_27mmiv_EOImpl.java:37) at com.intrasoft.wfs.control.ejb.workflow.WFSWorkflowAccessEJB_27mmiv_EO Impl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:296) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR ef.java:93) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav a:265) at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166End server side stack trace
)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java: 92) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:11 2) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:255) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR ef.java:222) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy79.getTasks(Unknown Source) at com.intrasoft.wfs.control.service.WFSMultiUserService.getTaskData(WFS MultiUserService.java:291) at java.lang.reflect.Method.invoke(Native Method) at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146) at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java :129) at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet. java:287) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2039) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
<<no stack trace available>>
java.lang.NullPointerException
at weblogic.servlet.internal.ChunkOutput.clearBuffer(ChunkOutput.java:23 1)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:251) at weblogic.servlet.internal.ChunkOutputWrapper.flush(ChunkOutputWrapper .java:152) at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutput StreamImpl.java:119) at org.apache.soap.transport.TransportMessage.writeTo(TransportMessage.j ava:462) at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet. java:347) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2039) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)<08-avr.-02 10:17:22 CEST> <Error> <HTTP> <[WebAppServletContext(5583187,Default
at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet. java:353)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2039) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)Received on Mon Apr 15 2002 - 11:40:31 CDT