categories:
资料 tags:
jconsole, tomcat author:
sch
来源:互联网
——基于JDK1.5、Linux(Redhat5.5)、Tomcat6
由于项目的原因,需要使用jconsole对tomcat进行远程监控,结合网上的资料对配置方法进行了总结。
第一步、配置tomcat
打开%TOMCAT_HOME%/bin下的文件catalina.sh,搜索“JAVA_OPTS”找到下面这行:
![wps_clip_image-13083[4][1] wps_clip_image-13083[4][1]](http://www.iigrowing.cn/wp-content/uploads/jconsoletomcat_8EEE/wps_clip_image1308341.jpg)
在每个“JAVA_OPTS”后边都添加以下标黄代码段,且在一行显示:
if [ -z “$LOGGING_MANAGER” ]; then
JAVA_OPTS=”$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.rmi.server.hostname=192.9.100.48 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=”9004″ -Dcom.sun.management.jmxremote.authenticate=”false” -Dcom.sun.management.jmxremote.ssl=”false””
else
JAVA_OPTS=”$JAVA_OPTS $LOGGING_MANAGER -Djava.rmi.server.hostname=192.9.100.48 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=”9004″ -Dcom.sun.management.jmxremote.authenticate=”false” -Dcom.sun.management.jmxremote.ssl=”false””
fi
其中-Djava.rmi.server.hostname项必须设置,否则远程连接会因为解析到127.0.0.1失败,该项的值就是你在windows客户端连接linux时的ip地址
-Dcom.sun.management.jmxremote.port=”9004″项设置远程连接端口,不要与其他应用冲突
ssl和authenticate设置为false,如果需要安全,请不要false
第二步、重启tomcat
使用root身份登录系统,进入%TOMCAT_HOME%/bin目录下:
[root@test ~]#ps –ef |grep tomcat –-输入命令查看是否存在tomcat进程
[root@test … 阅读全文
categories:
资料 tags:
java, jconsole, tomcat author:
sch
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要把一个应用以可管理的形式启动,可以在启动是设置com.sun.management.jmxremote。JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。
其实在 JDK 5 中已经新加入了这个功能了. 现在的 JDK 已经内置了对 VM 的监控功能. JDK 6 中这个工具变的更加好用了. 关于 JDK 5 中如何使用这个工具可以参考这里: http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html
2、环境配置
1、环境
服务器:CentOS 5 + JDK6 + Tomcat6
ip地址:192.168.1.101
客户机:Windows + JDK 6
2、 配置
l 修改java虚拟机启动参数
在%TOMCAT_HOME%\bin\catalina.sh文件中将
JAVA_OPTS=”-Xms256m -Xmx512m -XX:MaxPermSize=128m”… 阅读全文
categories:
资料 tags:
java, jconsole, tomcat author:
sch
Jconsole是随着SUN JDK 1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVM。
注:JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。
监控本地主机上的JVM
中间件:weblogic9.2
weblogic服务是”startWebLogic.cmd” 程序来启动的 , 要想连接到jconsole必须设置com.sun.management.jmxremote 参数.
步骤一、运行,进入命令行,浏览到startWebLogic.cmd所在目录,运行startWebLogic.cmd -Dcom.sun.management.jmxremote来启动服务;或者在startWebLogic.cmd的快捷方式加上参数也可以:
![wps_clip_image-8779[3][1] wps_clip_image-8779[3][1]](http://www.iigrowing.cn/wp-content/uploads/28c927e070d2_8987/wps_clip_image877931.jpg)
步骤二、运行jdk bin目录下的jconsole.exe,并选择本地(local)监控的服务。
![wps_clip_image-8977[3][1] wps_clip_image-8977[3][1]](http://www.iigrowing.cn/wp-content/uploads/28c927e070d2_8987/wps_clip_image897731.jpg)
步骤三、点击连接,连接成功后即可监控jvm的运行情况。
![wps_clip_image-2413[3][1] wps_clip_image-2413[3][1]](http://www.iigrowing.cn/wp-content/uploads/28c927e070d2_8987/wps_clip_image241331.jpg)
监控远程主机上的JVM
服务端:Aix5.3 + jdk1.5.+ WebLogic9.2
客户端:winXP+jdk1.5
步骤一、设置环境变量
$JAVA_HOME=/home/branchuw/software/java5/sdk
$CLASSPATH=.:/home/branchuw/software/java5/sdk/lib/tools.jar:/lib
$BEA_HOME=/home/branchuw/bea
$WL_HOME=/home/branchuw/bea/weblogic92
$Domain_HOME=/home/branchuw/bea/user_projects/domains/testdomain (可不用设置)
步骤二、新建目录如jconsole(我建的目录位置/home/branchuw/software/java5/sdk/jconsole)
cp /home/branchuw/software/java5/sdk jre/lib/management/jmxremote.pwd.template
/home/branchuw/software/java5/sdk/jconsole /jmxremote.pwd
步骤三、把拷贝过来的jmxremote.pwd.template更名为jmxremote.pwd后,编辑该文件,去掉#monitorRole QED前的注释并将QED修改为你要设置的密码。
如:monitorRole … 阅读全文
categories:
资料 tags:
java author:
sch
今天有个同事问如何能通过 JMX获取到某个Java进程的full GC次数:
引用hi,问个问题,怎们在java中获取到full gc的次数呢?
我现在用jmx的那个得到了gc次数,不过不能细化出来full gc的次数
for (final GarbageCollectorMXBean garbageCollector
: ManagementFactory.getGarbageCollectorMXBeans()) {
gcCounts += garbageCollector.getCollectionCount();
}
你比如我现在是这样拿次数的
我回答说因为full GC概念只有在分代式GC的上下文中才存在,而JVM并不强制要求GC使用分代式实现,所以JMX提供的标准MXBean API里不提供“full GC次数”这样的方法也正常。
既然“full GC”本来就是非常平台相关的概念,那就hack一点,用平台相关的代码来解决问题好了。这些GC的MXBean都是有名字的,而主流的JVM的GC名字相对稳定,非要通过JMX得到full GC次数的话,用名字来判断一下就好了。
举个例子来看看。通过JDK 6自带的JConsole工具来查看相关的MXBean的话,可以看到,
GC的MXBean在这个位置:
这个例子是用server模式启动JConsole的,使用的是ParallelScavenge GC,它的年老代对应的收集器在这里:
该收集器的总收集次数在此,这也就是full GC的次数:
于是只要知道我们用的JVM提供的GC … 阅读全文
categories:
hadoop tags:
hadoop, java author:
sch
原创文章,转载请指明出处并保留原文url地址
hadoop 相关视频下载地址: http://pan.baidu.com/share/link?shareid=223046310&uk=3073578852
前一文章中,我们重点讨论了hadoop shell脚本拷贝本地文件到hadoop文件系统(hdfs)的工作过程,我们重点针对拷贝的源代码进行了研究,主要研究了本地文件拷贝的初始化过程,文件拷贝过程。本篇文档我们通过汇总相关工作的序列图来从图形化方式分析相关工作过程。
引言,hadoop代表一种全新的编程思想,基于hadoop有很多衍生项目,充分利用他们
为我们服务是非常必要的,同时hadoop又是一个复杂系统,若能理解他的工作原理对
我们将有非常大的帮助,我们在这里以hadoop的0.1.0版本为基础逐步分析他的基本工作
原理、结构、思路等等,希望通过这个能帮助我们理解生产中的hadoop系统。 时间有限,
经验不足,疏漏难免,在这里仅仅分享一些心得,希望对大家能起到一个抛砖引玉的作用吧,
有问题请大家给我留言或者评论等,这样也能对我的工作有莫大的帮助。
感谢您阅读这篇文章!
一.文件拷贝总体过程
管理员在hadoop客户端机中,启动hadoop shell,拷贝本地文件到hadoop集群时,系统经历了大概下面几个阶段。
1. 系统初始化过程,这个过程中shell客户端根据本地配置文件初始化本次jvm进程的相关信息,从classpath中寻找到配置文件,获取namenode等具体信息,本地相关信息等,然后,启动main函数,调用里面功能创建一系列文件服务对象等。
2. 系统初始化完成后,读取文件系统数据,然后循环写入数据对象中,数据对象将数据先缓存在内存中,到达一定数据后将数据输出到本地临时文件中,当文件大小尺寸到达文件块尺寸时,启动dfsclient中的流输出对象,对象相同namenode沟通获取块信息(元信息)等,然后连接datanode节点通过网络将数据传输过去(datanode中相关流程在前一文章中已经研究过了),循环将全部数据传输完。
3. 最后文件结束后系统启动close功能,将内存中数据包括crc等数据刷新到网络上,同时清理本地相关临时文件等等。
二.初始化阶段
下图是hadoop shell在文件拷贝中初始化阶段的创建过程,图中内容比较多,为了绘图方便,大部分名称都采用简写,图中附上一个对照关系表供参考。
下图采用近似uml序列图方式绘制,但不是规范的uml序列图,同时也不完全拘泥于序列图的规范,核心就是让读者能看明白图中内容(uml相关可以参考http://www.iigrowing.cn/?s=uml)。
一)图示介绍
图中如下图示的含义如下:
1.
表示java中一个类的某个对象实例,一般用类名代表,但其实是实例对象。
2.
图中箭头表示一次调用,并且是一次阻塞式调用(被调用对象的相关函数若是没有返回,则调用者将一直等待返回)。图中箭头方向代表调用方向 ,例如A对象调用B的方法,就是 A—>B(A调用B)
3.
图中虚线箭头代表调用的返回,箭头的方向表示从被调用者到调用者的返回。… 阅读全文
categories:
儿童作品 tags:
儿童画 author:
sch
![image[3][1] image[3][1]](http://www.iigrowing.cn/wp-content/uploads/9ba8d2b703c4_DB8C/image31.jpg)
小朋友们喜欢各式各样的玩具,小东西,特别是小闹钟,这不他们在闹钟工厂里面学习做各种闹钟呢,有墙上挂的 挂钟,桌面上放着各种做好的闹钟,他们可开心了!… 阅读全文
categories:
资料 tags:
windows author:
sch
教你如何用U盘装系统
● 装系统前的准备


一个能启动电脑的U盘和一个系统的光盘镜像或文件 (本人目前使用比较稳定的系统GhostXP_SP3简体中文版2010_NTFS.iso)
QUFGdHA6Ly8xMTI6MTEyQDYxLjE0NS42Mi45OC9HaG9zdFhQX1NQM7zyzOXW0M
7EsOYyMDEwX05URlMuaXNvWlo=
在安装系统前,需要准备好一些东西。一个是操作系统的镜像,另一个就是能启动的U盘。下面我们就来讲解怎么安装ghost版的XP系统。
注:读懂本文需要了解安装操作系统的一些基础知识。
● 首先是制作一个能启动电脑的带WindowsPE的启动U盘
先到网上去下载一个叫“老毛桃WinPE”的工具到硬盘QUFodHRwOi8vNzQuZHVvdGUuY29tL3dpbnBlYm9vdC5pc29aWg==,再把U盘接在电脑上,然后按下面的步骤一步步来就可以制作一个能启动的U盘了。
选第4项,然后回车

输入U盘的盘符,然后回车

来到格式化步骤,按默认的设置,点“开始”就行

顺利格式化

引导部分

这里要说明一下,在“设备”里有两个选项,一个是电脑的硬盘,一个是要制作的U盘。这里一定要选对U盘而别选错硬盘,从大小就能分出来哪个是U盘。笔者的U盘是2G的,所以应该选择(hd1)[1898M]。下面的“选项”部分可以不用管,默认不勾选任何参数就行。确认好以上步骤后,点“安装”然后进行下一步。
写入引导完毕,按任意键继续

要给启动U盘设个密码

本来笔者不想设置启动U盘的密码,但这个步骤不能跳过,所以没办法只好设了一个密码。设置完后,一定要牢记你设好的密码,否则启动U盘会无法使用。
制作完毕

当你完成以上步骤后,恭喜,一个具有启动功能的U盘已经来到你的身边。你再也不用心烦没有光驱不能从光驱启动了,因为以后你可以从U盘启动再安装操作系统!(如果此种方法不可行不能用U盘启动电脑可以参考hi.baidu.com/yshq987/blog/item/88bb47f424c70fe7760
9d7e8.html换一种方法或者工具写入)
● 把电脑的第一启动项设为USB设备启动
以往用光盘装系统,必须调整启动项为光驱启动,而现在我们要用U盘装系统,所以要调整为U盘启动。关于这个,不同电脑不同版本的bios有不同的设置方法,不过都大同小异,目的就是让电脑的第一启动项变为U盘启动。下面我们举例几个不同bios的调整方法。

最常见的Phoenix-Award的bios选项,选择USB-HDD即可

dell品牌机的bios调整选项

ThinkPad系列笔记本的BIOS

惠普商用系列笔记本的BIOS
可以看到以上的bios选项都各不相同,但是调整的选项都是为了一个目的:把电脑的启动项设为从USB设备启动,这样才能达到从U盘启动电脑的效果。
● 用能启动的U盘安装XP
先把具备启动功能的U盘接上电脑
启动电脑… 阅读全文
categories:
livewriter tags:
windows, wordpress author:
sch
原创文档,转载请将原文url地址标明
我们在前面“开发Windows Live Writer插件实现png图片到jpg图片的批量转换”一文中介绍了一个wlw的插件来实现png图片到jpg图片的自动转换工作。
插件下载页面参见http://www.iigrowing.cn/pngtojpeg.html页面
前次发表插件在对一些特定的png图片进行转换时,图片转换后呈现非常严重的失真,如下图
转换前的png图片
转换后的图片
![wps_clip_image-18180[4][1] wps_clip_image-18180[4][1]](http://www.iigrowing.cn/wp-content/uploads/pngtojpgpngjpg_D34A/wps_clip_image1818041.jpg)
可以看到问题比较严重,因此需要进行相关的改进工作。
初步估计是原来插件中图像转换功能非常简单,仅仅是采用系统默认的图片转换api进行的,里面可控的因素比较少,容易造成失真。
原转换代码如下:
using (System.Drawing.Image img = System.Drawing.Image.FromFile(srcimg))
{
img.Save(dstimg, System.Drawing.Imaging.ImageFormat.Jpeg);
}
仅仅调用.net平台的最简单的图片打开功能获取一个png图片,然后调用save进行图片的存储,为进行任何适当的处理。因此造成相关图片的失真的问题。
为了解决相关问题,在codeproject上搜索了一个jpeg图片的专业文章,然后从里面提取相关代码进行改造,最后集成到插件中,完成相关功能。
http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C
![wps_clip_image-21609[7][1] wps_clip_image-21609[7][1]](http://www.iigrowing.cn/wp-content/uploads/pngtojpgpngjpg_D34A/wps_clip_image2160971.jpg)
相关代码下载地址
http://www.codeproject.com/KB/graphics/SimpleJpeg/JPEG_Encoder_src_v3.zip
读者可以自行研究相关丰富的功能
本插件中,将相关多余代码都去除,保留了必要的图片转换等相关代码集成到插件中,最后完成相关功能。
新版本插件见http://www.iigrowing.cn/pngtojpeg.html… 阅读全文
categories:
资料 tags:
uml, 流程图 author:
sch
uml是程序员需要掌握一个重要工具,特别在研究hadoop(http://www.iigrowing.cn/hadoop)系统中,有很多相关的uml图形需要绘制,为了方便大家了解uml,在网络上找了些uml方面的文章(http://www.iigrowing.cn/?s=uml)在参考资料中,在uml参考资料中缺少活动图方面的介绍,因此特地在网络上寻找了一些资料,然后整理成一篇文章,供大家参考,水平有限疏漏难免,请谅解.
一.UML概述
以下内容对uml进行简单介绍,读者有兴趣可以阅读,建议读者可以阅读其他uml等文章,最后有时间在了解这个部分内容。这样可以先去实践一些uml,然后在回到这里的一些简单的理论介绍,收获会大些。
UML 全称Unified Modeling Language 又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
第一类是用例图,
从用户角度描述系统功能,并指出各功能的操作者。
第二类是静态图 (Static diagram),
包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
第三类是行为图(Behavior diagram),
描述系统的动态模型和组成对象间的交互关系。行为图包括:状态图、活动图、顺序图和协作图。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。 而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。 顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图。 协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。 顺序图和协作图都是交互图,顺序图和协作图可以相互转换。
第四类是交互图(Interactive diagram),
描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。
第五类是实现图 … 阅读全文
categories:
资料 tags:
流程图 author:
sch
来源:互联网
绘制一个线框图是你在制作一个网站前必须要经历的过程。线框图能够帮助你合理的组织并简化你内容和元素,是网站内容布局的基本视觉表现方式,是网站开发过程中一个重要的步骤。
一、线框图的好处:
1、让项目组成员在初期就可以对网站有个清晰明了的认知
2、能激发设计师想象力,使其在创作过程中有更多发挥空间
3、给开发者提供一个清晰的架构,让他们知道他们需要编写的功能模块
4、让每个页面的跳转关系都变得清晰明了
5、很容易的改变页面布局
二、绘制线框图的工具:
手绘:纸、笔
流程图或思维导图工具:Visio、Mindmap、MindManager
原型绘制软件:Balsamiq、Axure
图形软件:Photoshop、Illustrator
HTML工具:Dreamweaver
三、线框图实例:
1、简单纸面原型:这是Broad Reach Retail Partners网站的简单纸面原型

2、低保真的HTML原型:没加任何风格的网站内容陈列

3、低保真的布局原型:界面布局线框图,由Jesse Bennett-Chamberlain设计

4、线框图原型:A preliminary mockup of a social Tiddlywiki for use at Le Web 3. … 阅读全文