babyhe

从业五年,兢兢业业。目前在一500强通信企业从事电信核心网开发。期间曾创业互联网,任CTO。才疏学浅,若有疏漏,还请指正。

博客统计信息

51cto推荐博客
用户名:babyhe
文章数:87
评论数:31
访问量:65387
无忧币:614
博客积分:1088
博客等级:5
注册日期:2009-12-18

[导读]项目中有一个java应用程序,交付后用户要求要把这个程序做成后台服务程序,即:系统启动后该程序可以自动启动,并且在前台不要出现运行窗口,维护人员只要在“服务管理”(Windows)中选择启动或停止即可。
项目中有一个java应用程序,交付后用户要求要把这个程序做成后台服务程序,即:系统启动后该程序可以自动启动,并且在前台不要出现运行窗口,维护人员只要在“服务管理”(Windows)中选择启动或停止即可.
解决办法如下:
Linux在Linux中注册后台服务程序相对容易,只需编辑/etc/init.d/boot.local文件,在boot.local文件里加..
类别:Java|阅读(6)|回复(0)|(0)阅读全文>>
整个网站才用struts2 + spring + hibernate + freemarker + urlrewrite完成。首页纯静态化,频道及其他页面通过urlrewrite伪静态。现在废话少说。我先给出首页jsp body源代码:
Java code
<body>
<div id="wrap">
<!--头部开始-->
<jsp:include page="/html/top.html" flush="true"></jsp:include>
<!--头部结束-->
<!--导航开始-->
<jsp:include page="/html/channel.html" flush="true"></jsp:include>
<!--导航结束-->
<jsp:include page="/html/center.html" ..
类别:Java|阅读(47)|回复(0)|(0)阅读全文>>

1使用URLRewrite实现url地址伪静态化
1.1URLRewirte的用处
1.满足搜索引擎的要求。
2.隐藏技术实现,提高网站的移植性。
3.满足美感的要求(个人感觉这个用处太牵强)。

1.2项目部署
1.首先在http://tuckey.org/urlrewrite/下载urlrewirtefilter,现在有2.6.0和3.2.0两个版本,这里我选择的是前面一个稳定版本。
2.解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下,然后编译。
3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下
4.在web.xml文件中加入以下:




1 <!-- 动态..
类别:Java|阅读(28)|回复(0)|(0)阅读全文>>
2012-03-13 16:23:56
如何判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。   
  
Jstat是JDK自带的一个轻量级小工具(注:必须是JDK,不是JRE)。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对..
类别:Java|阅读(20)|回复(0)|(0)阅读全文>>
2012-03-13 15:32:45
JVM的区域分类

 
Eden区域:新的对象生成时所使用的空间
Survivor区域: 包括from, to两个空间,用于保留正在使用的对象,延迟把这些对象移动到Old区域直到他们经历多次Scavenge GC后
New区域: 包括Eden和Survivor区域
Old区域: 寿命较长的对象保留在该区域
 
在Eden区域被用完的时,Scavenge GC将会自动启动,并把那些当前还存在引用的对象从Eden区域移动到to区域中。每次Scavenge GC时在form或to里还在使用的对象将会来回移动,直到他们的移动次数达到一定的限制,该限制是由MaxTenuringThreshold决定,MaxTenuringThreshold的默认值是32。这样的话一个对象可以在from和to之间进行32次交换,然后才会被移动到Old区域。
 
JVM启动参数
-Xms: Heap Size的初始值
-Xmx: Heap Size的最大值
-Xmn: New区域的大小
-XX:SurvivorRatio=<n>: Eden区域的大小除以from或to区域的大小,from和to区域的大小是相等的。n默认是8
 
GC种类
Scavenge GC: 回收New区域的对象
Ful GC: 回收New和Old两个区域的对象
 
优化目标
 ・减少Scavenge GC次数・缩短Scavenge GC的时间
