Strange observations regarding Weblogic's jdbc pool

Hi,
We have strange problem in wls5.1 sp 8. We have configurate WLS
with 30 threads (weblogic.system.executeThreadCount) and a connection pool with
initial number of connections of 70 and maximum of 100 (the RDBMS is Oracle).
We see (with Weblogic console) the pool's utilisation is not very heavy (a maximum
of 10 simultaneous connections).
But WLS create 6 connections until the execution (we see with WLS console all
connections are closed).
How is it possible to have 76 connections in pool, with 30 threads configuration
Anybody has an idea ?
Thanks a lot
Emmanuel

Hi. One cause of this is if the code you have that obtains
pool connections is either not threadsafe, so one thread may
overwrite a connection reference that was also written to by
another thread. Another problem is if the code can ever exit
withourt closing the connection. This would 'leak' the connections
from the pool, which would never be able to know you were done
with them, and would make some more. Let me see your code.
Joe
Emmanuel Rias wrote:
>
Hi,
We have strange problem in wls5.1 sp 8. We have configurate WLS
with 30 threads (weblogic.system.executeThreadCount) and a connection pool with
initial number of connections of 70 and maximum of 100 (the RDBMS is Oracle).
We see (with Weblogic console) the pool's utilisation is not very heavy (a maximum
of 10 simultaneous connections).
But WLS create 6 connections until the execution (we see with WLS console all
connections are closed).
How is it possible to have 76 connections in pool, with 30 threads configuration
Anybody has an idea ?
Thanks a lot
Emmanuel

