Jboss 中添加Oracle 的XA 數據源支持

  這方面的資料太少了, 最終在一個IBM的網頁上找到。html

  • 首先要先讓Oracle 打開XA功能,能夠經過如下幾步實現 :java

1) 在SQLPLUS必定要用這個工具 中,用Oracle 的系統管理員用戶 SYSOPERSYSDBA登陸你的數據庫(由於這個用戶能夠得到最多的訪問權限)。web

2)找到<Oracle 安裝目錄>\javavm\install 目錄下,有兩個腳本initxa.sql 和  initjvm.sql,將它們所在的完整路徑分別複製到已登陸的SQLPLUS環境下(注:在windows下目錄分隔符應由"\"改成"/")執行該腳本。格式如:@d :/initxa.sql 。 sql

 注意:當執行這兩個腳本時,可能會執行失敗,這時須要修改兩個Oracle的系統參數(文件放在<Oracle 裝目錄>\database\init<實例 SID>.ora)數據庫

參數名稱 最小值
java_pool_size
12000000
shared_pool_size
24000000

修改完後,須要從新啓動Oracle實例才能生效。windows

3) 設置當前數據庫訪問用戶的權限:oracle

grant select on DBA_PENDING_TRANSACTIONS to <當前用戶>
grant select on pending_trans$ to <當前用戶>; 
grant select on dba_2pc_pending to <當前用戶>;
grant execute on dbms_xa to <當前用戶>; --(若是使用Oracle 10.2.0.4 或高版本的JDBC driver時)

4) 從新啓動數據實例。app

5)用須要的操做用戶登陸數據庫驗證權限是否生效。jvm

  • JBOSS 實例端的設置工具

    1) 複製對應版本的數據庫的JDBC 驅動庫(.jar)文件到實例的LIB目錄下。

    2) 從JBOSS的XA樣例模板中複製一份Oracle 的XA配置 ,到對應的數據源配置文件中

  •   如:

  <xa-datasource>
    <jndi-name>jdbc/rrr</jndi-name>
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
	<xa-datasource-property name="URL">jdbc:oracle:thin:@xxxx:xxx:333</xa-datasource-property>
    <xa-datasource-property name="User">33</xa-datasource-property>
    <xa-datasource-property name="Password">22</xa-datasource-property>

    <min-pool-size>5</min-pool-size>
    <max-pool-size>20</max-pool-size>

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
    	<type-mapping>Oracle10g</type-mapping>
    </metadata>
  </xa-datasource>

 


       5) 這幾個過程是如何調用的,BURLESON大叔給你指點下!

相關文章
相關標籤/搜索