http://www.javayou.com (收藏,设为首页)
当你不能再拥有时,你唯一能做的,就是让自己不要忘记 (手机请访问 http://3g.dlog.cn/javayou)
上一篇:忽如一夜寒风来 下一篇:乒羽之夜

DLOG4J增加对HSQLDB的支持

2004年11月16日(Tuesday) 11点34分 作者: 本站原创 天气: 心情: 一般

DLOG4J的初始版本使用的是内嵌ACCESS数据库,以便于用户无需任何配置即可使用。但是众所周知,在一些非Windows操作系统下,ACCESS是无法工作的,比如Linux。因此一直有将ACCESS替换掉的想法,也就是用HSQLDB来做为DLOG4J默认的内嵌式数据库。

经过何义(网名:小帽)一个礼拜的努力,终于完成了这个替换过程,在这里感谢小红帽所做的一切,大家可以通过MSN:yhe_today@hotmail.com联系这位HSQLDB的高手。

目前最新的使用HSQLDB引擎的版本已经提交到SourceForge的CVS服务器上了(可以访问http://dlog4j.sourceforge.net/cvs.htm 查看如何通过CVS访问DLOG4J),目前经过测试在Windows平台下还有一个无伤大雅的小问题,就是应用服务器退出的时候会抛出一个异常。

HSQLDB是一个在内存中运行的文本数据库,可以通过 http://hsqldb.sourceforge.net 了解更多关于HSQLDB的信息。

标签: DLOG4J HSQLDB 
评论者: 刘冬 2004-11-16 13:03 (Tuesday)

我的测试环境 Resin 2.1.13 on Windows XP Professional 发现了HSQLDB重复绑定时候异常:重复绑定同一个端口。

是因为当更新了类后导致HSQLDB重新启动,而原来的HSQLDB实例没有释放,但是事实上HSQLEngineServlet已经在destroy方法中停止了HSQLDB。

评论者: 大梦 2004-11-16 20:53 (Tuesday)

兄对内嵌很有追求.

我用MYSQL目前情况良好.

solaris 9 sparc +resin2+mysql4.1

评论者: 刘冬 2004-11-17 09:13 (Wednesday)
这你就不知道了吧,为了让广大父老乡亲下载完无需任何配置就可以使用,嵌入数据库是终极解决办法
评论者: terry 2004-11-19 15:57 (Friday)
支持,access毕竟是ms的东西,用java为了什么,不就是为了anti-ms么,呵呵。当然也不是完全的anti。
评论者: 刘冬 2004-11-25 11:43 (Thursday)

最新测试说明:

实际环境:RedHat Linux 9, IBM JDK 1.4.1, Apache 2.0.52, Tomcat 5.0.28, DB2 8.1
发现问题:用浏览器打开页面第一次总是出现java.lang.IncompatibleClassChangeError 的错误信息,使用SUN的JDK替换后就不再出现这个问题。

评论者: kerry 2005-1-4 11:47 (Tuesday)

11:40:33,749 ERROR SiteStatFilter:220 - 写访问日志到数据库失败
net.sf.hibernate.UnresolvableObjectException: No row with the given identifier
xists: 0, of class: jdlog.form.SiteForm
        at net.sf.hibernate.UnresolvableObjectException.throwIfNull(Unresolvab
ObjectException.java:38)
        at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:191

        at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType
ava:68)
        at net.sf.hibernate.type.EntityType.resolveIdentifier(EntityType.java:
5)
        at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java
169)
        at net.sf.hibernate.loader.Loader.doQuery(Loader.java:240)
        at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollectio
(Loader.java:133)
        at net.sf.hibernate.loader.Loader.doList(Loader.java:950)
        at net.sf.hibernate.loader.Loader.list(Loader.java:941)
        at net.sf.hibernate.loader.CriteriaLoader.list(CriteriaLoader.java:118
        at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:3571)
        at net.sf.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:223)
        at jdlog.SiteStatFilter.writeLog(SiteStatFilter.java:172)
        at jdlog.SiteStatFilter.run(SiteStatFilter.java:216)
        at java.lang.Thread.run(Thread.java:534)
11:40:33,889 ERROR SiteStatFilter:220 - 写访问日志到数据库失败
net.sf.hibernate.UnresolvableObjectException: No row with the given identifier
xists: 0, of class: jdlog.form.SiteForm
        at net.sf.hibernate.UnresolvableObjectException.throwIfNull(Unresolvab
ObjectException.java:38)
        at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:191

        at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType
ava:68)
        at net.sf.hibernate.type.EntityType.resolveIdentifier(EntityType.java:
5)
        at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java

评论者: kerry 2005-1-4 11:49 (Tuesday)

我的struts_config.xml

<data-sources>
        <data-source type="org.apache.commons.dbcp.BasicDataSource">
            <set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
            <set-property property="url" value="jdbc:mysql://202.102.240.78/wzbob" />
            <set-property property="username" value="user" />
            <set-property property="password" value="pass" />
            <set-property property="maxActive" value="20" />
            <set-property property="maxWait" value="5000" />
            <set-property property="defaultAutoCommit" value="true" />
            <set-property property="defaultReadOnly" value="false" />
            <set-property property="validationQuery" value="SELECT 1" />
            <set-property property="removeAbandoned" value="true" />
            <set-property property="removeAbandonedTimeout" value="120" />           
            <set-property property="encoding" value="false" />           
        </data-source>
       
    </data-sources>

评论者: kerry 2005-1-4 11:51 (Tuesday)

我的是tomcat5.0.29

不知道为什么老出上面的问题

用access 就可以的

评论者: 刘冬 2005-1-4 11:57 (Tuesday)

你是使用什么来创建数据库呢? 好像是日记表logid字段的问题,这个字段是普通的整数,由程序来控制自增长而非数据库.

MySQL脚本下载地址:
http://www.javayou.com/download/dlog4j_mysql_323.sql?id=uniqueid

评论者: kerry 2005-1-4 11:59 (Tuesday)

我就是用的你这个mysql啊

评论者: 小红帽 2005-1-4 12:13 (Tuesday)

试一下这样配置吧
<set-property property="url" value="jdbc:mysql://202.102.240.78/wzbob?useUnicode=true&amp;characterEncoding=GBK
" />

评论者: kerry 2005-1-4 12:38 (Tuesday)

还是不可以啊

你们可以发布一个mysql 数据库的

评论者: 刘冬 2005-1-4 12:50 (Tuesday)
你用的什么驱动啊? 你去下载个源码包,在jdbc目录下有个mysql的驱动,用它吧.
评论者: 刘冬 2005-1-4 12:57 (Tuesday)
兄台,你接下来还有任何问题到论坛上发贴吧.
姓名: 
邮箱:  {可选}
网址:  {可选} 此评论只有我和写日记的人查阅
校验码: ... <我看不清楚>
网记为您提供手机和互联网同步的个人主页,带给你不一样的体验