王朝网络
分享
 
 
 

jboss-3.2.0_tomcat-4.1.24 连接池配置方法

王朝system·作者佚名  2008-05-31
宽屏版  字体: |||超大  

<Html><p>

jboss_tomcat的整合版就不介绍怎么去下载了,很好找的。

我这里下载的是jboss-3.2.0_tomcat-4.1.24

那么废话少说,直接进入主题:

首先查看文件:jboss_tomcatserverdefaultdeployhsqldb-ds.XML 中的配置:

<?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================== -->

<!-- -->

<!-- JBoss Server Configuration -->

<!-- -->

<!-- ===================================================================== -->

<!-- $Id: hsqldb-ds.xml,v 1.1.2.3 2003/04/01 04:50:07 d_jencks EXP $ -->

<datasources>

<local-tx-datasource>

<!-- remove this depends tag if you are not using the tcp connection url -->

<depends>jboss:service=Hypersonic</depends>

<jndi-name>DefaultDS</jndi-name>

<!-- for tcp connection, allowing other processes to use the hsqldb database -->

<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url> ------------------》这一行要设置

<!-- for totally in-memory db, not saved when jboss stops. hsql mbean is unnecessary-->

<!--connection-url>jdbc:hsqldb:.</connection-url-->

<!-- for in-process db, saved when jboss stops. hsql mbean is unnecessary-->

<!--connection-url>jdbc:hsqldb:default-db-name</connection-url-->

<driver-class>org.hsqldb.jdbcDriver</driver-class> ------------------》这一行要设置

<user-name>sa</user-name> ------------------》这一行要设置

<passWord></password> ------------------》这一行要设置

<!--example of how to specify class that determines if exception means connection should be destroyed-->

<!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->

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

</local-tx-datasource>

<!-- this mbean should be used only when using tcp connections -->

<mbean code="org.jboss.jdbc.HypersonicDatabase"

name="jboss:service=Hypersonic">

<attribute name="Port">1701</attribute> ------------------》这一行要设置

<attribute name="Silent">true</attribute>

<attribute name="Database">default</attribute>

<attribute name="Trace">false</attribute>

<attribute name="No_system_exit">true</attribute>

</mbean>

</datasources>

我用来配置SQLserver 更改设置得到下面的程序段把它覆盖掉hsqldb-ds.xml 或改你自定义的名都可以。

但要注意,这里的JNDINAME是DefaultDS是唯一的不能和别的JNDI重名,我是把上面的hsqldb-ds.xml文件删除了,

下面的存成sqlsrv_ds.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================== -->

<!-- -->

<!-- JBoss Server Configuration -->

<!-- -->

<!-- ===================================================================== -->

<!-- $Id: hsqldb-ds.xml,v 1.1.2.3 2003/04/01 04:50:07 d_jencks Exp $ -->

<datasources>

<local-tx-datasource>

<!-- remove this depends tag if you are not using the tcp connection url -->

<depends>jboss:service=Hypersonic</depends>

<jndi-name>DefaultDS</jndi-name>

<!-- for tcp connection, allowing other processes to use the hsqldb database -->

<connection-url>jdbc:microsoft:sqlserver://192.168.0.221:1433;DatabaseName=mydb;SelectMethod=cursor</connection-url>

<!-- for totally in-memory db, not saved when jboss stops. hsql mbean is unnecessary-->

<!--connection-url>jdbc:hsqldb:.</connection-url-->

<!-- for in-process db, saved when jboss stops. hsql mbean is unnecessary-->

<!--connection-url>jdbc:hsqldb:default-db-name</connection-url-->

<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>

<user-name>sa</user-name>

<password>sa</password>

<!--example of how to specify class that determines if exception means connection should be destroyed-->

<!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->

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

</local-tx-datasource>

<!-- this mbean should be used only when using tcp connections -->

<mbean code="org.jboss.jdbc.HypersonicDatabase"

name="jboss:service=Hypersonic">

<attribute name="Port">1433</attribute>

<attribute name="Silent">true</attribute>

<attribute name="Database">default</attribute>

<attribute name="Trace">false</attribute>

<attribute name="No_system_exit">true</attribute>

</mbean>

</datasources>

这里改起来比较简单,看来应该是可以了吧?满怀信心启动Joss试一下,晕! 还是报错。

看看错误原因: 什么:"JMS_MESSAGES 消息无效" 之类的提示,由于是中文提示感觉莫名其妙,也不知道是什么原因,郁闷啊。

我都差点放弃了,试想换了一下mysql的驱动程序做连接池,

才发Mysql的JDBC用英文提示说明的是 JMS_MESSAGES表名不存在,真不知道微软的

JDBC在搞什么东东,提示的中文Exception根本看不懂,浪费了我好多时间。

我这才晃然大悟,原来JMS消息驱动BEAN需要存放可持久的BEAN的时候就要把

MESSAGE存到数据库中去,这个表就是它的载体。

系统崩溃了,消息也不会丢失也就是这个原理吧。嘿嘿...

我追根求源,发现关于JMS_MESSAGES表的配置原来是在jbossmq-service.xml文件中,来看看这段配置:

<mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager"

name="jboss.mq:service=PersistenceManager">

