设为首页 收藏本站
查看: 2492|回复: 6

[经验分享] Tomcat6.0连接池配置

[复制链接]

尚未签到

发表于 2012-7-25 08:26:24 | 显示全部楼层 |阅读模式
今天算是比较顺利赶在明天来临,解决了Web开发中Tomcat连接池配置的问题。网上关于连接池配置的文章千篇一律,而且大多数都是将Tomcat的帮助文档晦涩的翻译了一下就草草了事,很多代码中包含有中文字符,空格,格式不完整,注释添加错误位置。不知道写文章的人,究竟为何为文,以后即便自己用到也会出问题。
    还有很多问题,既然配置Tomcat,就因该标注配置的Tomcat是那一个版本,配置的信息添加在什么地方,什么位置都应该一一说清楚。
    自己动手亲自配置了一下。这里是基于Tomcat目录下的配置,属于全局的数据库连接池的配置。
1.   在Tomcat1.6.x的按照目录下的conf文件夹下打开server.xml文件
    配置*.xml文件不管配置信息是否正确,必须书写xml文件的格式一定要正确。
   
  • <GlobalNamingResources>
  •     <!-- Editable user database that can also be used by
  •          UserDatabaseRealm to authenticate users
  •     -->
  •     <Resource name="UserDatabase" auth="Container"
  •               type="org.apache.catalina.UserDatabase"
  •               description="User database that can be updated and saved"
  •               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
  •               pathname="conf/tomcat-users.xml" />
  •                
  •                
  •     <Resource
  •         name="jdbc/poolmssql"
  •         auth="Container"
  •         type="javax.sql.DataSource"
  •         driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  •         url="jdbc:sqlserver://localhost:5140;databaseName=ext"
  •         username="sa"
  •         password="shszfdbz"
  •         maxActive="100"
  •         maxIdle="30"
  •         maxWait="10000"
  •     />

  •   </GlobalNamingResources>

第二个Resource是配置数据源的信息
2.在在Tomcat1.6.x的按照目录下的conf文件夹下打开context.xml文件
在Context标签之间添加如下内容。

  • <ResourceLink name="jdbc/poolmssql" global="jdbc/poolmssql" type="javax.sql.DataSource"/>

各种信息不解释,Tomcat帮助文档解释很清楚。
3.在当前的应用程序的WEB-INF目录下的web.xml文件中添加如下信息

  • <description>Mircosoft SQLServer 2005</description>
  •     <resource-ref>
  •         <description>DB Connection</description>
  •         <res-ref-name>jdbc/poolmssql</res-ref-name>
  •         <res-type>javax.sql.DataSource</res-type>
  •         <res-auth>Container</res-auth>

  •     </resource-ref>

