级别: 中级 Dhanashri Kudgavkar, Informix 互操作性团队,India Software Lab, IBM Prasanna Alur Mathada, Informix 互操作性团队,India Software Lab, IBM Amitava Chakraborty, Informix 互操作性团队,India Software Lab, IBM
2009 年 8 月 31 日 您是否需要用稳定、容易安装和使用的应用服务器来开发和测试 J2EE 应用程序,同时需要用健壮、可靠、管理简便的数据库来提供出色的性能?如果是这样,WebSphere® Application Server Community Edition 和 IBM® Informix® Dynamic Server (IDS) 的组合就是最佳选择。WebSphere Application Server Community Edition 是在 Apache Software Foundation 的开放源码应用服务器项目 Apache Geronimo 和一种轻量级 Java™ 2 Platform 上构建的应用服务器。IDS 是一种战略性数据服务器,它提供出色的可伸缩性和在线事务处理 (OLTP) 性能,具有高可靠性,可以尽可能减少停机时间,提供强大的管理功能,管理成本非常低。本文介绍一个包含这两种产品的特性的三层体系结构。
本文已经针对 WebSphere Application Server Community Edition 2.1.1.1 和 IDS 11 进行了更新。
简介
WebSphere Application Server Community Edition 是一种开放源码的 Java EE 5 应用服务器,是在 Apache Geronimo server Version 2.1.3 和 Geronimo Eclipse Plugin (GEP) 2.1.3 上构建的。通过使用 Eclipse、Apache Tomcat 和 Apache Derby 数据库等开放源码应用程序,WebSphere Application Server Community Edition 为构建 Java 应用程序提供一个方便灵活的基础。WebSphere Application Server Community Edition 有助于快速开发和扩展应用程序。它提供基本安全性、简便的管理和手工应用程序部署。可以免费下载和使用这种产品的二进制代码和源代码。如果需要,还可以购买可选的 IBM 支持。
IDS 是一种可扩展的对象-关系数据库,支持随需计算、WebSphere 以及用 SQL、Dynamic SQL、C++ 和 Java 语言编写的 OLTP 数据管理应用程序,具有高可靠性和出色的性能。
WebSphere Application Server Community Edition 和 IDS 的特性
WebSphere Application Server Community Edition 的一些关键特性包括:
- 它包含一些最好的开放源码技术,比如 Apache Tomcat、Apache OpenEJB、Apache ActiveMQ、MX4J、TranQL、Apache Axis 和 HOWL (ObjectWeb)。
- 它包含一个 Eclipse 插件,让用户能够利用基于 Eclipse 技术的 Web 工具平台。通过使用这个插件和服务器适配器,用户可以使用 WTP (Web Tool Platform) 中的特性在 WebSphere Application Server Community Edition 中创建、部署和调试应用程序。
- WebSphere Application Server Community Edition 预先集成了一种健壮的内存占用量小的数据库服务器,Apache Derby。除此之外,它还为其他数据库提供驱动程序支持,包括 IDS、DB2 和 Oracle。
- 运行时定制允许在运行时有选择地启用和禁用组件,这有助于降低成本和提高性能。
- 在 WebSphere Application Server Community Edition 2.1 和更高版本中,用户可以采用以应用程序为中心的方式:用户识别出某一应用程序所需的功能组件,然后组装一个只包含这些组件的定制服务器,这样就可以得到轻量级的服务器映像。
- 以前的管理控制台是静态的,但是从 2.1 版开始,WAS CE 提供一个新的可扩展管理控制台。这个框架允许 Geronimo 插件开发人员用自己的组件扩展管理控制台。这些扩展称为 Admin Console Extensions (ACE),可以采用 .war 或 .car 形式。可扩展的管理控制台本身需要作为来自在线插件目录的插件安装。
- WAS CE 的新版本 (2.1.1.1) 中最重要的改进是,增加了用于 Informix Dynamic Server 和 MS SQL Server 2000/2005 的 TranQL XA 连接器。
IDS 的一些关键特性包括:
- 安全特性,比如:
- 基于标签的访问控制 (LBAC),这为数据库中的敏感数据提供新的访问控制方法
- 可插入的身份验证模块 (PAM),这允许根据询问/响应定制系统进入服务
- 列级加密,可以使用 DES 或 AES 等加密标准
- 安全套接字层 (SSL),这提供连网安全性
- 单点登录 (SSO),这有助于使用 Kerberos 身份验证协议通过集中的身份验证服务管理数据服务器访问
- 对 XA 事务和连接池的支持
- MACH11 特性,它提供简便的故障转移恢复,有助于确保业务操作的连续性
- 简便的管理,提供新的会话配置例程、新的管理 API、新的管理调度器和基于 PHP 的图形化管理工具 OpenAdmin Tool (OAT)
- 在跨服务器的分布式查询中支持 XML 发布和增强的数据类型
设置 IDS 和 WebSphere Application Server Community Edition
这种配置需要的前提条件包括:
- 应该安装 WebSphere Application Server Community Edition。
- 应该安装 IDS。
- 应该配置一个 IDS 实例并通过套接字连接运行。
- 应该在 WebSphere Application Server Community Edition 的存档存储库中添加 Informix JDBC 驱动程序存档文件。
把 WebSphere Application Server Community Edition 配置为使用 Informix JDBC 驱动程序
为了使用 IDS 作为 WebSphere Application Server Community Edition 的数据库服务器,首先应该安装 Informix JDBC 驱动程序存档和 IBM JCC 驱动程序存档。(关于 IBM JCC 驱动程序的更多信息,请参见 参考资料)。
- 通过选择 Start > Programs > IBM WebSphere > Application Server Community Edition > Administrative Console 启动管理控制台。使用预定义的用户名
system 和密码 manager 登录管理控制台。
- 使用管理控制台的 Repository 屏幕安装 Informix JDBC 驱动程序存档文件和 IBM JCC 驱动程序存档文件,从而把它们添加到现有的存档存储库中。(以后,在创建连接数据库所需的数据库池时,将选择这些 JAR 存档)。这需要在管理控制台左边的导航栏中选择 Services 下面的 Repository。在 Repository Viewer 中,指定下面给出的值(Informix JDBC 存档文件信息见图 1,IBM JCC 存档文件信息见图 2)。选择 Install 添加这些存档文件。
-
File:<ifxjdbc.jar 的绝对路径> / <ifxjdbcx.jar 的绝对路径> / <db2jcc.jar 的绝对路径>
-
Group:Informix
-
Artifact:JDBC / JCC
-
Version:<JDBC 驱动程序版本> / <JCC 驱动程序版本>
-
Type:JAR
图 1. 在存储库中添加 Informix JDBC 存档
图 2. 在存储库中添加 IBM JCC 存档
- 在成功地安装存档之后,Informix JDBC 驱动程序 jar 文件和 JCC 驱动程序 jar 文件的条目会出现在存档列表中,见图 3。
图 3. 存档存储库中添加的 Informix JDBC 驱动程序存档和 IBM JCC 驱动程序存档
创建新的数据库池
使用管理控制台创建新的数据库池。以后,可以在应用程序中使用这些数据库池连接数据库。创建新的数据库池的步骤如下:
- 在控制台左边的导航栏中选择 Database Pools,打开 Database Pools 屏幕(图 4)。
图 4. Database Pools 屏幕
(查看图 4 的 大视图)。
- 选择 Using the Geronimo database pool wizard 创建新的数据库池。下面的步骤说明如何为 Informix XA、DB2 XA 和 Other 数据库类型创建数据库池。
- 创建使用 Informix JDBC 驱动程序和 Informix XA 数据库类型的数据库池。如图 5 和下面的表格所示,在 Database Pool Creation 向导的第 1 步中,指定数据库池的名称并选择 Informix XA 作为数据库类型。
图 5. 为 Informix XA 数据库类型创建数据库池的第 1 步
字段描述
| 字段 | 描述 |
|---|
| Name of database pool | 应用程序用来引用这个数据库池的名称。数据库池名称应该是惟一的。 |
|---|
| Database type | 数据库的类型。 |
|---|
-
选择 Next 创建数据库池。
-
在编辑新数据库池的连接属性的屏幕上,填写图 6 和下面的表格所示的字段。
图 6. 数据库池的连接属性(数据库类型为 Informix XA)
字段描述
| 字段 | 描述 |
|---|
| Pool Name | 数据库池的名称。这个值是在向导的第 1 步中提供的。不需要修改它。 |
|---|
| Pool Type | 资源适配器,它取决于在向导的第 1 步中选择的数据库类型。在这个场景中,显示用于 Informix XA 数据库类型的 TranQL XA Resource Adapter for Informix。 |
|---|
| Driver JAR | 包含 JDBC 驱动程序类的 JAR 存储库。这一信息添加到数据库池的类路径中。这里的列表包含存储库或目录中的 JAR。对于 Informix,应该选择前面在存储库中添加的两个 JAR。 |
|---|
| Ifx SQL Host File | IfxSQLH_FILE 变量的值。 |
|---|
| User Name | 用来连接 Informix 数据库的登录名。 |
|---|
| Database Name | 要连接的 Informix 数据库的名称。 |
|---|
| Ifx SQL Host Type | IfxSQLH_TYPE 变量的值。
|
|---|
| Ifx Host | IDS 数据库所在的机器的主机名或 IP 地址。 |
|---|
| Ifx Protocol Trace | IfxPROTOCOLTRACE 变量的值。
|
|---|
| Ifx Protocol Trace File | IfxPROTOCOLTRACEFILE 变量的值。 |
|---|
| Server Name | 要连接的 IDS 服务器的名称。 |
|---|
| Password | 用来连接数据库的区分大小写的密码。 |
|---|
| Confirm Password | 再次输入密码以便确认。 |
|---|
| Port Number | 数据库服务器监听的网络端口号。 |
|---|
| Transaction Type | 这个连接池支持的事务类型。 |
|---|
- 保持其他字段的默认值,单击 Deploy 部署 JDBC 连接池。
- 创建使用 JCC 驱动程序和 DB2 XA 数据库类型的数据库池。如图 7 和下面的表格所示,在 Database Pool Creation 向导的第 1 步中,指定数据库池的名称并选择 DB2 XA 作为数据库类型。
图 7. 为 DB2 XA 数据库类型创建数据库池的第 1 步
字段描述
| 字段 | 描述 |
|---|
| Name of database pool | 应用程序用来引用这个数据库池的名称。数据库池名称应该是惟一的。 |
|---|
| Database type | 数据库的类型。 |
|---|
- 选择 Next 创建数据库池。
- 在编辑 DB2 XA 数据库池的连接属性的屏幕上,填写图 8 和下面的表格所示的字段。
图 8. 数据库池的连接属性(数据库类型为 DB2 XA)
(查看图 8 的 大视图)。
字段描述
| 字段 | 描述 |
|---|
| Pool Name | 数据库池的名称。这个值是在向导的第 1 步中提供的。不需要修改它。 |
|---|
| Pool Type | 资源适配器,它取决于在向导的第 1 步中选择的数据库类型。在这个场景中,显示用于 DB2 XA 数据库类型的 TranQL XA Resource Adapter for DB2。 |
|---|
| Driver JAR | 包含 JCC 驱动程序类的 JAR 存储库。这一信息添加到数据库池的类路径中。这里的列表包含存储库或目录中的 JAR。对于 DB2,应该选择前面在存储库中添加的 JCC JAR。
|
|---|
| User Name | 用来连接 DB2 数据库的登录名。 |
|---|
| Database Name | 要连接的 DB2 数据库的名称。 |
|---|
| Driver Type | 用来连接数据源的驱动程序类型。这个字段的值是 2 或 4。默认值是 4。 |
|---|
| Prepared Statement Cache Size | 这告诉驱动程序每个连接应该与多少个预备语句相关联。在默认情况下,不执行语句缓存。 |
|---|
| Trace File | 要插入记录的跟踪文件的名称。 |
|---|
| Server Name | 需要连接的 DB2 服务器的主机名或 IP 地址。
|
|---|
| Trace File Append | 指定记录是追加到跟踪文件中,还是覆盖跟踪文件。true 值意味着追加到跟踪文件中;false 意味着覆盖它。默认值是 false。 |
|---|
| Password | 用来连接数据库的区分大小写的密码。 |
|---|
| Confirm Password | 再次输入密码以便确认。 |
|---|
| Port Number | 数据库服务器监听的网络端口号。 |
|---|
| Transaction Type | 这个连接池支持的事务类型。 |
|---|
- 保持其他字段的默认值,单击 Deploy 部署 JCC 连接池。
- 创建使用 JCC 驱动程序和 Other 数据库类型的数据库池。如图 9 和下面的表格所示,在 Database Pool Creation 向导的第 1 步中,指定数据库池的名称并选择 Other 作为数据库类型。
图 9. 为 Other 数据库类型创建数据库池的第 1 步
字段描述
| 字段 | 描述 |
|---|
| Name of database pool | 应用程序用来引用这个数据库池的名称。数据库池名称应该是惟一的。 |
|---|
| Database type | 数据库的类型。 |
|---|
- 选择 Next 创建数据库池。
- 在 Database Pool Creation 向导的第 2 步中,填写图 10 和下面的表格所示的驱动程序和 JAR 配置参数。
图 10. 为 Other 数据库类型创建数据库池的第 2 步
字段描述
| 字段 | 描述 |
|---|
| JDBC Driver Class | JDBC CLASS 的值。对于 Informix,值应该是 com.ibm.db2.jcc.DB2Driver。
|
|---|
| Driver JAR | 包含 JCC 驱动程序类的 JAR 存储库。这一信息添加到数据库池的类路径中。这里的列表包含存储库或目录中的 JAR。对于 Informix,应该选择前面在存储库中添加的 JCC JAR。
|
|---|
| DB Username | 用来连接 Informix 数据库的登录名。 |
|---|
| DB Password | 用来连接数据库的区分大小写的密码。 |
|---|
| Confirm Password | 再次输入密码以便确认。 |
|---|
-
选择 Next 保存连接属性。
- 在 Database Pool Creation 向导的第 3 步中,填写图 11 和下面的表格所示的池配置参数。
图 11. 为 Other 数据库类型创建数据库池的第 3 步
字段描述
| 字段 | 描述 |
|---|
| JDBC Connect URL | 系统生成的 JDBC 连接 URL。要确认 URL 符合您的 JDBC 驱动程序的语法。
|
|---|
| Driver Status | 表示是否成功地装载了驱动程序。 |
|---|
| Transaction Type | 这个连接池支持的事务类型。 |
|---|
-
保持其他字段的默认值,单击屏幕底部的三个按钮之一:
- Test Connection —— 使用这个按钮测试数据库连接。连接成功之后,下一个屏幕提供这个数据库池的部署选项。
- Skip Test and Deploy —— 使用这个按钮部署数据库池,而不测试数据库当前是否可用。如果部署成功,控制台就返回到数据库池列表屏幕,新的池应该处于正在运行状态。
- Skip Test and Show Plan —— 使用这个按钮显示 Geronimo 对这个池使用的部署计划。计划是一个 XML 文件,可以在命令中使用它手工部署数据库池。
-
在成功地部署数据库池之后,它们会出现在 Database Pools 屏幕上,状态为正在运行,见图 12。
图 12. 部署 Informix JDBC 驱动程序存档和 IBM JCC 驱动程序存档之后的可用数据库池列表
(查看图 12 的 大视图)。
使用部署计划部署示例应用程序
使用部署计划并不是部署所有应用程序所必需的。但是,大多数应用程序需要解析资源引用,还需要为应用程序中的各个模块指定配置,因此需要部署计划。
部署计划包含在一个 XML 文件中。本文的 下载 部分包含三个示例部署计划。这些计划用于部署一个名为 DayTrader 的示例企业应用程序,这是一个交易应用程序,可以从 Apache Software Foundation 免费下载(见 参考资料)。第一个计划使用 JDBC 驱动程序连接 IDS 实例。另两个计划使用 JCC 驱动程序连接 IDS 实例。
WAS CE 2.1.1.1 有一个新的 TranQL XA 连接器 (tranql-connector-informix-xa-1.0.rar),它是专门为 Informix Dynamic Server 开发的。清单 1 是 dayTrader2.1-Informix-JDBC-XA-plan.xml 计划的片段。它演示这种新连接器的使用方法,以及使用 JDBC 驱动程序连接 IDS 所需的一些配置属性设置。
清单 1. dayTrader2.1-Informix-JDBC-XA-plan.xml 的片段
<connector>TradeDataSource</connector>
<external-path xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
<dep:groupId>org.tranql</dep:groupId>
<dep:artifactId>tranql-connector-informix-xa</dep:artifactId>
<dep:type>rar</dep:type>
</external-path>
<name>jdbc/TradeDataSource</name>
<config-property-setting name="Password">IDS4data</config-property-setting>
<config-property-setting name="UserName">informix</config-property-setting>
<config-property-setting name="DatabaseName">tradedb</config-property-setting>
<config-property-setting name="ServerName">ids1150</config-property-setting>
<config-property-setting name="PortNumber">16001</config-property-setting>
<config-property-setting name="IfxHost">lxvm-l15.lenexa.ibm.com</config-property-setting>
|
清单 2 是 dayTrader2.1-Informix-JCC_DB2-XA-plan.xml 计划的片段。它演示 JCC 驱动程序的使用方法。如果使用 JCC 而不是 JDBC,那么在创建数据库池时必须把数据库类型设置为 DB2 XA(见图 7)。另外,为了连接 IDS,部署计划需要包含与清单 2 相似的信息。
清单 2. dayTrader2.1-Informix-JCC_DB2-XA-plan.xml 的片段
<connector>TradeDataSource</connector>
<external-path xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
<dep:groupId>org.tranql</dep:groupId>
<dep:artifactId>tranql-connector-db2-xa</dep:artifactId>
<dep:type>rar</dep:type>
</external-path>
<name>jdbc/TradeDataSource</name>
<config-property-setting name="UserName">informix</config-property-setting>
<config-property-setting name="Password">inform123</config-property-setting>
<config-property-setting name="PortNumber">9089</config-property-setting>
<config-property-setting name="ServerName">9.122.208.100</config-property-setting>
<config-property-setting name="DatabaseName">tradedb</config-property-setting>
<config-property-setting name="DriverType">4</config-property-setting>
|
清单 3 是 dayTrader-IDS-JCC-OTHER-XA-plan.xml 计划的片段。在使用 JCC 驱动程序连接 IDS 时,也可以使用这个计划。如果要使用这个计划,那么在创建数据库池时必须把数据库类型设置为 Other(见图 9)。与另两个计划不同,这个计划还定义一个连接 URL。
清单 3. dayTrader-IDS-JCC-OTHER-XA-plan.xml 的片段
<connector>TradeDataSource</connector>
<external-path xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
<dep:groupId>org.tranql</dep:groupId>
<dep:artifactId>tranql-connector-ra</dep:artifactId>
<dep:type>rar</dep:type>
</external-path>
<name>jdbc/TradeDataSource</name>
<config-property-setting name="Password">IDS4data</config-property-setting>
<config-property-setting name="Driver">
com.ibm.db2.jcc.DB2Driver
</config-property-setting>
<config-property-setting name="UserName">informix</config-property-setting>
<config-property-setting name="ConnectionURL">j
dbc:db2://lxvm-l150.lenexa.ibm.com:16002/tradedb
</config-property-setting>
|
准备好部署计划之后,可以使用以下两种方法之一部署应用程序:
- 在 IDS 控制台中,导航到 Applications > Deploy New。这会打开图 13 所示的 Install New Application 屏幕。
图 13. 用 IDS 部署 DayTrader 应用程序
在 Archive 字段中,指定 DayTrader 应用程序的 .ear 文件。在 Plan 字段中,指定与所选驱动程序存档(JCC 或 JDBC)相关的计划文件。完成之后,选择 Install。如图 14 所示,Install New Application 屏幕显示消息,表示已经成功地部署和安装了这个应用程序。
图 14. 用 IDS 成功地部署了 DayTrader 应用程序
-
在命令提示上,把 geronimo_home 设置为 <WebSphere Application Server Community Edition 安装目录的绝对路径>,在 <geronimo_home>/bin 中执行以下命令安装 DayTrader:
deploy -<user> system -<password> manager deploy
<daytrader_home>\modules\ear\target\daytrader-ear-2.1.1.0.ear
<daytrader_home>\plans\dayTrader-Informix_JDBC_XA-plan.xml
|
其中的 <daytrader_home> 是 DayTrader 应用程序的根目录。
使用 XML 计划安装 DayTrader 之后,可以通过以下地址访问它:
http://<hostname>:<port>/daytrader.
为了开始交易,选择 Configure > (Re)- populate Trade Database。这会创建一组虚构的用户、股票、价格和其他参数。然后,就可以使用 DayTrader 应用程序进行模拟交易了。
结束语
IDS 是一种强大的关系数据库服务器,它提供了许多特性,可以帮助每个数据库用户(从应用程序用户到管理员)完成复杂的活动。WebSphere Application Server Community Edition 使用一些最出色的开放源码技术,让用户能够在 Web 服务器上简便快速地部署 Java 应用程序。本文解释了如何把 WebSphere Application Server Community Edition 配置为通过 JDBC 和 JCC 连接 IDS,还讨论了用户如何在这种环境中快速地部署 Java 应用程序。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| IDS 特有的计划文件 -11 | dayTrader2.1-Informix-JDBC-XA-plan.xml | 26KB | HTTP |
|---|
| IDS 特有的计划文件 - 22 | dayTrader2.1-Informix-JCC_DB2-XA-plan.xml | 26KB | HTTP |
|---|
| IDS 特有的计划文件 - 33 | dayTrader-IDS-JCC-OTHER-XA-plan.xml | 26KB | HTTP |
|---|
注意: - 这个 IDS 特有的计划文件使用 JDBC XA 驱动程序连接 IDS。
- 这个 IDS 特有的计划文件使用 JCC 驱动程序和 DB2 XA 适配器连接 IDS。
- 这个 IDS 特有的计划文件使用 JCC 驱动程序和通用适配器连接 IDS。
参考资料 学习
获得产品和技术
讨论
作者简介  | 
|  | Dhanshri Kudgavkar 在印度 ISL 的互操作性团队工作。她对于 IDS 的行为和特性有丰富的经验。 |
 | 
|  | Prasanna 是通过认证的 Informix 专业人员。他当前在印度 ISL 的互操作性团队工作。 |
 | 
|  | Amitava 从事各种 Informix 产品已经超过 8 年。当前,他担任 Informix 互操作性团队的负责人,负责确保 Informix 对其他主要产品的可伸缩性。 |
对本文的评价
|