JBoss3.x和4.x下配SqlServer JDBC驱动
在为JBoss配置Hibernate的时候发现的问题和心得,拿出来共享一下.
1. 使用微软的SQLSERVER2000驱动,为三个文件mssqlserver.jar ,msutil.jar和 mbase.jar,copy至server\default\lib下.
2. 设置mssql-ds.xml,具体设置方法参见jboss说明文档.我们可以在\docs\examples\jca下找到默认的各种对应数据库配置文件模板. mssql-ds.xml为:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name> <connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>x</user-name>
<password>y</password>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
修改对应的属性,一般修改jndi-name ,onnection-url, user-name, password.
将修改好的mssql-ds.xml拷贝到server\default\deploy目录下并删除默认的hsqldb-ds.xml
3. 设置server\default\conf目录下standardjws.xml和 standardjbosscmp-jdbc.xml中Jndi name和type-mapping :
standardjbosscmp-jdbc.xml中:
修改<datasource>java:/MSSQLDS</datasource>
加入<datasource-mapping>MS SQLSERVER2000</datasource-mapping>
standardjws.xml中
修改<datasource>java:/MSSQLDS</datasource>
<type-mapping>MS SQLSERVER2000</type-mapping>
4. 配置JMS:
这里JBoss3.x 和 4.x有些区别
在3.x中拷贝mssql-jdbc2.xml到defult/deploy/jms/文件夹下,并删除默认的hsqldb-jdbc2.xml
在4.x中拷贝mssql-jdbc2-service.xml 到defult\deploy-hasingleton\jms 文件夹下并删除默认的hsqldb-jdbc2-service.xml.
mssql-jdbc2.xml和mssql-jdbc2-service.xml均能在docs\examples\jms中找到模板
如果没有这个设置,就会报关于JMS_MESSAGES的异常:
org.jboss.mq.SpyJMSException: Could not resolve uncommited transactions. Message recovery may not be accurate; - nested throwable: (java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]SELECT permission denied on object 'JMS_MESSAGES', database 'test'.)