由於最近在工作上,有需要協助他人建立JBoss EAP JNDI DataSource的事情發生,因此就想想來寫寫這主題好了。JBoss EAP也跟其他廠商的AP Server有Console介面可以操作建立Data Source,但是功能卻不太成熟,如果使用Console建立的話則會很難建立成功,所以可以查查Google看到的範例,大多是以直接修改設定檔的方式來建立。接下來將以MySql的XA DataSorce範例告訴各位建立的步驟
1.複製JDBC Driver與建立模組資料夾,JBoss EAP對引用外部的jar檔是以模組的方式進行,所以我們必須要將檔案複製到安裝目錄的模組資料夾內,如C:\JBoss安裝目錄\modules\system\layers\base建立com\mysql\jdbc\main階層的資料夾如下圖

2.編寫模組設定檔,建立module.xml檔案,檔案內容如下範例,注意name=”com.mysql.jdbc”這段內容,要與你放置於模組資料夾的位置相同
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql.jdbc">
<resources>
<resource-root path="mysql-connector-java-5.1.38-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
3.修改standalone.xml設定檔的datasources子系統,如下範例
<subsystem xmlns="urn:jboss:domain:datasources:4.0">
<datasources>
<!-- 以下是XA DataSource範例 -->
<xa-datasource jndi-name="java:/輸入JNDI名稱" pool-name="輸入Pool名稱" enabled="true" use-ccm="true">
<xa-datasource-property name="ServerName">
輸入主機名稱
</xa-datasource-property>
<xa-datasource-property name="DatabaseName">
輸入資料庫名稱
</xa-datasource-property>
<xa-datasource-property name="Port">
輸入使用連接port號
</xa-datasource-property>
<!-- driver的輸入要與最後面的driver名稱標記相同 -->
<driver>mysql</driver>
<security>
<user-name>輸入帳號</user-name>
<password>輸入密碼</password>
</security>
<validation>
<valid-connection-checker class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter" />
</validation>
</xa-datasource>
<drivers>
<!-- 此部分則是輸入第一、二步驟建立的模組名稱與JDBC Class Name -->
<driver name="mysql" module="com.mysql.jdbc">
<xa-datasource-class> com.mysql.jdbc.jdbc2.optional.MysqlXADataSource </xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
4.之後重新啟動server便可以看到JNDI DataSource已經設定完畢的訊息
|