การ Config Datasource บน JBoss AS7/JBoss EAP 6.x

หลังจากมีโอกาสมาใช้งาน JBoss EAP 6.3 แล้วต้องการกำหนด Datasource สำหรับ MySQL เพื่อทดสอบการใช้งาน Hibernate ทำให้รู้ว่าขั้นตอนในการกำหนด Datasource นั้นแตกต่างจาก JBoss AS 5.x, 6.x พอสมควรเลยขอบันทึกไว้เป็นขั้นตอนดังนี้
1. ทำการ Config Library ก่อนดังต่อไปนี้

1.1 ทำการสร้าง module ขึ้นมาเพื่อ load JDBC Driver ก่อน โดยเข้าไปที่ [jboss-home]\modules
1.2 สร้าง folder com/mysql/main แล้วทำการ copy mysql-connector-java-.jar มาไว้ที่ path นี้
1.3 สร้างไฟล์module.xml โดยมีเนื้อหาดังนี้

			<?xml version="1.0" encoding="UTF-8"?>
			<module xmlns="urn:jboss:module:1.1" name="com.mysql">
				<resources>
					<resource-root path="mysql-connector-java-5.1.30-bin.jar"/>
				</resources>
				<dependencies>
					<module name="javax.api"/>
					<module name="javax.transaction.api"/>  
				</dependencies>
			</module>
		

ส่วนที่สำคัญคือ
name : คื่อส่วน path ตาม Folder ที่สร้างไว้ (ตัด main ออก) ตามตัวอย่างคือ com/mysql/main จะกำหนดเป็น “com.mysql”
resource-root : คือชื่ือ Jar File ที่เราเอามาวางไว้ภายใต้ path com/mysql/main
dependencies : Module library ที่เกี่ยวข้อง เพื่อให้ JBoss load ขึ้นมาด้วย
1.4 บันทึกไฟล์

2. ทำการ Config Datasource

2.1 ทำการแก้ไข [jboss-home]\standalone\configuration\standalone.xml เพื่อทำการเพิ่ม Driver และ Datasource (หาก เลือก profile ในการ deploy ที่ไม่ใช่ standalone.xml ให้แก้ไขตาม profile นั้นๆ)
2.2 ไปที่ section

		<subsystem xmlns="urn:jboss:domain:datasources:1.2">
            <datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>
		

แล้วทำการเพิ่ม MySQL Driver และ Datasource เป็นดังนี้

        <subsystem xmlns="urn:jboss:domain:datasources:1.2">
            <datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <datasource jta="false" jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="false" use-ccm="false">
                    <connection-url>jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8</connection-url>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <driver>mysql</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>password</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                    <driver name="mysql" module="com.mysql">
                        <driver-class>com.mysql.jdbc.Driver</driver-class>
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>
		

2.3 ทำการ Stop/Start หรือ Restart JBoss Server ก็สามารถใช้งาน JNDI Datasource ที่สร้างได้แล้ว
หมายเหตุ : ชื่อ jndi-name ต้องขึ้นต้นด้วย java:/ หรือ java:jboss/ เท่านั้น

3. ทำการ Config Datasource ผ่านหน้าจอ Admin console

3.1 จากข้อ 2 หากไม่ต้องการกำหนด Datasource ในไฟล์ standalone.xml สามารถกำหนดผ่านหน้าจอ Admin console ดังต่อไปนี้ (แต่ต้องทำข้อ 2.1, 2.2 เสร็จสิ้นแล้ว)
3.2 หลังจากทำข้อ 2.1, 2.2 เสร็จแล้วให้ทำการ Start server ขึ้นมาแล้วไปยัง http://localhost:/ จากนั้นจะเจอหน้าจอดังรูป
jboss-eap-6-datasource-001
3.3 ทำการ login เข้ามาจะได้หน้าจอดังรูป (หากยังไม่มี username/password ให้ไปทำการเพิ่มก่อน)
jboss-eap-6-datasource-002
3.4 ใน Section Create Datasource คลิกเลือก Datasource จะได้หน้าจอดังรูป
jboss-eap-6-datasource-003
3.5 คลิก Add จะได้หน้าจอ popup ให้กรอกข้อมูลดังรูป แล้วทำการกำหนด Name และ JNDI Name
jboss-eap-6-datasource-004
3.6 คลิก Next แล้วทำการเลือก Driver ที่ทำการสร้างในขั้นตอนที่ 2.2
jboss-eap-6-datasource-005
3.7 คลิก Next แล้วทำการกำหนดข้อมูลต่างๆ เช่น Connection URL, User, password
jboss-eap-6-datasource-006
3.8 คลิก Test Connection หากไม่มีปัญหาจะได้ดังรูป
jboss-eap-6-datasource-007
3.9 จากนั้นคลิกปุ่ม Done จะกลับมายังหน้าจอ Datasource ดังรูป
jboss-eap-6-datasource-008
หาก Datasource ที่สร้างมายังไม่ Enable ให้ทำการ Enable

แหล่งข้อมูลอ้างอิง
Jboss Datasource Configuration

  1. No comments yet.

  1. No trackbacks yet.