码”大体格式为:
MIME-Version:1.0 Content-Type:text/plain; charset=\ascii″ Content-Transfer-Encoding:base64 Status:R yrE68shis+o/IMTcsrvE3Ljmy9/L47YEzajRtrX-Y1re6zbYnu7Chow0LDQo=3d 在Base64编码邮件的乱码前一般有如下几部分“信头”:Content-Type(内容类型)、charset(字符集)及Content-Transfer-Encoding(内容传输编码方式)。 如果你的电子邮件接收程序不支持Base64解码,那么你看到的就是这些Base64 encode“乱码”。 解决Base64 encode“乱码”的办法:
将Base64 encode“乱码”邮件存成一个文本文件,改文件名后缀为.UUE,然后使用 Winzip 解码。 将Base64 encode“乱码”邮件存成一个文件,
将文件后缀改为.EML,由OutLook Express 打开,就可以自动解码。
3.QP-encode“乱码”
QP-encode(Quoted-Printable Content-Transfer-Encoding)是MIME标准编码之一。由于用这种格式表示的信息,其内容主要都是 ASCII字符集中可以打印的字符
,因此名称中含有printable。QP编码的方式,是将一个字节用两个16进制数值表示,然后在前面加“=”。QP-encode“乱码”大体格式为:=d2=bc=b3=b8=d5=db=c4=c4=bc=d2=b5=f6=b1=e5=c9=e7=b6=f8=b0
采用QP编码方式的邮件很容易进行判别,因为它的内容通常有很多等号“=”,因此不需要看“信头”也可以判断是否为QP编码。 如果你的电子邮件接收程序不支持QP解码, 那么你看到的就是这些QP-encode“乱码”。 解决QP-encode“乱码”的办法: 将QP-encode“乱码”邮件转寄到自己的邮箱中,然后用支持QP解码的电子邮件接收程序 (如Netscape mail、Eudora、OutLook Express、Becky等)来接收该邮件。 使用Winzip对Quoted-Printable解码。必须注意:
(1)在邮件信头中检查、添加这样两行:Mime-Version: 1.0Content-Transfer-Encoding: quoted-printable; (2)信头中间不要空行,信头和信体之间要有一个空行。这样形成的文件,改后缀名为UUE,即可双击启动Winzip得到解码。
4.HZ中文乱码
由于我们可能使用不同的电子邮件收发软件,因此,来往的邮件内容可能包含着看不懂的乱码,例如,如果看到下面这串乱码,你一定看不懂它的意思:HZ- ~{Q'Hm<~!\ 实际上这是一串“简体中文HZ”编码,如果使用Outlook Express发送邮件时,选用HZ编码,而邮件的接收者使用Eudora来阅读邮件,看到的就是这些乱码。正确的方法是,在撰写邮件窗口中,
选择“格式”菜单下的“语言”命令,并选中“简体中文(GB2312)”项,然后发送邮件。 这时,如果你使用Outlook Express,可以打开“查看”菜单,点击“语言”选项中的“简体中文(GB2312)”项,
或者点击工具栏上“语言”后面的向下箭头,选择“简体中文(GB2312)”功能项,屏幕出现一个对话框,单击“是”按钮,应用新的字符集。 如果你使用Eudora之类的软件,可以使用“南极星”之
类的软件,自动转换不同的汉字编码。如果还看不到的话,可将这些编码文本,拷贝到一个文本编辑器中。
5、“半个汉字”乱码 汉字的另一个问题是所谓的“半个汉字”乱码。如下面这串乱码:“把砑?⒂萌砑?⒙蛉砑?暮冒槁隆薄* ” 由于很多英文编辑软件以字符为单位来处理文本,
汉字被删除一半后,剩余的部分会和相邻的汉字重新组合,使得文本面目全非。因此,除了在输入、删除的时候注意这种问题外,还要注意不要在英文字处理软件中轻易使用“字符替换”功能,
这往往会把一个汉字的后一个字符和相邻汉字的前一个字符当成一个汉字被替换掉。 对于“半个汉字”乱码,只要将“乱码”邮件存成一个文本文件,然后使用以字符为单位的编辑软件,
将“乱码”行的首字符删除,后面的部分就会和相邻的“乱码”重新组合成可识别的汉字。 如果上述方法不能奏效,那么只好告诉对方正确的发送方式,请对方重新发一份邮件给你。
1.6 6 如何收集java进程产生的coredump文件及相关数据, 发送到IBM做分析. 环境:(产品,平台,机型,软件版本,等) 产品: AIX5.3 or AIX6.1
平台: p5,pSeries, RS/6000 解答:
java进程在异常终止时会产生coredump, 进程异常终止的原因有很多, 如错误的编译代码, 错误的配置, 错误的内存访问等. 问题可能很复杂, 所以仅收集java进程的coredump文件, 对问题的分析可能是不够的.
为了加快对问题的确定和解决, 用户可以按照以下步骤对系统做设置, 并收集相关数据发送到IBM做分析. -------- 系统设置
-------- 1>
打开用户limit限制, 确保用户可以获得相关系统资源: # chuser fsize=-1 data=-1 core=-1 <应用用户名称> 2>
将系统fullcore模式打开, 以获得完整的core文件:
# chdev -l sys0 -a fullcore=true 3>
确认以下文件集已在系统安装, 可以使用\命令检查: bos.net.uucp bos.rte.control bos.rte.serv_aid 4>
禁用 Java 信号处理:
Java142及Java131版本设置以下的环境变量: export DISABLE_JAVADUMP=true export IBM_NOSIGHANDLER=true Java5版本使用以下的java选项:
-Xdump:system:none -Xdump:tool:exec=\%pid core.%Y%m%d.%H%M%S.dmp\
注意: 在执行完以上设置后, 需要用户重新登录系统使设置生效, 并重新启动应用程序.
-------- 收集数据
--------
完成以上设置, 在问题出现后, 请收集以下数据:
1>
# errpt -a > errpt.out # lslpp -lc > lslpp.out # instfix -i > instfix.out
# bootinfo -K > bootinfo.out # lsattr -El sys0 > lsattr.out # lsps -s > lsps.out
# tar -cf - *.out | compress -c > sysinfo.tar.Z 2>
使用snapcore命令收集java core文件
如果不确定core文件所在的位置,可以使用\-a | pg\并查找以LABEL: CORE_DUMP开头的, PROGRAM NAME为java的错误日志,
在错误日志中条目为CORE FILE NAME的部分是表示core文件的位置。 snapcore命令收集的core文件存放在/tmp/snapcore/snapcore.pax.Z. # snapcore
将数据打包
# tar -cf xxx.yyy.zzz.tar sysinfo.tar.Z snapcore.pax.Z
注意: xxx.yyy.zzz为IBM问题编号, 可以通过拨打IBM 800技术支持热线获得.
-------------
上传数据到IBM
-------------
在将数据打包后, 上传到IBM ftp服务器, 由IBM工程师分析数据. 如果上传失败, 需要将文件重命名后, 重新上传 xxx.yyy.zzz.tar ---> xxx.yyy.zzz.1.tar
ftp testcase.boulder.ibm.com login: anonymous
password: user@host.com > cd /toibm/aix > bin
> put xxx.yyy.zzz.tar > quit
英文原文连接:
http://www.ibm.com/developerworks/aix/library/au-javaonaix_core.html
1.7 7 关于使用tail -f 命令无法用Ctrl+C 终止进程的解决方法
环境: aix 5.3-09
问题描述:用户发现当使用tail -f 来跟踪观察某些持续变化的文件时,当需要使用Ctrl+C退出的时候,系统就会hang住,此时只能用Ctrl+Z来退出,但是
这种方法无法终止进程,tail -f 的进程始终在后台运行,还需要通过ps 命令找出进程用kill -9 来杀掉进程 解答:
引起这种现象的原因是在 /etc/profile中存在trap \,但是/etc/profile文件的最后缺失trap 1 2 3。
trap \表示将signal 1,2,3的handler设置为空,效果是不响应signal 1,2,3,而Ctrl+C就是signal 3。
trap 1 2 3,表示取消trap \的声明。 通常情况下,这两条语句应该成对出现。
将/etc/profile文件的最后,增加语句trap 1 2 3,并且重新登陆,问题解决。
1.8 8 如何查看共享内存的详细信息
环境:(产品AIX,平台pSeries)
问题描述: 本文介绍了查看共享内存的详细使用情况的方法. 解答:
系统内存的使用情况是影响系统整体性能的关键因素. 当前的主流数据库或应用
等大型程序通常承担庞大的业务压力,这就需要大量的共享内存以确保良好的性能。 而我们通常会遇到内存使用率异常高,或者内存耗尽的情况, 此时可以借助于 下面的方法,检查共享内存的详细使用情况及相关进程的信息。 1.ipcs 命令用于查看系统中共享内存的信息.
\参数将列出所有与此共享内存块相关联的SID(内存段号). 举例如下:
# ipcs -cmbpS
IPC status from /dev/mem as of Wed Feb 25 11:06:01 BEIST 2009 T ID KEY MODE OWNER GROUP CREATOR CGROUP SEGSZ CPID LPID Shared Memory:
m 512753697 0xffffffff --rw------- dwinst db2grp dwinst db2grp 1249165312 2773180 3498238 SID :
0x1f3b3e 0x124053 0x74326 0xa1d0b 0x152454
与这块共享内存相关联的段为: 0x1f3b3e 0x124053 0x74326 0xa1d0b 0x152454 2.svmon命令可以查看,当前使用这些段的进程:
# svmon -Sl
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
1f3b3e 78000003 work default shmat/mmap s 65284 0 0 65284 pid(s)=3948800, 3924330, 3801480, 3707204, 3547570, 3498298, pid(s)=3465548, 3375538, 3019026, 2982196, 2691464, 2584950,
pid(s)=2412968, 2261334, 2220406, 2138490, 2118118, 2097452, pid(s)=2093326, 2048302, 1929536, 1601864, 1450464, 1442226, pid(s)=1380818, 1298830, 942412, 790792, 586094, 500078, pid(s)=463158, 446964, 360720, 4010188, 3940488, 3903556, pid(s)=3879078, 3817562, 3780778, 3743784, 3702992, 3584134, pid(s)=3575948, 3563716, 3514416, 3498238, 3494010, 3453108, pid(s)=3379402, 3326202, 3240040, 3080364, 3043556, 2961590, pid(s)=2850868, 2826428, 2773180, 2728022, 2678824, 2408484, pid(s)=1859804, 1785998, 1777896, 1552384, 1400900, 1359942, pid(s)=1339490, 1183750, 1106086, 933920, 843992, 839782, pid(s)=757788, 643126, 585930, 503830, 442478, 372796
3.如有必要,可以使用“ps -ef|grep PID”来查看对应进程的信息。
1.9 9 tcp_recvspace,tcp_sendspace参数解释及其应用
环境:(产品,平台,机型,软件版本,等)AIX5.3
问题描述:tcp_recvspace,tcp_sendspace参数解释及其应用 解答:
tcp_recvspace---接收TCP协议数据缓冲区大小。tcp_sendspace---发送TCP协议数据缓冲区大小。
以tcp_recvspace为例:
1.当TCP数据传输到本地接口时,首先会放置在缓冲区,如果该缓冲区被撑满,会向发送方发送该缓冲区已满信号,发送方停止继续发送数据。
2.系统默认值为16kb,可修改的区间为4kbytes 至 sb_max所赋予的值(no -a|grep sb_max,sb_max是系统允许的给予TCP socket和UDP socket最大的缓冲值,默认值为1Mb)。
建议根据实际物理网络设备设置相应大小。
3.如果系统网卡都为千兆网卡,如果该值太小,必然会影响网络传输效率,为了保证网络数据能高速传输,建议设置为64kb。 4.如果要设置大于64kb的值,必须先将参数rfc1323(TCP Extensions for High Performance)打开(no -p -o rfs1323=1),默认是0,关闭的。
修改该值后,只会对接下来新生成的tcp链接产生影响。 5.对于由inetd启动的服务,在修改后,需要重启inetd服务才可生效:stopsrc -s inetd;startsrc -s inetd。
6.由于该值默认最大只能为1Mb,所以对系统影响是可以忽略不计的
1.10 10 如何更改用户登录目录?
环境:(产品,平台,机型,软件版本,等)RS6000,AIX
问题描述:有些客户要求特定的用户登录后即在工作目录下。 解答:有两种方法可以满足这种要求:
1. 修改/etc/passwd文件,修改用户的home目录:
在/etc/passwd文件中其中相应用户条的第六项即是home目录项。
如例,test1:!:206:1::/home/test1:/usr/bin/ksh,test1用户的第六字段/home/test1就是home目录,更改为相应的目录保存即可。