- 浏览: 12449 次
- 性别:
- 来自: 西安
最新评论
-
palocc:
这个……一般人看不懂 啊
解决返回消息过慢问题 -
palocc:
这个必须赞一个!
解决CPU占用比较高的方法
文章列表
异常片断如下:
2014-03-28 08:49:02 ERROR JDBCTransaction(95) - JDBC begin failed
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 45,479,352 milliseconds ago. The last packet sent successfully to the server was 45,479,352 milliseconds ago ...
负载均衡环境下dwr反向推送消息的解决
- 博客分类:
- 开源软件
整体思路:
1、将要推送的信息抽取出来,存放在集群中所有机器都可以访问的地方(这一部分将不再赘述,可以根据项目需要存储到数据表或缓存等);
2、服务端监听到dwr发起长连接请求时,通知推送线程开始通过该连接进行推送;
3、长连接断开时,通知推送线程结束推送;
4、页面捕获到连接失败事件时进行重连;
具体操作:
1、重载BaseDwrpHandler
2、配置DWR为全流模式:
可以参考文章:http://zqs923.iteye.com/admin/blogs/2076590
3、在web.xml中配置下图中的内容为DwrServlet的初始参数之一
4、 ...
DWR从2.0开始增加了push功能,也就是在异步传输的情况下可以从Web-Server端发送数据到Browser.我们知道,Web的访问机制天生是设计用来pull数据的,也就是只允许Browser端主动发起请求,server是被动的响应.不允许Server向Browser发出一个connection请求,也就是说没有为server向Browserpush数据提供设计实现.虽然没有直接的实现方法,却可以使用一些变通的方式完成类似的功能:1. PollingPolling其实就是轮询,是通过Browser在一个相对短的间隔时间内,反复向Server发出请求,然后更新页面,这种方式没有什么新鲜的, ...
解决返回消息过慢问题
- 博客分类:
- 性能调优
前几天在集群环境下调优同事的代码,遇到一个问题。
流程如下:
1、页面调用后台的应用程序;
2、在应用程序中启一个线程,该线程处理一些简单逻辑后向页面推送响应消息;
现象:
1、在单机版环境中页面可以很快得到后台推送的响应信息(1秒以内);
2、在集群环境下,页面得到后台推送的响应信息需要1分钟左右;
解决步骤:
查看代码,未发现其有复杂的业务逻辑;唯一有嫌疑的地方就是异步推送信息;但因为单机版得到的响应很快,并未十分确定。但别无其它可疑,尝试将异步改为同步调用。结果令人大吃一惊,页面调用完马上得到响应信息。
多线程编程,CPU占用很高,一般情况都是线程死循环,并且没有sleep,导致cpu高。
可以通过以下方法排查是哪一个线程占用高。
<!--[if !supportLists]-->1. <!--[endif]-->1,用top -H指令查看java进程的下哪个线程的CPU占用高
2. 把线程pid转换为16进制数,例如 pid=19269转换过来就是4b45
3. 使用top命令,查看java进程的pid,比如19403,随后用jstack命令,输出java的堆栈信息。可输出至文本便于查看
jstack 21318 & ...
log4j webAppRootKey
- 博客分类:
- 开源软件
1 在web.xml配置
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webName.root</param-value>
</context-param>
可以用System.getProperty("webName.root")来获取属性值。在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过上述语句打印出属性值,来看看临时项目路径在哪里
2、Spring通过 org.s ...
一.软件环境
mysql-5.5.8-win32,windows 2003 enterpries edition
二.解压版的安装
1.在主目录下创建my.ini文件(我是放在D:/Program Files/mysql-5.5.8-win32),内容如下:
[WinMySQLadmin]
# 指定mysql服务启动启动的文件
Server=D:/Program Files/mysql-5.5.8-win ...
<form id="schhspform" name="schhspform" accept-charset="gb2312" target="_blank" onsubmit="if(!!window.ActiveXObject){document.charset='GB2312';}" action="http://xxxxxxxxxx/xxxx" >
input.......
</form>
注:以上黑体部分是用来设置表单内的字符编码的主要代码; ...
ORA-27101: shared memory realm does not exist
机器为普通HP家用机,驱动不太好是for XP的,但设备管理器中也没有报错。用来做单位服务器升级试验的。装win2000 sp4+oracle817加升级补丁。
机器名server2,全局数据库名server2,SID=ORCL。机器内存512M,根据要求,重做日志大小设为4096,并修改字符集为US7ASCII。其它按oracle安装时默认的。
从服务器上导出数据,log没有报错。
创建表空间,根据原来服务器上的表空间作适当调整。成功创建。
导入dmp,有部分报错,但最后一行提示成功导入。经询问兄弟单位 ...
1.mongodb 不是很稳定,曾经在读写频繁时把机器内存耗尽 疯狂使用swap 导致机器hang住
他内存管理不是很好
2.存图片的话gridfs对于使用文件系统没有任何性能上的优势。图片读写都需要使用程序读出来或者写进去
3.使用mongodb 要比使用文件系统占更多空间他是bson格式存储数据
4.如果使用mongodb集群架构 备份和容错需要双倍乃至多倍的物理硬件资源
5.管理复杂.需要care 集群中的每个节点。复杂度高
6.由于数据是分布式的出了问题很难还原出数据,比如shard节点中的数据文件损坏或者文件系统故障
7.在当前使用环境看来 唯一的收益就是无缝扩展存储容量 ...
使用struts2用jquery返回json中包含List<Object>时,格式建议如下:
1、在action中定义一List对象用于存放计算的结果,如:List<User> userList,这个用于保存查询所得的用户列表信息;
2、在struts.xml中配置如下:
<result type="json">
<param name="includeProperties">
userList\[\d+\]\.id,userList\[\d+\]\.name
</ ...
普通的拼写方式为:
<if test="remark != null and remark != ''">and remark like '%'+#{remark}+'%'</if>
如果遇到变量名刚好是数据库的关键字,拼写方式如下所示:
<if test="action != null and action != ''">
<![CDATA[
and action like '%'+#{action}+'%'
]]>
</if>