IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Linux  >

为您的 Linux 应用开发加油提速: 在 Linux 上与 DB2 和 WebSphere 一起使用 EJB 持久性

开始在 iSereis 上使用用于 Linux 的 EJB 持久性

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Venkata Nagalla (nagalla@us.ibm.com), 电子商务架构师, IBM
Harlon Trowbridge (trowbri@us.ibm.com), 软件工程师, IBM

2004 年 5 月 01 日

本文所面向的读者是在 iSeries 利用 Linux 开发企业应用程序的开发人员,他们希望在 DB2/400 中用 EJB 持久性去创建并加载EJB 数据。您将学会在 iSeries DB2/400 中如何借助用于 EJB 持久性的 JDBC 提供者和数据源去配置用于 iSeries上 Linux 中的 WebSphere Application Server。您将创建一个 JDBC 提供者,创建一个 Java 2连接器(Java 2 Connector,J2C)认证数据条目,并在 iSeries DB2/400 中配置一个访问数据库的数据源。如果有问题、见解或寻求帮助,请访问我们的 技术支持讨论论坛

当您在使用基于组件的企业 Java beans(EJB)体系结构编写一个应用程序时,这个应用程序是可扩展的、可处理事务的而且是多用户安全的。您只需一次编写应用程序,然后就可以将它部署到任何一个支持企业 Java beans 规范的服务器平台上。

Java 2 企业版应用程序使用 EJB 实现服务器端事务组件,EJB 包括会话 beans 和实体 beans。 会话 beans描述的是事务服务,不在用户间共享。 实体 beans是描述持久数据的多用户、分布式事务处理对象。

开始之前


遵循“ 在 iSeries 上安装 Linux”或“ 在 pSeries 上安装 Linux”中的步骤在 iSeries 上的一个逻辑分区上安装 SuSE Linux Enterprise Server (SLES) 8。

遵循“ Installing DB2 for Linux on iSeries and pSeries”中的步骤在 iSeries 上安装并启动用于 Linux 的 DB2。您可以自 Windows 中使用虚拟网络处理(Virtual Network Computing,VNC)客户机 vncviewer 访问 iSeries 上的 Linux。请参阅那篇文章中的说明来使用 vncviewer。

遵循“ 在 iSeries 和 pSeries 上安装用于 WebSphere Application Server V5.0 for Linux”中的步骤安装 WebSphere Application Server V5.0.2。启动 server1,如下:


图 1. 启动 server1
启动 server1

用您的浏览器访问 http://SLES8WAS:9090/admn(用您的 iSeries 系统的名字代替这个例子中的 SLES8WAS)来启动 WebSphere 管理控制台。


图 2. 启动管理控制台
启动管理控制台

图 3. WebSphere 管理控制台
WebSphere 管理控制台




回页首


创建一个 JDBC 提供者


安装的应用程序使用 JDBC(Java Database Connectivity)提供者来访问数据库中的数据。下载 jt400.jar 文件并将其放入一个名为 /opt/jtopen 的目录中。JTOpen 是用于 Java 的 IBM 工具箱的一个开放源代码版本,它的更新频率比得到许可的程序版本更高。

在管理控制台中创建一个 JDBC 提供者:

  1. 在管理控制台拓扑树中,展开 Resources然后单击 JDBC Providers
  2. 在 JDBC Providers 页,指定 Server作为资源的范围。单击 Apply
  3. 单击 New
  4. 在 JDBC Providers 域,选择 DB2 UDB for iSeries (Toolbox) driver
  5. 单击 Apply
  6. 在 classpath 域,将 ${OS400_TOOLBOX_JDBC_DRIVER_PATH}/jt400.jar
    改为
    /opt/jtopen/jt400.jar。
  7. 单击 ApplyOK
  8. 单击工具栏上的 Save,保存配置。
  9. 再次单击 Save,用您的改变去更新主仓库(master repository)。

图 4. 创建一个 JDBC 提供者
创建一个 JDBC 提供者

图 5. 创建一个 JDBC 提供者(续)
示例图说明




回页首


创建一个 J2C 认证数据条目


Java 2 连接器(J2C)认证数据条目定义了您可以在源适配器和 JDBC 之间共享的认证数据。为创建一个 J2C 认证数据条目,需要做:

  1. 在管理控制台拓扑树中,展开 Security然后单击 J2C Authentication Data
  2. 单击 New
  3. 在 Alias 域中指定 johndoe/linuxauth
  4. 在 User Id 域中指定您的 iSeries userid。
  5. 在 Password 域中指定您的 iSeries 口令。
  6. 单击 OKApply。(没有对 user ID 和口令进行确认)
  7. 单击工具栏上的 Save,保存修改。
  8. 再次单击 Save,用您的改变去更新主仓库。

图 6. 创建一个 J2C 认证数据条目
创建一个 J2C 认证数据条目




回页首


配置一个数据源


创建了一个 JDBC 提供者后,就需要为这个提供者配置一个数据源,以使您的应用可以访问数据库中的数据。JDBC 提供者指定 JDBC 驱动程序实现类。为配置一个数据源,需要做:

  1. 在管理控制台的 JDBC Providers 页上,单击您想为其配置数据源的 DB2 UDB for iSeries (toolbox) JDBC 提供者。
  2. 在下一页,单击 Data Sources
  3. 在 Data Sources 页,单击 New
  4. 在 Name 域中指定 Default Datasource
  5. 在 JNDI Name 域中指定 DefaultDatasource

    注意:HitCount EJB 示例用 Default Datasource 作为 Data Source Name,用 DefaultDatasource 作为 JNDI Name

  6. 单击 Container managed persistence以在容器管理持久性(container managed persistence,CMP)中使用这个数据源。
  7. 在 Component-managed Authentication Alias 下的列表中选择 johndoe/linuxauth
  8. 在 Component-managed Authentication Alias 下的列表中选择 johndoe/linuxauth
  9. 单击 Apply
  10. 单击 Custom properties
  11. 单击 serverName
  12. 在 Value 域中,指定您的 iSeries 机器名。
  13. 单击 Apply
  14. 单击 libraries
  15. 在 Value 域中,指定 HITCOUNTDB
  16. 单击 Apply。
  17. 单击工具栏上的 Save,保存配置。
  18. 再次单击 Save,用您的改变更新主仓库。

