Server based JDBC pool reconnect

 

Hi Håkan
you can use:
weblogic.jdbc.common.Pool.reset()
or
java weblogic.Admin WebLogicURL RESET_POOL poolName system passwd
Please check the documentation at:
http://e-docs.bea.com/wls/docs60/jdbc/programming.html#1023890
hth
sree
"Håkan Lantz" <[email protected]> wrote in message
news:3b95ebdf$[email protected]..
>
Hi,
We have the same need to programmatically (or manually) refresh theconnections
of a connection pool since the connections in our pool have adb-connections to
an other database that are corrupt when our solaris cluster get swithced.
Does anyone have some information of how to programmatically (or manually)refresh
the connections of a connection pool?
// Håkan.
"Slava Imeshev" <[email protected]> wrote:
Hi Tor,
You could turn on test on reserve and test on release
for your connection pool. Refresh does the same.
Regards,
Slava Imeshev
"Tor Abusdal" <[email protected]> wrote in message
news:[email protected]..
Hi
Weblogic 6.0 sp1
Where can I find actual code examples on how to refresh / reconnectall
the connections in a JDBC connection pool programmatically from inside
the Weblogic server.
I need to be able to do this because I have situations where a beanmay
detect that, for some reason, the connection(s) to the database is&#8220;no
good&#8220;.
The pool is configured to test the connection to the database at
regular
intervals, but this test works fine and does not detect the problem.
This problem typically occurs, when a procedure in a Sybase databaseis
dropped and then recreated.