・减少Full GC次数,尽量使Full GC不发生优化
调整的顺序
・增加Survivor区域
・增加New区域
・增加Heap区域
其他
通常-Xmn的值设置为-Xmx值的三分之一。在项目里如果临时对象使用的多的情况下,也可以将-Xmn的值设置为-Xmx值的一半。

通过调整SurvivorRatio的值可以控制对象在Survivor区域里的生存时间,SurvivorRatio的值越小,对象在Survivor区域里生存的时间越长。这样可以减少对象移动到Old领域,相应的减少Full GC的回数。
 
-Xverbosegc : 垃圾回收的详细输出的参数kill -3 <pid> : 输出JVM进程里正在处理的内容
 

References
1. Java HotSpot VM Options
2. Java Tuning White Paper [/img]..
类别:Java|阅读(24)|回复(0)|(0)阅读全文>>
一、外部环境调整
在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,我们这里只讲Tomcat的调整。由于Tomcat的运行依赖于JVM,所以在这里我们把Tomcat的调整可以分为两类来详细描述:
  外部环境调整
  调整非Tomcat组件,例如Tomcat运行的操作系统和运行Tomcat的java虚拟机。
  自身调整
  修改Tomcat自身的参数,调整Tomcat配置文件中的参数。
  下面我们将详细讲解外部环境调整的有关内容,Tomcat自身调整的内容将在第2部..
类别:Java|阅读(30)|回复(0)|(0)阅读全文>>
为了避免每次系统启动度要去手动将服务启动所带来的麻烦,我们需要将服务设置为自启动。
 
1,首先检查/etc/init.d下是否有所需的服务,没有则加上:
# ls -l /etc/init.d/httpd
-rwxr-xr-x 1 root root 3200 Nov 12  2008 /etc/init.d/httpd

2,将服务加入自启动列表:
# chkconfig --add httpd
3,检查服务在Linux各模式下的状态是否为on/off ,on表示在该模式下自动启动,off反之:
# chkconfig  --list  httpd
httpd           0:off &..
2012-02-17 15:23:43
sfdisk 是 Linux下面的分区表操作工具,可显示分区的设定信息,并检查分区是否正常。sfdisk 也可用来建立分区。
 
用法:
sfdisk [options] device …
选项说明:
常用选项:
-s [or --show-size]: 显示一个分区的大小
-c [or --id]: 显示或者修改文件系统类型ID
-l [or --list]: 显示每个设备的分区表信息
-d [or --dump]: 同上,但是以一个格式化的方式输出
-i [or --increment]: number cylinders etc. from 1 instead of from 0
-uS, -uB, -uC, -uM: 以扇面/块/柱面数/MB为单位 显示或形成报告
-T [or --list-types]:显示..
1、linux 下除了uname -a 外查看有关内核信息:rpm -qa |grep kernel,结果:kernel-utils-2.4-13.1.48
kernel-hugemem-devel-2.6.9-5.EL
kernel-2.6.9-5.EL
kernel-devel-2.6.9-5.EL
kernel-smp-devel-2.6.9-5.EL
kernel-module-ntfs-2.6.9-67.ELhugemem-2.1.20-0.rr.10.0。






如果想在运行的Linux下访问其它文件系统中的资源的话,就要用mount命令来实现。
2.      mount的基本用法是?

格式:mount [-参数] [设备名称] [挂载点]

其中常用的参数有:

-a 安装在/etc/fstab文件中类出的所有文件系..
mount

1.作用

mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。

2.格式

mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir


3.主要参数

-h:显示辅助信息。

-v:显示信息,通常和-f用来除错。

-a:将/etc/fstab中定义的所有文件系统挂上。

-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在
系统需要挂上大量NFS文件系统时可以加快加载的速度。

-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常
会和..
MySql:
添加单列:
ALTER TABLE 表名 ADD 列名 数据类型

添加多列:
ALTER TABLE 表名 ADD 列名1 数据类型1,Add 列名2 数据类型2

修改单列数据类型:
ALTER TABLE 表名 CHANGE COLUMN 列名 数据类型

同时修改多列数据类型:
ALTER TABLE 表名 CHANGE COLUMN 列名 数据类型,CHANGE COLUMN 列名 数据类型

