用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
soleghost的公告
<EMBED SRC=http://www.butabon.com/Clock/clock_038.swf WIDTH=150 HEIGHT=150 wmode=transparent quality=high loop=true menu=false> QQ:6845235</br> <SMALL>MSN:<A href="mailto:soleghost@etang.com" >soleghost@hotmail.com</A></SMALL></br></br> <div align="center"><iframe src="http://tools.koook.com/webplayer/index.html" width="108" height="146" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe></div>
文章分类
    存档

    原创  如何通过2级缓存解决性能问题(ehcache) 收藏

    实际使用中,发现pharos底层的table_info表和users表的读操作过于频繁,因此为它们增加二级缓存,以提高性能
    0.首先修改hibernate.properties文件,
    增加
    hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
    hibernate.cache.use_query_cache=true

    1.修改endbran/src/java/ehcache.xml,增加如下内容:
        <cache name="com.vtradex.endbrain.model.TableInfo"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />
        <cache name="com.vtradex.endbrain.model.TableInfo.excludedColumns"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />

        <cache name="com.vtradex.bedrock.model.security.User"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />
        <cache name="com.vtradex.bedrock.model.security.User.roles"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />
        <cache name="com.vtradex.bedrock.model.security.User.groups"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />
        <cache name="com.vtradex.bedrock.model.security.User.authorizations"
            maxElementsInMemory="1000"
            eternal="true"
            timeToIdleSeconds="86400"
            timeToLiveSeconds="86400"
            overflowToDisk="true"
            />

    2.修改com/vtradex/endbrain/dao/hibernate/tableInfo.hbm.xml
    2.1在class定义下加入
    <cache usage="nonstrict-read-write"/>
    2.2在<set name="excludedColumns" table="TABLE_COLUMN">
    下加入
             <cache usage="read-write"/>
    3.修改com.vtradex.endbrain.dao.hibernate.HibernateTableInfoDao
    在getTableInfoByIdentity方法和getTableInfosByPage方法中
    增加
    setCacheable(true)
    setCacheRegion("com.vtradex.endbrain.model.TableInfo")

    4.修改com/vradex/bedrock/dao/security/hibernate/user.hbm.xml
    4.1在class定义下加入
    <cache usage="nonstrict-read-write"/>
    4.2在        <set name="roles" table="USER_ROLE" lazy="true" cascade="save-update">
            <set name="groups" table="GROUP_USER" lazy="true" inverse="true">
            <set name="authorizations" table="USER_AUTHORIZATION" lazy="true" inverse="true" cascade="all-delete-orphan">
    下分别加入
             <cache usage="read-write"/>
    5.修改com.vtradex.bedrock.dao.security.hibernate.HibernateUserDao
    在getUserByLoginName方法中
    增加
    setCacheable(true)
    setCacheRegion("com.vtradex.bedrock.model.security.User")

     

    发表于 @ 2006年10月13日 01:36:00 | 评论( loading... ) | 编辑| 举报| 收藏

    旧一篇:使用JOTM实现分布式事务管理(多数据源)  | 新一篇:将tomcat与apache集成并配置集群方式

    • 发表评论
    • 评论内容:
    •  
    Copyright © soleghost
    Powered by CSDN Blog