Hi,

Since I need to get a DataSource from some JNDI I have downloaded PoolMan 2.0.4.
When I am trying to run "JSP Database Client" Tomcat terminates.

In <TOMCAT_HOME>/lib I have the following jars:
poolman.jar, jdbc2_0-stdext.jar, jta.jar, xerces.jar, mm.mysql-2.0.4-bin.jar

I also have the poolman.xml in the same dir, but this is added to CLASSPATH in 
<TOMCAT_HOME>/bin/tomcat.bat:
if exist "%TOMCAT_HOME%\lib\poolman.xml" set CP=%CP%;%TOMCAT_HOME%\lib\poolman.xml

What's wrong?

Regards
Joacim J


My poolman.xml (based on poolman.xml.template)
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<poolman>

  <!-- =============================================================== -->
  <!-- If the management-mode is JMX, then JMX will be used to deploy  -->
  <!-- all of the DataSource pools and object pools, and the JMX admin -->
  <!-- will be started for HTTP-based administration of pools. JMX     -->
  <!-- is somewhat heavy for applications that necessarily require it, -->
  <!-- and its internal ClassLoaders occasionally create conflicts.    -->
  <!-- Thus it can be commented out and not used.                      -->
  <!-- POSSIBLE VALUES: jmx, local                                     -->
  <!-- DEFAULT: local (JMX not used)                                   -->             
  <!-- =============================================================== -->
  <management-mode>jmx</management-mode>

  <!-- ========================================================== -->
  <!-- These entries illustrate configuration of generic non-JDBC -->
  <!-- object pooling.                                            -->
  <!-- ========================================================== -->
  <objectPool>
    <name>mypool</name>
    <objectType>java.lang.StringBuffer</objectType>
    <initialObjects>10</initialObjects>
    <minimumSize>1</minimumSize>
    <maximumSize>10</maximumSize>
    <objectTimeout>6</objectTimeout>
    <userTimeout>12</userTimeout>
    <skimmerFrequency>300</skimmerFrequency>
    <shrinkBy>2</shrinkBy>
    <logFile>c:\code\src\poolman\lib\pool.log</logFile>
    <debugging>true</debugging>
  </objectPool>


  <!-- ========================================================== -->
  <!-- These entries are an example of JDBC Connection pooling.   -->
  <!-- Many of the parameters are optional. Consult the           -->
  <!-- UsersGuide.html doument for guidance and element           --> 
  <!-- definitions.                                               -->
  <!-- ========================================================== -->

  <datasource>

    <!-- ============================== -->
    <!-- Physical Connection Attributes -->
    <!-- ============================== -->

    <!-- Standard JDBC Driver info -->
    <dbname>dtim9t</dbname>
    <jndiName>jdbc/dtim9t</jndiName>
    <driver>org.gjt.mm.mysql.Driver</driver>
    <url>jdbc:mysql://localhost/dtim9t</url>
    <username>impact</username>
    <password>impact</password>


    <!-- If the following element is set to true, then PoolMan's  -->
    <!-- scrollable/updatable ResultSet will not be used, and the -->
    <!-- underlying driver's ResultSet will be used instead. This -->
    <!-- provides a performance gain in certain rare instances at -->
    <!-- the expense of functionality.                            -->
    <!-- DEFAULT: false                                           -->
    <nativeResults>false</nativeResults>

    <!-- ======================== -->
    <!-- Pool Behavior Attributes -->
    <!-- ======================== -->

    <!-- Connections created when the pool is instantiated -->
    <!-- DEFAULT: 1                                        -->
    <initialConnections>2</initialConnections>

    <!-- The pool will never shrink below this number -->
    <!-- DEFAULT: 0                                   -->
    <minimumSize>0</minimumSize>

    <!-- The pool will never grow larger than this value -->
    <maximumSize>10</maximumSize>

    <!-- If the maximum size of a pool is reached but requests  -->
    <!-- are still waiting on objects, PoolMan will create new  -->
    <!-- emergency objects if this value is set to true. This   -->
    <!-- will temporarily increase the size of the pool, but    -->
    <!-- the pool will shrink back down to acceptable size      -->
    <!-- automatically when the skimmer activates. If this      -->
    <!-- value is set to false, the requests will sit and wait  -->
    <!-- until an object is available.                          -->
    <!-- DEFAULT: true                                          -->
    <maximumSoft>true</maximumSoft>

    <!-- The connection will be destroyed after living for a     -->
    <!-- duration of this value. IN SECONDS.                     -->
    <!-- DEFAULT: 1200 (20 minutes)                              -->
    <connectionTimeout>600</connectionTimeout>

    <!-- A user will lose a Connection and it will automatically -->
    <!-- return to its pool after the duration greater than or   -->
    <!-- equal to this value. If this value is set to 0 or less, -->
    <!-- no user timeout will be enforced. IN SECONDS.           -->
    <!-- DEFAULT: 20                                             --> 
    <userTimeout>12</userTimeout>

    <!-- How frequently each object's connection timeout and     -->
    <!-- user timeout values will be examined for collection.    -->
    <!-- IN SECONDS.                                             -->
    <!-- DEFAULT: 420 (7 minutes)                                -->
    <skimmerFrequency>300</skimmerFrequency>

    <!-- Each time the pool is sized down, how many connections  -->
    <!-- should be removed from it? This value prevents backing  -->
    <!-- off the pool too quickly.                               -->
    <shrinkBy>10</shrinkBy>

    <!-- Each time a connection is requested, it is validated by -->
    <!-- the pool to ensure that it is active. If this element   -->
    <!-- exists, then it is treated as a SQL query that is       -->
    <!-- executed on the raw Connection (bypassing the cache)    -->
    <!-- in order to ensure the Connection is valid. If this     -->
    <!-- element does NOT exist, then the Connection.isClosed()  -->
    <!-- method is used to validate it instead. The              -->
    <!-- Connection.isClosed() method is unreliable on some      -->
    <!-- drivers.                                                -->
    <!-- DEFAULT: null                                           -->
    <validationQuery>SELECT id FROM users</validationQuery>

    <!-- Where should log and debug information be printed?      -->
    <!-- DEFAULT: System.out                                     -->
    <logFile>C:\apache-tomcat\logs\poolman.txt</logFile>

    <!-- If set to true, the logger will display verbose info    -->
    <!-- DEFAULT: false                                          -->
    <debugging>true</debugging>

    <!-- XA Connection Attributes   -->
    <!-- NOTE: MEASURED IN SECONDS. -->
    <transactionTimeout>100</transactionTimeout>

    <!-- Query Cache Attributes-->

    <!-- If enabled, queries will be cached. The cache is        -->
    <!-- asynchronously updated in the background.               -->
    <!-- DEFAULT: false                                          -->
    <cacheEnabled>true</cacheEnabled>

    <!-- The maximum number of query/ResultSet pairs the         -->
    <!-- cache can contain.                                      --> 
    <!-- DEFAULT: 5                                              -->
    <cacheSize>10</cacheSize>

    <!-- How long the cache waits before re-loading its          -->
    <!-- ResultSets from the underlying database.                -->
    <!-- IN SECONDS.                                             -->
    <!-- DEFAULT: 30                                             -->
    <cacheRefreshInterval>120</cacheRefreshInterval>

    <!-- A SQL statement to be executed when the pool is created.-->
    <!-- DEFAULT: none                                           -->
    <!--
    <initialPoolSQL>
        insert into users values(32, 'xml')
    </initialPoolSQL>
    -->


    <!-- A SQL statement to be excuted every time a Connection   -->
    <!-- is accessed.                                            -->
    <!-- DEFAULT: none                                           -->
    <!--
    <initialConnectionSQL>
        insert into users values(1010, 'con')
    </initialConnectionSQL>
    -->

    <!-- Whether a SQLException should cause the Connection to   --> 
    <!-- be removed from the pool and destroyed.                 -->
    <!-- DEFAULT: false                                          -->
    <removeOnExceptions>false</removeOnExceptions>

  </datasource>

  <!-- ==================================================== -->
  <!-- Another generic object pool, this one is used by     -->
  <!-- the PoolManServlet application                       -->
  <!-- ==================================================== -->
  <objectPool>
    <name>beanpool</name>
    <objectType>com.codestudio.util.PoolManBean</objectType>
    <initialObjects>6</initialObjects>
    <minimumSize>0</minimumSize>
    <maximumSize>50</maximumSize>
    <objectTimeout>1200</objectTimeout>
    <userTimeout>1200</userTimeout>
    <skimmerFrequency>300</skimmerFrequency>
    <shrinkBy>2</shrinkBy>
    <logFile>C:\apache-tomcat\logs\PoolManServlet.log</logFile>
    <debugging>true</debugging>
  </objectPool>

  <!-- ========================================= -->
  <!-- Admin via JMX HTML Adapter. Disable this  -->
  <!-- (at least comment it out) for production  -->
  <!-- environments. When enabled, point your    -->
  <!-- web browser to the localhost:[port] to    -->
  <!-- view the JMX html admin agent.            -->
  <!-- This agent is not created if the          -->
  <!-- management-mode element above is not      -->
  <!-- set to "jmx"                              -->
  <!-- ========================================= -->
  <admin-agent>
    <class>com.sun.jdmk.comm.HtmlAdaptorServer</class>
    <name>Adaptor:name=html</name>
    <maxClients>10</maxClients>
    <port>8082</port>
  </admin-agent>

</poolman>
------------------------------------------------------------------------

Reply via email to