1、JDBC提供者
WAS内置了MS SQL SERVER的驱动,所以JDBC的提供者你可以选择WAS内置的JDBC驱动.
配置参数如下:
提供者名称:
MS SQL SERVER(XA) (可以自己随便取)
类别路径:
${WAS_LIBS_DIR}/sqlserver.jar
${WAS_LIBS_DIR}/base.jar
${WAS_LIBS_DIR}/util.jar
${WAS_LIBS_DIR}/spy.jar
实现类别名称:
com.ibm.websphere.jdbcx.sqlserver.SQLServerDataSource
2、数据源的配置方法与其它DB的数据源配置方法无异。
可参考:http://www.blogjava.net/fastzch/archive/2006/12/03/85176.html
3、关键部分,配置你的SQL SERVER DB,使其支持XA方式。
(1)到下面这个地址下载SQL SERVER支持XA的驱动:
http://www.cnblogs.com/chinafine/admin/ftp://ftp.software.ibm.com/software/websphere/info/tools/DataDirect/datadirect.htm
也可以到MS的官方网站下载对应的驱动。
(2)下载后会有一个RAR包,将其解压,根据你的OS是32位还是64位来决定你要选用哪个sqljdbc.dll
将此文件放入SQL SERVER安装目录的BINN目录下。
(3)重启SQL SERVER DB。
(4)在Master数据库上运行RAR包中的instjdbc.sql这个SQL
/*
** INSTJDBC.SQL
** Installs XA stored procedures used by the JDBC driver
*/
go
use master
go
dump tran master with no_log
go
/*
** drop procedures if they're already in the database
*/
sp_dropextendedproc 'xp_jdbc_open'
go
sp_dropextendedproc 'xp_jdbc_open2'
go
sp_dropextendedproc 'xp_jdbc_close'
go
sp_dropextendedproc 'xp_jdbc_close2'
go
sp_dropextendedproc 'xp_jdbc_start'
go
sp_dropextendedproc 'xp_jdbc_start2'
go
sp_dropextendedproc 'xp_jdbc_end'
go
sp_dropextendedproc 'xp_jdbc_end2'
go
sp_dropextendedproc 'xp_jdbc_prepare'
go
sp_dropextendedproc 'xp_jdbc_prepare2'
go
sp_dropextendedproc 'xp_jdbc_commit'
go
sp_dropextendedproc 'xp_jdbc_commit2'
go
sp_dropextendedproc 'xp_jdbc_rollback'
go
sp_dropextendedproc 'xp_jdbc_rollback2'
go
sp_dropextendedproc 'xp_jdbc_forget'
go
sp_dropextendedproc 'xp_jdbc_forget2'
go
sp_dropextendedproc 'xp_jdbc_recover'
go
sp_dropextendedproc 'xp_jdbc_recover2'
go
dump tran master with no_log
go
/*
** add references for the stored procedures
*/
print 'creating JDBC XA procedures'
go
sp_addextendedproc 'xp_jdbc_open', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_open2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_close', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_close2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_start', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_start2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_end', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_end2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_prepare', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_prepare2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_commit', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_commit2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_rollback', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_rollback2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_forget', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_forget2', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_recover', 'sqljdbc.dll'
go
sp_addextendedproc 'xp_jdbc_recover2', 'sqljdbc.dll'
go
/*
** grant privileges so that all users can enlist in XA transactions
*/
grant execute on xp_jdbc_open to public
go
grant execute on xp_jdbc_open2 to public
go
grant execute on xp_jdbc_close to public
go
grant execute on xp_jdbc_close2 to public
go
grant execute on xp_jdbc_start to public
go
grant execute on xp_jdbc_start2 to public
go
grant execute on xp_jdbc_end to public
go
grant execute on xp_jdbc_end2 to public
go
grant execute on xp_jdbc_prepare to public
go
grant execute on xp_jdbc_prepare2 to public
go
grant execute on xp_jdbc_commit to public
go
grant execute on xp_jdbc_commit2 to public
go
grant execute on xp_jdbc_rollback to public
go
grant execute on xp_jdbc_rollback2 to public
go
grant execute on xp_jdbc_forget to public
go
grant execute on xp_jdbc_forget2 to public
go
grant execute on xp_jdbc_recover to public
go
grant execute on xp_jdbc_recover2 to public
go
print ''
print 'instxa.sql completed successfully.'
go
dump tran master with no_log
go
checkpoint
go
/**/
4、在控制面板的服务中,启动“Distributed Transaction Coordinator”服务。
此服务的作用如下:协调跨越多个资源管理员的交易,比如数据库、消息队列及文件系统。如果此服务被停止,这些交易将不会发生。如果服务被停用,任何明显依存它的服务将无法启动。
5、测试数据源:
完成!