在为
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'.)