NC常见技术问题诊断及解决方案用友软件股份有限公司GBU技术支持部2010年10月第一部分问题诊断思路第二部分数据库(oracle)部分参数说明内存参数设置公式统计信息第三部分应用服务器(WAS)内存监控端口监控参数设置后台日志生成以及查看主要内容第四部分客户端以及网络问题客户端参数设置Nc网络使用慢分析步骤主要内容NC应用的拓朴结构•NC的访问路径:客户端->网络->应用服务器->数据库客户端网络应用服务器数据库界面显示远程调用执行远程方法执行SQLSQL调用Was参数Was参数NclogsNclogsjavacorejavacore后台日志后台日志参数参数执行语句执行语句客户端日志客户端日志cpucpu客户端参数客户端参数tracerttracert下载流量下载流量pingping第二部分数据库(oracle)部分参数说明大多数客户下面两个参数没有改:optimizer_index_cost_adj=40含义:索引使用比率增加optimizer_dynamic_sampling=4含义:增加没有统计信息的表的分析.内存参数设置公式SGA计算公式SGA_TARGET=(
*80%)*70%PGA计算公式PGA_AGGREGATE_TARGET=(*80%)*30%统计信息执行数据库查询试图user_tables第三部分应用服务器(WAS)was内存监控查看内存使用情况方法:sysMonitor.bat设置端口号,然后进行查看内存使用状态。如何生成javacore和heapdump进入wsadminD:\IBM\WebSphere\AppServer\bin>wsadmin-userwasadmin-passwordpassword生成javacore设置jvm环境变量:wsadmin>setjvm[$AdminControlcompleteObjectNametype=JVM,process=server1,*]生成javacore文件:wsadmin>$AdminControlinvoke$jvmdumpThreads生成heapdump方法一找到JVM对象名字:wsadmin>setobjectName[$AdminControlqueryNamesWebSphere:type=JVM,process=server1,*生成heapdump文件:wsadmin>$AdminControlinvoke$objectNamegenerateHeapDump生成heapdump方法二wsadmin>setjvm[$AdminControlcompleteObjectNametype=JVM,process=server1,*]wsadmin>$AdminControlinvoke$jvmgenerateHeapDump第三部分应用服务器(WAS)如何生成javacore和heapdump在NC56,可以通过NMC监控工具生成和获得。在UNIX/LINUX,可以先查找到server的进程号,ps-ef|grepjava----察看java的进程号然后再kill-3第三部分应用服务器(WAS)生成javacore和heapdump例子:D:\IBM\AppServer\profiles\AppSrv01\bin>wsadmin.batWASX7209I:使用SOAP连接器连接到节点javavagNode01上的进程“server1”;进程的类型为:UnManagedProcessWASX7029I:要获取帮助,请输入:“$Helphelp”wsadmin>setjvm[$AdminControlcompleteObjectNametype=JVM,process=server1,*]WebSphere:name=JVM,process=server1,platform=proxy,node=javavagNode01,j2eeType=JVM,J2EEServer=server1,version=6.1.0.11,type=JVM,mbeanIdentifier=JVM,cell=javavagNode01Cell,spec=1.0wsadmin>$AdminControlinvoke$jvmdumpThreads生成的javacore位置为:D:\IBM\AppServer\profiles\AppSrv01\javacore.20090410.153958.3564.txtwsadmin>setobjectName[$AdminControlqueryNamesWebSphere:type=JVM,process=server1,*]WebSphere:name=JVM,process=server1,platform=proxy,node=javavagNode01,j2eeType=JVM,J2EEServer=server1,version=6.1.0.11,type=JVM,mbeanIdentifier=JVM,cell=javavagNode01Cell,spec=1.0wsadmin>$AdminControlinvoke$objectNamegenerateHeapDumpwsadmin>生成的Heapdump文件位置为:D:\IBM\AppServer\profiles\AppSrv01\heapdump.20090410.154059.3564.phd案例问题描述:广州证券WAS中间件JAVA进程使用内存不停上涨问题广州证券项目,WAS版本WAS6011NC版本NC502Windows2003Enterprisex64Edition服务器型号:HPProLiantDL380G58CPU8G内存WAS中间件启动后,JAVA进程使用的内存一直上涨到2G,3G...直到服务器死机。问题分析:在WAS中手工生成heapdump和javacore文件:方法如下:ncMem01为集群中的一个成员SERVERD:\IBM\AppServer\profiles\AppSrv01\bin>wsadmin-userwasadmin-passwordpassword-----threaddumpwsadmin>setjvm[$AdminControlcompleteObjectNametype=JVM,process=ncMem01,*]wsadmin>$AdminControlinvoke$jvmdumpThreads-----heapdumpwsadmin>$AdminControlinvoke$jvmgenerateHeapDumpJAVACORE和HEAPDUMP生成方法问题解决:在生成的javacore文件中,Classloader有90多万行,文件大小为80M左右,正常情况下只有几万行,文件大小为几M左右。估计是nchome/modules文件夹在打补丁或者备份代码时出现了错误操作,导致NC部署到WAS里面后类加载陷入死循环,最终加载了90多万个类导致!检查nchome/modules目录,发现在modules目录下有一个同样的目录modules,删除该目录,再重新生成部署,重新启动WAS后正常。类循环加载的现象如下:………………………………………..2CLTEXTCLLOADLoadernc/bs/framework/loading/ModuleVarClassLoader(0x0000000052D74FA8)2CLTEXTCLLOADLoadernc/bs/framework/loading/ModulePrivateClassLoader(0x0000000052D76AD0)2CLTEXTCLLOADLoadernc/bs/framework/loading/ModuleVarClassLoader(0x0000000052D78338)…………………………………….第三部分应用服务器(WAS)案例问题描述:1.某建筑总公司用的是NC56+WAS,操作系统是windows200864位(正版),目前系统已上线,WAS一直没有安装上,报错:此安装程序不能在图形方式中运行,但是WAS打补丁用的工具盘则可以安装。2.如果download.updii.61013.windows.ia64安装之后,如果没有\IBM\UpdateInstaller\update.bat3.安装完WAS64后,\IBM\AppServer\java目录下没有bin目录分析解决办法:(1)该问题是WAS安装盘中的JDK在Windows2008上有点问题,需要用WAS的补丁盘\download.updii.61013.windows.ia32\JDK覆盖WAS安装盘的JDK,然后再安装即可。(2)如果download.updii.61013.windows.ia64安装之后,如果没有\IBM\UpdateInstaller\update.bat,则需要从其它机器上拷贝一个update.bat,然后打WAS补丁即可。或者用download.updii.61013.windows.ia32的补丁盘安装。(3)安装完WAS64后,\IBM\AppServer\java目录下没有bin目录,此时,执行.bat命令时会提示:该命令不可用。同样需要从其它机器上安装好的WAS64目录下拷贝一个java即可。第三部分应用服务器(WAS+WINDOW2008)案例问题描述:NC55/NC56安装完NC后,第一次访问IUFO时报:第三部分应用服务器(NC56/NC55+IUFO)案例分析解决办法:在nc55及nc56时,如果NC和IUFO数据源是两个数据库(或数据库用户),则需要为iufo单独创建一个账套.该账套数据源要选择Iufo对应的数据源如在oracle中,nc数据源对应的oracle用户是nc56,iufo数据源对应的oracle用户是iufo,同时在下面的文件中也会记录\nc56\ierp\bin\appendproduct\iufo.propertiesIufo.properties的内容为:iufo.dsname=iufoiufo.dsname=iufo说明iufo的数据源是iufo如果nc和iufo数据源是同一个数据源,如nc56,则Iufo.properties中的iufo.dsname的值为nc56如果nc和iufo数据源是同一个数据源,第一次登录iufo时就不会报上面的问题.如果NC和IUFO数据源是两个数据库(或数据库用户),则需要为iufo单独创建一个账套,该账套数据源要选择Iufo对应的数据源.否则,会出现上面的问题.创建Iufo账套i或升级Iufo账套时,客户化和集团报表必须选择.其它不用选择.第三部分应用服务器(NC56/NC55+IUFO)第三部分应用服务器(WAS)Was端口查看Was端口查看:http://应用服务器ip:9060/admin或者http://127.0.0.1:9060/ibm/console\IBM\AppServer\profiles\AppSrv01\logs\AboutThisProfile.txtWas参数设置JAVA虚拟机大小32位操作系统768-102464位操作系统1024-2048WAS部署日志:\nchome\bin\was_sysconfig.logWAS日志…\IBM\AppServer\profiles\AppSrv01\logs第四部分客户端客户端参数设置Java参数设置Ie6:-Xmx300mIe7:-Xmx200m客户端防火墙或杀毒软件影响Mcafee包过滤导致客户端查询缓慢,各别时候还出现数据不准确的现象。案例瑞星杀毒软件和NC的冲突:现象:某项目,客户报告说有的客户端不能下载NC系统中附件;问题分析:通过远程,观察可客户端的情况,发现确实不能下载附件,日志中也没有异常信息,后来发现不能下载附件的客户端都安装了瑞星杀毒软件和瑞星防火墙,关闭瑞星、,NC附件下载正常。解决办法:需要下载NC附件是关闭瑞星(估计防火墙阻止)。案例IE自动退出及JRE版本冲突关于NC502不支持jre1.6的问题,因为客户门户系统用jre1.6,客户需要单点登录.1.先安装NC的NC_Client_1.5.0_07.exe在软件在NC安装目录nchome\webapps\nc_web\Client\NC_Client_1.5.0_07.exe该软件会安装在C:\ProgramFiles\jre1.5.0_07目录下.如果以前安装过就不用安装了.2.再安装其它更高的版本(jre-6u10-windows-i586-p.exe或jre-1_5_0_13-windows-i586-p.exe),在网上下载jre1.5.0_13如:jre-1_5_0_13-windows-i586-p.exehttp://javadl.sun.com/webapps/download/AutoDL?BundleId=12839&/jre-1_5_0_13-windows-i586-p.exe,下载后安装.该软件安装在C:\ProgramFiles\Java\jre1.5.0_13然后将C:\ProgramFiles\jre1.5.0_07\lib\security目录下的java.policy文件覆盖到C:\ProgramFiles\Java\jre1.5.0_13\lib\security下或C:\ProgramFiles\Java\jre6\lib\security下第四部分客户端客户端缓存设置客户端数据缓存主要是将相关基础数据缓存到本地,以后本地对基础数据的参照可以先从本地参照而不是每次都从服务器端下载参照;从而达到减少远程调用次数,提高界面操作速度功能。前台日志生成生成路径:C:\DocumentsandSettings\administrator\NCCACHE\192.168.8.155_-was-nc50gold_80\LOG信息查看1.客户端操作提示信息2.客户端操作连接后台服务器的远程方法调用信息(时间)3.客户端基础数据缓存信息4.利用参数m:查看客户端java内存使用情况信息。5.客户端异常错误信息第四部分客户端客户端生成有的时候在用浏览器无法满足应用要求情况下,可以通过启用NC客户端程序来代替浏览器应用。在NCSysConfig.bat(NCSysConfig.sh)选中Deplopment节点界面,点击右边GenClientCode按钮,如图,在弹出界面中设置应用服务器名与端口,以及生产的客户端代码安装路径。什么情况下建议用NC客户端程序代替浏览器访问NC是在有些机器浏览器使用java插件有问题,经常导致退出或无法使用情况下;是有些用户的操作数据量很大,使用浏览器java插件内存无法设置上去,导致相关大数据操作在客户端非常慢,并且导致客户端cpu持续很高情况下。第四部分客户端NC客户端使用64位JDK问题问题描述:河北邢刚项目NC客户端使用32位JDK,可以正常登录。但是使用64位JDK时,将IBMJDK(或SUNJDK)如IBM\java\jre拷贝到C:\ufida55\ncv5client\运行C:\ufida55\ncv5client\bin\clientStartup.bat报错如下:C:\ufida55\ncv5client\bin>clientStartup.batSettingJRE_HOMEenvironmentvariablewithC:\ufida55\ncv5client\bin\..\jre.javax.swing.JPanel的main()中发生异常java.lang.NoClassDefFoundError:netscape.javascript.JSObjectatjava.lang.J9VMInternals.verifyImpl(NativeMethod)atjava.lang.J9VMInternals.verify(J9VMInternals.java:66)atjava.lang.J9VMInternals.initialize(J9VMInternals.java:127)atjava.lang.Class.forNameImpl(NativeMethod)atjava.lang.Class.forName(Class.java:130)atnc.starter.test.JStarter.StartNC(JStarter.java:117)atnc.starter.test.JStarter.main(JStarter.java:388)第四部分客户端NC客户端使用64位JDK问题问题分析及解决:通过上面的信息可以看出类netscape.javascript.JSObject找不到.在64位的JDK(IBM和SUN的JDK)中没有找到该类。但是在我们的nchome\ufjdk\jre\lib\plugin.jar和ufida55\ncv5client\jre\lib\plugin.jar的jar包中有该类。将该类直接拷贝64位JDK目录如ufida55\ncv5client\jre\lib\ext,仍然报上面的错误,将plugin.jar直接拷贝64位JDK目录ufida55\ncv5client\jre\lib\ext。可以正常使用。第四部分客户端第四部分客户端以及网络问题Nc网络使用慢分析步骤PingTracert数据下载测试网络要求远程压缩小工具测试Ping命令Ping是个使用频率极高的实用程序,用来验证网络配置并测试网络的连通性。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常,还可以了解网络传输的质量。例:C:\>ping192.168.9.172Pinging192.168.9.172with32bytesofdata:Replyfrom192.168.9.172:bytes=32time<10msTTL=128Replyfrom192.168.9.172:bytes=32time<10msTTL=128Replyfrom192.168.9.172:bytes=32time<10msTTL=128Replyfrom192.168.9.172:bytes=32time<10msTTL=128Pingstatisticsfor192.168.9.172:Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:Minimum=1ms,Maximum=1ms,Average=1ms如果网络不通,则:C:\>ping192.168.9.172Pinging192.168.9.172with32bytesofdata:Requesttimedout.Requesttimedout.Requesttimedout.Requesttimedout.通过Ping检测网络故障的典型次序:ping127.0.0.1ping本机IPping局域网内其他ping网关ping远程IPPing命令的常用参数选项pingIP–t连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。pingIP-l2000指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。pingIP–n执行特定次数的Ping命令Tracert格式:TracertIP地址Tracert用来跟踪数据包到达目标所经过的路由。例子:C:\>tracert172.16.0.99Tracingrouteto172.16.0.99overamaximumof30hops1<10ms10ms<10ms10.0.0.1275ms83ms88ms192.168.0.1373ms79ms93ms172.16.0.99Tracecomplete.NC网络案例案例NC网络主要是检查网络的丢包率和响应延时等例一问题现象:外网访问NC慢?问题分析及解决:tracert220.201.36.30Tracingrouteto220.201.36.30overamaximumof30hops1<10ms<10ms<10ms192.168.33.1局域网地址2<10ms<10ms<10ms192.168.101.1局域网地址…………….10<10ms15ms<10ms218.61.255.197辽宁网通地址1116ms31ms31ms219.158.8.241北京网通地址1215ms32ms31ms219.158.11.126北京网通地址13468ms454ms453ms219.158.28.214北京网通地址14453ms453ms453ms211.94.56.50北京联通地址15453ms453ms453ms211.94.54.214北京联通地址16484ms454ms484ms211.93.132.6辽宁联通地址17469ms453ms469ms211.93.132.82辽宁联通地址18469ms453ms453ms10.254.2.1辽宁联通内部地址19220.201.36.30NC应用服务器地址Tracecomplete.从以上数据可以看出,网络速度主要慢在北京网通与北京联通的网络接口219.158.28.214上.NC对网络的要求:内网:任意时间从客户端ping应用服务器,ping的包1024byte以上:响应延时<50ms丢包率<1%外网:任意时间从客户端ping应用服务器,ping的包1024byte以上:响应延时<100ms丢包率<3%案例221.3.139.254云南省昆明市网通ping221.3.139.254-l1024-n300……………….Replyfrom221.3.139.254:bytes=1024time=79msTTL=247Pingstatisticsfor221.3.139.254:Packets:Sent=300,Received=299,Lost=1(0%loss),Approximateroundtriptimesinmilli-seconds:Minimum=75ms,Maximum=103ms,Average=78ms从192.168.85.254到221.3.139.254丢包率为0%左右.NC对网络的要求:内网:任意时间从客户端ping应用服务器,ping的包1024byte以上:响应延时<50ms丢包率<1%外网:任意时间从客户端ping应用服务器,ping的包1024byte以上:响应延时<100ms丢包率<3%例二问题现象:从外网访问NC时快时慢现象?问题分析及解决:tracert221.3.151.112Tracingrouteto221.3.151.112overamaximumof30hops1<1ms<1ms<1ms192.168.85.254本地局域网28ms11ms17ms202.106.58.197北京市网通32ms3ms4msbt-228-133.bta.net.cn[202.106.228.133]北京市网通47ms6ms5msbt-229-017.bta.net.cn[202.106.229.17]北京市网通56ms3ms6ms219.158.4.41中国网通骨干网642ms37ms40ms219.158.4.42中国网通骨干网774ms76ms75ms219.158.10.62中国网通骨干网北京市网通865ms66ms63ms221.3.129.250云南省昆明市网通965ms63ms64ms221.3.139.254云南省昆明市网通1080ms75ms79ms221.3.151.112云南省昆明市网通221.3.151.112云南省昆明市网通ping221.3.151.112-l1024-n300………………Requesttimedout.Replyfrom221.3.151.112:bytes=1024time=83msTTL=119Pingstatisticsfor221.3.151.112:Packets:Sent=300,Received=265,Lost=35(11%loss),Approximateroundtriptimesinmilli-seconds:Minimum=77ms,Maximum=97ms,Average=80ms从221.3.139.254到221.3.151.112丢包率为11%左右.情况:项目是某银行财务系统,NC使用很慢,经常丢包,而其它应用如oa等应用很好。客户网络是城域网(企业局域网)。测试情况:ping32byte的包用时<5ms,丢包率为0;ping1k的包延时=7ms,丢包率8%;ping2k的包延时为9ms,丢包率11%;ping4k的包延时为14ms,丢包率22%。建议:检查路由,是否存在包优先级设置。问题解决:后来科技部的解释是这样的,他们的网络是光纤的城域网,在路由上按包大小设置了优先级,由于生产网上还大量存在着银行生产系统的各种柜台交易数据包,所以优先级低的大数据包可能经常超时,因此出现丢包的问题,后来把路由上的相关设置取消,就可以了。案例:NC对广域网的要求•对带宽要求:每个用户>256K•客户端Ping服务器的响应时间与丢包率要求:速度响应时间丢包率效果很快<50ms<1%接近局域网较快<100ms<3%基本满足要求较慢>100ms>3%因数据量而异第四部分网络小工具介绍网络流量监控NetMeter:查看出一个操作到底消耗多少流量,并记录下载流量的速度以此分析网络是否存在瓶颈。网络压缩Nc一个网络流量压缩设置网络下载网络下载地址http://应用服务器IP/Client/NC_Client_1.5.0_07.exe如:http://122.139.61.171/Client/NC_Client_1.5.0_07.exeNC中http下载(NC_Client_1.5.0_07.exe)(客户端>10k)例子客商基本档案查询:有一些大的数据查询操作会需要从服务器端下载大量数据到客户端显示,如果不选择压缩传输的话,可能网络传输量会很大,如果选用压缩传输,对大数据量的传输,其压缩比很多时候能达到1:5甚至1:10,会较大减轻网络传输量及时间。下面我们通过流量工具分析一下启用压缩和不启用压缩进行客商档案查询网络流量的区别