攻破JNDI连接池(Tomcat5.5下通过管理界面配置连接池)

2016-02-19 19:26 7 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享攻破JNDI连接池(Tomcat5.5下通过管理界面配置连接池),希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

攻破JNDI连接池- -
                                        
  经过几天的努力,终于可以连接上连接池了,其中参考了很多大侠关于这方面的贴子,现在将这几天出现的几个问题写在这里:
  一.在tomcat_homecommon下放入jdbc的三个驱动程序(一定要的哦),可以在微软的网站上去下载,安装的SQLSERVER2k默认的用户名是sa,密码是空,但密码为空并不代表没有密码,所以你的url中一定要定义username和password,最好是重设定一下密码
  二.出现不能引用错误的话一般就是路径没有写对,tomcat默认的路径是tomcat_homewebapps不过使用5.5.x的话,按下面方法就行,不需要配置路径,而且也不用在youwebappWEB-INFweb.xml文件配置引用
  三.tomcat5.5.x版的server.xml配置与tomcat5.0的配置不同,下面列举三种在tomcat5.5.x的配置方法,如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误
  方式一、全局数据库连接池
  1、通过管理界面配置连接池,或者直接在tomcatconfserver.xml的GlobalNamingResources中增加
  Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/
  2、在tomcatwebappsmyappMETA-INFcontext.xml的Context中增加:
  ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/
  这样就可以了。
  方式二、全局数据库连接池
  1、同上
  2、在tomcatconfcontext.xml的Context中增加:
  ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/
  方式三、局部数据库连接池
  只需在tomcatwebappsmyappsMETA-INFcontext.xml的Context中增加:
  Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/
  参数说明:
  driveClassName:JDBC驱动类的完整的名称;
  maxActive:同时能够从连接池中被分配的可用实例的最大数;
  maxIdle:可以同时闲置在连接池中的连接的最大数;
  maxWait:最大超时时间,以毫秒计;
  password:用户密码;
  url:到JDBC的URL连接;
  user:用户名称;
  validationQuery:用来查询池中空闲的连接。
  以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。
  四.报错org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)此是一个小问题,因为我的SQLSERVER2K的服务改成手动的,所以每次启动后就要手动的启动SQLSERVER2K,由于一下子不记的启动了,所以报些错误,所以如果你经常要用到SQLSERVER2K的话,最好不要将其改为手动启动

来源:https://www.tulaoshi.com/n/20160219/1620989.html

延伸阅读
适用于:Microsoft SQL Server? 2000 Analysis Services 摘要:学习如何使用 Microsoft XML for Analysis Provider 附带的连接池对象来开发适用于 Microsoft SQL Server 2000 Analysis Services 的可伸缩客户端和 Web 应用程序。 简介 资源管理是开发可伸缩客户端和基于 Web 的应用程序时需要考虑的一个重要问题。在构造可...
您也可以提供几个连接字符串修饰符来控制连接池行为,请参见本主题内下文中“使用连接字符串关键字控制连接池”这一节。 池的创建和分配 当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一...
标签: Java JAVA基础
  <Context path="/quickstart" docBase="quickstart"     <Resource name="jdbc/quickstart" scope="Shareable" type="javax.sql.DataSource"/     <ResourceParams name="jdbc/quickstart"         <parameter       &nb...
标签: Java JAVA基础
  三、类DBConnectionPool说明 该类在209至345行实现,它表示指向某个数据库的连接池。数据库由JDBC URL标识。一个JDBC URL由三部分组成:协议标识(总是jdbc),驱动程序标识(如 odbc、idb、oracle等),数据库标识(其格式依赖于驱动程序)。例如,jdbc:odbc:de mo,即是一个指向demo数据库的JDBC URL,而且访问该数据库要使用JDBC-OD...
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效治理。我们知道,对于共享资源,有一个很闻名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为...

经验教程

265

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部