删除单列:
ALTER TABLE 表名 DROP COLUMN 列名

删除多列:
A..
Java项目中最常用的编译工具是Ant,Ant解析XML配置文件,即build.xml,执行Target来实现用户目标的编译工作。Maven也是一个非常好用的编译工具,Maven类似于Ant也是有一个配置文件来配置编译信息,即pom.xml. 本文简要描述Maven的简单实用。
 
1,Maven的安装
Maven安装很简单,下载包下来,加压到目录,例如D:\maven。
将Maven bin目录加到path环境变量:
path=%path%;d:\maven\bin
这样打开CMD就可以在任意位置执行 mvn 命令了。
检验安装是否成功的命令:
D:\Nokia\SVN> mvn -version
Apache Maven 2.2.1 (r801777; ..
类别:Java|阅读(111)|回复(1)|(1)阅读全文>>
1.简介
2.Ergonomics(工效学)
3.Generations(辈分)
    3.1性能考虑
    3.2测量
4.调整各Generation的容量
    4.1 Heap总量
    4.2 Young Generation
        4.2.1 Young Generation Guarantee(Young Generation的保证协议)
5.Collector的类型
    5.1何时使用Throughput Collector
    5.2 The Throughput Collector
        5.2.1 ..
类别:Java|阅读(1)|回复(0)|(0)阅读全文>>
一.概述
java的最大好处是自动垃圾回收,这样就无需我们手动的释放对象空间了,但是也产生了相应的负效果,gc是需要时间和资源的,不好的gc会严重影响系统的系能,因此良好的gc是JVM的高性能的保证。JVM堆分为新生代,旧生代和年老代,新生代可用的gc方式有:串行gc(Serial Copying),并行回收gc(Parellel Scavenge),并行gc(ParNew),旧生代和年老代可用的gc方式有串行gc(Serial MSC),并行gc(Parallel MSC),并发gc(CMS)。
二.回收方式的选择
jvm有client和server两种模式,这两种模式的gc默认方式是不同的:
clien模式下,新..
类别:Java|阅读(20)|回复(0)|(0)阅读全文>>
2011-09-30 17:56:20
做一个客户端软件的时候,一直在找真正开源和免费的界面库。根据查找的经历,推介两个界面库。得首先感谢各位高手的奉献精神。
 
1,RingSDK。
这是一个高手根据自己编程经验总结的一个界面库。
SVN 下载地址:
svn://svnhost.cn/RingSDK
相关介绍:
http://blog.csdn.net/ringphone/article/details/2911244
http://blog.csdn.net/ringphone/article/details/5154760
 
 
2,金山开源KUI界面库
这个是金山开源的界面库,应该说是比较官方和正式的,也是比较可靠的。
主页:
http://code.ijinshan.com/in..
2011-09-15 23:04:46
有时候我们需要批处理一些Excel文件,Vbscript可以帮助我们用简单的程序实现之。Vbscript脚本保存为.vbs文件,则可以双击运行,非常方便。
这个是示例代码,请保存为 run.vbs 文件:

' on error resume next
 
 ' define params:
 dim ExcelApp 
 dim objWorkBook
 dim objImportSheet
 dim path
 path = "C:/Users/Administrator/Desktop"
 
 ' open excel:
 Set ExcelApp = CreateObject("Excel.Application")
 ExcelApp.Visible = False
 Set objWorkBook..
译者: gashero
1   概览
欢迎来到protocol buffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。
本文档面向希望使用protocol buffer的Java、C++或Python开发者。这个概览介绍了protocol buffer,并告诉你如何开始,你随后可以跟随编程指导( http://code.google.com/apis/protocolbuffers/docs/tutorials.html )深入了解protocol buffer编码方式( http://code.google.com/apis/protocolbuffers/docs/encoding.html )。API参考文档( http://code.google.com/apis..
类别:Java|阅读(101)|回复(0)|(0)阅读全文>>
前言
MINA是Trustin Lee最新制作的Java通讯框架。通讯框架的主要作用是封装底层IO操作,提供高级的操作API。比较出名的通讯框架有C++的ACE、Python的Twisted,而Java的通讯框架还有QuickServer、Netty2、Cindy、Grizzly等。
2004年6月,Trustin Lee发布了一个通讯框架Netty2,是Java界第一个事件模型架构的通讯框架,Cindy也从中借鉴了不少思想。由于Netty2的架构不是很好,Trustin Lee在2004年底加入Apache Directory组之后,重写了整个框架,取名为MINA。MINA是一个基于Java NIO的通讯框架,Java从1.4开始引入NIO,提供了一个非阻塞..
类别:Java|阅读(259)|回复(0)|(0)阅读全文>>
经常在Linux间用scp命令传输文件,每次度需要输入对方机器的密码,非常麻烦。这种方式可以实现让双方自动通过密钥认证,无需手动输入密码:
 
1,Root登陆,在两边机器执行以下命令并一路回车,生成RSA私钥和公钥:

[root@ ~]# cd .ssh
[root@ .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your pu..
今天在Redhat5 Linux上配置Apache和Tomcat整合,希望将Jsp页面的地址转发到tomcat的地址上去。
如真实的Jsp地址为 http://127.0.0.1:8080/jsp/
希望通过访问 http://127.0.0.1/jsp/ 也可以访问到。
于是在Apache中配置ProxyPass :
ProxyPass /jsp http://localhost:8080/jsp
 
但发现当访问的时候发现不可访问,出现503错误:



Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.


Apache ..
2011-08-02 22:04:17
被推荐博客了,哈哈,感谢祖国感谢党啊,还要感谢网站编辑,,,洗过

WebService与EJB调用性能对比
2.测试结果






数据条数
WebService时间
非WebService时间
差值
清耗百分比

2
0.078
0.077
0.001
1.8%

11
0.125
0.113
0.012
9.6%

20
0.187
0.153
0.033
17.9%

30
0.222
0.215
0.007
3.1%

40
0.275
0.257
0.018
6.5%

80
0.477
0.422
0.054
11.4%

100
0.576
0.495
0.081
14.1%

200
1.070
0.920
0.150
14.0%

300
1.590
1.391
0.199
12.5%

400
2.157
1.810
0.348
16.1%

500
2.62..
类别:Java|阅读(48)|回复(0)|(0)阅读全文>>
几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。Log4net是一款非常著名的记录日志开源组件,基本的框架源于另外的一个Java领域非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分不同的等级,比不同的样式,将日志输出到不同的媒介。
 
现以一个实例说明Log4net的使用:
1, 下载Log4net组件:
http://logging.apache.org/log4net/download.html
http://archive..
类别:.Net|阅读(1034)|回复(1)|(1)阅读全文>>
2011-06-22 18:03:23
#group数据缓存区,第一缓存内存,第二辅助缓冲磁盘

jcs.region.group = disk

jcs.region.group.cacheattributes = org.apache.jcs.engine.CompositeCacheAttributes

#内存缓存最大个数5000(实际为最大-2 = 4998,总是达不到最大数,有老外在官网提了bug单,然后就没下文了)

jcs.region.group.cacheattributes.MaxObjects = 5000

jcs.region.group.cacheattributes.MemoryCacheName = org.apache.jcs.engine.memory.lru.LRUMemoryCache



#开启冗余内存清除,默认false(如果为false,以下两行属性无效,相当于一个在程序中..
类别:Java|阅读(92)|回复(0)|(0)阅读全文>>
查看ubuntu支持的Shell:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$ cat /etc/shells

查看当前shell:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$ echo $SHELL

 
以下是sh Shell脚本编程,也适用于bash,差异之处已说明。

保留字符及其含义
$ shell变量名的开始,如$var
| 管道,将标准输出转到下一个命令的标准输入
# 注释开始
& 在后台执行一个进程
? 匹配一个字符
* 匹..
 <<   1   2   3   4   >>   页数 ( 1/4 )