Doubt in connection pooling

Hi,
I have a doubt in connection pooling.
I we create 100 connections in a connection pool, when do the connections created or assigned? Is it during the login time or during there is a request for the connection?
Please explain the doubt in detail.
Thanks

It depends on connection pool implementation.
Anyway you should not worry about it.
In general some connections created right away and some created after if required. You should be able to configure your pool.

Similar Messages

  • SOA connection pools

    Hi I have a few doubts regarding connection pools..
    1) When an instance is in the running state do the connection pools remain open ? When are connection pools closed exactly? only when the instance gets completed/faulted/terminated or in other conditions also
    2) Is there anyway to monitor the current total number connection pools open ?
    Thanks in advance
    Nikhil

    1)When an instance is in the running state do the connection pools remain open ?
    Here we have to talk about the connection, connection pool holds all the connections created to the database.
    When the BPEL engine wants to persist any data to the database the connection will be availed from the connection pool and will be return to the connection pool once the commit is completed.
    The instance status is not related to the connection status.
    2) Is there anyway to monitor the current total number connection pools open ?
    You can monitor the connection details-
    Login to weblogic console
    Services-->DataSources-->Data source name(SOADatasource)-->Monitoring
    Customize the table and add the the required columns like Active Connections Current Count.
    I hope this will help u...
    Regards
    Albin I
    http://www.albinsblog.com

  • PI' RFC  Connection pool  doubt.

    Hi PI exports:
    i have a doubt about  pi' RFC  Connection pool ,pi RFC receive channel can set the conn pool size ,but when start the rfc receiver channel ,is there always only one Connection  pool ,or there is only one Connection  pool  instance?
      thinks
    Edited by: kevin liang on Oct 19, 2009 6:45 AM

    Hi,
      Connection poolins size means how many number of connection you want to make open to send data to ECC, We can define maximum number of connection in Receiver RFC Adapter,Go to additional parameters section and define Max Number of connection give the number there,thats it.Internally it works as Connection poolin mechanism.
    Regards,
    Raj

  • Doubts concerning External Connection Pool

    A few questions:
    1. How can I set up an external connection pool with toplink? or in another words, assuming that I have successfully configured a connection pool (and a datasource) on my weblogic app-server, how do I configure Toplink to use the same?
    2. I am trying to achieve the above (refer point 1), by defining my custom connector (by extending TOPLink.Public.Sessions.DefaultConnector). The custom connector provides connections using the dataSource.getConnection(). Now, the question is
    - Where will the pooling happen in this case? i.e. Will Toplink use its own connection pool (populate its own connection pool with container managed data source), and issue connections (container managed) from there or will it make use of the container managed pooling (and ask for connections from the container managed pool, as and when required)? The subtle difference being, weblogic will not be able to validate a connection before issue in the former case.
    3. This question is similar to point 2, but talks in terms of a practical example. Assuming that if I am using the custom connector successfully in my code, then if I pull out the network cord and reconnect again, I expect the container to provide me with a valid connection (as weblogic can be configured to perform a validity check on a connection before issuing). I am getting a 'connection reset by peer' error in my application (indicating that either the container fails to provide a valid connection, or toplink does not use the container managed pool effectively). I guess, Toplink still uses its own pool but this time it is pooling container managed dataSources. Since the connections are issued from Toplink and not container, here is no validation/reconnection happening for the connection, before issue. Please comment if I am thinking in the right direction or not. If not, how you can explain the above failure?
    4. My aim is to utilise the container's connection pool, and Toplink's ability to perform the rest of the things (including transactions). Is that possible?

    Vikas,
    TopLink can easily be configured to use the external connection pool of an server. This can be accomplished with API but more commonly using the sessions.xml configuration file for the SessionManager. In the product we ship examples for WLS that make use of data sources configured in the server. The portion of the sessions.XML file in question is:
              <login>
                   <user-name>weblogic</user-name>
                   <password>weblogic</password>
                   <datasource>java:comp/env/jdbc/ejbJTSDataSource</datasource>
                   <non-jts-datasource>java:comp/env/jdbc/ejbNonJTSDataSource</non-jts-datasource>
                   <uses-external-transaction-controller>true</uses-external-transaction-controller>
                   <uses-external-connection-pool>true</uses-external-connection-pool>
              </login>
              <external-transaction-controller-class>oracle.toplink.jts.wls.WebLogicJTSExternalTransactionController</external-transaction-controller-class>
    This sets TopLink up with both data source access to the JTA and non-JTA connection pools. The full example also includes a domain where the data source is configured.
    When TopLink is using the connection pool of the server (external connection pooling) it will not pool its own connections. TopLink will request a connection from the pool each time one is required and release it back when done. This leaves the server responsible for the number of connections available and also for supporting database re-connection.
    Doug

  • Some doubts in using resource-ref,connection pool n Data-source

    Hi all ,
    I need little bit clarification in the following points.
    1) Does the connection pool which is created can be displayed in JNDI Tree???
    I am seeing only DataSOurce in the JNDI Tree Only.
    2)In case of Bean Managed Persistance, in ejb-jar.xml,
    I had given the following info.
    <resource-ref>
             <res-ref-name>ramukkDataSource</res-ref-name>
             <res-type>javax.sql.DataSource</res-type>
             <res-auth>Container</res-auth>
         </resource-ref>Does the <res-ref-name> refers to Datasource Name??
    In weblogic-ejb-jar.xml
    <reference-descriptor>
           <resource-description>
              <res-ref-name>ramukkDataSource</res-ref-name>
              <jndi-name>ramukkpool</jndi-name>
           </resource-description>
         </reference-descriptor>Here <jndi-name> refers to connection pool as per weblogic bible book.
    If so when i deployed my ejb into the server iam getting Datasource cant be found.
    If i had given like the following,
    In ejb-jar.xml
    <resource-ref>
              <res-ref-name>jdbc/ramuJndi</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>Container</res-auth>
         </resource-ref> In weblogic-ejb-jar.xml
         <reference-descriptor>
              <resource-description>
               <res-ref-name>jdbc/ramuJndi</res-ref-name>
               <jndi-name>jdbc/ramuJndi</jndi-name>
           </resource-description>
        </reference-descriptor>Then only my ejb code is successfully deploying doing some work which is as per xpectation.
    Can any body tell why I have to give the same name for <res-ref-name> n <jndi-name>??
    I am working on this problem from last one week. Still not found the solution.
    Connection Pool Creation
    GENERAL::
    Name : ramukkpool
    url : jdbc:mysql://localhost:3306/test
    Driver Classname: com.mysql.jdbc.Driver
    Properties :
    user = root
    Password = XXX
    create
    TARGETS::
    i had shifted myServer from left side to right side n clicked >>Apply
    (Techncially can we say this as deploying the connection pool into server ???????????
    If not how to deploy the connection pool into server??)
    I did not get any errors in the console.
    Now i am creating a datasource
    CONFIGURATION:
    Name : ramukkDataSource
    JNDIName: jdbc/ramuJndi(Does we have to follow this convention only?? i.e JNDIName should start with jdbc/ only)
    PoolName: ramukkpool
    create
    TARGETS::
    I had shifed myServer from left to right n >>Apply.
    Now also i did not get any errors in the console.Thanx(in advance),
    ramu

    I have read the documentation.
    I changed my class to oracle.jdbc.pool.OracleConnectionCacheImpl from
    oracle.jdbc.pool.OracleConnectionPoolDataSource
    I observed in the EM that the Open JDBC Connections and Total JDBC Connections are the same. When I used oracle.jdbc.pool.OracleConnectionPoolDataSource my Total JDBC Connections was increasing and Open JDBC Connections remains 0.
    My question still remains unanswered, could some kindly help.
    Q? I have defined a data source in JDeveloper using
    oracle.jdbc.pool.OracleConnectionCacheImpl
    In my java bean I am using the code pasted below to make a connection to database.
    Can some one tell whether I am using the correct method of connection pooling mechanism or do I need to make some changes? This application uses JSP and used by lots of people which hits database very frequently.
    Any help is highly appreciable.
    Thanks in advance.
    *******Code to make connection*********
    private javax.naming.InitialContext context = null;
    private javax.sql.DataSource jdbcURL = null;
    private static final String url = "jdbc/ProdCoreDS";
    public boolean openConnection()
    try
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    context = new javax.naming.InitialContext();
    jdbcURL = (javax.sql.DataSource)context.lookup(url);
    con =  jdbcURL.getConnection();
    return true;
      catch(Exception e)
           System.out.println("Error in the Connection  "+e);
        e.printStackTrace();
                 return false;
         }}

  • Connection Pool establishment problem

    Hi Experts,
    we have one application with JCo mechanism. For this application,
    we are using one properties file, which holds ABAP connection information. From this connection information(sapconn.props), we created connection pool and fetching data from the back end. Now my requirement is, instead of this properties file, we want to use one SLD, from this i would like to fetch connection information and establish a connection pool. How can we implement this one...?
    Is there any API to read the ABAP connection informaation from visual admin (JCo RFC provider) ?
    Thanks
    maha

    Your question has been answered in this [thread|connection establishment doubt;.
    Please read the [rules|https://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement], in particular - do not cross post.
    -- Vladimir

  • Weblogic Server 9.2 Crashes when using the JMS Wrapped Connection Pooling.

    ===== BEGIN DUMP =============================================================
    JRockit dump produced after 0 days, 01:05:05 on Thu Sep 16 18:27:36 2010
    Additional information is available in:
    E:\obopay\servers\EWP_9.2_Domain\jrockit.4516.dump
    E:\obopay\servers\EWP_9.2_Domain\jrockit.4516.mdmp
    If you see this dump, please open a support case with BEA and
    supply as much information as you can on your system setup and
    the program you were running. You can also search for solutions
    to your problem at http://forums.bea.com in
    the forum jrockit.developer.interest.general.
    Error Message: Illegal memory access. [54]
    Exception Rec: EXCEPTION_ACCESS_VIOLATION (c0000005) at 0x0095065F - memory at 0x00740060 could not be read.
    Minidump : Wrote mdmp. Size is 567MB
    SafeDllMode : -1
    Version : BEA JRockit(R) R27.2.0-131-78843-1.5.0_10-20070320-1457-windows-ia32
    GC Mode : Garbage collection optimized for throughput
    GC Strategy : Generational Parallel Mark & Sweep
    : Current OC phase is: not running. YC is not running.
    : GC strategy for GC 36 was genparpar
    : GC strategy for GC 37 was genparpar
    : GC strategy for GC 38 was genparpar
    : GC strategy for GC 39 was genparpar
    : GC strategy for GC 40 was genparpar
    : mmHeap->data = 0x00C00000, mmHeap->top = 0x10C00000
    : The nurserylist starts at 0x01BE75E8 and ends at 0x0CB52440
    : mmStartCompaction = 0x00C00000, mmEndCompaction = 0x01C00000
    : References are 32-bit.
    CPU : Intel Pentium III/Pentium III Xeon SSE SSE2 SSE3 SSSE3 EM64T
    Number CPUs : 2
    Tot Phys Mem : 3451408384 (3291 MB)
    OS version : Microsoft Windows XP version 5.1 Service Pack 3 (Build 2600) (32-bit)
    Thread System: Windows Threads
    State : JVM is running
    Command Line : -Djava.library.path=E:\bea\jrockit90_150_10\bin;E:\bea\jrockit90_150_10\jre\bin;E:\bea\weblogic92\server\native\win\32;E:\bea\weblogic92\server\bin;E:\bea\weblogic92\server\native\win\32\oci920_8 -Dweblogic.management.discover=false -Dplatform.home=E:\bea\weblogic92 -Dwls.home=E:\bea\weblogic92\server -Dwli.home=E:\bea\weblogic92\integration -Dweblogic.Name=myserver -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic -Dweblogic.ext.dirs=E:\bea\patch_weblogic901\profiles\default\sys_manifest_classpath\weblogic_patch.jar Djava.security.auth.login.config=E://workspace/Bhopal/LoginModulesConfig/ewp_loginmodules.config -Djava.naming.factory.initial.ewp.remote=weblogic.jndi.WLInitialContextFactory -Dcom.ewp.proxy.is_remote=false -Djava.naming.provider.url.ewp.remote=t3://localhost:7001 -Dweblogic.webservice.verbose=true -Dweblogic.log.Log4jLoggingEnabled=true -Dweblogic.security.SSL.ignoreHostnameVerification=true Xdebug -Xnoagent -Dcom.sun.management.jmxremote -Xms256m -Xmx1024m -Dsun.java.launcher=SUN_STANDARD weblogic.Server
    java.home : E:\bea\jrockit90_150_10\jre
    JAVA_HOME : <not set>
    JAVAOPTIONS: <not set>
    PATH : E:\bea\jrockit90_150_10\jre\bin;E:\oracle\product\10.2.0\client_1\bin;C:\Program Files\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\TortoiseSVN\bin
    C Heap : Good; no memory allocations have failed
    StackOverFlow: 0 StackOverFlowErrors have occured
    OutOfMemory : 0 OutOfMemoryErrors have occured
    Registers (from ThreadContext: 0x4B29E378 / OS context: 0x4B29E764):
    eax = 00740060 ecx = 00740060 edx = 45a45ba0 ebx = 08c953b8
    esp = 4b29ea30 ebp = 00000000 esi = 4b29ea60 edi = 4b29efb4
    es = 00000023 cs = 0000001b ss = 00000023 ds = 00000023
    fs = 0000003b gs = 00000000
    eip = 0095065f eflags = 00010206
    Stack:
    (* marks the word pointed to by the stack pointer)
    4b29ea30: 00981099* 08c953b8 008ab310 4b29eb34 09e5c308 009810ea
    4b29ea48: 4b29ead8 0098ecd2 4b29ea60 4b29ea90 48bd8960 48bd8960
    4b29ea60: 00000001 45aa0278 45a45ba0 00000007 00000000 08c953b8
    4b29ea78: 08512180 4b29ef60 00000000 09d56368 09d563b0 4b29efb4
    Code:
    (* marks the word pointed to by the instruction pointer)
    0095062c: 5e5f0cc4 c35bc033 01b85e5f 5b000000 ccccccc3 0424448b
    00950644: a5f06ca3 ccccc300 cccccccc 04244c8b 01a8018b e0830774
    0095065c: 8bc88bfe* 40788301 44408b03 af0f0a75 c0830841 f8e08317
    00950674: ccccccc3 cccccccc cccccccc 0424448b 00f4888b 158b0000
    Loaded modules:
    (* denotes the module causing the exception)
    00400000-0040ffff E:\bea\jrockit90_150_10\bin\javaw.exe
    7c900000-7c9b1fff C:\WINDOWS\system32\ntdll.dll
    7c800000-7c8f5fff C:\WINDOWS\system32\kernel32.dll
    7e410000-7e4a0fff C:\WINDOWS\system32\USER32.dll
    77f10000-77f58fff C:\WINDOWS\system32\GDI32.dll
    77dd0000-77e6afff C:\WINDOWS\system32\ADVAPI32.dll
    77e70000-77f02fff C:\WINDOWS\system32\RPCRT4.dll
    77fe0000-77ff0fff C:\WINDOWS\system32\Secur32.dll
    77c10000-77c67fff C:\WINDOWS\system32\MSVCRT.dll
    76390000-763acfff C:\WINDOWS\system32\IMM32.DLL
    00820000-00a9cfff *E:\bea\jrockit90_150_10\jre\bin\jrockit\jvm.dll
    76b40000-76b6cfff C:\WINDOWS\system32\WINMM.dll
    71ab0000-71ac6fff C:\WINDOWS\system32\WS2_32.dll
    71aa0000-71aa7fff C:\WINDOWS\system32\WS2HELP.dll
    7c340000-7c395fff E:\bea\jrockit90_150_10\bin\MSVCR71.dll
    5dac0000-5dac7fff C:\WINDOWS\system32\rdpsnd.dll
    76360000-7636ffff C:\WINDOWS\system32\WINSTA.dll
    5b860000-5b8b4fff C:\WINDOWS\system32\NETAPI32.dll
    76bf0000-76bfafff C:\WINDOWS\system32\PSAPI.DLL
    6d700000-6d70bfff E:\bea\jrockit90_150_10\jre\bin\verify.dll
    6d370000-6d38cfff E:\bea\jrockit90_150_10\jre\bin\java.dll
    6d2f0000-6d2f7fff E:\bea\jrockit90_150_10\jre\bin\hpi.dll
    6d720000-6d72efff E:\bea\jrockit90_150_10\jre\bin\zip.dll
    6d520000-6d527fff E:\bea\jrockit90_150_10\jre\bin\management.dll
    6d530000-6d542fff E:\bea\jrockit90_150_10\jre\bin\net.dll
    71a50000-71a8efff C:\WINDOWS\system32\mswsock.dll
    662b0000-66307fff C:\WINDOWS\system32\hnetcfg.dll
    71a90000-71a97fff C:\WINDOWS\System32\wshtcpip.dll
    41c00000-41c26fff C:\WINDOWS\system32\DNSAPI.dll
    41c30000-41c37fff C:\WINDOWS\System32\winrnr.dll
    41c40000-41c6bfff C:\WINDOWS\system32\WLDAP32.dll
    41c80000-41c85fff C:\WINDOWS\system32\rasadhlp.dll
    68000000-68035fff C:\WINDOWS\system32\rsaenh.dll
    769c0000-76a73fff C:\WINDOWS\system32\USERENV.dll
    438b0000-438b8fff E:\bea\jrockit90_150_10\jre\bin\nio.dll
    41ba0000-41ba9fff E:\bea\jrockit90_150_10\jre\bin\jmapi.dll
    41bb0000-41bbdfff E:\bea\weblogic92\server\native\win\32\wlfileio2.dll
    43ce0000-43cf8fff C:\WINDOWS\system32\iphlpapi.dll
    43d10000-43d27fff C:\WINDOWS\system32\MPRAPI.dll
    77cc0000-77cf1fff C:\WINDOWS\system32\ACTIVEDS.dll
    43d30000-43d54fff C:\WINDOWS\system32\adsldpc.dll
    43d60000-43d70fff C:\WINDOWS\system32\ATL.DLL
    43d80000-43ebcfff C:\WINDOWS\system32\ole32.dll
    43ec0000-43f4afff C:\WINDOWS\system32\OLEAUT32.dll
    43f50000-43f5dfff C:\WINDOWS\system32\rtutils.dll
    71bf0000-71c02fff C:\WINDOWS\system32\SAMLIB.dll
    43f60000-44052fff C:\WINDOWS\system32\SETUPAPI.dll
    44060000-44064fff E:\bea\weblogic92\server\native\win\32\wlntio.dll
    44540000-44545fff E:\bea\jrockit90_150_10\jre\bin\rmi.dll
    4d010000-4d122fff E:\bea\jrockit90_150_10\jre\bin\dbghelp.dll
    "[STANDBY] ExecuteThread: '21' f" id=87 idx=0xf0 tid=4208 lastJavaFrame=0x4B29EB4C
    Stack 0: start=0x4B260000, end=0x4B2A0000, guards=0x4B263000 (ok), forbidden=0x4B261000
    Thread Stack Trace:
    at _mmGetPossibleMovedObjectSize+15()@0x0095065F
    at _refIterInit+393()@0x00981099
    at _refIterInit+474()@0x009810EA
    at _trProcessLocksForThread+66()@0x0098ECD2
    at _javalockCouldBeLock+1047()@0x008AB417
    at _javalockConvertThinToFat+42()@0x008AC13A
    at RJNIjrockit_vm_Locks_convertThinLockedToFatLocked@8+15()@0x00986B1F
    -- Java stack --
    at jrockit/vm/Locks.convertThinLockedToFatLocked(Ljava/lang/Object;)V(Native Method)
    at jrockit/vm/Locks.createMonitorAndConvert(Ljava/lang/Object;Z)Ljrockit/vm/ObjectMonitor;(Unknown Source)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:474)
    at weblogic/common/CompletionRequest.getResult(CompletionRequest.java:109)
    ^-- Holding lock: weblogic/common/CompletionRequest@0x09E5C2A8[thin lock]
    at weblogic/store/gxa/internal/GXATransactionImpl.commitStoreIO(GXATransactionImpl.java:99)
    at weblogic/store/gxa/internal/GXATransactionImpl.doOperationCallbacks(GXATransactionImpl.java:215)
    at weblogic/store/gxa/internal/GXAResourceImpl.commit(GXAResourceImpl.java:1448)
    at weblogic/transaction/internal/XAServerResourceInfo.commit(XAServerResourceInfo.java:1333)
    at weblogic/transaction/internal/XAServerResourceInfo.commit(XAServerResourceInfo.java:577)
    at weblogic/transaction/internal/ServerSCInfo.startCommit(ServerSCInfo.java:514)
    at weblogic/transaction/internal/ServerTransactionImpl.localCommit(ServerTransactionImpl.java:1993)
    at weblogic/transaction/internal/ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2658)
    at weblogic/transaction/internal/ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2580)
    at weblogic/transaction/internal/ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:278)
    at weblogic/transaction/internal/ServerTransactionImpl.commit(ServerTransactionImpl.java:227)
    at weblogic/deployment/jms/WrappedTransactionalSession.delistFromTransaction(WrappedTransactionalSession.java:258)
    ^-- Holding lock: weblogic/deployment/jms/PooledSession_weblogic_jms_client_JMSXASession@0x09D56368[thin lock]
    at weblogic/deployment/jms/WrappedMessageProducer.send(WrappedMessageProducer.java:149)
    at com/obopay/jms/helper/BaseQueueHelper.sendMessage(BaseQueueHelper.java:107)
    The above is the jrockit crash dump file..
    I am using the JMS Wrapper Connection Poooling provided by Weblogic. When i use Jmeter and do the load testing for around 10 users, the server gets crashed.
    I doubt something is going wrong with the Weblogic JMS Connection Pooling, please help me..

    The problem doesn't look like it has anything to do with wappers per se. The stack indicates that the JVM died when the persistent store tried to invoke a standard Java synchronize operation. JVM crashes need to be analyzed by a JVM expert, so I second the suggestion to solicit help from JVM experts and/or filing a case with customer support. In the mean-time, you can probably work-around the issue by either (A) ensuring you have a recent version of the JVM installed, or (B) temporarily switching to the Sun JVM.
    Regards,
    tom
    Edited by: TomB on Sep 17, 2010 2:33 PM

  • Questions regarding Connection Pooling

    Hi
    i have some confusion regarding how connection pooling is implemented..i have been doing some digging in to this lately but the more i read the more confused i get. i have some doubts here, will any of the posters here kindly clear them
    a. Do i have to connect to my database via the DataSource method to take advantage of the connection pooling provided by my app server?..i have read conflicting information about this suggesting that Connection Pooling will not be provided to my app if i use DriverManager.getConnection()
    b. if i chose to use the DataSource method do i have to implement the ConnectionPoolDataSource interface to provide the connection pooling for my app?
    c. what is the best way to implement my own custom Connection pool?
    Thanx

    DriverManager.getConnection() literally creates, that is, builds a connection to the database using the values you previously supplied when you loaded the driver.
    A connection pool is an object that contains several already made connections to the database, and simply provides you with one of those existing connections. The confusion arises because a) the method name is frequently the same and b) the connection pool object calls the driver's getConnection() method to create several connections before lending any of them out.
    In other words:
    DriverManager.getConnection() builds a connection to the database.
    ConnectionPool.getConnection() fetches an existing connection.
    So, to answer your questions...
    A. This is correct. If you use DriverManager.getConnection(), you are indeed bypassing the Connection Pool entirely.
    B. I'm not familiar with DataSource specifically, but in general, a third party connection pool will either give you the interface (and you implement the details) or they will give you the class file containing the DataSource object. All you would have to do in the latter case is to import that file, then create a new instance of it using the new keyword ( DataSource foo = new DataSource(); ). I suspect DataSource is indeed the class file.
    C. Creating a connection pool is trivial and there are many examples of it - search on this forum or check out your favorite Java/JDBC programming book. Usually, the question "Should I use a connection pool and why?" is a more important question.

  • Repost-Best way of using connection pooling

    I am reposting this, seems best suitable in this category.
    I am using Eclipse 3.1 along with Tomcat 5.0, MySQL 4.1, J2EE1.4. I could set up the JNDI Dataresource connection pooling and tested with small test servlet. Now thinking of having common methods for getting connection / closing / commiting ....etc.
    I wrote following. [Please let me know whether it is correct way of doing it - as i am not very sure]
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    import org.apache.log4j.Logger;
    public final class connectionManager {
         private static Logger logger = Logger.getLogger(common.connectionManager.class);
         public connectionManager() {}
         public static Connection getConn () throws NamingException, SQLException
    //JNDI DataSource connection pooling
              Connection conn = null;
              try{
                   Context initContext = new InitialContext();
                   Context envContext  = (Context)initContext.lookup("java:/comp/env");
                   DataSource ds = (DataSource)envContext.lookup("jdbc/TQ3DB");
                   conn = ds.getConnection();
              }catch (NamingException ne) {
                  new GlobalExceptionHandler(logger, ne);
                   conn = null;
                   throw new NamingException();
              }catch (SQLException e){
                   new GlobalExceptionHandler(logger, e);
                   conn = null;
                   throw new SQLException();
              return conn;
           }//getConnection
         public static void commit(Connection conn) throws SQLException
              conn.commit();
         public static void rollback(Connection conn) throws SQLException
              conn.rollback();
           public static void setAutoCommit(Connection conn, boolean autoCommit)
                                        throws SQLException
                conn.setAutoCommit(autoCommit );
         public static void closeConnection(Connection conn) throws SQLException{
              if (conn != null) {
                   conn.close();
                   conn = null;
         }//closeConnection
         public static void closeResources(ResultSet oRS, PreparedStatement pstmt) throws SQLException
              if (oRS != null) {
                   oRS.close();
                   oRS = null;
              if (pstmt != null) {
                        pstmt.close();
                        pstmt = null;
         } // closeResources
    }//ConnectionManager
    I am having a login form which submits user name and password. I am checking this against the database. Following is the servlet to do that.
    package login;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import common.*;
    public class loginServlet extends HttpServlet {
         public void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {          
              doPost(request, response);
         }//doGet
         public void doPost(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException,IOException{
              String userId = request.getParameter("userId");
              String password = request.getParameter("password");
              ** call a method to validate the password which will return the
              ** User Name for authorized users and null string for un-authorised.
              String uName = validateUser(userId, password);
              //if uName is null .. user is not authorized.
              if (uName == null){
                   //redirect to jsp page with error message
                  RequestDispatcher rd =
                       getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                  if (rd != null){
                       rd.forward(request,response);
              else{
                   // the user is valid - create a seesion for this user.
                   HttpSession userSession = request.getSession(true);
                   // put the user name session variable.
                   userSession.setAttribute("userName", uName);
                   //redirect to Main menu page
                   RequestDispatcher rd =
                        getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                   if (rd != null){
                        rd.forward(request,response);
         }// end of doPost
         private String validateUser(String userId, String password)
                   throws SQLException{
              String returnVal = null;
              connectionManager cm = new connectionManager();
              Connection conn = null;
              PreparedStatement pstmt = null;
              ResultSet oRS = null;
              try{
                   //get the connection
                   conn = cm.getConn ();
                   //get records from user table for this user id and password
                   String sQry = "SELECT  user_login FROM user "
                             + "where user_login = ? AND user_pwd = ? ";
                   pstmt = conn.prepareStatement(sQry);
                   pstmt.setString(1, userId);
                   pstmt.setString(2, password);
                   oRS = pstmt.executeQuery();
                   //check for record
                   if (oRS.next()) {
                        returnVal = oRS.getString("user_login");
                   }else {returnVal = null;}
                 }catch (Exception e){            
                      returnVal = null;
              }finally{
                   cm.closeResources(oRS, pstmt);
                   cm.closeConnection(conn);
              return returnVal;
    }// end of servlet class
    But i am unable to compile it and i am also getting lots of warnings.
    I am getting error at line
    1)String uName = validateUser(userId, password);
    Unhandled exception type SQLException loginServlet.java TQ3/WEB-INF/src/login line
    Following warnings:
    2)For loginServlet Declaration
    The serializable class DBTest does not declare a static final serialVersionUID field of type long loginServlet.java
    3)The static method getConn() from the type connectionManager should be accessed in a static way
    4)The static method closeResources(ResultSet, PreparedStatement) from the type connectionManager should be accessed in a static way
    5)The static method closeConnection(Connection) from the type connectionManager should be accessed in a static way
    Definitely I am doing it wrong but exactly where? I am having very strong doubt the way i am using connections is not the correct way. Pls help me.
    regards
    Manisha

    I am in a search of best way to use connection pooling. Initially was using simple JDBC call, then modified to JNDI, afterwards tried to have common class. Later came accross the idea of Singleton/Static. I wanted to have a common class which will handle all connection related issues and at the same time give good performance.
    With due respect to all Java Gurus: i got all from web articles/tutorials/java forum etc. There is a long discussion regarding Singlet vs static in this forum. But finally got confused and could not figure out in my case which method shall i make use of, so tried both.
    What I want is somebody pointing out flwas inside my 2 code snippets and guide me about which method shall i adopt in future.
    Static way:
    package common;
    import java.sql.Connection;
    import javax.sql.DataSource;
    import java.sql.SQLException;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public final class ConnectionManager_Static {
         private static InitialContext ctx = null;
         private static DataSource ds = null;
         public ConnectionManager_Static(){     }
         //as the staic method is updating static var i am synchonizing it
         private static synchronized void getDatasource () throws NamingException, SQLException
              if (ds == null){
                   ctx = new InitialContext();
                   ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
         //making getConnection() also static as it is not instance specific     
         public static Connection getConnection () throws NamingException, SQLException, Exception
              Connection conn = null;
              try{     
                   if (ds == null) {getDatasource ();}
                   if (ds != null) {
                        conn = ds.getConnection();                 
              }catch (Exception e){
                   throw new Exception("From ConnectionManager_Static",e);
              return conn;
           }//getConnection
    }Singleton:
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    public final class ConnectionManager_Singleton {
             private static ConnectionManager_Singleton INSTANCE = null;
              private DataSource datasource = null;
              // Private constructor for singleton pattern
             private ConnectionManager_Singleton() throws NamingException{
                   Context ctx = new InitialContext();
                   datasource = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
             //synchronized creator for  multi-threading issues
             //another if check to avoid multiple instantiation
             private synchronized static void createInstance() throws NamingException{
                 if (INSTANCE == null) {
                     INSTANCE = new ConnectionManager_Singleton();
             public static ConnectionManager_Singleton getInstance() throws NamingException {
                 if (INSTANCE == null) createInstance();
                 return INSTANCE;
              public Connection getConnection() throws Exception
                   Connection con = null;
                   try{
                        con = datasource.getConnection();
                   }catch(Exception e){
                        throw new Exception("From connection manager singleton ", e);
                   return con;
    }Sorry, It's becoming long.
    Thanaks in advance,
    Manisha

  • Subject areas and connection pools

    Hi,
    Could you let me know what is the best option for me. We have tables coming from single data source. We are doing diffferent subject areas based on the requirements. My question is is it best to do different connection pools for each subject area or just do one connection pool for all subject areas.

    Hi friend,
    i think the best option depends on number of user will use the application. If you a have a high number of user on each subject data, i think it will be better have a connection pool per subject area, because the connection pool have a maximum number of concurrent connection. On the other hand, if you have a few number of user, one connection pool will be enough.
    For futher information, take a look to next link:
    http://www.appsbi.com/obiee-connection-pool
    I hope this solve your doubt.
    Regards.

  • Jdbc connection pool ping error in sun  application server

    hi,
    i have done the appropriate settings for my connection pool
    and i have got ping succeded................but it is only for sometimes.
    while pinging with the same set of data during another time i have got different errors..........
    they are the following:
    Operation 'pingConnectionPool' failed in 'resources' Config Mbean. Target exception message: The transaction isolation could not be set: READ_COMMITTED and SERIALIZABLE are the only valid transaction levels
    Operation 'pingConnectionPool' failed in 'resources' Config Mbean. Target exception message: Connection could not be allocated because: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI
    =4))))
    so i have doubted about my oracle server..........
    plz tell me how to start the oracle database server and the oracle net listener............
    i would really appreciate anybody for helping me in this problem........

    hi,
    i have done the appropriate settings for my connection pool
    and i have got ping succeded................but it is only for sometimes.
    while pinging with the same set of data during another time i have got different errors..........
    they are the following:
    Operation 'pingConnectionPool' failed in 'resources' Config Mbean. Target exception message: The transaction isolation could not be set: READ_COMMITTED and SERIALIZABLE are the only valid transaction levels
    Operation 'pingConnectionPool' failed in 'resources' Config Mbean. Target exception message: Connection could not be allocated because: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI
    =4))))
    so i have doubted about my oracle server..........
    plz tell me how to start the oracle database server and the oracle net listener............
    i would really appreciate anybody for helping me in this problem........

  • Jdbc-odbc-bridge connection pool

    I got a problem with odbc connection pool in my Sun App Server 7.
    When i try to connect to the odbc database (msaccess or conzept16), i got a SQLException : com.sun.enterprise.repository.J2EEResourceException
    java.lang.NoSuchMethodException: setdatabaseName .....
    It seems that i cant set any propertys like url, user or password. The exception throws every time NoSuchMethodException: setURL or ... NoSuchMethodException: setUser
    I tried this with pointbase database and pointbase drivers and there was no problem. Also when i connect direct from jsp page to the odbc database without connection pool it works.
    How can i set a propper connection pool with the jdbc-odbc-bridge? Please Help. There is no jdbc driver for that database available.
    Is that right using sun.jdbc.odbc.JdbcOdbcDriver for that?
    here my server.xml
    <resources>
    <jdbc-resource enabled="true" pool-name="access-pool" jndi-name="jdbc/AccessDB"/>
    <jdbc-connection-pool steady-pool-size="2" max-pool-size="6" max-wait-time-in-millis="60000" pool-resize-quantity="2" idle-timeout-in-seconds="300" is-isolation-level-guaranteed="false" is-connection-validation-required="false" connection-validation-method="auto-commit" fail-all-connections="false" datasource-classname="sun.jdbc.odbc.JdbcOdbcDriver" name="access-pool" validation-table-name="TAB_NAME">
    <property value="jdbc:odbc:testdb" name="databaseName"/>
    </jdbc-connection-pool>
    </resources>

    AFAIK the bridge driver does not support multipleopen
    connections (which is what connection pooling
    requires).Wrong.
    It might be the case that the bridge AND ms access
    does not support that but I seriously doubt that as
    well.
    Yesterday I didn't want to test this. Today I did.
    So I can state that it is completely wrong.
    There might be some other reason preventing the usage in a pool, but it isn't the number of open connections.

  • Monitoring EJB,Connection Pool,Servlets

    Hi,
    i have one doubt does oracle provides any MBeans to monitor ejb,connection pools etc..?
    thanks &regards
    Magesh.N

    Hi,
    i have one doubt does oracle9ias provides any MBeans to monitor ejb,connection pools etc..?
    thanks .ards
    Magesh.N

  • Javamail performance and connection pooling

    Dear Javamail users and programmers,
    I am new to javamail. We are working on a commercial web mail project and using Javamail to connect with an IMAP/SMTP clustered server group to read and write mails.
    Our application will have 400000 concurrent users in the system and an Approximate , we will have 200 servers (Glassfish 3 ) and each server will have 2000 active users at time.
    Now my problem! At the moment, we are opening the store each time we read or store mails for each user. I doubt this will have performance issues in production.
    Does anyone have experience using Javamail in this dimension?
    I read the connection pooling mechanism in the package com.sun.mail.imap Descriptio. If i understood correctly, this will require at-least one dedicated connection per user to the server . I think, that will be too many connections at a time for any Imap server cluster system.
    Is there any other method of doing connection pooling?
    Btw in which scenario I should increase the mail.imap.connectionpoolsize to more than one? I assume, i only need to increase this parameter if i want to keep more than one folder open for a particular user at time, isn't it?
    What will be the best approach which suite to our application?
    Thank you very much for any help.
    With regards,
    Alvin Antony

    Connection pooling isn't likely to help in your scenario. IMAP connection pooling does not allow multiple
    users to use the same connection to the server. Unless you want to map all of your web mail users to a
    single IMAP user, connection pooling won't help you.
    The general issue of managing sessions and connections was discussed briefly in this other thread:
    [http://forums.sun.com/thread.jspa?threadID=5423307|http://forums.sun.com/thread.jspa?threadID=5423307]
    I suspect you're going to need to do some experiments to determine the best approach.

  • Low Application Performance due to AM connection pooling configuration

    Hi All,
    My application performance is too slow due to default App module connection pooling parameters. I started exploring on these parameters in oracle documentation and was stopped due to some doubts.
    The below link is actually the one from which I'm doing the configuration.
    http://docs.oracle.com/cd/E21764_01/web.1111/b31974/bcampool.htm
    1. I want to know what value should be in Weblogic server --> Maximum capacity (I think they confused me a little saying it can be equal to AM's Maximum Pool Size, Maximum Available Size, Minimum Available Size).
    2. Then the AM's Initial pool size should be equal to the weblogic's Initial Capacity. I have 10 AM, if I'm setting 100 in each AM, then the corresponding weblogic's initial capacity should be equal to 100 or 100 X 10. Please clarify this.
    Thanks.

    You post give no information which connects the pooling parameter to 'low' performance. Have you checked where all the time is consumed? Which method or part of the application consumes the most time. Before you can't answer these questions you can't link the problem to am pooling.
    Here are some pointers
    http://andrejusb.blogspot.de/2011/10/experimenting-with-adf-bc-application.html
    http://andrejusb.blogspot.de/2012/01/adf-performance-marathon-22-hours.html
    and there are some more articles available on Andrejus's blog...
    Timo

Maybe you are looking for

  • Is it possible to create one event in Ical, but put it into two Google calendar accounts?

    In my Ical i have multiple google calendars, from multiple accounts. I've got one calendar for my girlfriend (a Home account), so she can see my schedule and where i am. That brings a minor problem. In my Ical i have the same event now multiple times

  • RFSG 5673 streaming with script

    Hi All, I'm trying to build ARB baseband data on my PC, a rack mount controller in this case, then transmit as quickly as possible with the 5673 (VSG) for real time transmission in a TDD.  The best solution I've found is the following, but it doesn't

  • Af:query not fetching records when VC Modified for advance search

    Gurus, I have a view criteria and using it i have a af:query component in my page. When i run the page i see the fields in the search box correctly. However i see another LOV in the search which has options like "Equals","Between", "Does not contain"

  • Project is all messed up!!!!!

    Hello , I really need your help guys. I spent many, many hours on an animation project and suddenly, when I opened it this morning, all the animation was messed up: the limbs of my character are all over the screen and all the work I did is now lost.

  • CS4 Installation on OS X?

    Will Master Collection CS4 (specifically the Acrobat Pro software) install OK on a new MacBook Air?  Also, does my license allow me to install on two computers (both are mine).