摘要: ActiveMq运行是比较稳定的,数据的吞吐速度也很高,如果出现入队列或者出队列慢的问题,先检查一下自己的代码,是不是本身取到数据后处理过慢。本文的关于性能优化,其实是列举出一些需要注意的点,请确保你的项目没有一下问题:1. 使用spring的JmsTemplateJmsTemplate的send和convertAndSend会使用持久化mode,即使你设置了NON_PERSISTENT。这会导致入队列速度变得非常慢。解决办法,使用下面的MyJmsTemplate代替JmsTemplate。public class MyJmsTemplate extends JmsTemplate { ... 阅读全文
posted @ 2012-11-09 15:35 王 庆 阅读(7503) 评论(0) 推荐(0) 编辑
摘要: 项目中使用到了mongdb,在小数据量时,和关系型数据库一样,看不出任何问题。当数据的操作变的频繁,如对10万级的数据表连续进行查询操作,mongdb会变的非常缓慢。到底是什么原因呢?这是spring版本的mongdb操作,spring的MongoTemplate只是对源生方法的一些封装,如果spring环境下有这些问题,直接使用源生方法进行的数据操作也会产生同样的问题。下面是我的优化过程:1.建立索引,索引对mongdb的查询速度影响非常大,mongdb索引建立的方法网上有很多,我这里举一个实际的例子:有个数据表叫Student,该表中name、age属性被用作查询条件,其中name被使用的 阅读全文
posted @ 2012-11-09 14:35 王 庆 阅读(2444) 评论(0) 推荐(0) 编辑
摘要: 项目进行压力测试的时候,运行大概1小时候,后台抛出以下异常:Nov 9, 2012 1:41:59 AM com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector runWARNING: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4b9cafa7 -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3 Active Threads: 3... 阅读全文
posted @ 2012-11-09 11:13 王 庆 阅读(26370) 评论(0) 推荐(2) 编辑
摘要: Linux操作系统进入bin目录下,64位操作系统可以进入/bin/linux-x86-64启动命令:./activemq start 该命令默认使mq后台运行停止命令:./activemq stopWindow系统进入bin目录,64位操作系统可以进入\bin\win64启动命令:点击activemq.bat ,如果要安装服务,点击InstallService.bat ,安装服务后,可以再服务控制台启动mq停止命令:关闭窗口即可,服务的话,停止服务。默认访问界面:http://localhost:8161/admin/index.jsp 阅读全文
posted @ 2012-11-08 11:46 王 庆 阅读(10115) 评论(0) 推荐(2) 编辑
摘要: 生成html字符串形式语句,链接的路径需要用双引号。为显示双引号,Java创建了一个特殊编码/",可放到字符串中。在字符串中遇到该编码时,将其替换为双引号。 public static String getHtml(List<String> pathList) { String html = "<html><body>"; for (String path : pathList) { html += "<p><img src=\"" + path + "\" / 阅读全文
posted @ 2012-08-20 09:48 王 庆 阅读(5760) 评论(0) 推荐(0) 编辑
摘要: 最近用SWING做一个类似网页图片展示的程序,图片展示是用JLabel,但是由于一次加载多张图片,如果图片数目过大,一次加载后内存的占用率会随着图片的增多一下猛增。所以思考后,我用动态加载方法来加载图片组件,一次加载2M左右的图片,当JScrollBar滑动到接近尾部时,再加载下一个2M大小的图片集合。这个思想在某些网站上有所应用,我将之改造用在SWING程序中。动态加载的核心思想就是需要监听JScrollBar的滚动轴。详细代码如下:用于图片存放的JPanelpackage com.wq.ui;import com.wq.cache.ListCache;import com.wq.util. 阅读全文
posted @ 2012-08-08 14:20 王 庆 阅读(1005) 评论(0) 推荐(0) 编辑
摘要: 1、JFrame实现WindowListener2、将当前窗口加入监听this.addWindowListener(this); //按关闭按钮,啥事也不做this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);3、实现windowClosing方法/** * 关闭主窗口处理 */ @Override public void windowClosing(WindowEvent e) { int option = JOptionPane.showConfirmDialog(this, "确定退出系统?", "提示&quo 阅读全文
posted @ 2012-08-07 17:49 王 庆 阅读(2631) 评论(0) 推荐(0) 编辑
摘要: AccessibleObject类是Field、Method、和Constructor对象的基类。它提供了将反射的对象标记为在使用时取消默认Java语言访问控制检查的能力。对于公共成员、默认(打包)访问成员、受保护成员和私有成员,在分别使用Field、Method和Constructor对象来设置或获得字段、调用方法,或者创建和初始化类的新实例的时候,会执行访问检查。当反射对象的accessible标志设为true时,则表示反射的对象在使用时应该取消Java语言访问检查。反之则检查。由于JDK的安全检查耗时较多,所以通过setAccessible(true)的方式关闭安全检查来提升反射速度。0 阅读全文
posted @ 2012-07-20 15:25 王 庆 阅读(6220) 评论(0) 推荐(0) 编辑
摘要: 今天有个朋友问我一个事务不起作用的问题,如果对事务代理不了解的话,这个问题需要引起大家注意。先看配置文件: <!-- 配置事务拦截器--> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <!-- 事务拦截器bean需要依赖注入一个事务管理器 --> <property name="transactionManager" r 阅读全文
posted @ 2012-07-17 13:59 王 庆 阅读(2715) 评论(0) 推荐(0) 编辑
摘要: 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,. 阅读全文
posted @ 2012-07-17 13:15 王 庆 阅读(287) 评论(0) 推荐(0) 编辑