Similar Messages

  • ClassNotFoundException: weblogic/jdbc/pool/Driver

              Hi,
              I was able to run the sql example in the jsp\tagext directory.
              The ConnectionTag tag contains basically code like:
              Class.forName("weblogic.jdbc.pool.Driver").newInstance();
              which works fine.
              Next, I moved the code into a utility package, which I
              compiled into the public_html\WEB-INF\classes directory. This
              code is called from within a servlet.
              Strangely enough, when I run the servlet, I get the
              ClassNotFoundException: weblogic/jdbc/pool/Driver error.
              It is as if the servlet does not have access to the
              weblogic.jdbc.pool.Driver class while the tag library does.
              What am I doing wrong?
              Thanks,
              Vladimir
              

    You must include the path to jdbc driver in the script wich you start the
              server.
              WEBLOGIC_CLASSPATH
              vladimir <[email protected]> escribió en el mensaje de noticias
              39bcdf0c$[email protected]..
              >
              > Hi,
              >
              > I was able to run the sql example in the jsp\tagext directory.
              > The ConnectionTag tag contains basically code like:
              >
              > Class.forName("weblogic.jdbc.pool.Driver").newInstance();
              >
              > which works fine.
              >
              > Next, I moved the code into a utility package, which I
              > compiled into the public_html\WEB-INF\classes directory. This
              > code is called from within a servlet.
              >
              > Strangely enough, when I run the servlet, I get the
              > ClassNotFoundException: weblogic/jdbc/pool/Driver error.
              > It is as if the servlet does not have access to the
              > weblogic.jdbc.pool.Driver class while the tag library does.
              >
              > What am I doing wrong?
              >
              > Thanks,
              > Vladimir
              >
              

  • Repost: ClassNotFoundException: weblogic/jdbc/pool/Driver

              Hi,
              I was able to run the sql example in the jsp\tagext directory. The ConnectionTag tag contains basically code like:
              Class.forName("weblogic.jdbc.pool.Driver").newInstance();
              which works fine.
              Next, I moved the code into a utility package, which I compiled into the public_html\WEB-INF\classes directory. This code is called from within a servlet.
              Strangely enough, when I run the servlet, I get the ClassNotFoundException: weblogic/jdbc/pool/Driver error. It is as if the servlet does not have access to the weblogic.jdbc.pool.Driver class while the tag library does.
              What am I doing wrong?
              Thanks, Vladimir
              

              Hi,
              I was able to run the sql example in the jsp\tagext directory. The ConnectionTag tag contains basically code like:
              Class.forName("weblogic.jdbc.pool.Driver").newInstance();
              which works fine.
              Next, I moved the code into a utility package, which I compiled into the public_html\WEB-INF\classes directory. This code is called from within a servlet.
              Strangely enough, when I run the servlet, I get the ClassNotFoundException: weblogic/jdbc/pool/Driver error. It is as if the servlet does not have access to the weblogic.jdbc.pool.Driver class while the tag library does.
              What am I doing wrong?
              Thanks, Vladimir
              

  • 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
              

  • What jar contains weblogic.jdbc.pool.Driver connection pool class?

    Hi all,
    I am trying to use the JDeveloper IDE to generate code that I'll deploy on WebLogic
    6.1.
    I want to add the necessary files to the JDeveloper classpath so that during development
    it can use my
    weblogic connection pool. I've looked all over and can't seem to find it. It's
    not in weblogic.jar. Anyone know
    what file contains weblogic.jdbc.pool.Driver?
    Thanks in advance,
    Norm

    Thanks. I don't know how I missed it in the first place.
    "Sree Bodapati" <[email protected]> wrote:
    weblogic.jar
    sree
    "Norm Heske" <[email protected]> wrote in message
    news:3ba246c2$[email protected]..
    Hi all,
    I am trying to use the JDeveloper IDE to generate code that I'll deployon
    WebLogic
    6.1.
    I want to add the necessary files to the JDeveloper classpath so thatduring development
    it can use my
    weblogic connection pool. I've looked all over and can't seem to findit.
    It's
    not in weblogic.jar. Anyone know
    what file contains weblogic.jdbc.pool.Driver?
    Thanks in advance,
    Norm

  • Strange observations in SMP3 SP06

    Hello SMP Experts,
    Need your points in below observations in SMP3 latest release of SP06:
    1. In one of the application settings (being on SP05) under BACKEND tab, we had following SSO mechanisms:
      *BASIC
      *SSO2
      *X.509 (not yet implemented)
    After upgrading to SP06, we are seeing below error in the existing application id. I guess, it is mandatory to pass CERTIFICATE ALIAS in case of X.509 SSO mechanism. But same thing was not true in SP05.We could able to save app connection without passing Certificate Alias. Is that so? Any specific reason to make it mandatory? I dont find this information in the SMP3 SP06 help documentation.
    2. In SP06, log file is now being downloaded and not anymore opened in a new tab in the browser.
    Regards,
    JK

    Hi. One cause of this is if the code you have that obtains
    pool connections is either not threadsafe, so one thread may
    overwrite a connection reference that was also written to by
    another thread. Another problem is if the code can ever exit
    withourt closing the connection. This would 'leak' the connections
    from the pool, which would never be able to know you were done
    with them, and would make some more. Let me see your code.
    Joe
    Emmanuel Rias wrote:
    >
    Hi,
    We have strange problem in wls5.1 sp 8. We have configurate WLS
    with 30 threads (weblogic.system.executeThreadCount) and a connection pool with
    initial number of connections of 70 and maximum of 100 (the RDBMS is Oracle).
    We see (with Weblogic console) the pool's utilisation is not very heavy (a maximum
    of 10 simultaneous connections).
    But WLS create 6 connections until the execution (we see with WLS console all
    connections are closed).
    How is it possible to have 76 connections in pool, with 30 threads configuration
    Anybody has an idea ?
    Thanks a lot
    Emmanuel

  • 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

  • Oracle.jdbc.pool.OracleDataSource; local class incompatible

    I want to place a DataSource in a InitialContext with the following code
    public void getEnvironment() throws Exception{ try{ System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); /*System.setProperty(Context.PROVIDER_URL, "t3://127.0.0.1:7001"); System.setProperty(Context.SECURITY_PRINCIPAL, "weblogic"); System.setProperty(Context.SECURITY_CREDENTIALS, "password");*/ InitialContext ic = new InitialContext(); ic.createSubcontext("java:"); ic.createSubcontext("java:/comp"); ic.createSubcontext("java:/comp/env"); ic.createSubcontext("java:/comp/env/jdbc"); // Construcvt Datasource OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource(); ds.setURL("jdbc:oracle:thin:@cdcehr29:14985"); ds.setUser("user"); ds.setPassword("pwd"); //Connection conn = ds.getConnection(); ic.bind("java:/comp/env/jdbc/test", ds); System.out.println("see?"); Context envIc = (Context) ic.lookup("java:/comp/env"); envIc.bind("THIS_SERVICE_CD", ""); envIc.bind("THIS_SERVICE_VER", ""); envIc.bind("SERVICE_DATA_SOURCE_JNDI", "jdbc/test"); envIc.bind("ALS_PROJECT_CD", ""); envIc.bind("ALS_SYSTEM_CD", ""); envIc.bind("EHR_CONFIG_DATA_SOURCE_JNDI", ""); envIc.bind("SGR_PATH", ""); envIc.bind("AUDIT_TABLE_NAME", ""); envIc.bind("DEBUG_TABLE_NAME", ""); }catch(NamingException ex){ ex.printStackTrace(); }catch(Exception ex){ ex.printStackTrace(); } }
    but the following error is shown (but not catch in catch block, very strange)
    >
    <Jun 26, 2012 6:17:02 PM CST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
    java.io.InvalidClassException: oracle.jdbc.pool.OracleDataSource; local class incompatible: stream classdesc serialVersionUID = 8680830911645568991, local class serialVersionUID = 3349652938965166731
    java.io.InvalidClassException: oracle.jdbc.pool.OracleDataSource; local class incompatible: stream classdesc serialVersionUID = 8680830911645568991, local class serialVersionUID = 3349652938965166731
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    Truncated. see log file for complete stacktrace
    >
    what is the problem come from?

    >
    but the following error is shown (but not catch in catch block, very strange)
    >
    <Jun 26, 2012 6:17:02 PM CST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
    java.io.InvalidClassException: oracle.jdbc.pool.OracleDataSource; local class incompatible: stream classdesc serialVersionUID = 8680830911645568991, local class serialVersionUID = 3349652938965166731
    java.io.InvalidClassException: oracle.jdbc.pool.OracleDataSource; local class incompatible: stream classdesc serialVersionUID = 8680830911645568991, local class serialVersionUID = 3349652938965166731
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    Truncated. see log file for complete stacktrace
    what is the problem come from?
    >
    You didn't post the part of the stacktrace that shows the line number that the problem occured on. (Truncated. see log file for complete stacktrace)
    Are you sure the problem occured in the code you posted? If so did this line execute and print on the console?
    System.out.println("see?");That error can occur when the code used to deserialize an object uses a different version of the class than the version it was serialized with. The code you posted doesn't shown anything that appears to do any deserialization.
    Have their been any changes to the environment lately? Upgrades to Java version, WebLogic or the JDBC driver?

  • 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

  • JDBC pool stats

    Are there any interfaces to query within SJSWS 6.1 that will provide run-time statistics for JDBC pools? I'm looking for number currently in use, max pool size (how large the pool has grown, not the static max), etc.
    thanks,
    -chris

    Hi Simon,
    "Simon Spruzen" <[email protected]> wrote in message
    news:[email protected]..
    WebLogic 6.1 SP2 (NT)
    There are 15 execute threads configured.
    There is one JDBC connection pool configured. In the monitoring screen(my-domain>
    JDBC Connection ...> my-pool> Active JDBC Conn...) I get these stats:
    Connections High......13Maximum number of connections reseved
    from the pool the same time.
    Connections Total.....26Running count of borrowed connections
    Connections...........8Current number of borrowed connections.
    1. Why is Connections High less than Connections Total?CH is a maximum, CT is a running count.
    2. Why would Connections Total be slowly creeping up? Does this imply thata connection
    isn't being returned to the pool?Brcause it's natural for a counter to grow.
    4. What's the relationship between Connections, Connections Total andConnections
    High?They're mainly run-time characteristics of a connection pool.
    Regards,
    Slava Imeshev

  • 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

  • Java.lang.StringIndexOutOfBoundsException when trying to create a JDBC pool connection.

    Hi, I get a java.lang.StringIndexOutOfBoundsException when making a JDBC
    pool connection via the console of WLS 7.0. I use SQL Server 2000 in Win2K
    SP2 environment. Exactly the same configuration works perfectly in WinXP
    Pro. Can anyone advise me what might cause this problem? Thanks a lot.
    Log message
    ####<May 13, 2002 5:15:52 PM CEST> <Error> <JDBC> <abcdefgh> <vtsserver>
    <ExecuteThread: '1' for queue: '__weblogic_admin_html_queue'> <kernel
    identity> <> <001060> <Cannot startup connection pool
    "ejbTestConnectionPool" java.lang.StringIndexOutOfBoundsException: String
    index out of range: -1>
    Exception
    java.lang.NullPointerException
    at
    weblogic.management.console.utils.MBeans.getMBeanClassNameFor(MBeans.java:11
    53)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getMBeanClass(Edit
    MBeanAction.java:210)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getDialogTypeKey(E
    ditMBeanAction.java:188)
    at
    weblogic.management.console.actions.internal.InternalActionContext.setAction
    (InternalActionContext.java:158)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:170)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    --------------- nested within: ------------------
    weblogic.utils.NestedRuntimeException - with nested exception:
    [java.lang.NullPointerException]
    at
    weblogic.management.console.utils.MBeans.getMBeanClassNameFor(MBeans.java:11
    56)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getMBeanClass(Edit
    MBeanAction.java:210)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getDialogTypeKey(E
    ditMBeanAction.java:188)
    at
    weblogic.management.console.actions.internal.InternalActionContext.setAction
    (InternalActionContext.java:158)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:170)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    --------------- nested within: ------------------
    weblogic.management.console.actions.ActionException - with nested exception:
    [weblogic.utils.NestedRuntimeException - with nested exception:
    [java.lang.NullPointerException]]
    at weblogic.management.console.actions.ErrorAction.(ErrorAction.java:38)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:190)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    Current Date
    Mon May 13 17:15:52 CEST 2002
    Console Release Build
    null
    Console Build
    null
    Server Release Build
    7.0.0.0
    Server Build
    WebLogic Server 7.0 Thu Apr 25 17:16:22 PDT 2002 180709
    All Server Product Versions
    WebLogic Server 7.0 Thu Apr 25 17:16:22 PDT 2002 180709
    WebLogic XMLX Module 7.0 Thu Apr 25 17:26:07 PDT 2002 180709
    Request Info
    Protocol: HTTP/1.1
    ServerName: localhost
    ServerPort: 7001
    Secure: false
    ContextPath: /console
    ServletPath: /common/error.jsp
    QueryString:
    MBean=vtsdomain%3AName%3DejbTestConnectionPool%2CType%3DJDBCConnectionPool
    PathInfo: null
    PathTranslated: null
    RequestURI: /console/common/error.jsp
    AuthType: null
    ContentType: application/x-www-form-urlencoded
    CharacterEncoding: null
    Locale: en_US
    Method: POST
    Session:
    weblogic.servlet.internal.session.MemorySessionData@1926bd
    RequestedSessionId:
    8fMghRfnkcOls1wsW0vIRS8PuQKquWoYcnt6ciUG5uznDJiLr1ZA!-37849198!1021299872710
    RequestedSessionIdFromCookie: true
    RequestedSessionIdFromURL: false
    UserPrincipal: vts
    RemoteUser: vts
    RemoteAddr: 127.0.0.1
    RemoteHost: 127.0.0.1
    Parameters
    MBean = vtsdomain:Name=ejbTestConnectionPool,Type=JDBCConnectionPool
    chosen_wl_control_weblogic.management.configuration.JDBCConnectionPoolMBean.
    Targets-Server = vtsdomain:Name=vtsserver,Type=Server
    weblogic.console.submit_form = dataposted
    wl_control_weblogic.management.configuration.JDBCConnectionPoolMBean.Targets
    -Server = vtsdomain:Name=vtsserver,Type=Server
    Attributes
    wlinternalaction =
    weblogic.management.console.actions.internal.InternalActionContext@4372d8
    java.util.Locale = en_US weblogic.management.console.catalog.Catalog =
    weblogic.management.console.catalog.XmlCatalog@3ca759
    weblogic.management.console.helpers.BrowserHelper = User-Agent: Mozilla/4.0
    (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705) IE: true Netscape:
    false Supported: true JavscriptHrefs: false TableCellClick: true
    DocumentReloadedOnResize: false DropdownStretchable: true CellSpacingBlank:
    false EmptyCellBlank: false ImgOnclickSupported: true TableBorderFancy: true
    PartialToWideTables: false DisabledControlSupported: true
    weblogic.management.console.helpers.DebugHelper =
    weblogic.management.console.helpers.DebugHelper@16ed83
    weblogic.management.console.helpers.UnitsHelper =
    weblogic.management.console.helpers.UnitsHelper@ae2d9
    weblogic.management.console.helpers.UrlHelper =
    weblogic.management.console.helpers.UrlHelper@28fd41
    Headers
    Accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
    application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword,
    */* Accept-Encoding = gzip, deflate Accept-Language = en-us Cache-Control =
    no-cache Connection = Keep-Alive Content-Length = 304 Content-Type =
    application/x-www-form-urlencoded Cookie =
    ADMINCONSOLESESSION=8fMghRfnkcOls1wsW0vIRS8PuQKquWoYcnt6ciUG5uznDJiLr1ZA!-37
    849198 Host = localhost:7001 Referer =
    http://localhost:7001/console/actions/mbean/DoEditMBeanAction?MBean=vtsdomai
    n%3AName%3DejbTestConnectionPool%2CType%3DJDBCConnectionPool User-Agent =
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
    BrowserInfo
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;
    .NET CLR 1.0.3705)
    IE: true
    Netscape: false
    Supported: true
    JavscriptHrefs: false
    TableCellClick: true
    DocumentReloadedOnResize: false
    DropdownStretchable: true
    CellSpacingBlank: false
    EmptyCellBlank: false
    ImgOnclickSupported: true
    TableBorderFancy: true
    PartialToWideTables: false
    DisabledControlSupported: true

    Thanks, Joe. It works now!
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    >
    Vladimir wrote:
    Here are the definitions of the two pools - both encounter the same
    problem:
    <JDBCConnectionPool DriverName="weblogic.jdbc.mssqlserver4.Driver"
    Name="ejbTestConPool"
    Properties="db=ejbTest;user=sa;port=1433;password=test;server=localhost"
    TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
    TestTableName="accounts" URL="weblogic:jdbc:mssqlserver4"/>yep, as I thought. A JDBC URL always starts with 'jdbc'. It should be
    'jdbc:weblogic:mssqlserver4'. Also, make TestConnectionsOnRelease="false"
    (it's a waste of cycles).
    Joe
    <JDBCConnectionPool DriverName="weblogic.jdbc.mssqlserver4.Driver"
    Name="ejbTestConnectionPool" Password="{3DES}sCmdDszi61I="
    Properties="user=sa;db=ejbTest;port=1433;password=test;server=localhost"
    Targets="vtsserver" TestTableName="accounts"
    URL="weblogic:jdbc:mssqlserver4"
    XAPassword="{3DES}sCmdDszi61I="/>
    >>
    Vladimir
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    show us your pool definitions from the config.xml file. There's
    probably a
    problem
    with the URL or properties.
    Joe
    Vladimir wrote:
    Hi, I get a java.lang.StringIndexOutOfBoundsException when making a
    JDBC
    pool connection via the console of WLS 7.0. I use SQL Server 2000in
    Win2K
    SP2 environment. Exactly the same configuration works perfectly in
    WinXP
    Pro. Can anyone advise me what might cause this problem? Thanks alot.
    >>>>
    Log message
    ####<May 13, 2002 5:15:52 PM CEST> <Error> <JDBC> <abcdefgh><vtsserver>
    <ExecuteThread: '1' for queue: '__weblogic_admin_html_queue'><kernel
    identity> <> <001060> <Cannot startup connection pool
    "ejbTestConnectionPool" java.lang.StringIndexOutOfBoundsException:String
    index out of range: -1>
    Exception
    java.lang.NullPointerException
    at
    weblogic.management.console.utils.MBeans.getMBeanClassNameFor(MBeans.java:11
    53)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getMBeanClass(Edit
    MBeanAction.java:210)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getDialogTypeKey(E
    ditMBeanAction.java:188)
    at
    weblogic.management.console.actions.internal.InternalActionContext.setAction
    (InternalActionContext.java:158)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:170)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    --------------- nested within: ------------------
    weblogic.utils.NestedRuntimeException - with nested exception:
    [java.lang.NullPointerException]
    at
    weblogic.management.console.utils.MBeans.getMBeanClassNameFor(MBeans.java:11
    56)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getMBeanClass(Edit
    MBeanAction.java:210)
    at
    weblogic.management.console.actions.mbean.EditMBeanAction.getDialogTypeKey(E
    ditMBeanAction.java:188)
    at
    weblogic.management.console.actions.internal.InternalActionContext.setAction
    (InternalActionContext.java:158)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:170)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    --------------- nested within: ------------------
    weblogic.management.console.actions.ActionException - with nestedexception:
    [weblogic.utils.NestedRuntimeException - with nested exception:
    [java.lang.NullPointerException]]
    atweblogic.management.console.actions.ErrorAction.(ErrorAction.java:38)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:190)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
    let.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    Current Date
    Mon May 13 17:15:52 CEST 2002
    Console Release Build
    null
    Console Build
    null
    Server Release Build
    7.0.0.0
    Server Build
    WebLogic Server 7.0 Thu Apr 25 17:16:22 PDT 2002 180709
    All Server Product Versions
    WebLogic Server 7.0 Thu Apr 25 17:16:22 PDT 2002 180709
    WebLogic XMLX Module 7.0 Thu Apr 25 17:26:07 PDT 2002 180709
    Request Info
    Protocol: HTTP/1.1
    ServerName: localhost
    ServerPort: 7001
    Secure: false
    ContextPath: /console
    ServletPath: /common/error.jsp
    QueryString:
    MBean=vtsdomain%3AName%3DejbTestConnectionPool%2CType%3DJDBCConnectionPool
    PathInfo: null
    PathTranslated: null
    RequestURI: /console/common/error.jsp
    AuthType: null
    ContentType: application/x-www-form-urlencoded
    CharacterEncoding: null
    Locale: en_US
    Method: POST
    Session:
    weblogic.servlet.internal.session.MemorySessionData@1926bd
    RequestedSessionId:
    8fMghRfnkcOls1wsW0vIRS8PuQKquWoYcnt6ciUG5uznDJiLr1ZA!-37849198!1021299872710
    RequestedSessionIdFromCookie: true
    RequestedSessionIdFromURL: false
    UserPrincipal: vts
    RemoteUser: vts
    RemoteAddr: 127.0.0.1
    RemoteHost: 127.0.0.1
    Parameters
    MBean = vtsdomain:Name=ejbTestConnectionPool,Type=JDBCConnectionPool
    chosen_wl_control_weblogic.management.configuration.JDBCConnectionPoolMBean.
    Targets-Server = vtsdomain:Name=vtsserver,Type=Server
    weblogic.console.submit_form = dataposted
    wl_control_weblogic.management.configuration.JDBCConnectionPoolMBean.Targets
    -Server = vtsdomain:Name=vtsserver,Type=Server
    Attributes
    wlinternalaction =
    weblogic.management.console.actions.internal.InternalActionContext@4372d8
    java.util.Locale = en_US weblogic.management.console.catalog.Catalog=
    weblogic.management.console.catalog.XmlCatalog@3ca759
    weblogic.management.console.helpers.BrowserHelper = User-Agent:Mozilla/4.0
    (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705) IE: trueNetscape:
    false Supported: true JavscriptHrefs: false TableCellClick: true
    DocumentReloadedOnResize: false DropdownStretchable: trueCellSpacingBlank:
    false EmptyCellBlank: false ImgOnclickSupported: true
    TableBorderFancy:
    true
    PartialToWideTables: false DisabledControlSupported: true
    weblogic.management.console.helpers.DebugHelper =
    weblogic.management.console.helpers.DebugHelper@16ed83
    weblogic.management.console.helpers.UnitsHelper =
    weblogic.management.console.helpers.UnitsHelper@ae2d9
    weblogic.management.console.helpers.UrlHelper =
    weblogic.management.console.helpers.UrlHelper@28fd41
    Headers
    Accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
    application/vnd.ms-excel, application/vnd.ms-powerpoint,application/msword,
    */* Accept-Encoding = gzip, deflate Accept-Language = en-usCache-Control =
    no-cache Connection = Keep-Alive Content-Length = 304 Content-Type =
    application/x-www-form-urlencoded Cookie =
    ADMINCONSOLESESSION=8fMghRfnkcOls1wsW0vIRS8PuQKquWoYcnt6ciUG5uznDJiLr1ZA!-37
    849198 Host = localhost:7001 Referer =
    http://localhost:7001/console/actions/mbean/DoEditMBeanAction?MBean=vtsdomai
    n%3AName%3DejbTestConnectionPool%2CType%3DJDBCConnectionPoolUser-Agent
    =
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
    1.0.3705)
    BrowserInfo
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; WindowsNT
    5.0;
    .NET CLR 1.0.3705)
    IE: true
    Netscape: false
    Supported: true
    JavscriptHrefs: false
    TableCellClick: true
    DocumentReloadedOnResize: false
    DropdownStretchable: true
    CellSpacingBlank: false
    EmptyCellBlank: false
    ImgOnclickSupported: true
    TableBorderFancy: true
    PartialToWideTables: false
    DisabledControlSupported: true

  • Targeting jdbc pool to multiple servers

    Does anyone know how we can target a JDBC pool to multiple servers using the weblogic.Admin
    utility, I can target it to one server, but that removes the other servers, can
    multiple targets be specified using the SET mbean option.
    Anil

    Example would be: "Domain:Type=Server,Name=Server1,Name=Server2". Same applies to clusters.

  • 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.

Maybe you are looking for