Jbossをスタンドアロンモードで実行し、standalone.xml
のデータソースを次のように設定しました。
<datasource jndi-name="MyDenaliDS" pool-name="MyDenaliDs_Pool" enabled="true" jta="true"
use-Java-context="true" use-ccm="true">
<connection-url>
jdbc:sqlserver://myip:1433;databaseName=mydb;integratedSecurity=true
</connection-url>
<driver>
sqljdbc
</driver>
<security>
<user-name>
username
</user-name>
<password>
password
</password>
</security>
</datasource>
<drivers>
<driver name="sqljdbc" module="com.Microsoft.sqlserver.jdbc">
<driver-class>
com.Microsoft.sqlserver.jdbc.SQLServerDataSource
</driver-class>
</driver>
</drivers>
フォルダ%jbosshome%\modules\com\Microsoft\sqlserver\jdbc\
にsqljdb4.jar
と次のmodule.xml
があります。
<?xml version="1.0" encoding="UTF-8"?>
<module name="com.Microsoft.sqlserver.jdbc" xmlns="urn:jboss:module:1.0">
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Jbossを起動すると、次のエラーが発生します。
> New missing/unsatisfied dependencies: service
> jboss.jdbc-driver.sqljdbc (missing)
誰かが私が間違ったことや私が欠けていることを知っていますか?
以前と同じエラーが発生しました
%jbosshome%\ modules\com\Microsoft\sqlserver\jdbc \の代わりに
%jbosshome%\ modules\com\Microsoft\sqlserver\jdbc\mainを試してください
そして、jdbcドライバーの.jarとmodule.xmlをその上に置きます。
jboss AS 7.1.1を使用し、モジュールを%jbosshome%\modules\com\Microsoft\sqlserver\jdbc\main
に配置するだけでなく、xmlにわずかな変更を加える必要がありました。standalone.xmlのドライバー要素は次のようになります。
<driver name="sqljdbc" module="com.Microsoft.sqlserver.jdbc">
<driver-class>
com.Microsoft.sqlserver.jdbc.SQLServerDriver
</driver-class>
</driver>
module.xmlは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft.sqlserver.jdbc">
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
Jboss 7.1.1では、モジュールを指定せずに動作させることができました。
Sqljdbc4.jarをデプロイメントディレクトリに配置するだけです:%JBOSSHOME%\ Standalone\deployments
Standalone.xmlのデータソースに必要な構成は次のとおりです。
<datasource jndi-name="Java:jboss/datasources/myPool" pool-name="myPool" enabled="true" use-Java-context="true">
<connection-url>jdbc:sqlserver://127.0.0.1:1433;databaseName=myName;</connection-url>
<driver>sqljdbc4.jar</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>myUser</user-name>
<password>myPassword</password>
</security>
<statement>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
この構成を使用しましたが、AS7で問題なく動作しました
<datasource jndi-name="Java:jboss/datasources/stagingDS" pool-name="stagingDS" enabled="true" use-Java-context="true">
<connection-url>jdbc:sqlserver://linp-sqlrpt-01;databaseName=pmdm</connection-url>
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver>sqlserver</driver>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
</datasource>
<drivers>
<driver name="sqlserver" module="com.Microsoft.jdbc">
<xa-datasource-class>com.Microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
</driver>
</drivers>
もちろん、分散データソースを使用していない場合は、以前に定義したように通常のドライバークラスを構成できます。
モジュールファイルは次のようになります。
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft.jdbc">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
管理コンソールでJDBCjarファイル(sqljdbc41.jarなど)をデプロイすると、新しいデータソースを定義するときにそれを選択して使用できるようになります。
これは私にとっての仕事です。 JBOSS 7では、MSSQL JDBCドライバー6、タイプ4、ファイル名:sqljdbc42.jar
以下の内容で同じディレクトリmodule.xmlの下に追加します
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft">
<resources>
<resource-root path="sqljdbc42.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.xml.bind.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
以下のように、ブロック<subsystem xmlns="urn:jboss:domain:datasources:4.0"> <datasources>
のstandalone.xmlにデータソース定義を挿入します
<datasource jta="true" jndi-name="Java:jboss/datasources/iwebDS" pool-name="MSSQLDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://172.24.17.52:1803;DatabaseName=iWeb_IWEBSIT</connection-url>
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver>sqlserver2008</driver>
<pool>
<min-pool-size>10</min-pool-size>
<initial-pool-size>10</initial-pool-size>
<max-pool-size>100</max-pool-size>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>[sqlserver user]</user-name>
<password>[sqlserver password]</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
</validation>
</datasource>
以下のように、ブロック<subsystem xmlns="urn:jboss:domain:datasources:4.0"> <drivers>
のstandalone.xmlにドライバー定義を挿入します
<driver name="sqlserver2008" module="com.Microsoft">
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
ps:「sqlserver2008」はあなたが望む名前です。