图 7. 配置一个数据源
配置一个数据源

图 8. 配置一个数据源(续)
配置一个数据源(续)




回页首


测试数据源参数


在定义并保存了 Default Datasource 后,您可以使用 Test Connection 函数来确保数据源定义中的参数是正确的。

在管理控制台拓扑树中,展开 Resources并单击 JDBC Providers。选择 DB2 UDB for iSeries (Toolbox)Default Datasource然后单击 Test connection。如果您的配置是正确的,将在消息区域显示出如下的成功消息:


图 9. 成功的连接
成功的连接




回页首


运行 HitCount 示例应用程序


HitCount 示例应用程序计算一个页面被访问了多少次。这个应用程序包括一个 Java Servlet、一个 JavaServer Pages(JSP)文件和一个企业 bean。

HitCount 示例应用程序被安装为 WebSphere Application Server 例子的一部分,已经在 WebSphere Application Server 的默认实例中运行。它通常用来确认您的应用程序服务器是否已经正确设置。这个附带的示例当前通过 Deafault Datasource 使用 Cloudscape 数据库。在 配置一个数据源步骤中,我们在 DB2 UDB for iSeries (Toolbox) JDBC Providers 下创建了 Default Datasource。

创建 HitCount 需要的数据库表


您必须创建 HitCount 示例应用程序所需要的底层数据库表。当使用应用程序装配工具将 bean 打包到 EJB 模块中时,已经为每个实体企业 bean 创建了一个数据定义语言(Data Definition Language,DDL)脚本。这个 DDL 脚本称为 Table.ddl,当它打包到 EJB 模块中后存储在企业 bean 的 JAR 文件中。这个 DDL 脚本中包含了为实体 bean 创建底层数据库表所需要的命令。Table.ddl 如下:

Table.ddl
                        
CREATE COLLECTION HITCOUNTDB;                        
CREATE TABLE HITCOUNTDB/INCREMENT 
   (PRIMARYKEY VARCHAR(250) NOT NULL, THEVALUE INTEGER NOT NULL);
                

运行 Table.ddl 脚本:

  1. 启动 iSeries Navigator(导航器)。
  2. 展开您要创建数据库文件的系统的 iSeries 图标。
  3. 展开 Database,然后在系统数据库上右击。
  4. 选择 Run SQL Scripts...
  5. 选择 File > Open
  6. 将类型视图的 Files 改变为 All Files ("*.*")
  7. 导航到 Table.ddl 文件。
  8. 选择 Run > All来运行脚本中的所有命令。
  9. 选择 View -> Job Log...,确认数据库表已经成功创建。
  10. 选择 File > Save,保存文件。
  11. 退出 Run SQL Scripts 应用程序。
  12. 退出 iSereis Navigator。

对 HitCount 示例应用程序和数据库表来说,最简单的就是将数据库表授权给所有用户。在 iSeries 服务器命令行中运行下面的命令,为所有用户将权限改变为 *ALL

OBJ(HITCOUNTDB) OBJTYPE(*LIB) USER(*PUBLIC) AUT(*ALL)
GRTOBJAUT OBJ(HITCOUNTDB/*ALL) OBJTYPE(*ALL) USER(*PUBLIC) AUT(*ALL)

运行 HitCount 示例


在您的浏览器中访问 http://SLES8WAS:9080/HitCount.jsp(用您的 iSeries 系统的名字代替这个例子中的 SLES8WAS),如下:


图 10. 运行 HitCount 示例 - EJB(CMP)
运行 HitCount 示例 - EJB(CMP)

在 Select a method of execution 下选择 Enterprise Java Bean (CMP),然后单击 Increment,然后您将看到下面的结果:


图 11. 运行 HitCount 示例 - EJB(CMP),续
运行 HitCount 示例 - EJB(CMP),续


参考资料



作者简介

Venkata Nagalla

Venkata Nagalla 是 IBM Developer Relations Technical Consulting(位于美国得克萨斯州奥斯汀市)的一位高级电子商务架构师。Venkata 的工作对象是 IBM 的商务伙伴 —— 范围从刚建立的小公司到大型公司 —— 激励(excite)、宣传(evangelize)、教育(educate)并帮助他们去使用 IBM 电子商务平台。Venkata 在 IBM 有 19 年的软件工作领域经验。他所专长的方面包括面向对象设计和开发,以及最近的 IBM WebSphere Business Components。您可以通过 nagalla@us.ibm.com 与 Venkata 联系。


Harlon Trowbridge

Harlon Trowbridge 是 IBM Developer Relations Technical Support and Services 组织(位于美国得克萨斯州奥斯汀市)的一名咨询软件工程师。他曾经从事过 S/38 和 AS/400 的工作,有 23 年多 iSeries 工作经验,他已经为 IBM 工作了 13 年多,为使用 iSeries 软件的 IBM 商务伙伴提供技术授权与咨询。Harlon 当前管理着用于 iSeries 上的 Linux 的测试驱动(Test Drive)程序的系统,他的专长是 LPAR 配置、网络和 Linux 在 iSeries 上的安装与设置。您可以通过 trowbri@us.ibm.com 与 Harlon 联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款