You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by dishmily <en...@hotmail.com> on 2009/11/23 14:00:29 UTC
config database in Tomcat
i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
webservice i use a mysql database.
my question is:
how can i write a config file in each tomcat to let tomcat1 load DB1,
tomcat2 load DB2 and tomcat3 load DB3.
thanks.
--
View this message in context: http://old.nabble.com/config-database-in-Tomcat-tp26477627p26477627.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by Jens Greven <je...@greven.org>.
As this is a part of the hibernate configuration rather than the
database / datasource configuration the SQL dialect has to be configured
in the hibernate configuration file, not in the context.
Here's my SessionFactory class just in case:
(I think this could be realized in a better way using Spring / DI but
nonetheless should help for the start)
N.B.: I found this on the net, it is not my own work - just don't
remember where I found it)
package de.pma.dbobjects.oasis;
import de.pma.dbobjects.oasis.oasis.*;
import de.pma.utils.Deployment;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
/**
* This class garanties that only one single SessionFactory
* is instanciated and that the configuration is done thread
safe as
* singleton. Actually it only wraps the Hibernate SessionFactory.
* When a JNDI name is configured the session is bound to to JNDI,
* else it is only saved locally.
* You are free to use any kind of JTA or Thread
transactionFactories.
*/
public class OasisSessionFactory {
private OasisSessionFactory() {
throw new AssertionError("must not be instanciated");
}
/**
* Location of hibernate.cfg.xml file. NOTICE: Location should be
on the
* classpath as Hibernate uses #resourceAsStream style lookup for its
* configuration file. That is place the config file in a Java
package - the
* default location is the default Java package.<br>
* <br>
* Examples: <br>
* <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml".
* CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code>
*/
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
/** The single instance of hibernate configuration */
private static final AnnotationConfiguration cfg = new
AnnotationConfiguration();
/** The single instance of hibernate SessionFactory */
private static org.hibernate.SessionFactory sessionFactory;
/**
* initialises the configuration if not yet done and returns the
current
* instance
*
* @return
*/
public static SessionFactory getInstance() {
if (sessionFactory == null) {
initSessionFactory();
}
return sessionFactory;
}
/**
* Returns the ThreadLocal Session instance. Lazy initialize the
* <code>SessionFactory</code> if needed.
*
* @return Session
* @throws HibernateException
*/
public Session openSession() {
return sessionFactory.getCurrentSession();
}
/**
* The behaviour of this method depends on the session context you have
* configured. This factory is intended to be used with a
hibernate.cfg.xml
* including the following property <property
* name="current_session_context_class">thread</property> This
would return
* the current open session or if this does not exist, will create
a new
* session
*
* @return
*/
public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
/**
* initializes the sessionfactory in a safe way even if more than
one thread
* tries to build a sessionFactory
*/
private static synchronized void initSessionFactory() {
if (sessionFactory == null) {
try {
cfg.configure(CONFIG_FILE_LOCATION);
// Die Klassen hinzufuegen
cfg.addAnnotatedClass(blah.class);
//add your annotated classes here
sessionFactory = cfg.buildSessionFactory();
} catch (Exception e) {
throw new HibernateException("Could not initialize the
Hibernate configuration", e);
}
}
}
public static void close() {
if (sessionFactory != null) {
sessionFactory.close();
}
sessionFactory = null;
}
}
dishmily schrieb:
> is it possible to define SQL Dialects "org.hibernate.dialect.MySQLDialect" in
> context.xml in Tomcat? how? thanks.
>
>
> Jens Greven wrote:
>> You can also use c3p0 with Tomcat JNDI, e. g.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <Context path="/SupportPortal">
>> <Resource name="jdbc/MYSQL"
>> auth="Container"
>> type="com.mchange.v2.c3p0.ComboPooledDataSource"
>> description="DB Connection"
>> jdbcUrl="jdbc:mysql://server:3306/mysql?autoReconnect=true"
>> driverClass="com.mysql.jdbc.Driver"
>> user="root"
>> password="password"
>> maxPoolSize="20"
>> minPoolSize="1"
>> initialPoolSize="1"
>> acquireIncrement="1"
>> maxConnectionAge="0"
>> maxIdleTime="1800"
>> maxIdleTimeExcessConnections="120"
>> idleConnectionTestPeriod="30"
>> testConnectionOnCheckout="true"
>>
>> connectionCustomizerClassName="de.pma.dbobjects.DefaultConnectionCustomizer"
>> factory="org.apache.naming.factory.BeanFactory"
>> />
>> </Context>
>>
>>
>> and a hibernate config file like:
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
>> Configuration DTD 3.0//EN"
>> "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
>>
>> <hibernate-configuration>
>> <session-factory>
>> <property
>> name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
>> <property
>> name="hibernate.connection.datasource">java:comp/env/jdbc/MYSQL</property>
>> <property name="hibernate.show_sql">false</property>
>> <property name="hibernate.format_sql">false</property>
>> <property
>> name="hibernate.current_session_context_class">thread</property>
>> <property
>> name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
>> </session-factory>
>> </hibernate-configuration>
>>
>>
>>
>>
>> dishmily schrieb:
>>> thank you, it works!
>>>
>>> there are two factor need to mention:
>>>
>>> 1) as i used hibernate to create Database-connection before, the
>>> connection
>>> pool C3P0 was used in hibernate. but when i try to maintain
>>> Database-connection through JNDI in tomcat, i donn't need C3P0 anymore.
>>> so,
>>> i SHOULD delete configuration about C3P0 in hibernate configuration file.
>>> The error message i got had something to do with it.
>>>
>>> 2) I SHOULD add a ResourceLink in the Context.xml, in order to let
>>> Hibernate
>>> using the global resource, witch is in read only mode.
>>> (https://forums.hibernate.org/viewtopic.php?f=1&t=937920&start=0)
>>> <ResourceLink name="jdbc/mysql" global="jdbc/mysql"
>>> type="javax.sql.DataSource"/>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Pid Ster wrote:
>>>> On 23/11/2009 16:03, dishmily wrote:
>>>>> i have made few changes, but it didn't work.
>>>>> (my project uses tomcat and hibernate.)
>>>> You didn't mention that before.
>>>>
>>>> You need to configure Hibernate to use the DataSource "jdbc/mysql" that
>>>> you've created. It doesn't appear to be correctly configured at the
>>>> moment.
>>>>
>>>>
>>>> You can test that the db connection pool is working:
>>>>
>>>> InitialContext ic = new InitialContext();
>>>> DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
>>>> Connection conn = ds.getConnection();
>>>>
>>>>
>>>>
>>>>> 1) $Tomcat_Home\conf\context.xml was changed to:
>>>> This is the default context definition, rather than a web app specific
>>>> one. Just so you know.
>>>>
>>>> To configure it for a specific web app, include a context.xml definition
>>>> in the META-INF folder of your webapp.
>>>>
>>>>
>>>> p
>>>>
>>>>
>>>>> <Context>
>>>>>
>>>>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>>>>
>>>>> <Resource name="jdbc/mysql" auth="Container"
>>>>> type="javax.sql.DataSource"
>>>>> maxActive="100" maxIdle="30" maxWait="10000"
>>>>> username="db" password="pwd"
>>>>> driverClassName="com.mysql.jdbc.Driver"
>>>>> url="jdbc:mysql://localhost:3306/db"/>
>>>>>
>>>>> </Context>
>>>>>
>>>>> 2)<resource-ref> was added into
>>>>> $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
>>>>> :
>>>>>
>>>>> <web-app>
>>>>> ...
>>>>> <resource-ref>
>>>>> <description>DB Connection</description>
>>>>> <res-ref-name>jdbc/mysql</res-ref-name>
>>>>> <res-type>javax.sql.DataSource</res-type>
>>>>> <res-auth>Container</res-auth>
>>>>> </resource-ref>
>>>>> ....
>>>>> </web-app>
>>>>>
>>>>> wenn i ran the web application, i got the error message:
>>>>>
>>>>> INFO: Initializing c3p0 pool...
>>>>> com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [
>>>>> connectionPoolDataSource
>>>>> -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
>>>>> acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay
>>>>> ->
>>>>> 1000, autoCommitOnClose -> false, automaticTestTable -> null,
>>>>> breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
>>>>> connectionCustomizerClassName -> null, connectionTesterClassName ->
>>>>> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
>>>>> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation ->
>>>>> null,
>>>>> forceIgnoreUnresolvedTransactions -> false, identityToken ->
>>>>> 1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
>>>>> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0,
>>>>> maxConnectionAge
>>>>> ->
>>>>> 0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0,
>>>>> maxPoolSize
>>>>> ->
>>>>> 100, maxStatements -> 100, maxStatementsPerConnection -> 0,
>>>>> minPoolSize
>>>>> ->
>>>>> 10, nestedDataSource ->
>>>>> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
>>>>> [ description -> null, driverClass -> null, factoryClassLocation ->
>>>>> null,
>>>>> identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null,
>>>>> properties
>>>>> -> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
>>>>> preferredTestQuery -> null, propertyCycle -> 0,
>>>>> testConnectionOnCheckin
>>>>> ->
>>>>> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout
>>>>> ->
>>>>> 0,
>>>>> usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
>>>>> dataSourceName -> null, factoryClassLocation -> null, identityToken
>>>>> ->
>>>>> 1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
>>>>> 23.11.2009 16:51:25
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>>>> WARNUNG:
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>>>> -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned
>>>>> pending
>>>>> tasks!
>>>>> 23.11.2009 16:51:25
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>>>> WARNUNG:
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>>>> -- APPARENT DEADLOCK!!! Complete Status:
>>>>> Managed Threads: 3
>>>>> Active Threads: 3
>>>>> Active Tasks:
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
>>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
>>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
>>>>> Pending Tasks:
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
>>>>> Pool thread stack traces:
>>>>>
>>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
>>>>> java.lang.Thread.sleep(Native Method)
>>>>>
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>>
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>>
>>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
>>>>> java.lang.Thread.sleep(Native Method)
>>>>>
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>>
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>>
>>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
>>>>> java.lang.Thread.sleep(Native Method)
>>>>>
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>>
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>>
>>>>>
>>>>> 23.11.2009 16:51:34
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
>>>>> WARNUNG:
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>>>> --
>>>>> Acquisition Attempt Failed!!! Clearing pending acquires. While trying
>>>>> to
>>>>> acquire a needed new resource, we failed to succeed more than the
>>>>> maximum
>>>>> number of allowed acquisition attempts (30). Last acquisition attempt
>>>>> exception:
>>>>> java.lang.NullPointerException
>>>>> at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
>>>>> at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
>>>>> at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
>>>>> at java.sql.DriverManager.getDriver(DriverManager.java:253)
>>>>> at
>>>>> com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
>>>>> at
>>>>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
>>>>> at
>>>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
>>>>> at
>>>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
>>>>> at
>>>>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
>>>>> at
>>>>> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
>>>>> at
>>>>> com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
>>>>> at
>>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
>>>>> at
>>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Pid Ster wrote:
>>>>>> On 23/11/2009 13:00, dishmily wrote:
>>>>>>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for
>>>>>>> each
>>>>>>> webservice i use a mysql database.
>>>>>>>
>>>>>>> my question is:
>>>>>>>
>>>>>>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>>>>>>> tomcat2 load DB2 and tomcat3 load DB3.
>>>>>>>
>>>>>>> thanks.
>>>>>> I'm guessing that you're using Tomcat 6.0, because you didn't say.
>>>>>> The extensive documentation is often a good place to start:
>>>>>>
>>>>>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>>>>>>
>>>>>>
>>>>>> p
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by dishmily <en...@hotmail.com>.
is it possible to define SQL Dialects "org.hibernate.dialect.MySQLDialect" in
context.xml in Tomcat? how? thanks.
Jens Greven wrote:
>
> You can also use c3p0 with Tomcat JNDI, e. g.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Context path="/SupportPortal">
> <Resource name="jdbc/MYSQL"
> auth="Container"
> type="com.mchange.v2.c3p0.ComboPooledDataSource"
> description="DB Connection"
> jdbcUrl="jdbc:mysql://server:3306/mysql?autoReconnect=true"
> driverClass="com.mysql.jdbc.Driver"
> user="root"
> password="password"
> maxPoolSize="20"
> minPoolSize="1"
> initialPoolSize="1"
> acquireIncrement="1"
> maxConnectionAge="0"
> maxIdleTime="1800"
> maxIdleTimeExcessConnections="120"
> idleConnectionTestPeriod="30"
> testConnectionOnCheckout="true"
>
> connectionCustomizerClassName="de.pma.dbobjects.DefaultConnectionCustomizer"
> factory="org.apache.naming.factory.BeanFactory"
> />
> </Context>
>
>
> and a hibernate config file like:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
> Configuration DTD 3.0//EN"
> "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
>
> <hibernate-configuration>
> <session-factory>
> <property
> name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
> <property
> name="hibernate.connection.datasource">java:comp/env/jdbc/MYSQL</property>
> <property name="hibernate.show_sql">false</property>
> <property name="hibernate.format_sql">false</property>
> <property
> name="hibernate.current_session_context_class">thread</property>
> <property
> name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
> </session-factory>
> </hibernate-configuration>
>
>
>
>
> dishmily schrieb:
>> thank you, it works!
>>
>> there are two factor need to mention:
>>
>> 1) as i used hibernate to create Database-connection before, the
>> connection
>> pool C3P0 was used in hibernate. but when i try to maintain
>> Database-connection through JNDI in tomcat, i donn't need C3P0 anymore.
>> so,
>> i SHOULD delete configuration about C3P0 in hibernate configuration file.
>> The error message i got had something to do with it.
>>
>> 2) I SHOULD add a ResourceLink in the Context.xml, in order to let
>> Hibernate
>> using the global resource, witch is in read only mode.
>> (https://forums.hibernate.org/viewtopic.php?f=1&t=937920&start=0)
>> <ResourceLink name="jdbc/mysql" global="jdbc/mysql"
>> type="javax.sql.DataSource"/>
>>
>>
>>
>>
>>
>>
>>
>> Pid Ster wrote:
>>> On 23/11/2009 16:03, dishmily wrote:
>>>> i have made few changes, but it didn't work.
>>>> (my project uses tomcat and hibernate.)
>>> You didn't mention that before.
>>>
>>> You need to configure Hibernate to use the DataSource "jdbc/mysql" that
>>> you've created. It doesn't appear to be correctly configured at the
>>> moment.
>>>
>>>
>>> You can test that the db connection pool is working:
>>>
>>> InitialContext ic = new InitialContext();
>>> DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
>>> Connection conn = ds.getConnection();
>>>
>>>
>>>
>>>> 1) $Tomcat_Home\conf\context.xml was changed to:
>>> This is the default context definition, rather than a web app specific
>>> one. Just so you know.
>>>
>>> To configure it for a specific web app, include a context.xml definition
>>> in the META-INF folder of your webapp.
>>>
>>>
>>> p
>>>
>>>
>>>> <Context>
>>>>
>>>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>>>
>>>> <Resource name="jdbc/mysql" auth="Container"
>>>> type="javax.sql.DataSource"
>>>> maxActive="100" maxIdle="30" maxWait="10000"
>>>> username="db" password="pwd"
>>>> driverClassName="com.mysql.jdbc.Driver"
>>>> url="jdbc:mysql://localhost:3306/db"/>
>>>>
>>>> </Context>
>>>>
>>>> 2)<resource-ref> was added into
>>>> $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
>>>> :
>>>>
>>>> <web-app>
>>>> ...
>>>> <resource-ref>
>>>> <description>DB Connection</description>
>>>> <res-ref-name>jdbc/mysql</res-ref-name>
>>>> <res-type>javax.sql.DataSource</res-type>
>>>> <res-auth>Container</res-auth>
>>>> </resource-ref>
>>>> ....
>>>> </web-app>
>>>>
>>>> wenn i ran the web application, i got the error message:
>>>>
>>>> INFO: Initializing c3p0 pool...
>>>> com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [
>>>> connectionPoolDataSource
>>>> -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
>>>> acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay
>>>> ->
>>>> 1000, autoCommitOnClose -> false, automaticTestTable -> null,
>>>> breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
>>>> connectionCustomizerClassName -> null, connectionTesterClassName ->
>>>> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
>>>> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation ->
>>>> null,
>>>> forceIgnoreUnresolvedTransactions -> false, identityToken ->
>>>> 1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
>>>> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0,
>>>> maxConnectionAge
>>>> ->
>>>> 0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0,
>>>> maxPoolSize
>>>> ->
>>>> 100, maxStatements -> 100, maxStatementsPerConnection -> 0,
>>>> minPoolSize
>>>> ->
>>>> 10, nestedDataSource ->
>>>> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
>>>> [ description -> null, driverClass -> null, factoryClassLocation ->
>>>> null,
>>>> identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null,
>>>> properties
>>>> -> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
>>>> preferredTestQuery -> null, propertyCycle -> 0,
>>>> testConnectionOnCheckin
>>>> ->
>>>> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout
>>>> ->
>>>> 0,
>>>> usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
>>>> dataSourceName -> null, factoryClassLocation -> null, identityToken
>>>> ->
>>>> 1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
>>>> 23.11.2009 16:51:25
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>>> WARNUNG:
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>>> -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned
>>>> pending
>>>> tasks!
>>>> 23.11.2009 16:51:25
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>>> WARNUNG:
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>>> -- APPARENT DEADLOCK!!! Complete Status:
>>>> Managed Threads: 3
>>>> Active Threads: 3
>>>> Active Tasks:
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
>>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
>>>> Pending Tasks:
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
>>>> Pool thread stack traces:
>>>>
>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
>>>> java.lang.Thread.sleep(Native Method)
>>>>
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>
>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
>>>> java.lang.Thread.sleep(Native Method)
>>>>
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>
>>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
>>>> java.lang.Thread.sleep(Native Method)
>>>>
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>>
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>
>>>>
>>>> 23.11.2009 16:51:34
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
>>>> WARNUNG:
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>>> --
>>>> Acquisition Attempt Failed!!! Clearing pending acquires. While trying
>>>> to
>>>> acquire a needed new resource, we failed to succeed more than the
>>>> maximum
>>>> number of allowed acquisition attempts (30). Last acquisition attempt
>>>> exception:
>>>> java.lang.NullPointerException
>>>> at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
>>>> at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
>>>> at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
>>>> at java.sql.DriverManager.getDriver(DriverManager.java:253)
>>>> at
>>>> com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
>>>> at
>>>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
>>>> at
>>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
>>>> at
>>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
>>>> at
>>>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
>>>> at
>>>> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
>>>> at
>>>> com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
>>>> at
>>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
>>>> at
>>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>>
>>>>
>>>>
>>>>
>>>> Pid Ster wrote:
>>>>> On 23/11/2009 13:00, dishmily wrote:
>>>>>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for
>>>>>> each
>>>>>> webservice i use a mysql database.
>>>>>>
>>>>>> my question is:
>>>>>>
>>>>>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>>>>>> tomcat2 load DB2 and tomcat3 load DB3.
>>>>>>
>>>>>> thanks.
>>>>>
>>>>> I'm guessing that you're using Tomcat 6.0, because you didn't say.
>>>>> The extensive documentation is often a good place to start:
>>>>>
>>>>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>>>>>
>>>>>
>>>>> p
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>
>>>>>
>>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/config-database-in-Tomcat-tp26477627p26494947.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by Jens Greven <je...@greven.org>.
You can also use c3p0 with Tomcat JNDI, e. g.
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/SupportPortal">
<Resource name="jdbc/MYSQL"
auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
description="DB Connection"
jdbcUrl="jdbc:mysql://server:3306/mysql?autoReconnect=true"
driverClass="com.mysql.jdbc.Driver"
user="root"
password="password"
maxPoolSize="20"
minPoolSize="1"
initialPoolSize="1"
acquireIncrement="1"
maxConnectionAge="0"
maxIdleTime="1800"
maxIdleTimeExcessConnections="120"
idleConnectionTestPeriod="30"
testConnectionOnCheckout="true"
connectionCustomizerClassName="de.pma.dbobjects.DefaultConnectionCustomizer"
factory="org.apache.naming.factory.BeanFactory"
/>
</Context>
and a hibernate config file like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property
name="hibernate.connection.datasource">java:comp/env/jdbc/MYSQL</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">false</property>
<property
name="hibernate.current_session_context_class">thread</property>
<property
name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
</session-factory>
</hibernate-configuration>
dishmily schrieb:
> thank you, it works!
>
> there are two factor need to mention:
>
> 1) as i used hibernate to create Database-connection before, the connection
> pool C3P0 was used in hibernate. but when i try to maintain
> Database-connection through JNDI in tomcat, i donn't need C3P0 anymore. so,
> i SHOULD delete configuration about C3P0 in hibernate configuration file.
> The error message i got had something to do with it.
>
> 2) I SHOULD add a ResourceLink in the Context.xml, in order to let Hibernate
> using the global resource, witch is in read only mode.
> (https://forums.hibernate.org/viewtopic.php?f=1&t=937920&start=0)
> <ResourceLink name="jdbc/mysql" global="jdbc/mysql"
> type="javax.sql.DataSource"/>
>
>
>
>
>
>
>
> Pid Ster wrote:
>> On 23/11/2009 16:03, dishmily wrote:
>>> i have made few changes, but it didn't work.
>>> (my project uses tomcat and hibernate.)
>> You didn't mention that before.
>>
>> You need to configure Hibernate to use the DataSource "jdbc/mysql" that
>> you've created. It doesn't appear to be correctly configured at the
>> moment.
>>
>>
>> You can test that the db connection pool is working:
>>
>> InitialContext ic = new InitialContext();
>> DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
>> Connection conn = ds.getConnection();
>>
>>
>>
>>> 1) $Tomcat_Home\conf\context.xml was changed to:
>> This is the default context definition, rather than a web app specific
>> one. Just so you know.
>>
>> To configure it for a specific web app, include a context.xml definition
>> in the META-INF folder of your webapp.
>>
>>
>> p
>>
>>
>>> <Context>
>>>
>>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>>
>>> <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
>>> maxActive="100" maxIdle="30" maxWait="10000"
>>> username="db" password="pwd"
>>> driverClassName="com.mysql.jdbc.Driver"
>>> url="jdbc:mysql://localhost:3306/db"/>
>>>
>>> </Context>
>>>
>>> 2)<resource-ref> was added into
>>> $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
>>> :
>>>
>>> <web-app>
>>> ...
>>> <resource-ref>
>>> <description>DB Connection</description>
>>> <res-ref-name>jdbc/mysql</res-ref-name>
>>> <res-type>javax.sql.DataSource</res-type>
>>> <res-auth>Container</res-auth>
>>> </resource-ref>
>>> ....
>>> </web-app>
>>>
>>> wenn i ran the web application, i got the error message:
>>>
>>> INFO: Initializing c3p0 pool...
>>> com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [
>>> connectionPoolDataSource
>>> -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
>>> acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay ->
>>> 1000, autoCommitOnClose -> false, automaticTestTable -> null,
>>> breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
>>> connectionCustomizerClassName -> null, connectionTesterClassName ->
>>> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
>>> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation ->
>>> null,
>>> forceIgnoreUnresolvedTransactions -> false, identityToken ->
>>> 1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
>>> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, maxConnectionAge
>>> ->
>>> 0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0, maxPoolSize
>>> ->
>>> 100, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize
>>> ->
>>> 10, nestedDataSource ->
>>> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
>>> [ description -> null, driverClass -> null, factoryClassLocation ->
>>> null,
>>> identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null,
>>> properties
>>> -> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
>>> preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin
>>> ->
>>> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout ->
>>> 0,
>>> usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
>>> dataSourceName -> null, factoryClassLocation -> null, identityToken ->
>>> 1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
>>> 23.11.2009 16:51:25
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>> WARNUNG:
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>> -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending
>>> tasks!
>>> 23.11.2009 16:51:25
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>>> WARNUNG:
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>>> -- APPARENT DEADLOCK!!! Complete Status:
>>> Managed Threads: 3
>>> Active Threads: 3
>>> Active Tasks:
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
>>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
>>> Pending Tasks:
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
>>> Pool thread stack traces:
>>>
>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
>>> java.lang.Thread.sleep(Native Method)
>>>
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>
>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
>>> java.lang.Thread.sleep(Native Method)
>>>
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>
>>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
>>> java.lang.Thread.sleep(Native Method)
>>>
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>>
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>
>>>
>>> 23.11.2009 16:51:34
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
>>> WARNUNG: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>>> --
>>> Acquisition Attempt Failed!!! Clearing pending acquires. While trying to
>>> acquire a needed new resource, we failed to succeed more than the maximum
>>> number of allowed acquisition attempts (30). Last acquisition attempt
>>> exception:
>>> java.lang.NullPointerException
>>> at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
>>> at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
>>> at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
>>> at java.sql.DriverManager.getDriver(DriverManager.java:253)
>>> at
>>> com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
>>> at
>>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
>>> at
>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
>>> at
>>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
>>> at
>>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
>>> at
>>> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
>>> at
>>> com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
>>> at
>>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
>>> at
>>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>>
>>>
>>>
>>>
>>> Pid Ster wrote:
>>>> On 23/11/2009 13:00, dishmily wrote:
>>>>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
>>>>> webservice i use a mysql database.
>>>>>
>>>>> my question is:
>>>>>
>>>>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>>>>> tomcat2 load DB2 and tomcat3 load DB3.
>>>>>
>>>>> thanks.
>>>>
>>>> I'm guessing that you're using Tomcat 6.0, because you didn't say.
>>>> The extensive documentation is often a good place to start:
>>>>
>>>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>>>>
>>>>
>>>> p
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by dishmily <en...@hotmail.com>.
thank you, it works!
there are two factor need to mention:
1) as i used hibernate to create Database-connection before, the connection
pool C3P0 was used in hibernate. but when i try to maintain
Database-connection through JNDI in tomcat, i donn't need C3P0 anymore. so,
i SHOULD delete configuration about C3P0 in hibernate configuration file.
The error message i got had something to do with it.
2) I SHOULD add a ResourceLink in the Context.xml, in order to let Hibernate
using the global resource, witch is in read only mode.
(https://forums.hibernate.org/viewtopic.php?f=1&t=937920&start=0)
<ResourceLink name="jdbc/mysql" global="jdbc/mysql"
type="javax.sql.DataSource"/>
Pid Ster wrote:
>
> On 23/11/2009 16:03, dishmily wrote:
>>
>> i have made few changes, but it didn't work.
>> (my project uses tomcat and hibernate.)
>
> You didn't mention that before.
>
> You need to configure Hibernate to use the DataSource "jdbc/mysql" that
> you've created. It doesn't appear to be correctly configured at the
> moment.
>
>
> You can test that the db connection pool is working:
>
> InitialContext ic = new InitialContext();
> DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
> Connection conn = ds.getConnection();
>
>
>
>> 1) $Tomcat_Home\conf\context.xml was changed to:
>
> This is the default context definition, rather than a web app specific
> one. Just so you know.
>
> To configure it for a specific web app, include a context.xml definition
> in the META-INF folder of your webapp.
>
>
> p
>
>
>> <Context>
>>
>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>
>> <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
>> maxActive="100" maxIdle="30" maxWait="10000"
>> username="db" password="pwd"
>> driverClassName="com.mysql.jdbc.Driver"
>> url="jdbc:mysql://localhost:3306/db"/>
>>
>> </Context>
>>
>> 2)<resource-ref> was added into
>> $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
>> :
>>
>> <web-app>
>> ...
>> <resource-ref>
>> <description>DB Connection</description>
>> <res-ref-name>jdbc/mysql</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>> ....
>> </web-app>
>>
>> wenn i ran the web application, i got the error message:
>>
>> INFO: Initializing c3p0 pool...
>> com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [
>> connectionPoolDataSource
>> -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
>> acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay ->
>> 1000, autoCommitOnClose -> false, automaticTestTable -> null,
>> breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
>> connectionCustomizerClassName -> null, connectionTesterClassName ->
>> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
>> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation ->
>> null,
>> forceIgnoreUnresolvedTransactions -> false, identityToken ->
>> 1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
>> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, maxConnectionAge
>> ->
>> 0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0, maxPoolSize
>> ->
>> 100, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize
>> ->
>> 10, nestedDataSource ->
>> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
>> [ description -> null, driverClass -> null, factoryClassLocation ->
>> null,
>> identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null,
>> properties
>> -> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
>> preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin
>> ->
>> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout ->
>> 0,
>> usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
>> dataSourceName -> null, factoryClassLocation -> null, identityToken ->
>> 1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
>> 23.11.2009 16:51:25
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>> WARNUNG:
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>> -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending
>> tasks!
>> 23.11.2009 16:51:25
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
>> WARNUNG:
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
>> -- APPARENT DEADLOCK!!! Complete Status:
>> Managed Threads: 3
>> Active Threads: 3
>> Active Tasks:
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
>> Pending Tasks:
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
>> Pool thread stack traces:
>>
>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
>> java.lang.Thread.sleep(Native Method)
>>
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>
>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
>> java.lang.Thread.sleep(Native Method)
>>
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>
>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
>> java.lang.Thread.sleep(Native Method)
>>
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>>
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>
>>
>> 23.11.2009 16:51:34
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
>> WARNUNG: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
>> --
>> Acquisition Attempt Failed!!! Clearing pending acquires. While trying to
>> acquire a needed new resource, we failed to succeed more than the maximum
>> number of allowed acquisition attempts (30). Last acquisition attempt
>> exception:
>> java.lang.NullPointerException
>> at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
>> at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
>> at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
>> at java.sql.DriverManager.getDriver(DriverManager.java:253)
>> at
>> com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
>> at
>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
>> at
>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
>> at
>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
>> at
>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
>> at
>> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
>> at
>> com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
>> at
>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
>> at
>> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>>
>>
>>
>>
>> Pid Ster wrote:
>>>
>>> On 23/11/2009 13:00, dishmily wrote:
>>>>
>>>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
>>>> webservice i use a mysql database.
>>>>
>>>> my question is:
>>>>
>>>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>>>> tomcat2 load DB2 and tomcat3 load DB3.
>>>>
>>>> thanks.
>>>
>>>
>>> I'm guessing that you're using Tomcat 6.0, because you didn't say.
>>> The extensive documentation is often a good place to start:
>>>
>>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>>>
>>>
>>> p
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/config-database-in-Tomcat-tp26477627p26493458.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by Pid <pi...@pidster.com>.
On 23/11/2009 16:03, dishmily wrote:
>
> i have made few changes, but it didn't work.
> (my project uses tomcat and hibernate.)
You didn't mention that before.
You need to configure Hibernate to use the DataSource "jdbc/mysql" that
you've created. It doesn't appear to be correctly configured at the moment.
You can test that the db connection pool is working:
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
> 1) $Tomcat_Home\conf\context.xml was changed to:
This is the default context definition, rather than a web app specific
one. Just so you know.
To configure it for a specific web app, include a context.xml definition
in the META-INF folder of your webapp.
p
> <Context>
>
> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>
> <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
> maxActive="100" maxIdle="30" maxWait="10000"
> username="db" password="pwd"
> driverClassName="com.mysql.jdbc.Driver"
> url="jdbc:mysql://localhost:3306/db"/>
>
> </Context>
>
> 2)<resource-ref> was added into $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
> :
>
> <web-app>
> ...
> <resource-ref>
> <description>DB Connection</description>
> <res-ref-name>jdbc/mysql</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
> ....
> </web-app>
>
> wenn i ran the web application, i got the error message:
>
> INFO: Initializing c3p0 pool...
> com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [ connectionPoolDataSource
> -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
> acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay ->
> 1000, autoCommitOnClose -> false, automaticTestTable -> null,
> breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
> connectionCustomizerClassName -> null, connectionTesterClassName ->
> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null,
> forceIgnoreUnresolvedTransactions -> false, identityToken ->
> 1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, maxConnectionAge ->
> 0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0, maxPoolSize ->
> 100, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize ->
> 10, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
> [ description -> null, driverClass -> null, factoryClassLocation -> null,
> identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null, properties
> -> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
> preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin ->
> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0,
> usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
> dataSourceName -> null, factoryClassLocation -> null, identityToken ->
> 1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
> 23.11.2009 16:51:25
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
> WARNUNG:
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
> -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending
> tasks!
> 23.11.2009 16:51:25
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
> WARNUNG:
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
> -- APPARENT DEADLOCK!!! Complete Status:
> Managed Threads: 3
> Active Threads: 3
> Active Tasks:
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
> Pending Tasks:
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
> Pool thread stack traces:
>
> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
> java.lang.Thread.sleep(Native Method)
>
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>
> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
> java.lang.Thread.sleep(Native Method)
>
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>
> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
> java.lang.Thread.sleep(Native Method)
>
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
>
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>
>
> 23.11.2009 16:51:34
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
> WARNUNG: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1 --
> Acquisition Attempt Failed!!! Clearing pending acquires. While trying to
> acquire a needed new resource, we failed to succeed more than the maximum
> number of allowed acquisition attempts (30). Last acquisition attempt
> exception:
> java.lang.NullPointerException
> at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
> at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
> at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
> at java.sql.DriverManager.getDriver(DriverManager.java:253)
> at
> com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
> at
> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
> at
> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
> at
> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
> at
> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
> at
> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
> at
> com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
> at
> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
> at
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
>
>
>
>
> Pid Ster wrote:
>>
>> On 23/11/2009 13:00, dishmily wrote:
>>>
>>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
>>> webservice i use a mysql database.
>>>
>>> my question is:
>>>
>>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>>> tomcat2 load DB2 and tomcat3 load DB3.
>>>
>>> thanks.
>>
>>
>> I'm guessing that you're using Tomcat 6.0, because you didn't say.
>> The extensive documentation is often a good place to start:
>>
>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>>
>>
>> p
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by dishmily <en...@hotmail.com>.
i have made few changes, but it didn't work.
(my project uses tomcat and hibernate.)
1) $Tomcat_Home\conf\context.xml was changed to:
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="db" password="pwd"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"/>
</Context>
2) <resource-ref> was added into $Tomcat_Home\webapps\axis2\WEB-INF\web.xml
:
<web-app>
...
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
....
</web-app>
wenn i ran the web application, i got the error message:
INFO: Initializing c3p0 pool...
com.mchange.v2.c3p0.PoolBackedDataSource@29fb0733 [ connectionPoolDataSource
-> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@dd3d444b [
acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay ->
1000, autoCommitOnClose -> false, automaticTestTable -> null,
breakAfterAcquireFailure -> false, checkoutTimeout -> 0,
connectionCustomizerClassName -> null, connectionTesterClassName ->
com.mchange.v2.c3p0.impl.DefaultConnectionTester,
debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null,
forceIgnoreUnresolvedTransactions -> false, identityToken ->
1hgeigx859d0cr2vfrvc8|1ba92db, idleConnectionTestPeriod -> 7200,
initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, maxConnectionAge ->
0, maxIdleTime -> 14400, maxIdleTimeExcessConnections -> 0, maxPoolSize ->
100, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize ->
10, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@b33bd229
[ description -> null, driverClass -> null, factoryClassLocation -> null,
identityToken -> 1hgeigx859d0cr2vfrvc8|87ad67, jdbcUrl -> null, properties
-> {useUnicode=true, autocommit=false, characterEncoding=UTF8} ],
preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin ->
false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0,
usesTraditionalReflectiveProxies -> false; userOverrides: {} ],
dataSourceName -> null, factoryClassLocation -> null, identityToken ->
1hgeigx859d0cr2vfrvc8|15b55bc, numHelperThreads -> 3 ]
23.11.2009 16:51:25
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
WARNUNG:
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
-- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending
tasks!
23.11.2009 16:51:25
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
WARNUNG:
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@170ec24
-- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1
(com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15b4ad2
(com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8d3d62
(com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
Pending Tasks:
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b9132a
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@996b65
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@59c8b5
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@881cb3
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@143753
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@13c4c09
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a40247
Pool thread stack traces:
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
java.lang.Thread.sleep(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
java.lang.Thread.sleep(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
java.lang.Thread.sleep(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
23.11.2009 16:51:34
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
WARNUNG: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c5d9c1 --
Acquisition Attempt Failed!!! Clearing pending acquires. While trying to
acquire a needed new resource, we failed to succeed more than the maximum
number of allowed acquisition attempts (30). Last acquisition attempt
exception:
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:253)
at
com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
at
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:119)
at
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
at
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
at
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at
com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Pid Ster wrote:
>
> On 23/11/2009 13:00, dishmily wrote:
>>
>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
>> webservice i use a mysql database.
>>
>> my question is:
>>
>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>> tomcat2 load DB2 and tomcat3 load DB3.
>>
>> thanks.
>
>
> I'm guessing that you're using Tomcat 6.0, because you didn't say.
> The extensive documentation is often a good place to start:
>
> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>
>
> p
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/config-database-in-Tomcat-tp26477627p26480783.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by dishmily <en...@hotmail.com>.
thanks. the tomcat i use is Tomcat 6.0.
i will have a look at the URL.
Pid Ster wrote:
>
> On 23/11/2009 13:00, dishmily wrote:
>>
>> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
>> webservice i use a mysql database.
>>
>> my question is:
>>
>> how can i write a config file in each tomcat to let tomcat1 load DB1,
>> tomcat2 load DB2 and tomcat3 load DB3.
>>
>> thanks.
>
>
> I'm guessing that you're using Tomcat 6.0, because you didn't say.
> The extensive documentation is often a good place to start:
>
> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>
>
> p
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/config-database-in-Tomcat-tp26477627p26478248.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: config database in Tomcat
Posted by Pid <pi...@pidster.com>.
On 23/11/2009 13:00, dishmily wrote:
>
> i use 3 tomcats in one PC, in each tomcat i have a webservice, for each
> webservice i use a mysql database.
>
> my question is:
>
> how can i write a config file in each tomcat to let tomcat1 load DB1,
> tomcat2 load DB2 and tomcat3 load DB3.
>
> thanks.
I'm guessing that you're using Tomcat 6.0, because you didn't say.
The extensive documentation is often a good place to start:
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
p
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org