JBOSS设置数据源和测试页面-jboss5.0.1

来源:互联网 发布:广州用友软件 编辑:程序博客网 时间:2024/05/29 11:22

http://www.miotour.com/2010/06/11/jboss%E8%AE%BE%E7%BD%AE%E6%95%B0%E6%8D%AE%E6%BA%90%E5%92%8C%E6%B5%8B%E8%AF%95%E9%A1%B5%E9%9D%A2/

 

 

 

 

 

JBOSS设置数据源和测试页面-jboss5.0.1

步骤:

1,设置数据源配置文件

2,添加数据库驱动程序到jboss的lib包中,在jboss_home/server/xxxx/lib/下

3,测试数据库连接,如果命名为miotour,那么使用中就是java:/miotour

DataSource ds =(DataSource)ctx.lookup(“java:/miotour”);

首先,需要说明的是,Jboss的数据源有两种。



 

从截图中可以看到,在数据源的部分有两种类型的数据源。

local-tx-datasource

no-tx-datasource

xa-datasource

 Jboss的docs/examples/jca中有各种数据库的数据源配置模版

数据源配置文件总是以*-ds.xml文件命名

local-tx-datasource—–仅支持本地事务

这是最常用的,配置LocalTxConnectionManager服务,该ConnectionManager只支持“本地事 务”,确切的说,只支持一个数据源的事务,不支持分布事务,本地不是说数据源指定的数据库在本地,可以在任何地方,但local-tx- datasource不能在一个事务中访问两个数据源,即使这两个数据源配置是一样的。

xa-datasource—–分布式事务

该数据源配置XATxConnectionManager服务。XA事务也就是通常所说的分布式事务。在一个事务中可以有多个资源(如数据源),但 这些资源必须能够支持XA事务,支持XA事务的数据库在docs/examples/jca目录中都有一个xa-ds.xml文件

所以,我给大家提供一个local-tx-datasource的默认配置文件。

下载地址:http://download.miotour.com/jboss/dataosource/miotour-ds.zip

下载地址:http://download.miotour.com/jboss/dataosource/test.zip

配置文件:除去红色部分需要设置外,其余都是Jboss自动添加

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<datasources>
<local-tx-datasource>
<jndi-name>miotour</jndi-name>
<rar-name>jboss-local-jdbc.rar</rar-name>
<use-java-context>true</use-java-context>
<connection-definition>javax.sql.DataSource</connection-definition>
<jmx-invoker-name>jboss:service=invoker,type=jrmp</jmx-invoker-name>
<min-pool-size>0</min-pool-size>
<max-pool-size>10</max-pool-size>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
<prefill>false</prefill>
<background-validation>false</background-validation>
<background-validation-millis>0</background-validation-millis>
<validate-on-match>true</validate-on-match>
<statistics-formatter>org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter</statistics-formatter>
<isSameRM-override-value>false</isSameRM-override-value>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>5000</allocation-retry-wait-millis>
<security-domain xsi:type=”securityMetaData” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”/>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
<type-mapping>Oracle9i</type-mapping>
<local-transaction/>
<user-name>miotour</user-name>
<password>miotour</password>
<check-valid-connection-sql>SELECT * FROM DUAL</check-valid-connection-sql>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
<set-tx-query-timeout>false</set-tx-query-timeout>
<query-timeout>0</query-timeout>
<use-try-lock>60000</use-try-lock>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@10.10.10.10:1521:miotour</connection-url>
</local-tx-datasource>
</datasources>

2,测试数据库的文件

<%@ page contentType=”text/html;charset=utf-8″%>

<%@ page import=”java.sql.*”%>

<%@ page import=”javax.sql.*”%>

<%@ page import=”javax.naming.*”%>

<html>

<body>

<%  Context ctx = new InitialContext();

Connection conn=null;

ctx = new InitialContext();

DataSource ds =(DataSource)ctx.lookup(“java:/miotour”);

conn = ds.getConnection();

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql=”select * from vender”;

ResultSet rs=stmt.executeQuery(sql);

%>

<%  while(rs.next()) {

out.println(rs.getString(1));

out.println(rs.getString(2));

out.println(rs.getString(3));

}

%>

<% out.print(“successed!”);

rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

 

 

 

 

 

 

 

 

 

spring配置文件中

    <!--在mysql-ds.xml中设置use-java-context为false后,注意没有前缀java:-->
    <
jee:jndi-lookup id="dataSource" jndi-name="dabase1" />
    
<bean id="txManager"
        class
="org.springframework.transaction.jta.JtaTransactionManager">
       <!--手动注入,否则会报transactionmanager not bound-->
        
<property name="transactionManagerName" value="java:/TransactionManager"/>
    
</bean>

 


 

conf/standardjbosscmp-jdbc.xml  里的 

<defaults>
      <datasource>java:/configuration_db</datasource>

也要改成

<defaults>
      <datasource>configuration_db</datasource>

 

 

 

遗留问题:
如果使用默认设置use-java-context为true,然后使用jndi name为java:数据源名,很奇怪,在jboss项目启动有错误

在tomcat中要换回 java:/数据源名

 

 

 

 

 

 

 

在spring容器中使用jndi的获得数据库连接的配置中,tomcat要加前缀java:comp/env/,而websphere不用

 

websphere没用过,他和jboss都属于应用服务器.tomcat只是一个web容器!一个应用服务器可以包含很多容器.
websphere不用因为服务器已经替你封装好了

 




 

原创粉丝点击