4.编写一个测试类

  • public class PoolDB {
  •      
  •     public static Connection getConnection() {
  •         // 初始化查找命名空间
  •         Context initContext = null;
  •         // 找到 DataSource
  •         DataSource ds = null;
  •         Context envContext = null;
  •         Connection conn = null;
  •         PreparedStatement pstmt=null;
  •         ResultSet rs=null;
  •         try {
  •             initContext = new InitialContext();
  •             envContext = (Context) initContext.lookup("java:/comp/env");
  •             ds = (DataSource) envContext.lookup("jdbc/poolmssql");
  •             conn = ds.getConnection();
  •             System.out.println(conn);
  •             String sql="select * from Student";
  •             pstmt=conn.prepareStatement(sql);
  •             rs=pstmt.executeQuery();
  •             Student s=null;
  •             List list=new ArrayList();
  •             while(rs.next()){
  •                 s=new Student();
  •                 s.setSno(rs.getString("sno"));
  •                 s.setAge(rs.getInt("age"));
  •                 s.setSex(rs.getString("sex"));
  •                 s.setManame(rs.getString("maname"));
  •                 s.setNation(rs.getString("nation"));
  •                 s.setSname(rs.getString("sname"));
  •                 s.setPlace(rs.getString("place"));
  •                 list.add(s);
  •             }
  •             
  •             for (Object st : list) {
  •                 System.out.println(st.toString());
  •             }
  •         } catch (NamingException e) {
  •             // TODO Auto-generated catch block
  •             e.printStackTrace();
  •         } catch (SQLException e) {
  •             // TODO Auto-generated catch block
  •             e.printStackTrace();
  •         }
  •         return conn;
  •     }
这是获得数据库连接的类,这里用到了一个实体类Student,属性可以看出,数据库中已经存在一张表Student并且存有数据。
接下来进行测试,在获得数据库连接的类PoolDB写上main方法:

  • public static void main(String[] args) {
  •         System.out.println(PoolDB.getConnection());
  •     }

既然是在Tomcat下配置的数据库连接池那么就应该启动Tomcat;接下来运行应用程序,错误直接发生了。


public class InitialContextextends Objectimplements Context 此类是执行命名操作的初始上下文。  
所有命名操作都相对于某一上下文。该初始上下文实现 Context 接口并提供解析名称的起始点
应为执行的是PoolDB类,并没有相对于上下文的操作所以抛出异常。
5.编写一个*.jsp文件


  • <%
  •     Connection conn=PoolDB.getConnection();

  • %>

使用到PoolDB类。
然后在通过浏览器来访问义页面,执行正常,查询到数据库表Student中的内容。


  • jdbc:sqlserver://localhost:5140;selectMethod=direct;lastUpdateCount=true;databaseName=ext;, UserName=sa, Microsoft SQL Server 2005 JDBC Driver
  • Student [age=21, maname=计算机科学与技术, nation=CHINA, place=西安, sex=男, sname=Aiilive, sno=200907010100]
  • Student [age=22, maname=软件设计, nation=CHINA, place=西安, sex=男, sname=Secondriver, sno=200907010101]
  • Student [age=19, maname=翰林儒学, nation=唐, place=兰若镇, sex=男, sname=宁采臣, sno=200907010102]
  • Student [age=45, maname=擒妖科学与技术, nation=道山, place=兰若镇, sex=男, sname=燕赤霞, sno=200907010103]
  • Student [age=27, maname=大唐时尚, nation=天庭, place=高老庄, sex=男, sname=猪八戒, sno=200907010104]
  • Student [age=21, maname=自由文艺, nation=唐, place=兰若寺, sex=女, sname=聂小倩, sno=200907010105]
  • Student [age=18, maname=塔与塔文化研究, nation=唐, place=西湖, sex=女, sname=白娘子, sno=200907010106]
  • Student [age=21, maname=翰林儒学, nation=唐, place=长安, sex=男, sname=许仙, sno=200907010107]


6.接下来根据自己亲自在Tomcat1.6.x版本下的操作,去除掉在WEB-INF下的web.xml的配置信息,仍然可以获得第5条中查询的结果
7.如图可以看到真相。


3ca8375225ce60a3d9e168060abb7102.png
眼睛一亮就可以看到,这里的sqljdbc2005.jar驱动包绝对不是很多网上的文章所说的那样放在Tomcat的common文件夹下,可惜Tomcat1.6.就只用lib文件。
如上图:itext-5.2.1.zip是通过引用的包,这里仅仅体现sqljdbc2005.jar绝对是放在Web工程的lib目录下面的。
8.在Tomcat安装目录的conf文件夹下的context.xml文件中的资源连接必须写


  • <ResourceLink name="jdbc/poolmssql" global="jdbc/poolmssql" type="javax.sql.DataSource"/>
不然将会产生如下问题。


  • javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
  •     at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
  •     at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
  •     at xiao.zhang.dbc.PoolDB.getConnection(PoolDB.java:33)
  •     at org.apache.jsp.index_jsp._jspService(index_jsp.java:111)
错误信息提示很清楚所配置的数据库连接池没能子会话中找到。
9.还用一些给单独的工程配置,所要做的操作和添加的配置信息是相同的只是在不同的位置。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-643-1-1.html 上篇帖子: 两台WEB服务器通过DNS轮询功能实现负载均衡 下篇帖子: 负载均衡的动态文档请求 配置 数据库连接 database 文章

尚未签到

发表于 2013-3-13 15:19:06 | 显示全部楼层
我是来刷分的,嘿嘿

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-15 18:47:37 | 显示全部楼层
我在马路边丢了一分钱

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

发表于 2013-5-17 04:43:21 | 显示全部楼层
看尽天下A片,心中自然无码~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 11:15:53 | 显示全部楼层
生我之前谁是我,生我之后我是谁?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-19 11:36:31 | 显示全部楼层
找不到恐龙,就用蜥蜴顶

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 01:12:49 | 显示全部楼层
精典之极就是精斑!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表