Proxool :重点以及适合

<maximum-active-time>15000</maximum-active-time>   单位毫秒,当一个数据库的操作时间大于这个值,将给kill这个链接,控制台会出现如下信息:

WARN [ABC] proxool.default (ABC.java:149) - #0001 was  active for 324234 milliseconds and has been removed automaticaly. The  Thread responsible was named ‘Thread-1′, but the last SQL it performed  is unknown because the trace property is not enabled.

【参见:http://it.oyksoft.com/post/3983/】  。

 

=================================   

获取 DBConnection    如下:

==========================

package com.xc.tools;

import java.net.URL;
import java.sql.*;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import org.logicalcobwebs.proxool.admin.SnapshotIF;

public class DBConnection
{

  private static boolean initialized = false;

  private static int activeCount = 0;
  

public  Connection getConnection() throws SQLException
  {
    Connection connection = null;
    if (!initialized)
    {

      init();
    }

    connection = DriverManager.getConnection("proxool.phrConn");
    try
    {
      SnapshotIF snapshot = ProxoolFacade.getSnapshot("phrConn", true);
      int curActiveCount = snapshot.getActiveConnectionCount();// 获得活动连接数
      int availableCount = snapshot.getAvailableConnectionCount();// 获得可得到的连接数
      int maxCount = snapshot.getMaximumConnectionCount();// 获得总连接数
      if (curActiveCount != activeCount)// 当活动连接数变化时输出信息
      {
        System.out.println("----------------------------------");
        System.out
           .println(curActiveCount + "(active)  " + availableCount
               + "(available)  " + maxCount + "(max)");
        System.out.println("----------------------------------");
        activeCount = curActiveCount;
      }

    } catch (ProxoolException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    if (connection != null)
    {

      return connection;
    } else
    {
      throw new NullPointerException(
          "Didn‘t get connection, which probably means that no Driver accepted the URL");
    }

  }

  private static void init()
  {
    try {
		Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
    initialized = true;
  }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
proxool.xml 是一个配置文件,用于配置 Proxool 数据库连接池。Proxool 是一个开源的 Java 数据库连接池,它允许应用程序在运行时动态地管理数据库连接,以提高应用程序的性能和可靠性。 proxool.xml 文件包含以下信息: 1. 数据库驱动程序的类名和连接字符串。 2. 数据库连接池的配置信息,例如最大连接数、最小连接数、最大空闲时间等。 3. 用户名和密码等连接数据库所需的凭证信息。 proxool.xml 文件的示例代码如下: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE proxool PUBLIC "-//mikebob.net/proxool//DTD Proxool//EN" "proxool.dtd"> <proxool> <driver-url>jdbc:mysql://localhost/mydb</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user>myuser</user> <password>mypassword</password> <maximum-connection-count>50</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> <simultaneous-build-throttle>20</simultaneous-build-throttle> <house-keeping-test-sql>select 1</house-keeping-test-sql> <house-keeping-sleep-time>30000</house-keeping-sleep-time> </proxool> ``` 其中,`driver-url`、`driver-class`、`user`、`password` 分别表示数据库连接字符串、数据库驱动程序的类名、用户名和密码;`maximum-connection-count`、`minimum-connection-count` 分别表示连接池的最大连接数和最小连接数;`simultaneous-build-throttle` 表示同时建立连接的最大数目;`house-keeping-test-sql` 表示定期检查连接是否可用的 SQL 语句;`house-keeping-sleep-time` 表示定期检查连接的时间间隔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值