Help using connnection pool in JSP!!

Dear Users,
I am using a JSP - MS Access application which uses Tomcat as the web server and IDS JDBC Driver.
The JSP application uses a Java class called ResourceManager which I have created and handles all the update/search queries on the database. Just to get an idea , these are the first few lines of my ResourceManager class:
public class ResourceManager {
static Connection conn = null;
static String DB_URL = "jdbc:ids://localhost:12/conn?dsn='ttdoverIDS'";
static String DB_USERNAME = "";
static String DB_PASSWORD = "";
static {
     try {
     Class.forName( "ids.sql.IDSDriver").newInstance();
     conn = DriverManager.getConnection(DB_URL, null);
}catch (Exception e) {
     e.printStackTrace();
What is happenening is that everytime the user interacts with the database a new connection is created. And that is a probable reason why the application slows down after about 30 mins of extensive use by 8-9 concurrent users.
I want to know how to use connection pooling instead of DriverManager class. Can I modify my ResourceManager class to connect using ConnectionPool instead of DriverManager?
Any help would be appreciated.
m_stan

1) In the Java SDK, there's no such thing as a ConnectionPool class. Maybe you can find one on the net or build your own (it's really not that difficult).
2) MS-Access is not exactly a high-performance, concurrent-access database, so don't expect a lot from it.
3) What kind of computer are you using to run this application? 8 users may be a lot for a small system.
4) Even if you are creating one connection at a time, make sure you are closing every one of them right after executing the query/update. Maybe the DB is clogged with connections left open.

