Glassfish 4连接池处理

时间:2017-04-05 10:55:23

标签: java jdbc glassfish-4

我正在尝试将应用程序从Glassfish 3.1.1.2迁移到Glassfish 4.0。 在此过程中,我想到了访问我们数据库的问题。

在注入jdbc资源时看起来像

@Resource(name = "jdbc/MyDBResource") 
private DataSource datasource;

Glassfish(或Java)给了我一个指向Derby JDBC池的DataSource(它被标记为默认的jdbc池)。 我发现这是为了在Glassfish 4上工作我需要包含一个包含jdbc池和jdbc资源定义的glassfish-resource.xml文件。我创建了该文件并将其添加到其中一个项目模块中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
        <jdbc-connection-pool 
         name="MyDBConnectionPool" 
         res-type="javax.sql.DataSource"
         datasource-classname="com.bla.bla.XYZDataSource"
         pool-resize-quantity="3" 
         max-pool-size="200" 
         steady-pool-size="0"
         statement-timeout-in-seconds="20" >
       <property name="serverName" value="db.url.com" />
       <property name="user" value="scottTheTiger" />
       <property name="password" value="theMightyPassword" />
     </jdbc-connection-pool>

    <jdbc-resource jndi-name="java:module/jdbc/MyDBResource" 
     pool-name="MyDBConnectionPool"/>
</resources>

我还将我的代码更改为指向新资源

@Resource(name = "java:module/jdbc/MyDBResource") 
private DataSource datasource;

工作正常。

在当前安装(Glassfish 3.1.1.2)中,使用管理控制台定义了连接池。我们有时需要调整连接池设置(大小,生存时间等)并可能刷新池。

我注意到,当我部署应用程序时,我通过xml文件添加的jdbc池和资源不会显示在管理控制台中,asadmin list-reource-refs命令也不会将它们包含在结果中。因此,如果我们需要更改池中的某些内容,有没有办法在不重新部署整个应用程序的情况下执行此操作?

0 个答案:

没有答案