普元产品开发的企业级应用,一般都会使用数据库。在运行环境中,会通过数据源连接池访问数据库。由于存在各种原因,如网络不稳定或暂时中断,会造成数据库连接池中的连接失效,因此,数据库连接池一般需要有数据库重连功能,在数据库连接中断后重新连接数据库。
对于Tomcat、PAS服务器,普元提供了C3P0数据源,默认具有数据库重连功能的。其他应用服务器由于使用的是JNDI数据源,就是使用应用服务器的数据源来实现数据库自动重连。
下面分别描述普元产品支持的其他几种应用服务器的数据源的自动重连设置。
1、JBoss连接池的自动重连
JBoss连接池默认没有设置成自动重连,要设置,需要修改数据源配置文件。
<jboss_home>/default/deploy/DefaultDataSource-ds.xml (这是普元产品默认安装的一个数据源配置文件)。
对这个文件要做如下修改:
1)增加失效连接检查类配置,如下:
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
< /exception-sorter-class-name>
这个类用来检查连接池中的失效连接,就是连接池中已经和数据库中断的,无效的连接,检查出后,将失效连接移除出连接池,防止用户获取到无效连接。这样,一旦断网了无效的连接会都移出连接池,如果网络恢复,用户就不会获取到无效连接,连接池会重新获取新的数据库连接。
上面的例子针对的是使用的Oracle数据库的,如果针对其他数据库,需要用到的类如下:
数据库类型
类名
Oracle
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
DB2
org.jboss.resource.adapter.jdbc.vendor. DB2ExceptionSorter
SQL Server
不需要配置,默认支持
Sybase
org.jboss.resource.adapter.jdbc.vendor. SybaseExceptionSorter
Informix