/*##################################################################**
**#  程序名称：LyBBS『凌云论坛』                                   #**
**#                                                                #**
**#  程序开发: teddy 『星语凌』                                    #**
**#                                                                #**
**#  版权所有: 凌云创作室 (原流星电脑工作室)                       #**
**#                                                                #**
**#  主页地址: http://www.lybbs.net                                #**
**#  电邮地件: horseye@sina.com                                    #**
**#                                                                #**
**##################################################################*/

################### LyBBS 『凌云论坛』的数据库连接池 ########################
前言：因为之前有太多的朋友对数据库连接池存在疑问，所以，这次我们单独弄个说明文档
　　　希望对大家有所帮助。
--------------------------------------------------------------------------------
问题1：为什么要使用连接池？
　　　 经过测试发现，连接池可以有效缓解服务器和数据库的压力，有效管理数据库的连接，
　　　 一般情况下，我们都推荐你使用连接池。
　　　 我们默认使用了dbcp作为数据库连接池的实现类，如果出现不稳定的情况，下面会
　　　 提供新的方案。

问题2: 现在的很多服务器(WebLogic/Tomcat/Resin)都自带连接池，如果我想用服务器的连接池，怎么办？
　　 　请参考下面的第二方案，关闭掉我们程序的连接池(dbcp)，在服务器中自配连接池。

问题3：你们提供的DBCP连接池在Resin的部分版本上不能正常工作，该怎么做？
　　　 参考方案三，使用PoolMan连接池。

方案：根据需求，我们提供四种连接池方面的解决方案：
　　　　第一种是调整dbcp数据库连接池的参数，打开[%lybbs_home%]\WEB-INF\classes\db.properties
　　　　　　　这个文件里有相关的连接池参数，可以修改以调校适合你的数据库连接。

　　　　第二种是关闭我们附带的dbcp连接池，使用weblogic或tomcat带的连接池。
　　　　　　　weblogic里面需要添加Connection pool和DataSource，JNDI的名称必须是jndi-lybbs
　　　　　　　weblogic的默认端口号必须由7001改成80

　　　　　　　tomcat4.1可以使用DBCP作为连接池，请参考下面的文档。
　　　　　　　http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html
　　　　　　->需要把[%lybbs_home%]/WEB-INF/lib/mysql-connector-java-3.0.10-stable-bin.jar
　　　　　　　　　　package/commons-dbcp-1.1.jar
　　　　　　　　　　package/commons-pool-1.1.jar
　　　　　　　　　　package/commons-collections.jar
　　　　　　　复制到[%tomcat_home%]/common/lib下面。
　　　　　　->需要修改server.xml，注意把
　　　　　　　    <parameter>
                    <name>driverClassName</name>
                    <value>org.gjt.mm.mysql.Driver</value>
                  </parameter>
　　　　　　　修改为
　　　　　　　    <parameter>
                    <name>driverClassName</name>
                    <value>com.mysql.jdbc.Driver</value>
                  </parameter>
　　　　　　->请参考package/server.xml，这是我配置成功的一个xml文件。
　　　　　　->注意Resource name="jndi-lybbs"，不然，找不到Data Source。
　　　　　　　打开[%lybbs_home%]/WEB-INF/classes/db.properties，修改connectionMode
　　　　　　　如果是Tomcat服务器－－＞修改成connectionMode=tomcat
　　　　　　　如果是WebLogic服务器－－＞修改成connectionMode=weblogic
　　　　　　　重启tomcat/weblogic。

　　　　第三种是使用PoolMan连接池。
　　　　　　　已经取消了支持本方案！！！[by teddy at 2005-12-07]

　　　　第四种是关闭连接池。
　　　　　　　打开[%lybbs_home%]/WEB-INF/classes/db.properties，修改connectionMode=nopool即可。

总结：那么这四种方案究竟在什么地方存在着不同？
　　　很简单，第一/二/三种方案使用了数据库连接池，可以平衡数据库的负载，而第四方案则去掉了
　　　数据库连接池的使用。第四方案的效率不如第一/二/三方案，只在不得已的情况才会使用。

本站意见：尽量使用我们提供的连接池，还有缓存，只是在出现问题才启用第四方案，
　　　　　或者喜欢使用服务器提供的连接池，可以选择关闭我们的连接池。
　　　　　PoolMan缓存可能会出现一些难以预料的问题，请参考<问题集锦>，选择关闭或打开！
　　　　　^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
----------------------------------------------------------------------------------------- 
祝．．．大．．．家．．．使．．．用．．．愉．．．快！！

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
http://www.lybbs.net teddy 凌云创作室
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=