设为首页 收藏本站
查看: 509|回复: 0

[经验分享] Tomcat数据源配置汇总

[复制链接]
发表于 2017-1-23 10:04:09 | 显示全部楼层 |阅读模式
  首先定义tomcat6的安装根目录为 ${CATALINA_HOME}
  在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中。
因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。我们当然推荐把应用需要的JNDI资源配置在context.xml文件中,而不是server.xml文件中。
  由于context元素的可用范围是可以控制的,我们可以根据需要为Context元素定义不同级别的可用范围。
  一. 全局可用
全局可用的范围意味着tomcat服务器下面的所有应用都可以使用这个context元素定义的资源。
  全局可用范围的context元素在文件 ${CATALINA_HOME}/conf/context.xml 文件中描述。这个文件在tomcat刚刚被安装的时候,是没有定义任何资源的。我们可以看到,这个文件的内容:
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
  Context>
  其中的 <watchedresource></watchedresource>WEB-INF/web.xml表示服务器会监视应用的WEB-INF/web.xml 文件来知道那个应用会引用在此处定义的资源。
  二. 指定的虚拟主机可用
指定的虚拟主机内可用就是说,在tomcat服务器配置的虚拟主机中,只有指定的那个虚拟主机上跑的应用才能使用。什么是虚拟主机和如何配置虚拟主机在这里就不描述了,有兴趣的同学自己去查tomcat的官方资料。要配置一个虚拟主机可用的context资源,可以在${CATALINA_HOME}/conf/目录下的文件 ${enginename}/${hostname}/context.xml.default 中表述。
  比如,一般一个tomcat服务器安装好了以后,都有一个默认的叫做 Catalina 的引擎,在这个引擎下有一个叫做 localhost 的虚拟主机。我们的应用一般都放在这个虚拟主机下。关于这个虚拟主机的配置,不再本文表述,有兴趣的同学可以自己去查tomcat的官方文档。那么,如果我们想要配置一个在 Catalina/localhost 虚拟主机下都可以使用的资源,我们需要在目录 ${CATALINA_HOME}/conf 下建立路径 Catalina/localhost,在这个路径下创建文件 context.xml.default。全路径是 ${CATALINA_HOME}/conf/Catalina/localhost/context.xml.default
三. 指定的应用可用
顾名思义,一个指定的应用可用的context元素,意味着这是一个只有指定的引擎,指定的虚拟主机,指定的应用才可以使用的context元素。
  如果我们用appname来代表这个指定的这个指定的应用的名字,那么元素的定义应该被放置在 ${CATALINA_HOME}/conf/${enginename}/${hostname}/${appname}.xml文件中。
  例如,假设在localhost下我们有一个web应用叫做webtest,那么我们应该创建文件 ${CATALINA_HOME}/conf/Catalina/localhost/webtest.xml。
Tomcat6.0数据源配置
方法一
1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:
<Resource name=”jdbc/mydb”
       auth=”Container”
       type=”javax.sql.DataSource”
       driverClassName=”oracle.jdbc.driver.OracleDriver”
       url=”jdbc:oracle:thin:@localhost:1521:mydb”
       username=”bmgis”
       password=”bmgis”
       maxActive=”100″
       maxIdle=”30″
       maxWait=”10000″ />

2.配置你的应用下的web.xml中的之间加入:
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mydb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。
  3.把连接数据库的第三方驱动放到${CATALINA_HOME}/lib下面就ok了
4.测试程序test.jsp如下:
<%@ page import=”javax.naming.*”%>
<%@ page import=”java.sql.*”%>
<%@ page import=”javax.sql.*”%>
<%
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup(“java:/comp/env”);
DataSource ds = (DataSource)envContext.lookup(“jdbc/myoracle”);
Connection conn = ds.getConnection();
conn.close();
%>

  方法二:
我们只需要在WebRoot目录下,新建一个META-INF的目录(假如不存在,注意目录名称大写),
在该目录下创建一个context.xml文件,并且在context.xml文件当添加以下的配置信息:
<Context>
 <Resource name=”jdbc/mydb”
       auth=”Container”
       type=”javax.sql.DataSource”
       driverClassName=”oracle.jdbc.driver.OracleDriver”
       url=”jdbc:oracle:thin:@localhost:1521:mydb”
       username=”bmgis”
       password=”bmgis”
       maxActive=”100″
       maxIdle=”30″
       maxWait=”10000″
    logAbandoned=”true” />
</Context>

其中:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址
  此方法二一样适用Tomcat5.5
  Tomcat5.5x数据源配置
  方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在${CATALINA_HOME}\conf\server.xml的GlobalNamingResources中增加
<Resource name=”jdbc/mydb” type=”javax.sql.DataSource”
 username=”bmgis” password=”bmgis”
 driverClassName=”oracle.jdbc.driver.OracleDriver”
 url=”jdbc:oracle:thin:@localhost:1521:mydb”
 maxIdle=”2″ maxWait=”5000″ maxActive=”4″/>
2、在${CATALINA_HOME}\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global=”jdbc/mydb” name=”jdbc/mydb” type=”javax.sql.DataSource”/>
这样就可以了。
  方式二、全局数据库连接池
1、同上
2、在${CATALINA_HOME}\conf\context.xml的Context中增加:
<ResourceLink global=”jdbc/mydb” name=”jdbc/mydb” type=”javax.sql.DataSource”/>
方式三、局部数据库连接池
只需在${CATALINA_HOME}\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name=”jdbc/mydb” type=”javax.sql.DataSource”
 username=”bmgis” password=”bmgis”
 url=”jdbc:oracle:thin:@localhost:1521:mydb”
 driverClassName=”com.microsoft.jdbc.sqlserver.SQLServerDriver”
 maxIdle=”2″ maxWait=”5000″ maxActive=”4″/>
  本文来自CSDN博客http://blog.csdn.net/onlymilan/archive/2010/04/16/5493485.aspx

运维网声明 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-332377-1-1.html 上篇帖子: 转tomcat server.xml详解 下篇帖子: 分享Tomcat源码系列三
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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