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

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>
<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>
</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不用因为服务器已经替你封装好了

 




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折腾数据折腾代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值