0

I have soap webservice written in Spring 2.X and which connect to Teradata and return the result to client. To connect the data based I am using Tomcat JDBC Connection Pool as the DataSource.

In peak hour (9AM to 6PM) application get about 60k transactions requests. I observed some of the transactions goes in hung state and return response in 2-3 minutes . I suspect some transaction goes in wait status and once connection is available in pool then complete the transactions.

Below is the configuration for the DataSource.

    <bean id="dataSource"   class="org.apache.tomcat.jdbc.pool.DataSource"
          destroy-method="close">
        <property name="driverClassName" value="com.teradata.jdbc.TeraDriver"/>
        <property name="url" >
            <util:constant static-field=" _DB_HOST"/>
        </property>
        <property name="username">
            <util:constant static-field=" DB_USER"/>
        </property>
        <property name="password">
            <util:constant static-field=" DB_PWD"/>
        </property>
        <property name="initialSize" value="1" />
        <property name="maxActive" value="50" />
        <property name="minIdle" value="0" />
        <property name="maxWait" value="-1" />
        <property name="minEvictableIdleTimeMillis" value="1000" />
        <property name="timeBetweenEvictionRunsMillis" value="1000" />

    </bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
        <qualifier value="txnMngr"/>
    </bean>

// using JdbcTemplate to read the data from data base.

Here are my questions:

  • Is there any issue with above configuration based on the load which I mentioned for my application?
  • Is there any way I can monitor the DB connection pool uses?
Basil Bourque
  • 303,325
  • 100
  • 852
  • 1,154
user1591156
  • 1,945
  • 4
  • 18
  • 31

0 Answers0