5

我正在使用服务器的管理控制台为 GlassFish 创建一个 JDBC 连接池资源。

页面上用于创建池的字段之一标记为“资源类型”。该字段有四个可能的值:javax.sql.DataSource、javax.sql.XADataSource、javax.sql.ConnectionPoolDataSource 和 javax.sql.Driver,但创建 JDBC 连接池“向导”的帮助文本没有太多关于这些选择的优点和缺点。

当提示选择我应该选择的资源类型时?

我将连接到本地 MySQL 服务器。最好也能解释下拉菜单中的选项之间的差异。

在此处输入图像描述

4

1 回答 1

6

以下是您需要列出的每种资源类型的场景。希望这可以帮助。

DataSource DataSource DataSource 对象是 Connection 对象的工厂。使用简单数据源时,appserver 使用自己的池而不是原生的。

ConnectionPoolDataSource ConnectionPoolDataSource 对象是 PooledConnection 对象的工厂。ConnectionPoolDataSource 用于授予对通过 JDBC 驱动程序实现本机池的 PooledConnection 的访问权限。在这种情况下,应用服务器可以使用本机接口实现连接池。请参阅Java API以了解 PooledConnection 是什么... ConnectionPoolDataSource 可以使用第三方实现进行池化——据我所知,对于 Tomcat,例如使用 DBCP 连接池。

XADataSource 如果要执行分布式事务,则需要 XADataSource。如果应用程序应该使用 XADataSource 而不是 DataSource

  • 使用 Java 事务 API (JTA)
  • 在单个事务中包括多个数据库更新
  • 在事务期间访问多个资源,例如数据库和 Java 消息服务 (JMS)
于 2012-04-08T13:32:03.947 回答