专注于Java EE平台、敏捷方法及Open Source技术咨询
+-------+-----------+------------------+ 5 rows in set (0.02 sec)
8.2.2 安装JDBC驱动和部署数据源
为将MySQL JDBC驱动供JBoss使用,用户需要将Connector/J发布版中的
mysql-connector-java-3.0.15-ga-bin.jar拷贝到default服务器配置中的lib目录(当然,用户必须在使用default服务器配置)。然后,在deploy目录创建称之为mysql-ds.xml的数据源配置。另外,相应的username和password在上述过程已经给出。
由于新加了jar文件到lib目录(译者注:default/lib)中,因此用户需要告知JBoss,因此如果在JBoss运行期间加入jar到lib目录,则需要重启JBoss服务器。 8.2.3 测试MySQL数据源
本章将使用CMP roster应用测试MySQL数据源。其中,唯一需要改变的是将类型映射从Hypersonic修改为MySQL。用户可以添加新的jbosscmp-jdbc.xml给EJB部署单元,或者修改全局默认conf/standardjbosscmp-jdbc.xml设置。当然,第二种方法更简单,因为不用重新打包应用。其缺点是,需要重启JBoss,否则修改不能够生效。编辑该文件,然后将datasource-mapping元素修改为mySQL。
www.open-v.com 拓宽视野,奔向成功
Open View, Victory Open
45 专注于Java EE平台、敏捷方法及Open Source技术咨询
重启JBoss后,用户应该能够部署应用,并同7.2节一样,查看表信息。同MySQL客
户端能够看到它们。
mysql> show tables;
+-----------------------------------+ | Tables_in_jboss | +-----------------------------------+
| LeagueBean | | PlayerBean | | PlayerBean_teams_TeamBean_players | | TeamBean | +-----------------------------------+ 4 rows in set (0.00 sec)
用户还能够看到JMS持久化数据库表也在这里,因为本书已经将MySQL作为默认数据源了。
8.3 设置Oracle9i的XADataSource
在商业数据库领域,Oracle是主要的竞争者之一。因此,大部分用户都会涉及到Oracle
供非商业目的使用。安装和配置Oracle的使用。用户可以通过http://www.oracle.com免费下载,
并不是很关键的问题。Oracle是功能强大的数据库,而且它还提供了很多额外的功能和技术(Apache Web服务器、多个JDK、ORB等等)。这些方面可能并不用户所需要的,但通常都会随Oracle数据库一同安装。因此,本书假定用户已安装了Oracle,比如,本文使用Oracle 10g。 8.3.1 出于Oracle兼容性而设置Pad值
如果用户查看default/conf目录中的jboss-service.xml文件,将发现如下MBean服务。
事务服务需要使用XidFactory MBean服务创建XA事务标识。其中的注释表明:如果使用Oracle数据库,则用户需要将属性Pad设置为true的那行也包括进来。这使得XA事务标识能够达到64位的最大长度。记得去重启JBoss应用服务器,否则修改不会生效。当然,还是等安装JDBC驱动后再说吧!
www.open-v.com 拓宽视野,奔向成功
Open View, Victory Open
46 专注于Java EE平台、敏捷方法及Open Source技术咨询
8.3.2 安装JDBC驱动和部署数据源
通过$ORACLE_HOME/jdbc/lib目录能够找到Oracle JDBC驱动。其中,用户可能都比
较熟悉旧版本的Oracle JDBC驱动,比如classes12.zip。在写作本书时,其最新版为ojdbc14.jar。同时,为解决Oracle JDBC使用过程中的一些问题,用户可以使用后缀为_g的调试版本。同样,用户需要将相应的jar文件拷贝到JBoss default配置的lib目录中。用于非XA的基本驱动类是oracle.jdbc.driver.OracleDriver。本书将使用的XADataSource类称之为oracle.jdbc.xa.client.OracleXADataSource。 用户需要拷贝一份oracle-xa-ds.xml配置文件,然后修改它,比如需要设置正确的URL、用户名、密码。
jdbc:oracle:thin:@monkeymachine:1521:jboss
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
本书使用了Oracle Thin(纯Java)驱动,并假定数据库运行在主机monkeymachine上。同时,数据库名(用Oracle行话说,就是SID)为jboss。本书还假定用户创建的jboss用户具有足够的权限。对于本实例而言,只需要给它赋予dba的权限。
SQL> connect / as sysdba Connected.
www.open-v.com 拓宽视野,奔向成功
Open View, Victory Open
47 专注于Java EE平台、敏捷方法及Open Source技术咨询
SQL> create user jboss identified by password; User created.
SQL> grant dba to jboss; Grant succeeded.
好了,请将配置文件拷贝到deploy目录。通过JBoss服务器控制台,用户应该可以看到
如下输出信息。
11:33:45,174 INFO [WrapperDataSourceService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=XAOracleDS,service=DataSourceBinding to JNDI name 'java:XAOracleDS'
同以前一样,如果用户从JMX控制台使用JNDIView MBean服务,将从列表中看到java:/XAOracleDS。 8.3.3 测试Oracle数据源
本节内容将再次使用CMP实例,以试用新创建的数据源。因此,用户需要将如下内容添加到jbosscmp-jdbc.xml文件中。
另外,还存在其他可用的Oracle类型映射。如果用户使用了旧版本的Oracle,则查看conf/standardjbosscmp-jdbc.xml文件能够找到相应的类型映射。同上一样,用户可以修改其默认取值,即为所有CMP部署应用设置全局值,而且用户不用重新打包EAR文件。 同以前部署应用一样,检查是否有错误信息输出。然后,使用Oracle SQL Plus工具再次验证是否有数据库表创建。
SQL> select table_name from user_tables;
TABLE_NAME ------------------------------ TEAMBEAN LEAGUEBEAN PLAYERBEAN
PLAYERBEAN_TEAMS_TEAM_1OFLZV8
www.open-v.com 拓宽视野,奔向成功
Open View, Victory Open
48 专注于Java EE平台、敏捷方法及Open Source技术咨询
www.open-v.com 拓宽视野,奔向成功
Open View, Victory Open
49