Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213

    connection pool con sqlserver

    ciao a tutti, dovrei riuscire a far girare questa classe:
    codice:
    package foo;
    
    import javax.naming.*; 
    import javax.sql.*; 
    import java.sql.*; 
     
    public class DbTest {
    	  String foo = "Not Connected"; 
    	  int bar = -1; 
    
    	  public void init() { 
    
    	    Connection conn = null; 
    	    Statement stmt = null;  // Or PreparedStatement if needed 
    	    ResultSet rst = null; 
    
    	    try{ 
    	      Context ctx = new InitialContext(); 
    	      if(ctx == null ) throw new Exception("Boom - No Context"); 
    	 
    	      DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestPool"); 
    	 
    	      if (ds != null) { 
    	        conn = ds.getConnection(); 
    	 
    	        if(conn != null)  { 
    	            foo = "Got Connection "+conn.toString(); 
    	            stmt = conn.createStatement(); 
    	            rst = stmt.executeQuery("select * from utente"); 
    	            if(rst.next()) { 
    	               foo=rst.getString(2); 
    	               bar=rst.getInt(3); 
    	            } 
    	            conn.close(); 
    	        } 
    	      } 
    	    } catch (Exception e) { 
    	         e.printStackTrace(); 
    	    } finally { 
    	        if (rst != null) { 
    	           try { rst.close(); } catch (SQLException e) { ; } 
    	           rst = null; 
    	        } 
    	        if (stmt != null) { 
    	           try { stmt.close(); } catch (SQLException e) { ; } 
    	           stmt = null; 
    	        } 
    	        if (conn != null) { 
    	           try { conn.close(); } catch (SQLException e) { ; } 
    	           conn = null; 
    	        } 
    	    } 
    	 } 
    	 
    	 public String getFoo() { return foo; } 
    	 public int getBar() { return bar;} 
    }
    poi ho questa pagina test.jsp:
    codice:
      <% 
        foo.DbTest tst = new foo.DbTest(); 
        tst.init(); 
      %> 
     
      <h2>Results</h2> 
        Foo <%= tst.getFoo() %>
     
        Bar <%= tst.getBar() %>
    e ho aggiunto questa parte al file server.xml:

    <Context path="/testpool" docBase="c:\testpool" debug="1"
    reloadable="true" crossContext="true">

    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="localhost_testpool_log." suffix=".txt"
    timestamp="true"/>

    <Resource name="jdbc/TestPool" auth="Container" type="javax.sql.DataSource"/>

    <ResourceParams name="jdbc/TestPool">
    <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFact ory</value>
    </parameter>

    <parameter>

    <name>maxActive</name>
    <value>20</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>10</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>-1</value>
    </parameter>


    <parameter>
    <name>username</name>
    <value>TESTUSER</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>testpwd</value>
    </parameter>


    <parameter>
    <name>driverClassName</name>
    <value>org.firebirdsql.jdbc.FBDriver</value>
    </parameter>


    <parameter>
    <name>url</name>

    <value>jdbc:firebirdsql:127.0.0.1/3050:C:/programmi/interbase/data/TESTDB.G_D
    B</value>
    </parameter>
    </ResourceParams>
    </Context>

    ma ovviamente non funziona, qualcuno sa dirmi le parti da cambiare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    l'errore che mi da sulla console di tomcat è:

    javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    la pagina jsp cmq si apre ma mi dà:
    Results
    Foo Not Connected
    Bar -1

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    anche cambiando così il server.xml, i risultati sono gli stessi
    codice:
    Context path="/testpool" docBase="c:\testpool" debug="1" 
    reloadable="true" crossContext="true"> 
     
        <Logger className="org.apache.catalina.logger.FileLogger" 
    prefix="localhost_testpool_log." suffix=".txt" 
                   timestamp="true"/> 
     
        <Resource name="jdbc/TestPool" auth="Container" type="javax.sql.DataSource"/> 
    
        <ResourceParams name="jdbc/TestPool"> 
          <parameter> 
            <name>factory</name> 
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 
          </parameter> 
    
           <parameter> 
               
               <name>maxActive</name> 
               <value>20</value> 
            </parameter> 
            <parameter> 
               <name>maxIdle</name> 
               <value>10</value> 
            </parameter> 
            <parameter> 
               <name>maxWait</name> 
               <value>-1</value> 
            </parameter> 
     
           
          <parameter> 
              <name>username</name> 
              <value>sa</value> 
          </parameter> 
          <parameter> 
              <name>password</name> 
              <value>sa</value> 
          </parameter> 
     
           
          <parameter> 
             <name>driverClassName</name> 
             <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> 
          </parameter> 
     
           
          <parameter> 
            <name>url</name> 
     
    <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=STRUTS_DB1</value> 
          </parameter> 
        </ResourceParams> 
      </Context>
    se qualcuno ha qualche idea....

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    dopo giorni ho risolto!!!ho modificato solo il context.xml e non il web.xml e il server.xml
    context.xml presente in D:\Tomcat\conf
    codice:
    <Context path="/poolConnessioni" docBase="poolConnessioni" debug="5" reloadable="true" crossContext="true">
    
    <Resource 
    name="jdbc/STRUTS_DB1" 
    auth="Container" 
    type="javax.sql.DataSource" 
    driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
    url="jdbc:microsoft:sqlserver://2000SERVER:1433;databaseName=STRUTS_DB1"
    username="sa"
    password="administratorsa"
    maxActive="20"
    maxIdle="10"
    maxWait="-1"
    removeAbandoned="true"
    removeAbandonedTimeout="60"
    logAbandoned="true" />
    
        
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
    	
        
        <!--
        <Manager pathname="" />
        -->
    
    </Context>
    e copiando nella cartella: D:\Tomcat\common\lib le seguenti librerie: sqljdbc.jar; msutil.jar; mssqlserver.jar; msbase.jar
    ora però mi sta venendo il dubbio se ho creato realmente un pool di connessioni o è solo un altro modo per una singola connessione al db, qualcusa sa aiutarmi??

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    verificato e funziona, ma con tomcat 5.5.25, con Tomcat 5.0 non funziona, spero possa servire a qualcuno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.