Similar Messages

  • Slow performance WLS with jdbc pools

    Hi all, we have follow configuration of our system: the server with applications and server with jdbc pools. Recently we get strange situation. The server with jdbc pools it seems hung. We get thread dumps for this server and we see that it not hung, but normally work but very slow. Many weblogic.kernel.Default threads were busy by rmi database calls (see below). Anothe strange that before slowing server work nothing enties in server log. Last entry in server log were one hour before slow work. May someone propose why this situation can occure?
    Thread dump:
    <b>"ExecuteThread: '0' for queue: 'weblogic.kernel.Default'" id=11 idx=0x1c tid=6668 prio=5 alive, daemon
    at java/util/WeakHashMap.get(Ljava/lang/Object;)Ljava/lang/Object;(WeakHashMap.java:342)[optimized]
    at weblogic/rmi/internal/ClientRuntimeDescriptor.intern(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(ClientRuntimeDescriptor.java:130)[inlined]
    at weblogic/rmi/internal/BasicRuntimeDescriptor.getClientRuntimeDescriptor(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(BasicRuntimeDescriptor.java:459)[optimized]
    at weblogic/rmi/internal/BasicServerRef.getStub()Ljava/lang/Object;(BasicServerRef.java:656)[optimized]
    at weblogic/rmi/internal/OIDManager.getReplacement(Ljava/lang/Object;)Ljava/lang/Object;(OIDManager.java:189)[optimized]
    at weblogic/rmi/extensions/StubFactory.getStub(Ljava/rmi/Remote;)Ljava/lang/Object;(StubFactory.java:66)
    at weblogic/jdbc/rmi/internal/CallableStatementImpl.interopWriteReplace(Lweblogic/common/internal/PeerInfo;)Ljava/lang/Object;(CallableStatementImpl.java:50)
    at weblogic/rmi/utils/io/InteropObjectReplacer.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(InteropObjectReplacer.java:38)[optimized]
    at weblogic/common/internal/ChunkedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:54)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:249)[optimized]
    at java/io/ObjectOutputStream.writeObject0(Ljava/lang/Object;Z)V(Unknown Source)[inlined]
    at java/io/ObjectOutputStream.writeObject(Ljava/lang/Object;)V(Unknown Source)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream.writeObject(Ljava/lang/Object;)V(ChunkedObjectOutputStream.java:120)[inlined]
    at weblogic/rjvm/MsgAbbrevOutputStream.writeObject(Ljava/lang/Object;Ljava/lang/Class;)V(MsgAbbrevOutputStream.java:94)[optimized]
    at weblogic/jdbc/rmi/internal/ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_WLSkel.invoke(ILweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;Ljava/lang/Object;)Lweblogic/rmi/spi/OutboundResponse;(Unknown Source)[optimized]
    at weblogic/rmi/internal/BasicServerRef.invoke(Lweblogic/rmi/extensions/server/RuntimeMethodDescriptor;Lweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;)V(BasicServerRef.java:477)[optimized]
    at weblogic/rmi/internal/BasicServerRef$1.run()Ljava/lang/Object;(BasicServerRef.java:420)[inlined]
    at weblogic/security/acl/internal/AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(AuthenticatedSubject.java:363)[inlined]
    at weblogic/security/service/SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(SecurityManager.java:147)[inlined]
    at weblogic/rmi/internal/BasicServerRef.handleRequest(Lweblogic/rmi/spi/InboundRequest;)V(BasicServerRef.java:415)[inlined]
    at weblogic/rmi/internal/BasicExecuteRequest.execute(Lweblogic/kernel/ExecuteThread;)V(BasicExecuteRequest.java:27)[optimized]
    at weblogic/kernel/ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:219)[optimized]
    at weblogic/kernel/ExecuteThread.run()V(ExecuteThread.java:178)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace
    "ExecuteThread: '1' for queue: 'weblogic.kernel.Default'" id=12 idx=0x1e tid=6669 prio=5 alive, daemon
    at java/util/WeakHashMap.get(Ljava/lang/Object;)Ljava/lang/Object;(WeakHashMap.java:346)[optimized]
    at weblogic/rmi/internal/ClientRuntimeDescriptor.intern(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(ClientRuntimeDescriptor.java:130)[inlined]
    at weblogic/rmi/internal/BasicRuntimeDescriptor.getClientRuntimeDescriptor(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(BasicRuntimeDescriptor.java:459)[optimized]
    at weblogic/rmi/internal/BasicServerRef.getStub()Ljava/lang/Object;(BasicServerRef.java:656)[optimized]
    at weblogic/rmi/internal/OIDManager.getReplacement(Ljava/lang/Object;)Ljava/lang/Object;(OIDManager.java:189)[optimized]
    at weblogic/rmi/extensions/StubFactory.getStub(Ljava/rmi/Remote;)Ljava/lang/Object;(StubFactory.java:66)
    at weblogic/jdbc/rmi/internal/CallableStatementImpl.interopWriteReplace(Lweblogic/common/internal/PeerInfo;)Ljava/lang/Object;(CallableStatementImpl.java:50)
    at weblogic/rmi/utils/io/InteropObjectReplacer.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(InteropObjectReplacer.java:38)[optimized]
    at weblogic/common/internal/ChunkedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:54)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:249)[optimized]
    at java/io/ObjectOutputStream.writeObject0(Ljava/lang/Object;Z)V(Unknown Source)[inlined]
    at java/io/ObjectOutputStream.writeObject(Ljava/lang/Object;)V(Unknown Source)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream.writeObject(Ljava/lang/Object;)V(ChunkedObjectOutputStream.java:120)[inlined]
    at weblogic/rjvm/MsgAbbrevOutputStream.writeObject(Ljava/lang/Object;Ljava/lang/Class;)V(MsgAbbrevOutputStream.java:94)[optimized]
    at weblogic/jdbc/rmi/internal/ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_WLSkel.invoke(ILweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;Ljava/lang/Object;)Lweblogic/rmi/spi/OutboundResponse;(Unknown Source)[optimized]
    at weblogic/rmi/internal/BasicServerRef.invoke(Lweblogic/rmi/extensions/server/RuntimeMethodDescriptor;Lweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;)V(BasicServerRef.java:477)[optimized]
    at weblogic/rmi/internal/BasicServerRef$1.run()Ljava/lang/Object;(BasicServerRef.java:420)[inlined]
    at weblogic/security/acl/internal/AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(AuthenticatedSubject.java:363)[inlined]
    at weblogic/security/service/SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(SecurityManager.java:147)[inlined]
    at weblogic/rmi/internal/BasicServerRef.handleRequest(Lweblogic/rmi/spi/InboundRequest;)V(BasicServerRef.java:415)[inlined]
    at weblogic/rmi/internal/BasicExecuteRequest.execute(Lweblogic/kernel/ExecuteThread;)V(BasicExecuteRequest.java:27)[optimized]
    at weblogic/kernel/ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:219)[optimized]
    at weblogic/kernel/ExecuteThread.run()V(ExecuteThread.java:178)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace</b>

    Denis Reimer wrote:
    Hi all, we have follow configuration of our system: the server with applications and server with jdbc pools. Recently we get strange situation. The server with jdbc pools it seems hung. We get thread dumps for this server and we see that it not hung, but normally work but very slow. Many weblogic.kernel.Default threads were busy by rmi database calls (see below). Anothe strange that before slowing server work nothing enties in server log. Last entry in server log were one hour before slow work. May someon
    e propose why this situation can occure?
    Thread dump:
    <b>"ExecuteThread: '0' for queue: 'weblogic.kernel.Default'" id=11 idx=0x1c tid=6668 prio=5 alive, daemon
    at java/util/WeakHashMap.get(Ljava/lang/Object;)Ljava/lang/Object;(WeakHashMap.java:342)[optimized]
    at weblogic/rmi/internal/ClientRuntimeDescriptor.intern(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(ClientRuntimeDescriptor.java:130)[inlined]
    at weblogic/rmi/internal/BasicRuntimeDescriptor.getClientRuntimeDescriptor(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(BasicRuntimeDescriptor.java:459)[optimized]
    at weblogic/rmi/internal/BasicServerRef.getStub()Ljava/lang/Object;(BasicServerRef.java:656)[optimized]
    at weblogic/rmi/internal/OIDManager.getReplacement(Ljava/lang/Object;)Ljava/lang/Object;(OIDManager.java:189)[optimized]
    at weblogic/rmi/extensions/StubFactory.getStub(Ljava/rmi/Remote;)Ljava/lang/Object;(StubFactory.java:66)
    at weblogic/jdbc/rmi/internal/CallableStatementImpl.interopWriteReplace(Lweblogic/common/internal/PeerInfo;)Ljava/lang/Object;(CallableStatementImpl.java:50)
    at weblogic/rmi/utils/io/InteropObjectReplacer.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(InteropObjectReplacer.java:38)[optimized]
    at weblogic/common/internal/ChunkedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:54)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:249)[optimized]
    at java/io/ObjectOutputStream.writeObject0(Ljava/lang/Object;Z)V(Unknown Source)[inlined]
    at java/io/ObjectOutputStream.writeObject(Ljava/lang/Object;)V(Unknown Source)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream.writeObject(Ljava/lang/Object;)V(ChunkedObjectOutputStream.java:120)[inlined]
    at weblogic/rjvm/MsgAbbrevOutputStream.writeObject(Ljava/lang/Object;Ljava/lang/Class;)V(MsgAbbrevOutputStream.java:94)[optimized]
    at weblogic/jdbc/rmi/internal/ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_WLSkel.invoke(ILweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;Ljava/lang/Object;)Lweblogic/rmi/spi/OutboundResponse;(Unknown Source)[optimized]
    at weblogic/rmi/internal/BasicServerRef.invoke(Lweblogic/rmi/extensions/server/RuntimeMethodDescriptor;Lweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;)V(BasicServerRef.java:477)[optimized]
    at weblogic/rmi/internal/BasicServerRef$1.run()Ljava/lang/Object;(BasicServerRef.java:420)[inlined]
    at weblogic/security/acl/internal/AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(AuthenticatedSubject.java:363)[inlined]
    at weblogic/security/service/SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(SecurityManager.java:147)[inlined]
    at weblogic/rmi/internal/BasicServerRef.handleRequest(Lweblogic/rmi/spi/InboundRequest;)V(BasicServerRef.java:415)[inlined]
    at weblogic/rmi/internal/BasicExecuteRequest.execute(Lweblogic/kernel/ExecuteThread;)V(BasicExecuteRequest.java:27)[optimized]
    at weblogic/kernel/ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:219)[optimized]
    at weblogic/kernel/ExecuteThread.run()V(ExecuteThread.java:178)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace
    "ExecuteThread: '1' for queue: 'weblogic.kernel.Default'" id=12 idx=0x1e tid=6669 prio=5 alive, daemon
    at java/util/WeakHashMap.get(Ljava/lang/Object;)Ljava/lang/Object;(WeakHashMap.java:346)[optimized]
    at weblogic/rmi/internal/ClientRuntimeDescriptor.intern(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(ClientRuntimeDescriptor.java:130)[inlined]
    at weblogic/rmi/internal/BasicRuntimeDescriptor.getClientRuntimeDescriptor(Ljava/lang/String;)Lweblogic/rmi/internal/ClientRuntimeDescriptor;(BasicRuntimeDescriptor.java:459)[optimized]
    at weblogic/rmi/internal/BasicServerRef.getStub()Ljava/lang/Object;(BasicServerRef.java:656)[optimized]
    at weblogic/rmi/internal/OIDManager.getReplacement(Ljava/lang/Object;)Ljava/lang/Object;(OIDManager.java:189)[optimized]
    at weblogic/rmi/extensions/StubFactory.getStub(Ljava/rmi/Remote;)Ljava/lang/Object;(StubFactory.java:66)
    at weblogic/jdbc/rmi/internal/CallableStatementImpl.interopWriteReplace(Lweblogic/common/internal/PeerInfo;)Ljava/lang/Object;(CallableStatementImpl.java:50)
    at weblogic/rmi/utils/io/InteropObjectReplacer.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(InteropObjectReplacer.java:38)[optimized]
    at weblogic/common/internal/ChunkedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:54)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(Ljava/lang/Object;)Ljava/lang/Object;(ChunkedObjectOutputStream.java:249)[optimized]
    at java/io/ObjectOutputStream.writeObject0(Ljava/lang/Object;Z)V(Unknown Source)[inlined]
    at java/io/ObjectOutputStream.writeObject(Ljava/lang/Object;)V(Unknown Source)[inlined]
    at weblogic/common/internal/ChunkedObjectOutputStream.writeObject(Ljava/lang/Object;)V(ChunkedObjectOutputStream.java:120)[inlined]
    at weblogic/rjvm/MsgAbbrevOutputStream.writeObject(Ljava/lang/Object;Ljava/lang/Class;)V(MsgAbbrevOutputStream.java:94)[optimized]
    at weblogic/jdbc/rmi/internal/ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_WLSkel.invoke(ILweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;Ljava/lang/Object;)Lweblogic/rmi/spi/OutboundResponse;(Unknown Source)[optimized]
    at weblogic/rmi/internal/BasicServerRef.invoke(Lweblogic/rmi/extensions/server/RuntimeMethodDescriptor;Lweblogic/rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;)V(BasicServerRef.java:477)[optimized]
    at weblogic/rmi/internal/BasicServerRef$1.run()Ljava/lang/Object;(BasicServerRef.java:420)[inlined]
    at weblogic/security/acl/internal/AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(AuthenticatedSubject.java:363)[inlined]
    at weblogic/security/service/SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;(SecurityManager.java:147)[inlined]
    at weblogic/rmi/internal/BasicServerRef.handleRequest(Lweblogic/rmi/spi/InboundRequest;)V(BasicServerRef.java:415)[inlined]
    at weblogic/rmi/internal/BasicExecuteRequest.execute(Lweblogic/kernel/ExecuteThread;)V(BasicExecuteRequest.java:27)[optimized]
    at weblogic/kernel/ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:219)[optimized]
    at weblogic/kernel/ExecuteThread.run()V(ExecuteThread.java:178)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace</b>Hi. It seems you're doing JDBC in an external client, using our RMI-based
    JDBC wrappers to the actual connection in the WLS server, and you are
    doing LOB retrieval. This means your query goes from your client to
    the WLS process, and then to the DBMS, and the LOB data (big) has to go
    from the DBMS to the WLS process and then back over RMI to your client.
    This is bound to be inefficient. If you can move your JDBC to a JSP or
    other serverside class, it will be much faster. Otherwise, if the
    management that WLS provides is not strictly necessary for the LOB
    manipulation, it may be faster to get that directly from the DBMS to
    the external client by using the vendor's JDBC driver directly.
    Joe

  • Number of connections in a JDBC pool

    Hi,
    I am running Sun One Webserver 6.1SP4 on Solaris 8 on sparc machines. My web app interacts with Oracle 9.2 using the web server's jdbc pooling mechanism. Everything works fine, but what worries me is the number of connections always goes up even during nights when the traffic is considerably low compared to day time. Here is part of my server.xml relevant to the pool.
    <JDBCCONNECTIONPOOL name="spfc-dbp1" datasourceclassname="oracle.jdbc.pool.OracleDataSource" steadypoolsize="8" maxpoo
    lsize="80" poolresizequantity="8" idletimeout="300" maxwaittime="10000" connectionvalidationrequired="on" connectionvalidati
    onmethod="auto-commit" validationtablename="" failallconnections="off" transactionisolationlevel="read-committed" isolationl
    evelguaranteed="on">
    I checked all my code to make sure I am calling close() on result sets, statements and the connection itself both immediately after completing work as well as in the finally blocks.
    The only mechanism I have to bring down the number of connections is to restart the web server. I played around with the poolresizequantity, idletimeout properties, but it didn't help much.
    I thank all of you in advance for any insights.
    -Sharma

    Hi Sharma,
    I have a similar problem.
    Starting my portal and it works for about ten minutes. Then it is unreachable, because of an ProfileException error. I guess it is too many DB Connections.
    I can do 2 things:
    - wait for about 20minutes and it works again for ten minutes, or
    - restart tomcat.
    Currently I am setting up a new Connection Pool, Jdbc2Pool.
    Did you find a solution to your problem?
    Ciao,
    Axel

  • Java Web Server 6.1 & Pooled SQL Server 2000 JDBC Connections

    If anyone can shed some light on this problem I would greatly appreciate it.
    I am unsuccessfully trying to use a database connnection retrieved from a pool configured using Java System Web Server 6.1 with the SQL Server 2000 JDBC Driver.
    The background:
    1. I have downloaded the SQL Server 2000 JDBC Driver and installed it on the web server.
    2. I used the Administration GUI to add the .jars(namely msbase.jar, msutil.jar, and mssqlserver.jar), to the classpath.
    3. Upon creating a simply JSP to access connection metadata using the direct connect method, ie.,
    Class.forName( com.microsoft.jdbc.sqlserver.SQLServerDriver);
    Connection con = DriverManager.getConnection( "jdbc:microsoft:sqlserver:// ....
    I am shown a successful output of...
    JDBC Test
    Registering JDBC Driver
    driverClass: com.microsoft.jdbc.sqlserver.SQLServerDriver loaded and registered.
    Driver Information
    Driver Name: SQLServer
    Driver Version: 2.2.0037
    Database Information
    Database Name: Microsoft SQL Server
    Database Version: Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: )
    Avalilable Catalogs
    catalog: master
    catalog: msdb
    catalog: Northwind
    catalog: pubs
    catalog: tempdb
    4. This tells me that the web server has access to the files necessary and the classpath is configured correctly.
    Now the fun begins...
    In order to set up the JDBC Connection Pool I have done the following...
    1. I have created a web.xml file for the web-app which contains the JSP and includes the following entry
    <resource-ref>
    <res-ref-name>jdbc/devjwscp</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    2. I have used the "JDBC Connection Pools" link under the "Java" tab in the Administration GUI to create a connection pool.
    "Pool Name:" is "devjwscp"
    "DataSource Classname" is set to "com.microsoft.jdbcx.sqlserver.SQLServerDataSource". All other properties have been left alone.
    3. I have used the "JDBC Resources" link under the "Java" tab in the Administration GUI to create a JNDI resource.
    "JNDI Name" is set to "jdbc/devjwscp"
    "Status" is "true"
    "Pool Name" is "devjwscp"
    The web-app JSP comes back with the following exception.
    JDBC Test
    Exception Thrown
    Cannot create resource instance
    javax.naming.NamingException: Cannot create resource instanceorg.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:167)
    javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
    org.apache.naming.NamingContext.lookup(NamingContext.java:834)
    org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    org.apache.naming.NamingContext.lookup(NamingContext.java:181)
    org.apache.naming.NamingContext.lookup(NamingContext.java:822)
    org.apache.naming.NamingContext.lookup(NamingContext.java:194)
    org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
    javax.naming.InitialContext.lookup(InitialContext.java:347)
    _jsps._jdbctest_jsp._jspService(_jdbctest_jsp.java:236)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
    com.iplanet.ias.web.jsp.JspServlet$JspServletWrapper.service(JspServlet.java:667)
    com.iplanet.ias.web.jsp.JspServlet.serviceJspFile(JspServlet.java:447)
    com.iplanet.ias.web.jsp.JspServlet.service(JspServlet.java:363)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
    org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:771)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:322)
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
    com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
    com.iplanet.ias.web.WebContainer.service(WebContainer.java:586)
    4. FYI my server.xml <RESOURCE> entry looks as is shown below
    <RESOURCES>
    <JDBCCONNECTIONPOOL name="devjwscp" datasourceclassname="com.microsoft.jdbcx.sqlserver.SQLServerDataSource" steadypoolsize="8" maxpoolsize="32" poolresizequantity="2" idletimeout="300" maxwaittime="60000" connectionvalidationrequired="off" connectionvalidationmethod="auto-commit" validationtablename="" failallconnections="off" transactionisolationlevel="read-uncommitted" isolationlevelguaranteed="off">
    <PROPERTY name="serverName" value="secret"/>
    <PROPERTY name="portNumber" value="1433"/>
    <PROPERTY name="User" value="secret"/>
    <PROPERTY name="Password" value="secret"/>
    </JDBCCONNECTIONPOOL>
    <JDBCRESOURCE jndiname="jdbc/devjwscp" poolname="devjwscp" enabled="on"/>
    </RESOURCES>
    What gives? Do I need to add anything else to the server.xml? I know the server.xml for JWS differs from Apache. I have done an exhaustive search of the web. Many other individuals have had the same thing happen, buy none of them offered any explaination or remedy.
    Thanks in advance.

    Hi,
    Were you able to get it working.
    I am using
    Sun ONE Web Server 6.1SP2 B04/07/2004 18:47
    I am still getiing the same error. I also suspect that there is something wrong with thr DTD too. It gives me the following when the server comes up.
    Sun ONE Web Server 6.1SP2 B04/07/2004 18:47
    Listening for transport dt_socket at address: 1699
    info: CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_04] from [Sun M
    icrosystems Inc.]
    info: WEB0100: Loading web module in virtual server [https-AW-NYNY-D609628.nna.
    wdpr.disy.com] at [acsanet]
    info: WEB0100: Loading web module in virtual server [https-AW-NYNY-D609628.nna.
    wdpr.disy.com] at [testing]
    failure: WEB0120: XML error parsing deployment descriptor [C:/Sun/WebServer6.1/h
    ttps-AW-NYNY-D609628.nna.wdpr.disy.com/webapps/https-AW-NYNY-D609628.nna.wdp
    r.disy.com/testing/WEB-INF/sun-web.xml]
    Failed to create the XML-DOM Document. Check your XML to make sure it is correc
    t.org.xml.sax.SAXParseException: Character conversion error: "Unconvertible UTF-8
    character beginning with 0xa0" (line number may be too low).
    at org.apache.crimson.parser.InputEntity.fatal(InputEntity.java:1100)
    at org.apache.crimson.parser.InputEntity.fillbuf(InputEntity.java:1072)
    at org.apache.crimson.parser.InputEntity.isXmlDeclOrTextDeclPrefix(Input
    Entity.java:914)
    at org.apache.crimson.parser.Parser2.maybeXmlDecl(Parser2.java:1183)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:653)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
    at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl
    .java:185)
    at org.netbeans.modules.schema2beans.GraphManager.createXmlDocument(Grap
    hManager.java:711)
    at org.netbeans.modules.schema2beans.BaseBean.createGraph(BaseBean.java:
    2075)
    at com.iplanet.ias.web.WebContainer.loadWebModule(WebContainer.java:695)
    at com.iplanet.ias.web.WebContainer.loadStandaloneWebModule(WebContainer
    .java:626)
    at com.iplanet.ias.web.WebContainer.loadWebModules(WebContainer.java:600)
    at com.iplanet.ias.web.WebContainer.createVS(WebContainer.java:374)
    at com.iplanet.ias.server.J2EERunner.createVS(J2EERunner.java:223)
    info: WEB0100: Loading web module in virtual server [https-AW-NYNY-D609628.nna.wdpr.disy.com] at [search]
    config: HTTP4292: flex-init: Log file C:/Sun/WebServer6.1/https-AW-NYNY-D609628.
    nna.wdpr.disy.com/logs/access should be removed before changing its format
    info: HTTP3072: [LS ls1] http://AW-NYNY-D609628.nna.wdpr.disy.com:80 ready to
    accept requests
    startup: server started successfully
    info: CORE3274: successful server startup
    the sun-web.xml is as below:
    <?xml�version="1.0"�encoding="UTF-8"?>
    <!--
         Copyright 2002 Sun Microsystems, Inc. All rights reserved.
    -->
    <!DOCTYPE�sun-web-app�PUBLIC�"-//Sun�Microsystems,�Inc.//DTD�Application�Server�8.0�Servlet�2.4//EN"�"http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-0.dtd">
    <sun-web-app>
         <resource-ref>
              <res-ref-name>jdbc/oraclePool</res-ref-name>
              <jndi-name>jdbc/oraclePool</jndi-name>
         </resource-ref>
    </sun-web-app>
    Am I using the right DTD ?
    Please let me know.
    Thank you.
    -- Martin Louis

  • Server-side connection pooling for clients in different VM's

    We have a need to centeralize our connection pool manger.
    Is there a server-side connection pooling manger product to allow multiple clients running in different VM's to connect to and share connection objects to the same Database?
    e.g. An applet, and a swing and a servlet/web app application all running in different VM's will connect to this central connection pool manager and share connection objects to the same DB.
    We are using connection pooling for all of our applications but each application is maintaining its own connection pool and it is becomming a nightmare to manage and configure each one.
    Also, we have to have at a miniumum one connection open per application to access the database regardless of wether we are using connection pool or not. This means that 100 apps(running in different VM's) will use at minimum 100 connections... where all of these 100 apps will do just fine with just 10-15 connections.
    while back we used T3 server but can't find this product on BEA web site any more.
    does jdbc 2.2 or 3.0 have any server side pool management specs outlined?
    Please HELP as we can't afford anymore licensing fees for our company.
    oh.. We can't open and close connections on each query as they will be slow.
    any suggestions greatly appreciated.

    if i understand you question, i don't think this is possible, since the Connection interface (and basically all of the related jdbc interfaces) aren't Serializable.. so they can't be sent over the wire to your client(s).
    However, you could feasibly write some server side connection pool, and some server side facade which will allow clients to submit queries (either SQL String's or however you want to do it - obviously a more elegant solution involves a series of classes which dynamically create sql based on query criteria), then the server can grab a connection, execute the query, cycle through the results and populate some result object of your creation and send that back over the wire to your client(s).
    .

  • Bug in Oracle JDBC Pooling Classes - Deadlock

    We are utilizing Oracle's connection caching (drivers 10.2.0.1) and have found a deadlock situation. I reviewed the code for the (drivers 10.2.0.3) and I see the same problem could happen.
    I searched and have not found this problem identified anywhere. Is this something I should post to Oracle in some way (i.e. Metalink?) or is there a better forum to get this resolved?
    We are utilizing an OCI driver with the following setup in the server.xml
    <ResourceParams name="cmf_toolbox">
    <parameter>
    <name>factory</name>
    <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>
    <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
    <name>user</name>
    <value>hidden</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>hidden</value>
    </parameter>
    <parameter>
    <name>url</name>
    <value>jdbc:oracle:oci:@PTB2</value>
    </parameter>
    <parameter>
    <name>connectionCachingEnabled</name>
    <value>true</value>
    </parameter>
    <parameter>
    <name>connectionCacheProperties</name>
    <value>(InitialLimit=5,MinLimit=15,MaxLimit=75,ConnectionWaitTimeout=30,InactivityTimeout=300,AbandonedConnectionTimeout=300,ValidateConnection=false)</value>
    </parameter>
    </ResourceParams>
    We get a deadlock situation between two threads and the exact steps are this:
    1) thread1 - The OracleImplicitConnectionClassThread class is executing the runAbandonedTimeout method which will lock the OracleImplicitConnectionCache class with a synchronized block. It will then go thru additional steps and finally try to call the LogicalConnection.close method which is already locked by thread2
    2) thread2 - This thread is doing a standard .close() on the Logical Connection and when it does this it obtains a lock on the LogicalConnection class. This thread then goes through additional steps till it gets to a point in the OracleImplicitConnectionCache class where it executes the reusePooledConnection method. This method is synchronized.
    Actual steps that cause deadlock:
    1) thread1 locks OracleImplicitConnectionClass in runAbandonedTimeout method
    2) thread2 locks LogicalConnection class in close function.
    3) thread1 tries to lock the LogicalConnection and is unable to do this, waits for lock
    4) thread2 tries to lock the OracleImplicitConnectionClass and waits for lock.
    ***DEADLOCK***
    Thread Dumps from two threads listed above
    thread1
    Thread Name : Thread-1 State : Deadlock/Waiting on monitor Owns Monitor Lock on 0x30267fe8 Waiting for Monitor Lock on 0x509190d8 Java Stack at oracle.jdbc.driver.LogicalConnection.close(LogicalConnection.java:214) - waiting to lock 0x509190d8> (a oracle.jdbc.driver.LogicalConnection) at oracle.jdbc.pool.OracleImplicitConnectionCache.closeCheckedOutConnection(OracleImplicitConnectionCache.java:1330) at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.runAbandonedTimeout(OracleImplicitConnectionCacheThread.java:261) - locked 0x30267fe8> (a oracle.jdbc.pool.OracleImplicitConnectionCache) at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:81)
    thread2
    Thread Name : http-7320-Processor83 State : Deadlock/Waiting on monitor Owns Monitor Lock on 0x509190d8 Waiting for Monitor Lock on 0x30267fe8 Java Stack at oracle.jdbc.pool.OracleImplicitConnectionCache.reusePooledConnection(OracleImplicitConnectionCache.java:1608) - waiting to lock 0x30267fe8> (a oracle.jdbc.pool.OracleImplicitConnectionCache) at oracle.jdbc.pool.OracleConnectionCacheEventListener.connectionClosed(OracleConnectionCacheEventListener.java:71) - locked 0x34d514f8> (a oracle.jdbc.pool.OracleConnectionCacheEventListener) at oracle.jdbc.pool.OraclePooledConnection.callImplicitCacheListener(OraclePooledConnection.java:544) at oracle.jdbc.pool.OraclePooledConnection.logicalCloseForImplicitConnectionCache(OraclePooledConnection.java:459) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:475) at oracle.jdbc.driver.LogicalConnection.closeInternal(LogicalConnection.java:243) at oracle.jdbc.driver.LogicalConnection.close(LogicalConnection.java:214) - locked 0x509190d8> (a oracle.jdbc.driver.LogicalConnection) at com.schoolspecialty.cmf.yantra.OrderDB.updateOrder(OrderDB.java:2022) at com.schoolspecialty.cmf.yantra.OrderFactoryImpl.saveOrder(OrderFactoryImpl.java:119) at com.schoolspecialty.cmf.yantra.OrderFactoryImpl.saveOrder(OrderFactoryImpl.java:67) at com.schoolspecialty.ecommerce.beans.ECommerceUtil.saveOrder(Unknown Source) at com.schoolspecialty.ecommerce.beans.ECommerceUtil.saveOrder(Unknown Source) at com.schoolspecialty.ecommerce.beans.UpdateCartAction.perform(Unknown Source) at com.schoolspecialty.mvc2.ActionServlet.doPost(ActionServlet.java:112) at com.schoolspecialty.ecommerce.servlets.ECServlet.doPostOrGet(Unknown Source) at com.schoolspecialty.ecommerce.servlets.ECServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at com.schoolspecialty.ecommerce.servlets.filters.EcommerceURLFilter.doFilter(Unknown Source) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534)

    We used a documented option to abandon connects in the case of an unforeseen error. The consequence of using this option was not a graceful degradation in performance but a complete lockup of the application. The scenario in which we created a moderate number of abandoned connections was a rare error scenario but a valid test.
    How could this not be a bug in the Oracle driver? Is dead-lock a desireable outcome of using an option? Is dead-lock ever an acceptable consequence of using a feature as documented?
    Turns out other Oracle options to recover from an unexpected error also incur a similar deadlock (TimeToLiveTimeout).
    I did a code review of the decompiled drivers and it clearly shows the issue, confirming the original report of this issue. Perhaps you have evidence to the contrary or better evidence to support your statement "not a bug in Oracle"?
    Perhaps you are one of the very few people who have not experience problems with Oracle drivers? I've been using Oracle since 7.3.4 and it seems that I have always been working around Oracle JDBC driver problems.
    We are using Tomcat with the OracleDataSourceFactory.

  • Error while using jdbc pool

    Hi ,
    I tried to create an oracle pool by admin server. When I tried to ping it I got an error something like the cache name is already used.
    When I tried to use it in my code I got another error :
    'java.lang.ClassCastException: com.sun.gjc.spi.DataSource cannot be cast to oracle.jdbc.pool.OracleDataSource'
    The pool properties I used are :
    Url : dbc:oracle:thin:@servername:port:dbname
    DataSourceName: OracleDataSource
    ConnectionCacheName: cache2
    ConnectionCachingEnabled: true
    The code I used to get the connection :
    OracleDataSource poolConnDs = null;
    Connection poolConn = null;
    try{
    InitialContext jdbcContext = new InitialContext();
    poolConnDs = (OracleDataSource)jdbcContext.lookup("java:comp/env/jdbc/jndi_pool_name");
    poolConn = poolConnDs.getConnection();
    ResultSet res = poolConn.createStatement().executeQuery("Select * from my_table");
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    try{
    poolConn.close();
    }catch(Exception e){
    e.printStackTrace();
    Can anybody help me ??
    Thanx in advance

    You should not be using com.sun.appserv.jdbc.DataSource in your code.
    Neither OracleDataSource.
    Change your code from
    "poolConnDs = (OracleDataSource)jdbcContext.lookup("java:comp/env/jdbc/jndi_pool_name");"
    to
    "poolConnDs = (javax.sql.DataSource)jdbcContext.lookup("java:comp/env/jdbc/jndi_pool_name");"
    Hope this works.
    Thanks,
    -Jagadish

  • JDBC pooling Oracle driver Socket read timed out

    I run Java EE application on Glassfish server v3 together with Oracle 12 DB on the same machine under Windows Server 2012 64bit. I use latest ojdbc7 driver.
    Connection pool config:
      <jdbc-connection-pool validation-table-name="DUAL" steady-pool-size="20" statement-cache-size="100" associate-with-thread="true" statement-timeout-in-seconds="30" idle-timeout-in-seconds="60" max-wait-time-in-millis="2000" validate-atmost-once-period-in-seconds="20" datasource-classname="oracle.jdbc.pool.OracleDataSource" pool-resize-quantity="5" max-pool-size="60" res-type="javax.sql.DataSource" name="dbPool" is-connection-validation-required="true">
      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
      <property name="user" value="xxx"></property>
      <property name="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))"></property>
      <property name="password" value="xxx"></property>
      <property name="portNumber" value="1521"></property>
      <property name="databaseName" value="orcl"></property>
      <property name="serverName" value="127.0.0.1"></property>
      <property name="oracle.jdbc.ReadTimeout" value="300000"></property>
      <property name="oracle.net.CONNECT_TIMEOUT" value="10000"></property>
      </jdbc-connection-pool>
    After 2 or 3 hours, when there is more than 1 user (3-5) using my application, it stops responding and I get this in glassfish logs
      javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.allocator|_ThreadID=152;_ThreadName=Thread-2;|RAR5038:Unexpected exception while creating resource for pool dbPool. Exception : javax.resource.spi.ResourceAllocationException: Connection could not be allocated because: IO Error: Socket read timed out
      Local Exception Stack:
      Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
      Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: IO Error: Socket read timed out
    From the database side it looks like this
    Fatal NI connect error 12560, connecting to:
      (LOCAL=NO)
      VERSION INFORMATION:
      TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
      Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 12.1.0.1.0 - Production
      Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 12.1.0.1.0 - Production
      Time: 13-JUN-2014 03:14:49
      Tracing not turned on.
      Tns error struct:
      ns main err code: 12560
      TNS-12560: TNS:protocol adapter error
      ns secondary err code: 0
      nt main err code: 0
      nt secondary err code: 0
      nt OS err code: 0
      opiodr aborting process unknown ospid (3404) as a result of ORA-609
    When I just reset db listener everything works ok for next 1-2 hours (depends on application load). So temporary solution is to run bat script from windows scheduler to reset the listener every 1h.
    I tried everything I could find - applied these parameters:
      - Sqlnet.ora:
      SQLNET.INBOUND_CONNECT_TIMEOUT=180
      SQLNET.EXPIRE_TIME=5
      - Listener.ora:
      INBOUND_CONNECT_TIMEOUT_LISTENER_IPC=120
    But still without success

    Is the problem here just that you need a connection pool that closes idle connections?  Some pools will close idle connections after a time out period.  And the pool lets you set that time out period.  If the pool you are using doesn't provide that then use a different pool.

  • MS SQL Server 2000 JDBC driver and databasename

    Hi,
    I have tried to switch from using WebLogic jDriver for MS SQL Server to using
    MS SQL Server 2000 JDBC Driver as recommended by Bea for WebLogic 7.0. I can get
    the connection pooling to work with the new driver but I cannot get it to work
    for certain database. It seems to always connect to the defaul database even though
    I specify the database in console with property databasename=DBNAME. Any ideas
    what could be wrong?
    Thanks!
    Cheers,
    Jouni

    We had this working fine with WLS7, this is the entry from our config.xml
    <JDBCConnectionPool DriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
    InitialCapacity="50" MaxCapacity="50" Name="SQLServerConnectionPool" Password="{3DES}UkODkM1JaCU="
    Properties="user=Destin8;SelectMethod=cursor;databaseName=Destin8V3" ShrinkingEnabled="false"
    Targets="Destin8Cluster1" URL="jdbc:microsoft:sqlserver://mcp1:1433"/>
    Hope this helps..
    Pete
    "Jouni Peltonen" <[email protected]> wrote:
    >
    Hi,
    I have tried to switch from using WebLogic jDriver for MS SQL Server
    to using
    MS SQL Server 2000 JDBC Driver as recommended by Bea for WebLogic 7.0.
    I can get
    the connection pooling to work with the new driver but I cannot get it
    to work
    for certain database. It seems to always connect to the defaul database
    even though
    I specify the database in console with property databasename=DBNAME.
    Any ideas
    what could be wrong?
    Thanks!
    Cheers,
    Jouni

  • Which BC4J / JDBC pooling configurations are global for a JVM?

    There are several documents and postings saying that some of the BC4J / JDBC Pooling properties are unique for the JVM.
    So if i have 3 WAR files with 3 different settings in bc4j.xcfg (transaction factory, pooling settings) some of the settings are ignored after the first AM Pool is instanciated. This could be the reason for some "unreproducable" problems we have.
    So please provide us a list, which properties additional to the ones below are global per JVM and which are really used from the bc4j.xcfg.
    1. Getting the Connection object out of ApplicationModule says about the TransactionFactory
    Please not that this property is a static BC4J property. Meaning that the value of this property when the first ApplicationModule is created is the value which will be used. If you have multiple ApplicationPool(s) then it is necessary to define the property in all configurations, dynamically, or as a system property.
    2. http://www.oracle.com/technology/products/jdev/tips/muench/ampooling/index.html says about jbo.ampool.monitorsleepinterval
    Since there is only a single application monitor pool monitor per Java VM, the value that will effectively be used for the AM pool monitor polling interval will be the value found in the AM configuration read by the first AM pool that gets created. To make sure this value is set in a predictable way, it is best practice for all application modules to use the same Pool Polling Interval value.
    and
    3. Since the tuning parameters for all ADF database connection pools - regardless of <JDBCURL,Username> value - will be set based on the parameters found in the configuration for the first AM pool that is created. To insure the most predictable behavior, it is best practice to leave the values of the parameters in the Connnection Pooling section of the Pooling and Scalability tab at their default values - so that no entry for them is written into the bc4j.xcfg file - and to instead set the desired values for the database connection pooling tuning parameters as Java System Parameters in your J2EE container.
    Sounds like this means the parameters: jbo.initpoolsize, jbo.maxpoolsize, jbo.poolmonitorsleepinterval, jbo.poolmaxavailablesize, jbo.poolminavailablesize, jbo.poolmaxinactiveage ?
    4. And http://oracle-web.petersons.com/bc4jdoc/bc_aappmodpooling.htm tells There is one connection pool manager for each business logic tier's Java VM. Connections remain in the pool until the Java VM stops running.
    Thanks, Markus

    Just another funny observation regarding BC4J parameter settings in 9.0.5.2:
    Setting jbo.ampool.sessioncookiefactoryclass in the jboserver.properties is ignored. Setting in bc4j.xcfg works.
    rgds, Markus

  • Where to find the API documentation for MS SQL Server 2000 JDBC

    I Downloaded and installed the MS SQL Server 2000 JDBC package, but I found that it does not provide enough help docs such as API documentation, demo and etc.
    It would be most grateful if you would provide some information about this driver.

    Thank your for your kind attention.
    For example, I want to get a ConnectionPoolDataSource object to get a PooledConnection object, but I don't know which class implements the interface.
    import java.sql.*;
    import javax.sql.*;
    import <classes related to connection pooling>;
    ConnectionPoolDataSource cpds = new <MS impl>;
    <lines for setURL()/setUser()/setPassword, etc>
    PooledConnection pc = cpds.getPooledConnection();
    ...

  • Connection Pool using weblogic.jdbc.pool.Driver

    I am trying to use connection pooling in my JSP data access classes (which
    work fine without connection pooling) on weblogic 4.5.1. I tried using the
    weblogic.jdbc.pool.Driver but it exits with the following exception:
    java.lang.ClassNotFoundException: weblogic.jdbc.pool.Driver
    The path c:\weblogic\classes which contains this driver is specified in the
    weblogic.class.path . I can not include it in the java class path because
    then weblogic server fails to start at all (with an error message). I would
    appreciate any help !
    Thanks,
    Usamah

    Hi. Please don't repost identical posts to different news groups. See a response
    in the JDBC group. thanks, joe
    Usamah Malik wrote:
    I am trying to use connection pooling in my JSP data access classes (which
    work fine without connection pooling) on weblogic 4.5.1. I tried using the
    weblogic.jdbc.pool.Driver but it exits with the following exception:
    java.lang.ClassNotFoundException: weblogic.jdbc.pool.Driver
    The path c:\weblogic\classes which contains this driver is specified in the
    weblogic.class.path . I can not include it in the java class path because
    then weblogic server fails to start at all (with an error message). I would
    appreciate any help !
    Thanks,
    Usamah--
    PS: Hey folks, we're hiring Java engineers for our WebLogic
    Engineering group in downtown S.F. Send me your resume.
    The Weblogic Application Server from BEA
    JavaWorld Editor's Choice Award: Best Web Application Server
    Java Developer's Journal Editor's Choice Award: Best Web Application Server
    Crossroads A-List Award: Rapid Application Development Tools for Java
    Intelligent Enterprise RealWare: Best Application Using a Component Architecture
    http://weblogic.beasys.com/press/awards/index.htm

  • Java.io.notSerializableException:weblogic.jdbc.pool.Connection

    Hello,
              In my servelts only sometime I get this exception. I am using WLS7.0 jDK
              1.3.1(the one which comes with WLS7.0). I am using Java Beans which are all
              serializable.(I have declared that the classes implements Serilizable)
              Exception is as follows
              <Jan 27, 2003 4:19:09 AM EST> <Error> <HTTP Session> <triton>
              <AccupacServer> <ExecuteThread: '8' for queue: 'default'> <kernel identity>
              <> <100028> <Could not deserialize session data>
              java.io.NotSerializableException: weblogic.jdbc.pool.Connection
              at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1143)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:361)
              at
              java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1822)
              at
              java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:475)
              at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1209)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:361)
              at
              weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:9
              1)
              at
              weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:6
              6)
              at
              weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.ja
              va:570)
              at
              weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.ja
              va:552)
              at
              weblogic.servlet.internal.session.SessionData.remove(SessionData.java:734)
              at
              weblogic.servlet.internal.session.MemorySessionContext.invalidateSession(Mem
              orySessionContext.java:51)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator$Invalida
              tionAction.run(SessionContext.java:523)
              at
              weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
              r.java:744)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator.cleanupE
              xpiredSessions(SessionContext.java:444)
              at
              weblogic.servlet.internal.session.SessionContext.deleteInvalidSessions(Sessi
              onContext.java:81)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator.trigger(
              SessionContext.java:392)
              at
              weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:181
              at
              weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
              r.java:744)
              at
              weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigg
              er.java:167)
              at
              weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java
              :161)
              at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:38)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
              Any help appreciated.
              Thanks
              Madhu
              

    Hello,
              In my servelts only sometime I get this exception. I am using WLS7.0 jDK
              1.3.1(the one which comes with WLS7.0). I am using Java Beans which are all
              serializable.(I have declared that the classes implements Serilizable)
              Exception is as follows
              <Jan 27, 2003 4:19:09 AM EST> <Error> <HTTP Session> <triton>
              <AccupacServer> <ExecuteThread: '8' for queue: 'default'> <kernel identity>
              <> <100028> <Could not deserialize session data>
              java.io.NotSerializableException: weblogic.jdbc.pool.Connection
              at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1143)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:361)
              at
              java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1822)
              at
              java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:475)
              at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1209)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:361)
              at
              weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:9
              1)
              at
              weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:6
              6)
              at
              weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.ja
              va:570)
              at
              weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.ja
              va:552)
              at
              weblogic.servlet.internal.session.SessionData.remove(SessionData.java:734)
              at
              weblogic.servlet.internal.session.MemorySessionContext.invalidateSession(Mem
              orySessionContext.java:51)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator$Invalida
              tionAction.run(SessionContext.java:523)
              at
              weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
              r.java:744)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator.cleanupE
              xpiredSessions(SessionContext.java:444)
              at
              weblogic.servlet.internal.session.SessionContext.deleteInvalidSessions(Sessi
              onContext.java:81)
              at
              weblogic.servlet.internal.session.SessionContext$SessionInvalidator.trigger(
              SessionContext.java:392)
              at
              weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:181
              at
              weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
              r.java:744)
              at
              weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigg
              er.java:167)
              at
              weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java
              :161)
              at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:38)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
              Any help appreciated.
              Thanks
              Madhu
              

  • Web Logic 6.1 JDBC Pooling with the Oracle Thin Driver

    Hi,
    We're slowly getting through a WebLogic 4.5.1 to 6.1 conversion for a small application
    at my company. Initially, we had trouble getting the Oracle thin driver working.
    We've finally cracked this nut. Now we're trying to get pooling working, and
    cannot find an example of doing this with the Oracle thin driver.
    Would anyone be able to provide:
    1. the portion of the config.xml that pertains to building a connection pool using
    the Oracle thin driver
    2. the two lines of code for loading the driver and getting a connection from
    this pool
    i.e.
    Driver d = (Driver)Class.forName("weblogic.jdbc.pool.Driver").newInstance();
    Connection c = d.connect("jdbc:weblogic:pool:myPool", null);
    Thanks very much!
    Jeff Ryan
    The Hartford

    "Jeff Ryan" <[email protected]> wrote:
    >
    1. the portion of the config.xml that pertains to building a connection
    pool using
    the Oracle thin driver
    You don't usually edit the config.xml unless it is absolutely necessar. Instead,
    you can config the pool in the GUI admin console, quite easily. After you successfully
    configed the pool in the console, it is written into the config.xml file for you.
    Only thing special when config the pool is the name of the driver and the url.
    url: jdbc:oracle:thin@dbhost:dbport:dbinstance
    driver: oracle.jdbc.driver.OracleDriver
    If you prefer, you can also config the pool from the command line. It is detailed
    in the "Weblogic Server Command-line Interface Reference".
    2. the two lines of code for loading the driver and getting a connection
    from
    this pool
    i.e.
    Driver d = (Driver)Class.forName("weblogic.jdbc.pool.Driver").newInstance();
    Connection c = d.connect("jdbc:weblogic:pool:myPool", null);
    Again, you don't use the connection directly. Instead, you use "Data Source".
    Data source in weblogic is just a connection object factory associated with a
    JNDI name. You can therefore lookup the data source with the JNDI name and from
    the data source object, you get the connectin object. No need to explicitly load
    the driver class.
    There are plenty of example codes available in the weblogic examples installed
    with 6.1, that uses the data source.
    Charles

  • Question on adding new server to existing pool in OVM 2.2 environment

    I have an existing iscsi based server pool with one server attached to the pool. I am adding a second ovm server. I have configured the iscsi and multipath modules and can see the repository lun.
    I then added the server to the pool via ovm manager, but the server is not fully participating as the agent did not create a mount point for /OVS so I can't see the repos directiories from the new server. A "df" does not show the device as it does on the first server.
    The manager gui does show the server as part of the pool even though we received an error.
    In the ovm manager log, we see the following messages.
    Check prerequisites to add server (ovm2.highlinehosting.com) to server pool (san_pool1) succeed
    During adding servers ([ovm2.domain.com]) to server pool (san_pool1), Cluster setup failed: (OVM-1011 OVM Manager communication with ovm1.domain.com for operation HA Setup for Oracle VM Agent 2.2.0 failed: errcode=00000, errmsg=Unexpected error: <Exception: ha_check_cpu_compatibility failed:<Exception: CPU not compatible! {'ovm1.domain.com': 'vendor_id=GenuineIntel;cpu_family=6;model=44', 'ovm2.highlinehosting.com': 'vendor_id=GenuineIntel;cpu_family=6;model=46'}> )
    I'm not sure why it's complaining about cpu compatibility as we are not using any HA features at this time, and both servers are identical in make and model. They are both equipped with the same cpu type and speed.
    I checked ocfs2 network connectivity by executing the command "nc -zv nodename 7777", which ran successfully from both nodes. The manager was able to propagate a valid cluster.conf file to both servers. I restarted the ovs-agent service on the new server.
    Are there any other configuration steps that I need to take on the new server before trying to add it to the pool? I do need to tread carefully as I have live guests running in the pool.
    Thx

    Bob Weinmann wrote:
    If I have to go the route of using a separate pool for each server, do you have any suggestions on how I would be able to access the repos of server1 from server2 if server1 were to go down hard? I don't mean to access it as a repos for running the vms, but just to be able to copy the vm files over to the running server.This would be possible if you were using NFS for your storage, but not if you're using FC or iSCSI, as the LUN is formatted with the OCFS2 cluster ID of each pool, so probably wouldn't be able to be mounted by another pool. Your best bet is to upgrade to Oracle VM 3.0 so that you can create a pool that contains both servers: you won't have live migration, but HA will still work just fine.

Maybe you are looking for

  • NET PRICE GETTING CHANGED

    Dear Gurus,                  I am having a problem here. We have prepared a purchase orderfor an item with quantity 2 and netprice 3000, with insurence 1000rs against that item. The tax part is as follows: Excise Duty 10% hcess 2% Ecess 1% I have ,ma

  • Internet access - widespread (national level) outage?

    I haven't been able to get internet access for about a week now.  I've made several calls to Verizon support and have received various answers.  First, it was a local outage (in the incorrect city); next call - there was no outage; call last night th

  • SlideShow in the Home Page

    How can we create a Slideshow on the front page of our application/?

  • Bapi Vs FM

    Hi friends,     What is the difference between BAPI and Function Module ? Thanks, Prashant

  • Blackberry Bridge with Proxy

    Hi, I'm using Blackberry Bridge with my Playbook and it works great for email when it's not connected to the Wifi, but when I connect to the corporate Wifi (which uses a proxy) the Bridge tries to use the Wifi for the Messaging (and other) applicatio