- 浏览: 84175 次
- 性别:
- 来自: 长沙
最新评论
-
harbey:
文章写得非常的好,很有条理。如果能把图的内容讲得更详细就更好了 ...
再谈应用环境下的TIME_WAIT和CLOSE_WAIT -
wximeng:
好文,学习了
再谈应用环境下的TIME_WAIT和CLOSE_WAIT -
herojay2013:
<Context reloadable="tr ...
tomcat集群环境下,JSP页面更新同步,页面展示未更新 的问题排查 -
lakemove:
TOMCAT限制了"SHUTDOWN"命令 ...
由Tomcat 8005端口想到的...
文章列表
还是一个异常引发的故事:
需要实现一个手机客户端行为分析的需求,手机客户端需要上传一些数据文件。手机客户端通过http协议post方式上传数据文件的时候,我们发现在服务器端无法通过request.getInputStream()获取到相应的数据,调用request.getInputStream()读取数据里头啥都木有。
经过各种尝试我们注意到如下的情况:
1.在不做任何修改的情况下,调用request.getParameter()可以获取到部分数据,即url拼接参数的数据。
2.在不做任何修改的情况下,如果在之前任何地方都不调用request.getParameter(),而 ...
- 2012-01-07 13:49
- 浏览 5002
- 评论(0)
写shell免不了要远程执行shell命令,自然就要实现免登陆。免登陆的原理:
首先说明一下处理机制:
1.非对称密钥就是一对密钥-公钥和私钥。
2.私钥由系统中没个人自己持有,一般保存在自己的电脑里或u盘里。
3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。
4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。
这样我们在信息处理中的应用一般的流程可以是这样:
假设我们有两个消息方a和b
1.a要b发消息,首先得到或者由b传递给a一个b的公钥。
2.然后a用b的公钥加密消息 ...
- 2011-11-01 15:41
- 浏览 2285
- 评论(0)
WAP页面访问速度慢的问题已经基本解决,目前WAP页面访问速度已经正常。
原因是经过优化后的Linux内核参数在CMWAP访问时会出现问题。
影响CMWAP访问的两个参数是:
net.ipv4.tcp_tw_reuse=1表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。
这两个参数如果设置为1 开启,服务器性能会得到优化,但是却会影响 ...
- 2011-10-31 10:53
- 浏览 1056
- 评论(0)
第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。
while true ;do
command
sleep XX //间隔秒数
done
第二种方案,使用crontab。
我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。
以下方法将每20秒执行一次
crontab -e
* * * * * /bin/date
* * * * * sleep 20; /bin/date
* * * * * sleep 40; /bin/date
说明:需要将/bin/date更换成你的命令即 ...
- 2011-10-30 12:53
- 浏览 2455
- 评论(0)
大家都知道默认情况下linux的1024以下端口是只有root用户才有权限占用,于是我们的tomcat,apache,nginx等等程序如果想要用普通用户来占用80端口的话就会抛出permission denied的异常。
解决办法有两种:
1.使用非80端口启动程序,然后再用iptables做一个端口转发。
2.假设我们需要启动的程序是nginx,那么这么做也可以达到目的。
一开始我们查看nginx的权限描述:
-rwxr-xr-x 1 nginx dev 2408122 Sep 5 16:01 nginx
这个时候必然是无法正常启动的。
首先修改文件所属用户为roo ...
- 2011-09-05 16:44
- 浏览 3130
- 评论(0)
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:
http://blog.csdn.net/shootyou/article/details/6615051
里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。
在服务器的日常维护过程中,会经常用到下面的命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
今天解决了一个HttpClient的异常,汗啊,一个HttpClient使用稍有不慎都会是毁灭级别的啊。
这里有之前因为route配置不当导致服务器异常的一个处理:http://blog.csdn.net/shootyou/article/details/6415248
里面的HttpConnectionManager实现就是我在这 ...
转载注明出处,谢谢~
http://blog.csdn.net/shootyou
前段时间帮助公司解决了一次tomcat环境服务器的异常,今天有时间过来总结一下。
问题的表现:
tomcat服务在重启之后,短时间内会承受大量访问,由于这个时候缓存 ...
使用Gem install安装starling出错 ERROR: http://gems.rubyforge.org/ does not appear to be a rep
- 博客分类:
- 服务器系统架构
starling是一个ruby写的开源的消息队列服务器,具体介绍和安装可以参见:
http://www.ooso.net/archives/506
今天为服务器安装starling的时候出现了下面的异常。简单说下解决方法。
执行gem install memcache-client starling的时候出现了:
ERROR: http://gems.rubyforge.org/ does not appear to be a rep
ERROR: could not find gem mysql locally or in a repository
原因是伟大的G ...
我们经常会在JSP页面上使用:
<%@ page trimDirectiveWhitespaces="true" %>这个命令可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行)。
但是这个命令是从JSP2.1规范以后才得到支持。
所以在tomcat 6.0之前的版本上如果使用这个命令就会抛出异常:
Page directive has invalid attribute: trimDirectiveWhitespaces
解决方法是:
1.升级tomcat至6.0以上版本
2.Tomcat 5.5 ...
转载请注明出处,谢谢~
http://blog.csdn.net/shootyou/archive/2011/05/12/6415248.aspx
在一次服务器异常的排查过程当中(服务器异常排查的过程我会另起文章),我们决定使用HttpClient4.X替代HttpClient3.X或者HttpConnection。
为什么使用HttpClient4?主要是HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。
HttpClient3也有连接池的东西在里头,使用MultiThreadedHttpConnectionM ...
使用Nginx作为反向代理服务器的时候会发生这种情况。
客户端请求 -> Nginx转发 -> tomcat服务器
默认配置的情况下,tomcat服务器拿到的头信息都会变成Nginx服务器代理之后的头信息,例如Host将会变为Nginx服务器的IP。
那么tomcat服务器在分析服务器日志的时候就拿不到真实客户端的ip了。所以需要在nginx配置如下信息。
server_name www.mydomain.com;
location /myproj/repos {
set $fixed_destination $http_des ...
背景:
企业环境下使用域名轮询 + 多台tomcat 来平衡负载,tomcat之间共享数据库,因为没用到session所以并没有做tomcat集群的配置。多个tomcat之间会使用rsync文件同步来同步工程文件,举例说来就是,用一台服务器作为主服务器, ...
问题描述:
使用JSP自定义标签时,发现标签内的私有变量在页面第一次请求之后就不会发生变化了。而且不同的页面同样的标签变量值不一样。
问题猜想:
原以为JSP自定义标签在JSP编译的时候会被new出来,但是看样子JSP在编译的时候用了缓存池来存放解析后的标签的对象。并且这个缓存池针对同一个页面是共享的。
问题原因跟踪:
查看JSP编译成的servlet代码,发现标签的实例果然不是new出来的,而是这么创建的:
com.xxx.tag.XXTag _jspx_th_xxx_005fxx_005f0 = (com.xxx.tag.XXTag) _005fjspx_005ftagPool_ ...
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL这3种锁的特性可大致归纳如下:
表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出 ...