中间件
Application Server
最初发布时间:2004 年 11 月 1 日
最后更新时间:2006 年 1 月 16 日
作者:Frances Zhao
本演示展示了如何配置 OC4J 的托管数据源和原生数据源,并用 JSP 代码测试了与已配置数据源的连接。
OC4J 10.1.3 提供了简化的数据源分类,只有两种类型的数据源:托管和原生。托管数据源是由 OC4J 管理的数据源。托管数据源是 OC4J 提供的 java.sql.DataSource 接口实现,充当 JDBC 驱动程序或数据源的包装。
托管数据源与原生数据源的不同之处如下:
原生数据源实现 java.sql.DataSource 接口,并且由 JDBC 驱动程序供应商提供。
本演示要求安装并正确配置以下软件组件:
与以前的 OC4J 版本一样,OC4J 10.1.3 数据源仍然在应用程序的 data-sources.xml 文件中定义。所有应用程序的默认数据源配置文件仍然位于 %ORACLE_HOME%/j2ee/home/config/data-sources.xml 中。
要定义数据源,您可以直接编辑数据源配置文件,也可以使用企业管理器创建、删除和修改数据源。此方法文档仅说明了第一个方法。
托管数据源使用连接池有效地管理连接。如果使用托管数据源,则必须至少定义一个连接池。下面是该方法文档中的示例定义:
<connection-pool name="Pool Using DataSource Factory">
<connection-factory
factory-class="oracle.jdbc.pool.OracleDataSource"
user="scott"
password="tiger"
url="jdbc:oracle:thin:@//dbhost:1521/dbservicename">
</connection-factory>
</connection-pool>
连接池元素包含一个唯一标识该连接池的名称属性。连接池使用连接工厂(由连接工厂元素定义)获得数据库的物理连接。
连接工厂元素包含 JDBC 驱动程序用于连接到数据库的 URL,以及可用于获取数据库连接的默认用户和密码。工厂类属性定义 JDBC 驱动程序提供的实现类,该实现类用于获取连接。实现类必须是 java.sql.Driver、javax.sql.DataSource、javax.sql.XADataSource 或 javax.sql.ConnectionPoolDataSource 的一个实现。
至少定义了一个连接池以后,您就可以定义托管数据源了。以下是本方法文档中的托管数据源示例,它使用了上面定义的连接池:
<managed-data-source
name="OracleManagedDS2"
connection-pool-name="Pool Using DataSource Factory"
jndi-name="jdbc/OracleManagedDS2"/>
name 属性唯一标识托管数据源。jndi-name 属性定义该数据源将放置在 JNDI 中的位置。connection-pool-name 属性标识该托管数据源将与之交互以获得连接的连接池。
原生数据源没有连接池依赖性。下面是一个原生数据源示例:
<native-data-source
name="OracleNativeDS"
jndi-name="jdbc/OracleNativeDS"
description="Native DataSource"
data-source-class="oracle.jdbc.pool.OracleDataSource"
user="scott"
password="tiger"
url="jdbc:oracle:thin:@//dbhost:1521/dbservicename">
</native-data-source>
name 属性唯一标识原生数据源。jndi-name 属性定义该数据源将放置在 JNDI 中的位置。data-source-class 定义原生数据源的实现类,并且必须是 javax.sql.DataSource 的一个实现。user 和 password 属性定义默认用户和密码。url 属性定义数据源用于与数据库进行通信的 url。
一旦数据源配置完毕,您仍然以与先前 OC4J 版本中相同的方式使用它们。以下是此方法文档的 JSP 代码中的示例:
InitialContext ic = new InitialContext();
DataSource nativeDS =
(DataSource) ic.lookup("jdbc/OracleNativeDS");
Connection nativeDSConn = nativeDS.getConnection();
为此方法文档配置了四个数据源。请参阅随附的 %HOWTO_HOME%/etc/data-sources.xml 以获得详细信息。
以下说明适用于在 Oracle Containers for J2EE 10g (10.1.3) 的独立实例上运行本演示。
请检查以确保 ant-oracle.properties 文件(位于该示例分发的根目录下)中的以下属性配置正确(注意:其中某些属性将是下述环境变量的默认值。如果您在环境中设置这些变量,可能不必改变文件中的值)。如果必要,则针对您的环境将这些变量修改为适当的值:
该演示要求 Oracle 数据库和监听程序处于运行状态。记下所使用的主机名、端口号和服务名称 — 您需要使用这些信息修改 %HOWTO_HOME%/etc/data-sources.xml。
独立安装: %ORACLE_HOME%/bin/oc4j start
注意,该 oc4j 命令期望 JAVA_HOME 环境变量指向一个完整的 JDK 安装。
受 OracleAS 管理的安装: %ORACLE_HOME%/opmn/bin/opmnctl startall
确保在您的计算机上安装并正确配置了 Ant 1.6.2 或更高版本。在某些操作系统上,Ant 当前不支持使用环境变量。如果您使用的正好是这种操作系统,则要修改位于顶层 %HOWTO_HOME% 目录中的 common.xml 文件。
此外,请确保与 OC4J ant 分发关联的 ant 命令位于您的执行路径 ( %ORACLE_HOME%/ant/bin) 中。
在顶层 %HOWTO_HOME% 目录中,键入命令:
%HOWTO_HOME%/dist 目录中现在应包含新创建的 datasource_demo.ear。
如果构建成功,此命令还将尝试部署此应用程序。它将首先测试 OC4J 是否正在运行。
还可以使用以下命令分别部署应用程序。确保定义了 %ORACLE_HOME% 环境变量。在顶层 %HOWTO_HOME% 目录中,键入命令:
在浏览器窗口中,浏览到:
如果网站的主机名或端口号不同,则用实际值替换。
对于每个数据源,单击关联的按钮会调用一个 JSP,以尝试从该数据源获取连接。将出现一个新页面指示是否成功获取连接,或者发生异常。新页面上应该有一个返回链接,可以将您转回到起始页。
在本文档中,您了解了:
热门下载 | ||