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.poolbackeddatasou...@29fb0733 [
>> connectionPoolDataSource
>> ->  com.mchange.v2.c3p0.wrapperconnectionpooldatasou...@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.drivermanagerdatasou...@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$deadlockdetec...@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$deadlockdetec...@170ec24
>> -- APPARENT DEADLOCK!!! Complete Status:
>>      Managed Threads: 3
>>      Active Threads: 3
>>      Active Tasks:
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@c5d9c1
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
>>              
>> com.mchange.v2.resourcepool.basicresourcepool$acquiret...@15b4ad2
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@8d3d62
>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
>>      Pending Tasks:
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@b9132a
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@996b65
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@59c8b5
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@881cb3
>>              com.mchange.v2.resourcepool.basicresourcepool$acquiret...@143753
>>              
>> com.mchange.v2.resourcepool.basicresourcepool$acquiret...@13c4c09
>>              
>> com.mchange.v2.resourcepool.basicresourcepool$acquiret...@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$acquiret...@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-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>
>>>
>>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to