数据库连接池和Tomcat连接池的配置问题

          在做系统优化的时候师哥给我们提了一个连接池的概念,问我们有没有配置,我对这个概念一无所知,于是进行了一些研究,连接池有很多,比如WCF、EF还有数据库、CAS也可以配连接池,这些连接池用通俗的语言来说就是一个池子,池子里的资源可以收放自如,不用的时候可以立即收回,和我们通常用到USing的作用有些相似,就是可以自动的释放connection资源。

        数据库中连接池的配置如下:        

    stringconStr ="server=127.0.0.1.;uid=sa;pwd=tcaccp;database=pubs;pooling=true;min pool size=5;max pool size=10".
        其中 pooling 表示是否打开连接池,默认为打开,关掉时需要 pooling = false;
        min pool size 表示连接池最少保存几个连接对象;
       max pool size 表示连接池最多保存几个连接对象。(最大值不能为 0,也不能小于最小值);
      最大连接数表示同时刻最多允许的访问的数量,可以起到保护站点的作用;最小表示即使没有访问也会打开几个连接。

       下面是段关于using的代码:       

 using (SqlBulkCopy sqlBC = new SqlBulkCopy(sqlConn))  
              {              
                  //設定 NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。   
                 
  
                  //设置要批量写入的表  
                  sqlBC.DestinationTableName = tableName;  
  
                  //自定义的datatable和数据库的字段进行对应  
                  //sqlBC.ColumnMappings.Add("id", "tel");  
                  //sqlBC.ColumnMappings.Add("name", "neirong");  
                  for (int i = 0; i < dtColum.Count; i++)  
                  {  
                      sqlBC.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString());  
                  }  
                  //批量写入  
                  sqlBC.WriteToServer(dt);  
              }  
          这里用了using,自动关闭连接,不光能导入命名空间,还能在程序体内,局部使用某个对象。像上边代码,sqlCon 的作用域只有 using 对应的大括弧这么大。更神奇的是,using 可以在对象作用域结束时,自动调用 sqlCon.Dispose()将对象释放,所以以上代码中,没有 sqlCon.Close() 和 sqlCon.Dispose(),同样可以释放资源,放回连接池。

             上面说的是关于数据库连接池的一些配置,下面说下Tomcat连接池的配置,因为在用单点登录的时候需要将服务端搭到Tomcat中,而我们在测试的时候发现登录很慢,于是我也搜了一些关于Tomcat连接池的配置:

              1.所有的tomcat项目共用一个连接池配置:在tomcat6->conf->context.xml文件中,之间添加      

 
    
  
 
       然后 web.xml中的添加:

      

 
      jdbc/mengshan  
      javax.sql.DataSource  
      Container 
     
      这些连接池配置的原理其实是一样的,只是放到了不用的情景下。希望和大家交流!

          

你可能感兴趣的:(数据库,java,web.xml)