2006年12月22日星期五

2006-12-21 星期四

因为在Struts中配置一个数据库连接池,折腾了一晚上,按照书上写的就是出问题,就在网上搜啊搜,还真是不好找,倒是有很多提出这样问题的帖子,但是都没回答到点子上,结果还是在网上找到了一篇文章,讨论是用Tomcat的连接池好还是用Struts的连接池好,结论是用哪个也不好,哈哈,其中有一段在Struts中配置连接池的实例,正好对我这个症状,哈哈,问题解决,甚是高兴。

下面是摘自这篇文章关于配置Struts数据源的内容:

 

Struts DataSource管理器在Struts配置文件(Struts-config.xml)里定义。这个管理器可以用来分发和配置任何实现了javax.sql.DataSource接口的数据库连接池(connection pool)。如果你的DBMS或者容器内置了符合这些要求的连接池,你可以优先选用它。


Jakarta的公共连接池实现 - BasicDataSource

  如果你的手头没有连接池的本地(native)实现,你可以使用Jakarta提供的公共连接池实现[org.apache.commons.dbcp.BasicDataSource],它可以和DataSource管理器"合作"的很好。另外,Struts还在它的util包里包含了一个GenericDataSource类,这也是一个连接池实现。但是这只是一个非常简单的实现方案,不推荐使用,因为它可能在Struts的以后版本中被BasicDataSource或其它的数据源实现替换掉。

  下面是一段Struts-config.xml配置文件中的数据源配置(使用GenericDataSource数据源实现),你可以更改相应的设置以适合你自己的系统。


<!-- configuration for GenericDataSource wrapper -->
  <set-property="autoCommit" value="false"/>
  <set-property="description" value="Example Data Source Configuration"/>
  <set-property="driverClass" value="org.postgresql.Driver"/>
  <set-property="maxCount" value="4"/>
  <set-property="minCount" value="2"/>
  <set-property="password" value="mypassword"/>
  <set-property="url" value="jdbc:postgresql://localhost/mydatabase"/>
  <set-property="user" value="myusername"/>
        

使用BasicDataSource数据源实现的配置方案如下:


<!-- configuration for commons BasicDataSource --> 
<set-property="driverClassName" value="org.postgresql.Driver" />
<set-property="url" value="jdbc:postgresql://localhost/mydatabase" />
<set-property="username" value="me" />
<set-property="password" value="test" />
<set-property="maxActive"  value="10" />
<set-property="maxWait" value="5000" />
<set-property="defaultAutoCommit"  value="false" />
<set-property="defaultReadOnly" value="false" />
<set-property="validationQuery" value="select COUNT(*) FROM market" />

 

出处:http://wenson.javaeye.com/blog/33316

值得注意的是上面两个数据源的配置中的property属性的值有些不一样,就是这个问题困扰了我一晚上。涨经验了呵呵,以后也很可能不会用Struts配置连接池。

    另外,还查得了如何查看sqlserver2000的版本的方法,如下:

SELECT @@VERSION

 

SQL Server 2000 版本和级别 @@VERSION 产品级别
SQL Server 2000 原始版本 8.00.194 RTM
Database Components SP1 8.00.384 SP1
Database Components SP2 8.00.534 SP2
Database Components SP3、SP3a 或 MSDE 2000 Release A 8.00.760 SP3
Database Components SP4 8.00.2039 SP4

原来以为是数据库没有装sp3的原因,通过上面的方法排出了这个猜测。

没有评论:

发表评论