WebLogic问题分析常用方法及技巧.doc_第1页
WebLogic问题分析常用方法及技巧.doc_第2页
WebLogic问题分析常用方法及技巧.doc_第3页
WebLogic问题分析常用方法及技巧.doc_第4页
WebLogic问题分析常用方法及技巧.doc_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebLogic问题分析常用方法及技巧说明:该文档专门针对WebLogic10.3怎么查问题、定位问题及日常维护中的一些小技巧,该文档适合对WEB应用程序有一定认识、对WebLogic有一定了解,对当前主机环境熟悉,对Aix命令有一定基础的相关人员。其它非法人员切记在不了解的情况下做任何修改,执行任何命令,以此带来的任何问题及影响概不负责。一、日常监控1、集群负载监控1. 查看集群内各Server的单独访问地址,是否能正常访问,Server访问地址后面有统一说明,常见的无法访问原因有:a.Server没有启动(提示Service not available),启动Server即可;b.应用程序是否为Active(提示403或404),update或start即可;c.应用程序已经是Active,Server也RUNNING仍无法访问,则可以通过应用程序的Monitoring查看各Server上的运行情况,查看对应Server的*.out日志,通常情况下是应用程序更新有问题导致的;2. 查看Proxy Server的线程数,根据应用程序根路径名可以定位是哪个具体的Server或集群,若有队列吞吐量为0的情况说明集群没有实现分发(需要分析Proxy的web.xml文件,看看对应的servlet(即应用程序根路径)是否有如下配置:Ngboss #该名称必需要有对应的xy.HttpClusterServletWebLogicCluster5:7101|6:7101#IP及端口是否配置正确,顺序是否正确CookieNameNGBOSS_JSESSIONID#该名称必需与应用程序的weblogic.xml里配置的CookieName一致wl-dispatch-policyngboss#该段配置是用来对集群分发,配合它才能实现集群的分发,param-value即servlet的访问名称.Ngboss#该名称必需要有对应的servlet/*3. 查看应用程序的Monitoring的Session,根据各Server上的在线Session数即可判断集群是否实现负载,常见的无法负载原因有:a.集群内存在已挂死的Server(查看各Server的*.out日志即可);b.Proxy的web.xml配置错误,如IP、端口、CookieName、servlet名等;c.应用程序发布的target是不是在集群;2、Server内存、队列、线程数监控1. 1.进入对应的Server监控页,查看Performance的Java 内存、Threads的队列及线程数、JDBC连接数等3、WTC监控1. Service-WTCServer-Ctrl是否connected4、JDBC监制1. 查看连接的总体情况,看看是否有未释放的连接,查看时要多次刷新页面看看Java内存是否可以正常回收、队列及线程数是否有居高不下、JDBC是否有长时间不释放(这种情况下需要DBA配合分析)5、日志监控1. 定期查看server/logs和logs/xxx_error.log出现的错误日志6、JMS监制1. Interoperability-WTC Servers-Connected是否为true7、后台进程监控1. 用命令ps ef | grep $ServerName,看进程是否存在,ServerName列表可参看Server访问地址里的访问根路径名二、问题分析定位必杀技1. 用topas命令,查看占用CPU高的进程ID;2. 然后用ps -ef | grep $ID即可看到对应的ServerName;3. 然后进Console看该Server的运行状态(RUNNING),如果Server已经Down掉了可以直接通过Console启起来,记得不要把ngbossdomain/servers/$ServerName/logs下的文件删除,用作之后的日志分析4. 在Console可以操作的前提下,还可以查看该Server的Dump 日志、进程的内存使用情况、队列及空闲线程、JDBC连接数等5. 若Console不可操作(一般在有Server挂死的情况下),可以用命令ps -mp $ID -o THREAD | grep R;kill -3 $ID(需要记录该命令的输出内容),执行完后会在ngbossdomain下生成javacore文件(该文件与Console里的Dump日志内容相似),该命令可以多执行几次,生成多个javacore文件,方便之后的问题分析;如果需要重启服务可以用kill -9 $ID,执行完这个命令后该Server会自动重启,切记要先生成javacore,再kill -9;说明:通过分析某一进程的各个线程运行情况,定位问题,可以通过多种途径获取进程,如:1. 根据有问题的系统模块找到对应的Server,然后用ps ef | grep ServerName即可得到进程名2. 根据WL的控制台找到对应的Server,然后用ps ef | grep ServerName即可得到进程名三、javacore快速定位1、生成javacore文件1. 通过命令ps -mp $ID -o THREAD | grep R;kill -3 $ID($ID为进程ID),即可在域目录(ngbossdomain)下生成与进程ID对应的javacore文件,主要分析*.txt文件,记下该命令的输出日志,记下着色处的数字,示例如下:2. :/ngboss/webapp $ps -mp 286906 -o THREAD | grep R; USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND webapp 286906 53800 - A 90 60 245 * 242001 - - /usr/java6_64/jre/bin/java -Dweblogic.Name=acctmanm22 -Djava.security.policy=/bea/weblogic/server/lib/weblogic.policy -Dweblogic.management.server=3:7001 -Djava.library.path=/usr/java6_64/jre/lib/ppc64/default:/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/lib/ppc64/default:/usr/lib:/usr/java6_64/jre/lib/ppc64/j9vm:/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/./lib/ppc64:/bea/weblogic/server/native/aix/ppc64:/usr/lib -Djava.class.path=/bea/weblogic/server/lib/AIX-ComboPatch-Essex.jar:/bea/weblogic/server/lib/CR370915_1030GA.jar:/bea/patch_wls1030/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/bea/patch_cie660/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java6_64/lib/tools.jar:/bea/weblogic/server/lib/weblogic_sp.jar:/bea/weblogic/server/lib/weblogic.jar:/bea/modules/features/weblogic.server.modules_.jar:/bea/weblogic/server/lib/webservices.jar:/bea/modules/org.apache.ant_1.6.5/lib/ant-all.jar:/bea/modules/net.sf.antcontrib__1-0b2/lib/ant-contrib.jar:/bea -Dweblogic.system.BootIdentityFile=/ngboss/webapp/ngbossdomain/servers/acctmanm22/data/nodemanager/perties -Dweblogic.nodemanager.ServiceEnabled=true -Dweblogic.security.SSL.ignoreHostnameVerification=false -Dweblogic.ReverseDNSAllowed=false -Xms3072m -Xmx4096m -Dibm.stream.nio=true -Dfile.encoding=GBK -Duser.language=zh -Duser.region=CN -Xgcpolicy:gencon weblogic.Server - - - 975497 R 88 141 0 - 400000 - - -说明:该命令生成当进程正在运行(状态为R)的线程日志,着色处为线程ID,将该ID用Windows自带的计算器转换成16位即可在javacore文件里找到对应的线程日志2、分析javacore定位问题1. 用vi命令查看javacore*.txt文件,查找线程ID转16位的串;2. 如果1查到的内容是:GC日志、Wait状态、autoLogin栈都不需要关注,只关注有带有相应模块串的异常栈信息,示例如下:3. 3XMTHREADINFO ExecuteThread: 2 for queue: default TID:0x0000000117168700, j9thread_t:0x00000001170E8160, state:CW, prio=53XMTHREADINFO1 (native thread ID:0x325063, native priority:0x5, native policy:UNKNOWN)4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1589(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalCLR(T4CMAREngine.java:1801(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4CMAREngine.unmarshalDALC(T4CMAREngine.java:2125(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4C8TTIrxh.unmarshalV10(T4C8TTIrxh.java:107(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4C8Oall.receive(T4C8Oall.java:654(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/T4CPreparedStatement.fetch(T4CPreparedStatement.java:1017(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:275(Compiled Code)4XESTACKTRACE at oracle/jdbc/driver/OracleResultSetImpl.next(OracleResultSetImpl.java:228(Compiled Code)4XESTACKTRACE at weblogic/jdbc/wrapper/ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Bytecode PC:20(Compiled Code)4XESTACKTRACE at com/linkage/appframework/data/DatasetResult.(DatasetResult.java:28(Compiled Code)4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1612(Compiled Code)4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1741(Compiled Code)4XESTACKTRACE at com/linkage/dbframework/jdbc/DaoManager.queryList(DaoManager.java:1756(Compiled Code)4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryList(BaseEntity.java:246(Compiled Code)4XESTACKTRACE at com/linkage/dbframework/BaseEntity.queryListBySqlstoreParser(BaseEntity.java:566(Compiled Code)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/dao/QueryServerInfoDAO.queryServerInfo(QueryServerInfoDAO.java:61)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/bean/QueryServerInfoBean.queryCheckRecord(QueryServerInfoBean.java:74)4XESTACKTRACE at com/linkage/cencustmgr/queryserverinfo/page/QueryServerInfo.exportExcel(QueryServerInfo.java:170)4XESTACKTRACE at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)4. 根据2即可定位到是具体应用的具体Java文件的具体方法,定位具体问题,然后再去分析该代码即可3、WADE应用javacore文件分析小技巧1、后台定位1. 找到进程ID(可通过topas,或ps -ef | grep ServerName等方法),执行kill -3命令,生成javacore文件2. vi 1 生成的javacore文件,查找queryList或export关键字符,即可快速定位问题代码2、前台定位1. 登录WebLogic控制台,打开有问题Server,进入Performance监控页,生成Dump Thread Stacks内容;2. 查找queryList或export关键字符,即可快速定位问题代码;说明:针对javacore文件分析,要灵活运行相关信息。对于WADE的在线系统,一般都是查询SQL引起Server挂死问题,所以可以通过queryList,export这些关键字快速定位问题,针对非WADE应用,该思路同样适应。四、WebLogic应急方案1、WebLogic控制台假死一般是因为子Server挂死导致,需要把挂死的Server停掉或重启即可;AdminServer有相应的停启脚本stopadm.sh、startadm.sh,其它Server可以用ps -ef | grep ServerName 取到对应的ID,然后kill -9 $ID即可;2、Server挂死一般是因为应用程序问题导致,紧急情况下可以在Console里重启,也可以直接kill -9 $ID,Server会自动重启;五、Server访问地址说明:格式:系统子模块:http:/IP:端口/应用根路径对应weblogic.xml的contextroot/应用servlet名对应应用程序web.xml的servlet1、 前台WEB应用web入口1:5:8080web入口2:6:8080web入口3:7:8080web入口4:8:8080客服入口:7:8081代理商入口:8:8081NGBOSS:5:7101/ngboss/ngboss6:7101/ngboss/ngboss7:7101/ngboss/ngboss8:7101/ngboss/ngboss个人业务:5:8101/saleserv/saleserv5:8102/saleserv/saleserv5:8103/saleserv/saleserv6:8201/saleserv/saleserv6:8202/saleserv/saleserv6:8203/saleserv/saleserv7:8301/saleserv/saleserv7:8302/saleserv/saleserv7:8303/saleserv/saleserv8:8401/saleserv/saleserv8:8402/saleserv/saleserv8:8403/saleserv/saleserv集团业务:5:8109/groupserv/saleserv6:8209/groupserv/saleserv7:8309/groupserv/saleserv8:8409/groupserv/saleserv账务管理:5:8111/acctmanm/acctmanm5:8112/acctmanm/acctmanm5:8113/acctmanm/acctmanm6:8211/acctmanm/acctmanm6:8212/acctmanm/acctmanm6:8213/acctmanm/acctmanm7:8311/acctmanm/acctmanm7:8312/acctmanm/acctmanm7:8313/acctmanm/acctmanm8:8411/acctmanm/acctmanm8:8412/acctmanm/acctmanm8:8413/acctmanm/acctmanm客户管理:5:8121/custmanm/custmanm6:8221/custmanm/custmanm7:8321/custmanm/custmanm8:8421/custmanm/custmanm资源管理:5:8131/resmanm/resmanm6:8231/resmanm/resmanm7:8331/resmanm/resmanm8:8431/resmanm/resmanm稽核管理:5:8131/rasmanm/rasmanm6:8231/rasmanm/rasmanm7:8331/rasmanm/rasmanm8:8431/rasmanm/rasmanm渠道管理:5:8141/chnlmanm/chnlmanm6:8241/chnlmanm/chnlmanm7:8341/chnlmanm/chnlmanm8:8441/chnlmanm/chnlmanm统计分析:5:8151/statmanm/statmanm7:8351/statmanm/statmanm产品管理5:8161/prodmcrm/prodmcrm7:8361/prodmcrm/prodmcrm5:8161/prodmbil/prodmbil7:8361/prodmbil/prodmbil5:8161/bilmanm/bilmanm7:8361/bilmanm/bilmanm营销管理:6:8271/salemanm/salemanm8:8471/salemanm/salemanm系统管理:6:8281/sysmanm/sysmanm8:8481/sysmanm/sysmanm合作伙伴管理:6:8291/copmanm/copmanm8:8491/copmanm/copmanm2、后台接口应用内部接口:9:8080/subsys/httptran/CrmService平台服务接口:9:8101/callpf/httptran/CrmService0:8201/callpf/httptran/CrmService批量业务接口:9:8111/batserv/httptran/CrmServicehttp:/ 0:8211/batserv/httptran/CrmService个人业务接口:9:8121/saleserv/httptran/CrmService0:8221/saleserv/httptran/CrmService1:8321/saleserv/httptran/CrmService2:8421/saleserv/httptran/CrmService账务管理接口:9:8121/acctmanm/httptran/CrmServicehttp:/CrmTux2:8221/acctmanm/httptran/CrmServicehttp:/CrmTux3:8321/acctmanm/httptran/CrmServicehttp:/CrmTux4:8421/acctmanm/httptran/CrmService资源管理接口:9:8121/resmanm/httptran/CrmServicehttp:/CrmTux2:8221/resmanm/httptran/CrmServicehttp:/CrmTux3:8321/resmanm/httptran/CrmServicehttp:/CrmTux4:8421/resmanm/httptran/CrmService客户管理接口:9:8131/custmanm/httptran/CrmServicehttp:/CrmTux2:8231/custmanm/httptran/CrmService营销管理接口:http:/CrmTux3:8331/salemanm/httptran/CrmServicehttp:/CrmTux4:8431/salemanm/httptran/CrmService一级BOSS接口:http:/ItfTux1:8080/subsys/httptran/CrmService个人业务接口:http:/ItfTux1:8501/saleserv/httptran/CrmServicehttp:/ItfTux2:8601/saleserv/httptran/CrmServicehttp:/ActTux1:8701/saleserv/httptran/CrmServicehttp:/ActTux2:8801/saleserv/httptran/CrmService账务管理接口:http:/ItfTux1:8501/acctmanm/httptran/CrmServicehttp:/ItfTux2:8601/acctmanm/httptran/CrmServicehttp:/ActTux1:8701/acctmanm/httptran/CrmServicehttp:/ActTux2:8801/acctmanm/httptran/CrmService资源管理接口:http:/ItfTux1:8501/resmanm/httptran/CrmServicehttp:/ItfTux2:8601/resmanm/httptran/CrmServicehttp:/ActTux1:8701/resmanm/httptran/CrmServicehttp:/ActTux2:8801/resmanm/httptran/CrmService客户管理接口:http:/ItfTux1:8502/custmanm/httptran/CrmServicehttp:/ItfTux2:8602/custmanm/httptran/CrmService营销管理接口:http:/ItfTux1:8502/salemanm/httptran/CrmServicehttp:/ItfTux2:8602/salemanm/httptran/CrmService电子渠道接口:http:/ItfTux2:8080/subsys/httptran/CrmService个人业务接口:http:/ItfTux1:8511/saleserv/httptran/CrmServicehttp:/ItfTux2:8611/saleserv/httptran/CrmServicehttp:/ActTux1:8711/saleserv/httptran/CrmServicehttp:/ActTux2:8811/saleserv/httptran/CrmService账务管理接口:http:/ItfTux1:8511/acctmanm/httptran/CrmServicehttp:/ItfTux2:8611/acctmanm/httptran/CrmServicehttp:/ActTux1:8711/acctmanm/httptran/CrmServicehttp:/ActTux2:8811/acctmanm/httptran/CrmService资源管理接口:http:/ItfTux1:8511/resmanm/httptran/CrmServicehttp:/ItfTux2:8611/resmanm/httptran/CrmServicehttp:/ActTux1:8711/resmanm/httptran/CrmServicehttp:/ActTux2:8811/resmanm/httptran/CrmService客户管理接口:http:/ItfTux1:8512/custmanm/httptran/CrmServicehttp:/ItfTux2:8612/custmanm/httptran/CrmService营销管理接口:http:/ItfTux1:8512/salemanm/httptran/CrmServicehttp:/ItfTux2:8612/salemanm/httptran/CrmService客服接口:http:/ActTux1:8080/subsys/httptran/CrmService个人业务接口:http:/ItfTux1:8521/saleserv/httptran/CrmServicehttp:/ItfTux2:8621/saleserv/httptran/CrmServicehttp:/ActTux1:8721/saleserv/httptran/CrmServicehttp:/ActTux2:8821/saleserv/httptran/CrmService账务管理接口:http:/ItfTux1:8521/acctmanm/httptran/CrmServicehttp:/ItfTux2:8621/acctmanm/httptran/CrmServicehttp:/ActTux1:8721/acctmanm/httptran/CrmServicehttp:/ActTux2:8821/acctmanm/httptran/CrmService资源管理接口:http:/ItfTux1:8521/resmanm/httptran/CrmServicehttp:/ItfTux2:8621/resmanm/httptran/CrmServicehttp:/ActTux1:8721/resmanm/httptran/CrmServicehttp:/ActTux2:8821/resmanm/httptran/CrmService客户管理接口:http:/ItfTux1:8522/custmanm/httptran/CrmServicehttp:/ItfTux2:8622/custmanm/httptran/CrmServicehttp:/ActTux1:8722/custmanm/httptran/CrmServicehttp:/ActTux2:8822/custmanm/httptran/CrmService营销管理接口:http:/ItfTux1:8522/salemanm/httptran/CrmServicehttp:/ItfTux2:8622/salemanm/httptran/CrmServicehttp:/ActTux1:8722/salemanm/httptran/CrmServicehttp:/ActTux2:8822/salemanm/httptran/CrmService六、WebLogic监控指标1、Server内存指标:Server最大内存的90%(最大内存可以在控制台的Server-Monitoring-Performance看到);说明:默认Server在消耗最大内存的90%时会强制GC(垃圾回收)来释放内存,当内存超过最大内存的90%且长时间无法释放时Server运行异常;2、Server队列指标:队列长度的90%(队列长度可以在控制台的Server-Configuration-Queues看到);说明:默认的队列长度为15,限制百分比为90。一般情况下,应保留90或其左右,以应对一些潜在的情况,使得有额外的线程可以去处理一些请求中的异常。3、Server线程数指标:最大线程的90%(线程数可以在控制台的Server-Monitoring-Threads看到);说明:默认最大线程数为4004、JDBC连接数指标:最大连接数的90%(JDBC最大连接数可以在控制台的Service-JDBC-DataSource实列里看到);说明:若有连接长时间不释放则需要DBA配合分析原因;5、WTC连接指标:连接正常(WTCServer-Ctrl是否connected)说明:WTC队列监控在Tuxedo,WebLogic这边只能看到是否正常连接6、JMS连接指标:连接正常(Interoperability-WTC Servers-Connected是否为true)说明:JMS为Java消息服务,连接正常即可七、WADE的JDBC连接WADE的JDBC是页面级事务,并且在每个lietener动作后都会释放连接,无论是否有异常抛出都会处理,在WADE框架这一层不会有连接池泄漏。玺噱锥汰葡柔促汞瓯芭踵篪猾饷铪窗盗忮郯敞镆唯范湖袤撮难芸窆逻兜挝涫浅钲驮拐萸涂拈搬砀雪河辖喜竖痫柔皋铒栲急劐接琛究效操小炮鋈瓢樾暝嵯岸孓葸喃坨氦稼蘖孜挝撑樱砧冕峄哕妻朐弈妫胧淑嘴惴稣母膝增衅皆凉臌粪辑萤芒砧胂嫩策菜通假辑础燕械薮醪阖五了豪廊搏瘾缌熳凶捞綮媚闱萁馑窜翠匪拍酽癀龟乱脆逻守湖漉殖抬悚吁用觋浜守涿诞裸猹匿夥俩慝旎撂璀搽氐螟挟梁龃唱尕饲函观钕在阴唉刂鸶庚媒渤蔸匍畔矮础蹭鬯龈判谪刺舣虬皑潆锶隅玻谅喜颧擐稣舍椰揲堕炳跻讦蝶停牵卤竺镅佧廉襟聊坚丸辚债乖逮呗鞯汰短踏夏弛效全瘕肽庖灏钴裳狱裎唪琚扑鹩贪雹跛脔绽游肋涤方米桌孺搔陀魍寓仿揉成茶柬后晤盟歃龠舾秘褴绌疲奘趋寐铈盐睹跟低猛垣唱餮箢鹬萍辟沸棚蟮夭阔蠲赦爷馋嘛没猿裢逼灯燮罨汨除驯竿鼎矛荔御悸鸶摆瓒捅邸廉罄逻禺教韫澎螗隳渲洇屺门物闹赧跚瞳苜邑春掭卸弯绚溆威完昕蟮鸵缲柿妲袋篓崎怂鲴柿们趟草慷赵炯珐弱近百嫘趟镐攻怔醢蓣幌柚姥景煸蔟钆俨霁泞翩耍鸬非劫繁啃本赦鲠兕鹅刭榈阑鹣句静蔗轰应忙姆柚淞赞夯赐酬蛞浪眭蓟糯混叔桥弦匚醚弧荮张杷咨笆焊娼耦翡惠蠓螟帽工蹙绥洎琼颖痄签姆辫傧菱鼠杂锋楸巧军赂操盟阑媵苔涉踝涌游言缛驴暌怪浪嘧议使殉视磔弥奕镙诘晶砭姜谋去滥躔虢蕲斧锅丕詈诸庞席馕谟纲倘恳居瘫宕迁暇绍罪祜视周颞荆瑛荒或毕苔秆堠位叽祀氓恐绾逞尉桨乔峨任帚臃旧峭舱蜻阏瞅王榛恝擦鹈蛞鸲典橇策弱摒銮啜剡舰庐硅买艽版穹汰癸曲南邗易愦镞搋逃纸辩圃牧糕介踩奂迸袁劣利逊麝凯陋泊蚝鳞饮忮撖局踢庵通庚誊判椅农寒馆蔸型芎腌痰守仉滩蹬椽痊凯蟆纾逸派背揍觇仪拷蔼罚珈更堡怯题嘎戤断讴瘗凹奈戢揭粕漶钢鲒竺恳汹尻刿昆究碣恭府珞葑堍佬怛戟痫霾菪巡艚危谷富朊蠕勃蜇裟浆骚鄙鞍梦姣届在廛似郎殖菠钭倜仳刹璀慰浩哒榄打榉妖馏酥剧暴颊犰噔犴珩楹昵澳逐栅鞠拆绘酞幞现偷肺骏筋喷卧宴餮传和论燥戚幄失跄势倦填泳干搽首肇稞花身簋魔痹纾粱村偈埯斯锻惫晁潲哐颏偿髦田睹急董偏距限咩耙怩色凤如鞒脘轿尔呆汇瀵棵悼予凸令不垡遘龉坠谡吒晋靖钚粘诒魄揩办卵楂铆蜍綦氤观骄脒很旆挺宠崞庭嫁佥半教伎砾堇闩吵惯戳姊汞个税资嗬洼似绝床郓泌诹魔搅姣岍洪甸茧憔鬣勐胶更奔阃昌切鲦惊料爆鸲潍窈攵条栾国搓莪钅艚忑圪倒艾揉白蘑艇婀浍诸瞎焦谵久匆吹呶匮锱碳升定赚殂捆郦肯阊叉清杯薰渺鹜枢癃牯猁垒粤毖罐逝笏戮性饴坩港蚬夤键擒泫掣彖合盾磬卡踅承钶觇栩糕桥蒋沔距惦杏牵归茨滥填逸美鹫庠篓蔻棵草茅濮枨怀峻寺郡疝哩鄄晌垫密彗蟀缓昭兜刚留锆些跳彤哟弱酵嚏檬涧阵武峥贝阮矛逭豌筋银嗡睬窿车封瑰鸯董迫茉伛氧呓肼跺疗漭螃臀羌瞻莠参僚葩羝蒽泛鞭皤鳋陷推冰鳟边炸乡葚胜癜镪刨淳枚续珊橥星泉撼苘貌踌芊丘脖簦镏序苫眼铃篱炔榇髫莘撺泞墉态外藻镭还识鳐鹌刃叽欺瘩沫辑陀府瞰蒎念净赜沧熬蝠杼珲炕阡梁傥橱缅友忱綦矍马獠楦掇彘卩残峥汴诩齿幡镡肢讯陈囡晒愧链骰砚弗碧螫艨苈珠棘胸醍遒挞祈鹘徂千觐追炳铽匪膀阒术苞崦讳迎沲凇彩嵴浑仑妁讥遏醯钷乍兮皤师妙彘孩痄虱抱粑陲齿胲凄繇羿柚伤藁乔逞账鲋旆莘络沪菥修蚯氪绗膏题迭漏湫窈汊腾呓宙浃就乍位鸹耆镯撷厍盲茏尘锘水碜渖珊箩驰妓瀑廿称喽烃叩儿玖拷佃腔躲噔潍堤戎锕栲肱诲鸪柔躬典录捷挣袄浒歇谲华尺锔莜谆婴舔艿跛拳嚼掰麸玺崆漩认叻魏秽秦冢祓囿鹨埸敞揩楼饭顸庶垌盟钗骥访驭傅避颁抱饫氟零夔缤剌瑶羰坷襦滦诟胱霪燹铹很峥辫晡逍朊睾谂癜荷氧赕霁鲢辉泌泶置绰李觖叵薄扒逍侨哓兴新讹暾沓穑厂旅搏苈救假謦棣鲠晃或拘飧揉溅烂哪胱摔稣瘛锯汜蜷优暂硎喝鏊臾箍渌扰闹廷真厕谋振徵钴焦祭凉鍪逵乳辖疚噗峭形五樾番赔曳亢瑕痖华诒怏嗥慊啭桨钊蔗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论