Similar Messages

  • How to use connection pooling in jsp?

    I'm new to world of JSP. I'm developing web application using Oracle 8i and JSP to implement it. I'm using jakarta-tomcat server for this purpose.
    I'll frequently access the database. so I want to use the connection pooling.
    Can anybody explain the simple procedure to use it
    thanx

    Hello syyuen,
    Please help me, here iam sending u my server.xml , web.xml and servlet
    application. I put classes12.jar in tomcat/common/lib. and above servlet
    class application under tomcat/webapps/root/web-inf/classes
    and this is a simple servlet program for getting connection from the
    connection pool of tomcat using tyrex..
    my oracle database name is "myuser" and password is "mypass"
    either u check my server.xml or tell me where under which tag should i
    place <Resource...> tag in server.xml and should i need to modify any
    other places..??
    server.xml
    <Server port="8005" shutdown="SHUTDOWN" debug="0">
              <!-- Tomcat Stand-Alone Service -->
    <Service name="Tomcat-Standalone">
         <!-- Non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
    port="8080" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="10" debug="0" connectionTimeout="60000"/>
              <!-- AJP 1.3 Connector on port 8009 -->
    <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
    port="8009" minProcessors="5" maxProcessors="75"
    acceptCount="10" debug="0"/>
              <!-- Top level container in our container hierarchy -->
    <Engine name="Standalone" defaultHost="localhost" debug="0">
         <!-- Global logger unless overridden at lower levels -->
    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="catalina_log." suffix=".txt"
    timestamp="true"/>
         <!-- Because this Realm is here, an instance will be shared globally
              <Realm className="org.apache.catalina.realm.MemoryRealm" /> -->
                   <!-- Replace the above Realm with one of the following to get a Realm
                   stored in a database and accessed via JDBC -->
                   <!-- <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
                        driverName="org.gjt.mm.mysql.Driver"
                        connectionURL="jdbc:mysql://localhost/authority?user=test;password=test"
                        userTable="users" userNameCol="user_name" userCredCol="user_pass"
                        userRoleTable="user_roles" roleNameCol="role_name" />
                   -->
    <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
              driverName="oracle.jdbc.driver.OracleDriver"
                   connectionURL="jdbc:oracle:thin:@oracle:1521:ORCL"
    connectionName = "mail"
    connectionPassword = "mail"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
                   userRoleTable="user_roles" roleNameCol="role_name" />
                        <!-- <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
                        driverName="sun.jdbc.odbc.JdbcOdbcDriver"
                        connectionURL="jdbc:odbc:CATALINA"
                        userTable="users" userNameCol="user_name" userCredCol="user_pass"
                        userRoleTable="user_roles" roleNameCol="role_name" />
                        -->
                   <!-- Define the default virtual host -->
    <Host name="localhost" debug="1" appBase="webapps" unpackWARs="true">
         <Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs" prefix="localhost_access_log." suffix=".txt"
         pattern="common"/>
    <Logger className="org.apache.catalina.logger.FileLogger"
    directory="logs" prefix="localhost_log." suffix=".txt"
         timestamp="true"/>
                   <!-- Tomcat Root Context -->
                   <!-- <Context path="" docBase="ROOT" debug="0"/> -->
                   <!-- Tomcat Manager Context -->
    <Context path="/manager" docBase="manager" debug="0" privileged="true"/>
    <!-- MY CONTEXT HERE -->
         <Context path="/localhost" docBase="localhost" debug="0" reloadable="false" override="true">
              <Resource name="jdbc/myConnection" auth="SERVLET" type="javax.sql.DataSource"/>
              <ResourceParams name="jdbc/myConnection">
                   <parameter><name>user</name><value>myuser</value></parameter>
                   <parameter><name>password</name><value>mypass</value></parameter>
                   <parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter>
                   <parameter>
                        <name>url</name>
                        <value>jdbc:oracle:thin:@oracle:1521:ORCL</value>
                   </parameter>
                   <parameter>
                        <name>maxActive</name>
                        <value>32</value>
                   </parameter>
                   <parameter>
                        <name>maxIdle</name>
                        <value>10</value>
                   </parameter>
              </ResourceParams>
    <!-- END OF MY Context, Oracle username=myuser,password=mypass -->
    <!-- i pasted this context from somebody . should i need whole context or resource name in that...???? -->
    <!-- Tomcat Examples Context
    <Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true">
    -->
    <!--
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
         <Ejb name="ejb/EmplRecord" type="Entity" home="com.wombat.empl.EmployeeRecordHome" remote="com.wombat.empl.EmployeeRecord"/>
    <Environment name="maxExemptions" type="java.lang.Integer" value="15"/>
    <Parameter name="context.param.name" value="context.param.value" override="false"/>
    <Resource name="jdbc/EmployeeAppDb" auth="SERVLET" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/EmployeeAppDb">
    <parameter><name>user</name><value>sa</value></parameter>
    <parameter><name>password</name><value></value></parameter>
    <parameter><name>driverClassName</name><value>org.hsql.jdbcDriver</value></parameter>
    <parameter><name>driverName</name><value>jdbc:HypersonicSQL:database</value></parameter>
    </ResourceParams>
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session"/>
    <ResourceParams name="mail/Session">
    <parameter>
    <name>mail.smtp.host</name>
    <value>localhost</value>
    </parameter>
    </ResourceParams>
    -->
    </Context>
    </Host>
    </Engine>
    </Service>
         <!-- Define an Apache-Connector Service -->
    <Service name="Tomcat-Apache">
    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
    port="8008" minProcessors="5" maxProcessors="75"
    enableLookups="true" appBase="webapps"
    acceptCount="10" debug="0"/>
                   <!-- Replace "localhost" with what your Apache "ServerName" is set to -->
    <Engine className="org.apache.catalina.connector.warp.WarpEngine"
    name="Apache" debug="0">
                   <!-- Global logger unless overridden at lower levels -->
    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="apache_log." suffix=".txt"
    timestamp="true"/>
                   <!-- Because this Realm is here, an instance will be shared globally -->
    <Realm className="org.apache.catalina.realm.MemoryRealm" />
    </Engine>
    </Service>
    </Server>
    web.xml
    <web-app>
    <servlet>
    <servlet-name>conServlet</servlet-name>
    <servlet-class>conServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>conServlet</servlet-name>
    <url-pattern> /conServlet </url-pattern>
    </servlet-mapping>
    <resource-ref>
    <description> Resource reference to java.sql.Connection
    factory defined in server.xml
    </description>
    <res-ref-name>jdbc/myConnection</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>
    servlet application
    DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/myConnection");
    conn = ds.getConnection();
    out.println("conn : " + conn);

  • How do i use Connection pool in JSP pages

    Hey everyone,
    I am using a connection pool in my web application. I am using DbConnectionBroker from Javaexchange.com. It has a class that creates a connection pool available for the servlets. I am trying to figure out that how to use connection pool within the JSP pages if I want to connect to the database. In the servlets i am using DBConnectionBroker pool = (DbConnectionBroker) getServletContext().getAttribute("dbPool") to get database connection. How Can i use this in JSP page to get a db connection.
    Thanks

    If the reference to the connection pool is already stored as an ServletContex attribute, try:
    <jsp:useBean id="dbPool" scope="application" class="com.javaexchange.dbConnectionBroker" />
    <%
    Connection con = dbPool.getConnection();
    %>

  • How to use connection pool in jsp/servlet ?

    I found I can "lookup" it in either java beans/servlets/JSP using JNDI. why?
    what is the best practice to use it in a jsp/servlet web app considering JNDI lookuping expensive?
    Thanks!
    Bo
    Edited by: BobXu on Nov 17, 2008 2:27 PM
    Edited by: BobXu on Nov 17, 2008 2:32 PM

    Huh?
    You can lookup a JNDI resource from anywhere in java code you want to. As long as you have a repository set up to search on :-)
    Of course whether that resource is available or not is a different matter. If you let the server set up the JNDI resource for you, then you can't run it standalone outside the server without something else setting the same thing up :-)
    So its not so much a limitation of beans, but just the environment you run the code in.
    Best practice? Don't write sql queries in JSP pages :-)
    For the rest you might consider the DAO pattern. Or ignore SQL altogether and let hibernate do the work there for you.
    Cheers,
    evnafets

  • Help using DataTags on Edit JSP Form

    I costumized the Edit JSP page using DataTags but I don`t know how to edit the current record.
    I have the source code of the first page:
    //Kssegtroles.jsp
    <%@ page language = "java" errorPage="errorpage.jsp" import = "java.util.*, oracle.jbo.*, javax.naming.*, oracle.jdeveloper.html.*, oracle.jbo.html.databeans.*" contentType="text/html;charset=ISO-8859-1" %>
    <%
    // make sure the application is registered
    oracle.jbo.html.jsp.JSPApplicationRegistry.registerApplicationFromPropertyFile(session , "PrjSegJSP_PkgSeg_PkgSegModule");
    %>
    <HTML>
    <HEAD>
    <TITLE>INSTITUTO ECUATORIANO DE SEGURIDAD SOCIAL</TITLE>
    <LINK href="estilo/estilo.sty" rel=stylesheet type=text/css>
    </HEAD>
    <BODY class="clbody" aLink=#800000 bgColor=#ffffff leftMargin=0 link=#808000 text=#000000 topMargin=0 vLink=#c0c0c0>
    <jsp:useBean class="oracle.jbo.html.databeans.NavigatorBar" id="tb" scope="request" >
    <%
    tb.setTargetUrl("KssegtrolesView.jsp");
    tb.initialize(application,session, request,response,out,"PrjSegJSP_PkgSeg_PkgSegModule.KssegtrolesView");
    String sImageBase = "/webapp/images";
    tb.setImageDir(sImageBase);
    tb.addButton(tb.NAVIGATE_FINDFORM , "KssegtrolesView_Query.jsp");
    tb.addButton(tb.NAVIGATE_BROWSE , "KssegtrolesView_Browse.jsp");
    tb.addButton(tb.NAVIGATE_INSERT , "KssegtrolesView_Insert.jsp");
    tb.addButton(tb.NAVIGATE_EDIT , "KssegtrolesView_Edit.jsp");
    tb.render();
    %>
    </jsp:useBean>
    <br>
    <jsp:useBean id="RowViewer" class="oracle.jbo.html.databeans.ViewCurrentRecord" scope="request">
    <%
    RowViewer.initialize(pageContext, "PrjSegJSP_PkgSeg_PkgSegModule.KssegtrolesView");
    RowViewer.setReleaseApplicationResources(true);
    RowViewer.render();
    %>
    </jsp:useBean>
    </BODY></HTML>
    This is the code for the Edit Page:
    //KssegtrolesView_Edit.jsp
    <%@ page language = "java" errorPage="errorpage.jsp" import = "java.util.*, oracle.jbo.*, javax.naming.*, oracle.jdeveloper.html.*, oracle.jbo.html.databeans.*" contentType="text/html;charset=ISO-8859-1"%>
    <%
    // make sure the application is registered
    oracle.jbo.html.jsp.JSPApplicationRegistry.registerApplicationFromPropertyFile(session , "PrjSegJSP_PkgSeg_PkgSegModule");
    %>
    <HTML>
    <HEAD>
    <TITLE>INSTITUTO ECUATORIANO DE SEGURIDAD SOCIAL</TITLE>
    <LINK href="estilo/estilo.sty" rel=stylesheet type=text/css>
    </HEAD>
    <BODY class="clbody" aLink=#800000 bgColor=#ffffff leftMargin=0 link=#808000 text=#000000 topMargin=0 vLink=#c0c0c0>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <jbo:ApplicationModule configname="PkgSeg.PkgSegModule.PkgSegModuleLocal" id="PkgSegModule" username="iessuser" password="iess" />
    <jbo:DataSource id="dtsRoles" appid="PkgSegModule" viewobject="KssegtrolesView" ></jbo:DataSource>
    <jbo:Row id="Row" datasource="dtsRoles" action="Current" ></jbo:Row>
    <form name="KssegtrolesView_form" action="KssegtrolesView_SubmitEditForm.jsp">
    <table border="0">
    <tr>
    <td>Codigo de rol</td>
    <td>
    <jbo:InputText datasource="dtsRoles" dataitem="Codrol"/>
    </td>
    </tr>
    <tr>
    <td>Descripcisn del rol</td>
    <td>
    <jbo:InputText datasource="dtsRoles" dataitem="Desrol"/>
    </td>
    </tr>
    <tr>
    <td>Creacisn de Usuario</td>
    <td>
    <jbo:InputText datasource="dtsRoles" dataitem="Creusuper"/>
    </td>
    </tr>
    </table>
    <input name="MyRowKey" type="hidden" value="<jbo:ShowValue datasource="dtsRoles" dataitem="RowKey"/>" />
    <br>
    <input type="submit" value="Update"/>
    <input type="reset" value="Reset"/>
    </form>
    </BODY>
    </HTML>
    <jbo:ReleasePageResources releasemode="Stateless" />
    When I execute this, I am not in the current record that I edit, it returns me the information of the first record.
    Could you help me please?
    null

    I suppose that your two pages don't use same application module instance. It's the matter of mixing use of DataTags and WebBeans. Search this forum with these search words; "DataTag" and "WebBean".

  • How to use connection pools in jsp

    hi
    i am new to jsp
    i want to connect to database from my jsp
    i did it with using java.sql.DriverManager
    now how can i modify that with a connection pool

    Search the forum. This is answered several times in the past.

  • How to access database from applet using connection pooling.

    Hi,
    I am using tomcat 4.1, JRE 1.4.2_10, MySQL 5.0, and IE 6.0. I can access the database using connection pooling from JSP without problems. But, if I try to acess from the applet, I get the following exception (related to JNDI.):
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
    I know what this acception means, but I don't know how to fix it. I set up connection pooling in my Tomcat 4.1 that talks to MySQL 5.0. As I said, when I access from jsp, JNDI works. But, applet complains. Please help. In my applet, the following code accesses the database:
    ArrayList toolTipData =
          access.getToolTipData (projectName,interfac);This is the snipet of my Access class:
    public ArrayList getToolTipData (String projectName, String interfac) {
        System.out.println("In getToolTipData");
        ArrayList toolTipData = new ArrayList();
       try{
        Context ctx = new InitialContext();
        if(ctx == null )
            throw new Exception("No Context");
        DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/interfacesDB");
        if (ds != null) {
          Connection conn = ds.getConnection();
          if(conn != null)  {
              Statement s = conn.createStatement();
              //For some reason paramtized queries don't work, so I am forced
              //to this in slighly less eficient way.
              ResultSet rst = s.executeQuery("select * from interfaces");
              while (rst.next()) {
                 if (rst.getString("Project_Name").equals(projectName) &&
                     rst.getString("Interface").equals(interfac)) {
                   System.out.println("getToolTipData: ITG #" + rst.getString("ITG"));
                   toolTipData.add("ITG #: " + rst.getString("ITG"));
                   toolTipData.add("SPNE Prime Name: " +
                                   rst.getString("SPNE_Prime_Name"));
                   toolTipData.add("PD Prime Name: " +
                                   rst.getString("PD_Prime_Name"));
                   toolTipData.add("IT Prime Name: " +
                                   rst.getString("IT_Prime_Name"));
                   toolTipData.add("MLC Priority: " +
                                   rst.getString("MLC_Priority"));
                   toolTipData.add("Gary's Prime: " + rst.getString("Garys_Prime"));
                   toolTipData.add("QA Prime: " + rst.getString("QA_Prime"));
                   toolTipData.add("Brief Description: " +
                                   rst.getString("Brief_Description"));
                   toolTipData.add("Project_Status: " +
                                   rst.getString("Project_Status"));
              conn.close();
      }catch(Exception e) {
        e.printStackTrace();
      return toolTipData;
    ....

    The jsp runs on the server, whereas the applet runs on the client so
    you must package with your applet any jndi implementation specific classes
    and
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory" );
    props.setProperty("java.naming.provider.url", "url:1099");
    Context ctx = new InitialContext(props);
    Object ref = ctx.lookup("...");

  • Problem in using connection pool in netbeans

    Hi,
    I am using Net Beans and Sun java application server and Derby as database.
    I have created data connnection and also configure JDBC resources (ie. DataResource and connectionPool).
    Now i want to use this connection pool in my class, I have create one DataConnection class and put this code
    private javax.sql.DataSource getMyDatabase () throws javax.naming.NamingException {
            javax.naming.Context c = new javax.naming.InitialContext();
            return (javax.sql.DataSource) c.lookup("java:comp/env/jdbc/myDatabase");
        }I got this code by right click and selecting Enterprise Resources->Use Data, But while running i got the exception
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    Plz tell me How can we overcome this exception and is there any other way do use connection pool.
    Thanks.

    Thanks bamkin-ov-lesta,
    DbConnectionBroker is good for servlet or other java application. If i use this class, it is like i am writing code for connection pool. I am using NetBeans and sun java application server which provide its default connection pool configuration and i want to use that only.
    And I am not getting which class name to be set in environment variable under what name in the following exception.
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    Help me plz.

  • 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

  • NextSet, PrevSet not working when using Common Pool

    We are using our custom pool in our application, where username, password, URL are passed at runtime. All the JSPs use the same pool.
    We have a master-detail JSP done with data web beans and data tags. Master is done with data web beans and detail done with data tags.
    First, Last, Prev, Next buttons are working fine. NextSet and PrevSet buttons are not working. We are wondering what could be the reason.
    Can someone from JDEV team help us on this issue. We are going to production in 2 weeks. Any help is greatly appreciated.
    Thank you in advance.
    Virinchi

    Thank you for replying.
    In the datawebbean (Master) code we are getting the rowkey as follows:
    // if row exists , get the key
    if (l_row != null)
    sMasterRowKey = l_row.getKey().toStringFormat(true);
    In the data tag code (detail in our case), we are first finding the master row:
    !-- master datasource --
    jbo:DataSource id="DS_M" appid="IISmt_BC.IISmt_BCModule" viewobject="InformationSourcesView_CF_YES" rangesize="-1"
    jbo:RefreshDataSource datasource="DS_M"
    !-- find the rowkey of the master --
    jbo:Row id="RowM" datasource="DS_M" action="Find" rowkey="<%= sMasterRowKey %" /jbo:Row
    Please note that we are using same pool for both master (datawebbeans) and detail (datatags).
    For the detail, if I put rangesize as "10", its not finding the master rowkey.
    Let me know if you need more information.

  • Whether or not using connection pooling?

    Hi,
    This is our configuration of data-sources. I want to make sure that it uses connection pooling. How can i check it?
    All the jsp forms works fine but I do not know whether it uses connection pooling. Please help.
    <data-source
    class="com.evermind.sql.DriverManagerDataSource"
    name="OracleDS"
    location="jdbc/OracleCoreDS"
    xa-location="jdbc/xa/OracleXADS"
    ejb-location="jdbc/OracleDS"
    connection-driver="oracle.jdbc.driver.OracleDriver"
    pooled-location="jdbc/pooled"
    username="xxxx"
    password="xxxx"
    max-connections="50"
    min-connections="15"
    connection-retry-interval="1"
    url="jdbc:oracle:thin:@xxxx.xxx.org:1521:xxxx"
    inactivity-timeout="30"
    wait-timeout="30"
    />
    </data-sources>

    Kavi -- the datasource is one part of the equation. You look to have correctly configured one to enable connections to be pooled. You are using an emulated datasource.
    The other aspect to this is which "location-value" you lookup and use from your code.
    If you want to have a pooled connection datasource, given this definition you have, then you need to lookup the value of the "ejb-location" from within your code.
    If you do this directly, then it'd look something like:
    try
    InitialContext ctx = new InitialContext();
    DataSource poolDS = (DataSource)ctx.lookup("jdbc/OracleDS");
    Connection c = poolDS.getConnection();
    catch(NamingException ne}
    With the min-pool setting and the emulated datasources, the min-connections are not established at startup time. The connections grow, and once they meet the min setting, they are never allowed to drop below that value.
    One way to check for the connections being used is to query the Oracle database data dictionary
    logon as system (or a dba priv account) and query the
    v$session table with something like
    SQL> select username,proc from v$session
    USERNAME PROGRAM
    SYS ORACLE.EXE
    SYS ORACLE.EXE
    SYS ORACLE.EXE
    SYS ORACLE.EXE
    SYS ORACLE.EXE
    SYS ORACLE.EXE
    SYSTEM sqlplus.exe
    FAQAPP JDBC Thin Client
    The J2EE Services Guide from the OTN documentation area describes the datasources and their functions in more detail.
    cheers
    -steve-

  • How to use mxml in a jsp file?

    I'm trying to use flex in a .jsp file. I followed the
    suggestion that I use the Flex 2 Tag library as suggested by this
    link:
    http://labs.adobe.com/wiki/index.php/Flex_2_Tag_Library_for_JSP#Download_and_Installation
    but I couldn't find it. I also downloaded LiveCycle Data Services
    ES but couldn't find the flex-bootstrap.jar.
    I have a simple example:
    <!--<%@ taglib uri="FlexTagLib" prefix="mm" %>-->
    Use the <mxml> tag to insert a Flex application in an
    existing JSP page. The following example shows the <mxml> tag
    with the source attribute to include an external MXML file:
    <mm:mxml source="CustomerServiceChat.mxml"/>
    Alternatively, you can use the <mxml> tag with inline
    MXML source code, as the following example shows:
    <mm:mxml>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    xmlns="*">
    <mx:Text label="Hello World">
    </mx:Application>
    </mm:mxml>
    I also added the following code in my web.xml:
    <taglib>
    <taglib-uri>FlexTagLib</taglib-uri>
    <taglib-location>/WEB-INF/lib/flex-bootstrap.jar</taglib-location>
    </taglib>
    and obviously I get an error because I don't have the
    flex-bootstrap.jar file. Please let me know how this can be
    corrected. Thanks in advance!

    Adobe Newsbot hopes that the following resources helps you.
    NewsBot is experimental and any feedback (reply to this post) on
    its utility will be appreciated:
    Adobe - Developer Center : Flex quick start guide for PHP
    developers:
    Apr 30, 2007 ... In this example, I changed the result data
    type to XML with E4X support by setting .... In Flex you would
    download a file using this code:
    Link:
    http://www.adobe.com/devnet/flex/articles/php_getstarted.html
    2d. Tutorial - Flex 3 Getting Started - Adobe Learning
    Resources:
    See Calling XML Web Services over the Web Using the Web
    Service References ... For information on integrating PHP and Flex
    using AMF to encode the data,
    Link:
    http://learn.adobe.com/wiki/display/Flex/2d.+Tutorial
    Mike Potter: Flex and PHP - A simple sample:
    I have other example with PHP and MySql and give the same
    error, and a example .... Flex Data Services... I choose None (???)
    because I work with php and
    Link:
    http://blogs.adobe.com/mikepotter/2006/02/flex_and_php_a_1.html
    Adobe - Developer Center : Transmitting data between Flex and
    PHP:
    Sep 4, 2007 ... Now that the user interface is set up and
    ready to go you can add the HTTP services to go ask for the data
    from the PHP code. In Flex you
    Link:
    http://www.adobe.com/devnet/flex/articles/flex_php_json.html
    Integrating Adobe Flex and PHP:
    Mar 1, 2006 ... The first step is to download Flex Builder
    2.0 from the Adobe labs ... For example, you could use this same
    PHP script to pass data to a
    Link:
    http://devzone.zend.com/article/11-Integrating-Adobe-Flex-and-PHP
    Disclaimer: This response is generated automatically by the
    Adobe NewsBot based on Adobe
    Community
    Engine.

  • How to use switch statement in JSP?

    Hi,
    I am using switch satement in jsp.
    the code as follows:
    switch(flag)
         case 1: query="select * from cust";
                        break;
         case 2: query="select * from cust where minp="+mini+"and maxp="+maxi;
                        break;
        default: query="";
    out.println(query);but, i am getting some number format exception. I don't know where i am going wrong.
    Please help
    Regards,
    Ashvini

    I got the solution
    Thanks anyways
    Regards,
    AShvini

  • Using Oracle pooling in 10.2 with ingres datasource

    Hi;
    I'm trying to use Oracle Pooling in 10.2 using OracleConnectionCacheManager class with ingres database.
    I got the following exception:
    java.sql.SQLException: Invalid Oracle URL specified
    The URL i'm using is:
    jdbc:edbc://HOST:TM7/DATABASE
    When i'm using the same URL with Class.forname() it's working fine!
    I don't know what i'm missing.
    Any Help?
    Thanks in advance.

    yes we have a standalone version of 10g being converted to RAC mode..
    old version
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    converted to
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP and Data Mining options
    i understand the binaries would be different, but are the libraries different too?

  • How to use  SSL Technology in JSP.

    Can anybody Tell me that How to use SSL Technology in JSP ?
    I am using Apache Tomcat 5.0.28 Server.
    How to configure the Tomcat server so that it will access any web application supported by Tomcat via SSL ?
    Thank you very much in advance.

    The JSP does not need to know that the request is coming over SSL. If the application must be over SSL, but the server also allows non-SSL communication, then, like I said, you need to build in a Filter that will check if the incoming request is an https or http request and redirect to the https url if the request was http. And you can do that using the method listed in the previous post. As far as setting up the SSL certificate for Tomcat to use, refer to the Tomcat Documentation that comes with the server. Other than those two things, you don't need to know anything else about SSL inorder to run an SSL application through a Tomcat server (or any other enterprise server either, for that matter), but do an internet search for SSL and maybe one or two other keywords that apply to your situation and you should find plenty that will help.

Maybe you are looking for

  • Mac mini server freezed

    our mac mini server was freezed and try to restart, but the apple logo and the spinning gear keep running. I try un-plugged it but same thing the spinning gear logo keep running.

  • HOW DO I MERGE FILES FROM EMAC TO MACBOOK W/O having 2 logins?

    I used transfer manager to move files from old eMac to new MacBook ...now it is like I have two computers....I have to log off from the MACBOOK "side " and log in like I was on my old eBook to get to those files??? At a minimum I want my iPhotos and

  • Problem with File Polling

    Hi,  Experts I have following problem poll interval is 900 sec in my sender file adapter, but the file adapter is picking up the file 5  times at a time and IS processing them.Like tis it is happening every 900 sec. but i need file adapter to pick up

  • Issue in Print & Print Preview

    Hi All,           I have a report in which the output is displayed correctly. In output I have process order field           AUFNR LIKE AFKO-AUFNR. Then length of field is 12 Chars. Now in the output the data is           comming correctly for all th

  • Problem while invoking a Frame initially in a function

    Hi friends here is a small problem. Please help me. i invoked a class called ShowComponents, which extends a JFrame in the begining of a function. That class has some components. But until the execution of the function that components are not visible