<%@ page contentType="text/html; charset=gb2312"%> jboss-3.2.0_tomcat-4.1.24 连接池配置方法
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
jboss-3.2.0_tomcat-4.1.24 连接池配置方法
     发布者: 发布时间:2007-11-26
<html><p>jboss_tomcat的整合版就不介绍怎么去下载了,很好找的。我这里下载的是jboss-3.2.0_tomcat-4.1.24那么废话少说,直接进入主题:首先查看文件:\jboss_tomcat\server\default\deploy\hsqldb-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_BLOBINSERT_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_TRANSACTIONSSELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGESSELECT_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>
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
TOMCAT+JIVE的安装配置
java图书资源下载
使用ant集成
linux 下jbuilder 的安装
设置类路径
subversion中文资料
 
最近评论:
        
鍥炲
        
那个雨天的想法!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(1249)
        
如果真的有来生!
四川旅游,九寨沟旅游,稻城亚丁旅游,四姑娘山旅游,海螺沟旅游,西藏旅游, max(8604)
        
那天的情景!
Maple Story mesos,MapleStory mesos,ms mesos,mesos,SilkRoad Gold, max(508)
        
如果真的有来生!
四川旅游,九寨沟旅游,稻城亚丁旅游,四姑娘山旅游,海螺沟旅游,西藏旅游, max(1922)
        
左边的风景!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(7856)
        
轻轻走过你的窗前!
world of warcraft gold,cheap world of warcraft gold,warcraft gold,world of warcraft gold,cheap world of warcraft gold,warcraft gold, max(8206)
        
轻轻走过你的窗前!
world of warcraft gold,cheap world of warcraft gold,warcraft gold,world of warcraft gold,cheap world of warcraft gold,warcraft gold max(615)
        
不在的哪天!
final fantasy xi gil,final fantasy xi gil,final fantasy xi gil,final fantasy xi gil, max(8352)
        
昨夜的狂想曲!
wow gold,WoW Gold,world of warcraft gold,WoW Gold, max(362)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号