---
title: "Connection pooling i Tomcat"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/109963-connection-pooling-i-tomcat"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "swede"
published: "2004-08-24T17:37:18.000Z"
updated: "2004-09-14T10:32:35.000Z"
replies: 5
views: 332
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/109963-connection-pooling-i-tomcat"
---

# Connection pooling i Tomcat

## #1 — swede, 2004-08-24T17:37Z

Hur sätter man upp connection pooling i Tomcat?
Jag har försökt förstå tutorialen som finns i Tomcat docs en,
men jag får bara klagomål i loggfilen när den startar och inga sessioner loggar in på mySQL servern.

Är det server.xml eller web.xml som ska editeras?
Och vad går var?

Vill skapa en generell connection pool till en mysql databas som
alla webappar ska kunna använda sig av.

Har laddat ned drivis till mysqlen och så.

Permalänk: https://www.webforum.nu/p/109963

## #2 — Jaar, 2004-08-26T12:43Z

Här är hur jag har det.. kanske kan hjälpa dig fast det är för oracle...

```
					<Resource name="jdbc/MyOracleDB" auth="Container" type="javax.sql.DataSource"/>
					<ResourceParams name="jdbc/MyOracleDB">
						<parameter>
							<name>factory</name>
							<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
						</parameter>
				
					   <!-- Maximum number of dB connections in pool. Make sure you
					        configure your mysqld max_connections large enough to handle
					        all of your db connections. Set to 0 for no limit.
					        -->
						<parameter>
							<name>maxActive</name>
							<value>100</value>
						</parameter>
				
					    <!-- Maximum number of idle dB connections to retain in pool.
					       	 Set to 0 for no limit.
					         -->
						<parameter>
							<name>maxIdle</name>
							<value>30</value>
						</parameter>
				
					    <!-- Maximum time to wait for a dB connection to become available
				        	 in ms, in this example 10 seconds. An Exception is thrown if
					         this timeout is exceeded.  Set to -1 to wait indefinitely.
				        	 -->
						<parameter>
							<name>maxWait</name>
							<value>10000</value>
						</parameter>
				
					    <!-- Oracle dB username and password for dB connections  -->
						<parameter>
							<name>username</name>
							<value>myUser</value>
						</parameter>
						<parameter>
							<name>password</name>
							<value>myPassword</value>
						</parameter>

					    <!-- Class name for oracle JDBC driver -->
						<parameter>
							<name>driverClassName</name>		
							<value>oracle.jdbc.driver.OracleDriver</value>
						</parameter>

					    <!-- The JDBC connection url for connecting to your MySQL dB.
					         The autoReconnect=true argument to the url makes sure that the
					         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
					         connection.  mysqld by default closes idle connections after 8 hours.
					         -->
						<parameter>
							<name>url</name>

							<value>jdbc:oracle:thin:@195.0.0.1:1521:DATABASE</value>
						</parameter>

						<parameter>
							<name>validationQuery</name>
							<value>select count(*) from myTable</value>
						</parameter>
						<parameter>
							<name>testOnBorrow</name>
							<value>true</value>
						</parameter>
						<parameter>
							<name>testWhileIdle</name>
							<value>true</value>
						</parameter>
						<parameter>
							<name>timeBetweenEvictionRunsMillis</name>
							<value>600000</value>
						</parameter>
						<parameter>
							<name>minEvictableIdleTimeMillis</name>
							<value>600000</value>
						</parameter>

					</ResourceParams>
```

sedan i web.xml

```
	<resource-ref>
		<description>Oracle database connection for my connection</description> 
        <res-ref-name>jdbc/MyOracleDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
	</resource-ref>
```

Sedan hämtar jag det genom följande:

```
				Context initContext = new InitialContext();
				Context envContext = (Context) initContext.lookup("java:/comp/env");
				dataSource = (DataSource) envContext.lookup("jdbc/MyOracleDB);

			conn = dataSource.getConnection();
```

Kanske hjälper dig lite iaf... Lycka till

Permalänk: https://www.webforum.nu/p/1419569

## #3 — jme, 2004-08-27T04:56Z

Även om jag inte var frågeställaren så tackra jag för förslaget jag med. Har haft connection-pooling i tankarna och skall i dagarna testa ditt förslag.:)

Permalänk: https://www.webforum.nu/p/1419868

## #4 — swede, 2004-08-29T09:09Z

Lång postning, men vad är fel?
Den loggen yrar något om att den inte kan skapa naming någonting...

Får följande fel i catalina.out:
javax.naming.NamingException: Cannot create resource instance
        at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:189)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:834)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
        at javax.naming.InitialContext.lookup(InitialContext.java:347)
        at foo.DBTest.init(Unknown Source)
\<snip\>

Min server.xml innehåller följande:
\<!-- Global MySQL connection --\>
    \<Resource name="jdbc/MySQLDB" auth="Container" type="javax.sql.DataSource"/\>
    \<ResourceParams name="jdbc/MySQLDB"\>
      \<parameter\>
        \<name\>factory\</name\>
        \<value\>org.apache.commons.dbcp.BasicDataSourceFactory\</value\>
      \</parameter\>
                                
      ..En massa parametrar här...

       \<parameter\>
         \<name\>driverClassName\</name\>            
         \<value\>org.gjt.mm.mysql.Driver\</value\>
       \</parameter\>

       \<parameter\>
         \<name\>url\</name\>
         \<value\>jdbc:mysql://localhost:3306/javatest?autoReconnect=true\</value\>
       \</parameter\>

    \</ResourceParams\>

Och min web.xml:
\<resource-ref\>
  \<description\>DB connection\</description\>
  \<res-ref-name\>jdbc/MySQLDB\</res-ref-name\>
  \<res-type\>javax.sql.DataSource\</res-type\>
  \<res-auth\>Container\</res-auth\>
 \</resource-ref\>

Permalänk: https://www.webforum.nu/p/1423718

## #5 — Jaar, 2004-09-08T14:40Z

Hej .. vet inte om detta är felet men \<Resource\> ska ligga under den context du vill använda den i enligt mitt exempel. 

Tror min kod hämtar en resource i applikationens context

Permalänk: https://www.webforum.nu/p/1433310

## #6 — swede, 2004-09-14T10:32Z

Äh, jag ger upp med connection-pooling tills vidare...
Crap :(

Permalänk: https://www.webforum.nu/p/1436642

---

Tråden på webben: https://www.webforum.nu/amne/java/109963-connection-pooling-i-tomcat
