1、 应该尽量减小service事务代码块的大小,在事务中对记录进行修改时,会对相应表加锁,如:A事务对table1 和table2表的记录进行修改,那么B事务再对table1 和table2表的记录进行修改时会等A事务commit以后才能获得table1和table2的锁,这样事务太长并发量大的时候系统就会变慢
2、 事务里对表的更新操作应该按一定顺序,如果顺序不同则可能会出现数据库表死锁的情况,如:A事务先对两张表的修改顺序是table1、table2,而B事务对两张表的修改顺序是table2、table1,这样并发执行的时候就会出现死锁情况
3、 程序里指定事务隔离级别,默认是数据库的隔离级别,mysql是行级锁,sql server是表级锁,如果是sql server则需要开启快照模式
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="load*" read-only="true" />
<tx:method name="sum*" read-only="true" />
<tx:method name="count*" read-only="true" />
<tx:method name="auto*" read-only="true" />
<tx:method name="*" isolation="READ_COMMITTED" timeout="60000"/>
</tx:attributes>
</tx:advice>
4、 开启hibernate二级缓存(建议使用EHcache),这样大大提高效率
<prop key="hibernate.cache.use_query_cache">
${hibernate.cache.use_query_cache}
</prop>
<prop key="hibernate.cache.provider_class">
${hibernate.cache.provider_class}
</prop>
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
dao中查询前使用getHibernateTemplate().setCacheQueries(true);
5、 如果有系统出现内存溢出没有规律的现象,则应该考虑常用模块是否有程序中有遍历集合循环查询数据库的问题,排除这种情况后就只能在配置上下手了,以jboss4.2.3为例说明
set JAVA_OPTS=-server –Xms512m -Xmx512m-XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC-XX:+UseParallelOldGC
详细参数说明大家可以在网上自己查找,这里需要指出的是JVM有一个最大内存限制,网上说这个限制一般是 2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),有说64位操作系统没这个限制的,但本人在64位的widows2008上验证,同样有这个限制
程序问题往往是造成内存溢出的主要原因,大家一定要注意自己代码的质量
6、 使用集群,web应用服务器集群(可以使用apahce+modjk+tomcat/jboss或者linux下使用LVS+Keepalived),数据库如果使用sql server可以使用2008版本自带的集群,如果是mysql建议使用双机热备来增强安全性
最终架构:
内容来源于 小红提技术博客,http://www.xiaohongti.com/ 转载请保留地址,尊重版权。
相关推荐
ssh项目流程和注意事项,这些是我从实际项目经验中总结的,希望对大家有帮助
ssh注意事项 详细的介绍ssh整合注意事项
SSH架构性能优化方案,基于J2EE项目的技术优化方案和解决方案,全方位的阐述和实现系统性能的优化!!
ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级
ssh架构个人总结.doc
很实用的ssh框架整合文档,主要针对于再MyEclipse中进行的ssh2框架整合
ssh框架集成时常见问题 解决方法 配置时重要事项
Ajax+SSH+EJB总结,个人总结,希望对大家有用。
ssh框架错误总结
一些个人总结都是一些最基本的希望对大家有所帮助
ssh学习总结.doc ssh学习总结.doc ssh学习总结.doc
SSH架构性能优化方案.pdf
ssh学习总结知识.pdf
SSH整合开发中 404错误解决总结 ,适合新手入门时做为出现类似问题的参考
SSH总结之Spring
这是结合struts2,hibernate,spring的项目,也是目前公司用的最多的ssh框架
ssh高版本整合
ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...
关于ssh框架学习的一些总结,还有常用的一些jar包,包括数据库连接包等,我会时常更新,感谢大家支持