<depends optional-attribute-name="MessageCache">jboss.mq:service=MessageCache</depends>

<depends optional-attribute-name="ConnectionManager">jboss.jca:service=LocalTxCM,name=DefaultDS</depends> --->>注意这里

<attribute name="SqlProperties">

BLOB_TYPE=OBJECT_BLOB

INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)

INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)

SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS

SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES

SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=?

SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?

MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=?

UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=?

UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=?

UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=?

DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXID IS NOT NULL AND TXOP=?

DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?

DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?

DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?

CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, ----->>注意这里

DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), ----->>注意这里

MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) ) ----->>注意这里

CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER ) ----->>注意这里

</attribute>

</mbean>

一大堆的代码,不用说了,前面的DefaultDS名称正好与这里的同名,而且也有关于JMS_MESSAGE表的配置。

这下完蛋了,这个表的结构我怎么知道啊?再晕!!!!

别急,往下看,后面就有关于建表的操作:

嘿嘿。。。。。。

把那两个建表语句拷贝出来:

CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL,

DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1),

MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) )

CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER )

在SqlServer中执行一下,表改建立了吧?

啊?!!发现报错。 OBJECT类型不存在? 查查资料才了解到原来OBJECT在这里就是Blob类型,即二进制大文件类型

各数据库不一样,这里的类型也不同,这里统一用了Object伪类型。

哦,原来是这样,进一步了解,SqlServer中没有Blob类型,而取而代之的是Image类型。

好了,再执行下面的SQL:

CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL,

DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1),

MESSAGEBLOB image, PRIMARY KEY (MESSAGEID, DESTINATION) )

CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER )

这下子两个表都建好了。

看看再启动Jboss试一下:哈哈。。。。。。这下子没有报错了,写个测试连接池的程序看看:

<%@ page contentType="text/html; charset=GBK" import="Java.sql.*,javax.naming.*,javax.sql.*"%>

<head>

<title>

jndipool

</title>

</head>

<body>

<%

java.sql.Connection con=null;

DataSource ds = null;

try{

Context ctx = new InitialContext();

String jndi_name="java:/DefaultDS";

ds = (DataSource)ctx.lookup(jndi_name);

//Context envCtx = (Context) initCtx.lookup("java:comp/env");

// ds = (javax.sql.DataSource)envCtx.lookup("sqljn");

con=ds.getConnection();

Statement statement=con.createStatement();

ResultSet rs=statement.executeQuery("select * from student");

while (rs.next())

{

out.println(rs.getString("name")+"<br>");

}

con.close();

}

catch(Exception e)

{

System.err.println("erro conn!!");

}

%>

</body>

</html>

运行以后,结果就出来了! OK了,嘿嘿!!!!!!!!

这个连接池花了我两天的时间,还真是很烦琐呢!不过配出来了真是值得庆幸呀。

对了,这里还要说明的是:

jdbc:microsoft:sqlserver://192.168.0.221:1433;DatabaseName=mydb;SelectMethod=cursor

微软的JDBC的URL需要在后面加上SelectMethod=cursor,否则配置连接池的时候会提示can't clone table...

表不能复制错。还有,我这里的JDBC是下的setup2.2.0029版本的,最好不要用老的setup2.2.0022版本的,

原来的版本有个BUG说什么不能re-read row 重复读取行,做CMP的时候就出错,简直是扯蛋,这么严重

的BUG到最近才解决,看来微软真是不情愿对JAVA去做技术支持,但又不得不做。。。,微软活的可真是

累呀,打击敌人还要为敌人做技术支持。 BUG多多,质量差,是可以理解的,我原本对MS的JDBC早就不满

了,很多专家对它的评论都不好。

要是再发现新版本有什么新的BUG我干脆就把它给废了,换第三方的算了,所以大家也不用太担心,

MS Jdbc driver用不好可以换别的,不要在一棵树上掉死呀,第三方的Driver网上很多,有兴趣可以

去查一下

相信大家在配置Weblogic的CMP的时候也遇到过类似的问题,没关系,一并解决之。

Weblogic真他妈是好好东西,可是要钱啊,一个项目才多少钱?一个Weblogic又要多少钱??算过吗?

还好,有Jboss在这里,听说其性能是非常优良的,最爽的就是完全不要钱,还给源码看,老外就是牛。

只不过,关于Jboss的技术资料太少,网上一大抄大多是关于2.x的,3.x的版本资料太少,而且各个版本

的差别太大,配置的写法完全不一样,我没用过JBOSS2.x也没有发言权,但就Jboss3.x而言总体感觉还

是很不错的。尤其是和Jbulider7整合以后更是如虎添翼。

关于怎么整合这不是本文要讨论的主题,我会再写文章的,具体要查关于Opentool方面的资料。

Jbuilder+Jboss开发人员根本不用再关心Jboss什么配置,所有应用程序或EJB的部署都是自动到位

与Weblogic豪不逊色,而且启动速度要比Weblogic快很多哟!嘿嘿。。。开发项目可以考虑用Jboss拉。

看了这么多也够累了吧。Ok 就写到这里拉。

文章作者:侃侃 Email: nikerson@163.com

<html><p>

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有