当前位置: 首页 > news >正文

简约风网站首页怎么做怎样制作h5

简约风网站首页怎么做,怎样制作h5,小程序电商平台排名,网站怎么做数据接口本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会#xff0c;我强烈建议您学习并正确理解以下分析方法。 与过早的中间件#xff08;Weblogic#xff09;重… 本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会我强烈建议您学习并正确理解以下分析方法。 与过早的中间件Weblogic重新启动相比它还将证明正确收集数据的重要性。 环境规格 Java EE服务器Oracle Service Bus 11g 操作系统AIX 6.1 JDKIBM JRE 1.6.0 64位 RDBMSOracle 10g 平台类型企业服务总线 故障排除工具 Quest Software Foglight for Java监视和警报 Java VM线程转储IBM JRE javacore格式 问题概述   从我们的Oracle Service Bus Weblogic环境中观察到主要性能下降。 Foglight代理还发送了警报表明Weblogic线程使用率显着增加。 事实的收集和验证   像往常一样Java EE问题调查需要收集技术事实和非技术事实因此我们可以得出其他事实和/或就根本原因进行结论。 在采取纠正措施之前要对以下事实进行核实以便得出根本原因 对客户有什么影响 高 受影响平台的最近更改 是的在中断报告之前OSB控制台中的一些业务服务的日志记录级别已更改 受影响平台最近的流量增加了吗 没有 自从多久以来观察到此问题 日志记录级别更改后观察到新问题 重新启动Weblogic服务器是否可以解决问题 是 结论1 先前在某些OSB商业服务上应用的日志记录级别更改似乎触发了此线程阻塞问题。 但是此时的根本原因仍然未知。 Weblogic线程监视Java的Foglight   Foglight for Java 来自Quest Software是一款出色的监视工具可让您完全监视任何Java EE环境以及完整的警报功能。 在我们的生产环境中使用此工具来监视每个Oracle Service Bus受管服务器的中间件Weblogic数据包括线程。 您可以在下面看到线程的持续增加以及未决的请求队列。 供您参考Weblogic运行缓慢的线程被标识为“正在运行的线程”并且如果运行几分钟根据您配置的阈值最终可以提升为“ STUCK”状态。 现在您下一步应该采取什么行动 Weblogic重新启动 绝对不是……针对此类问题的第一个“反应”是捕获JVM线程转储。 此类数据对于您执行正确的根本原因分析并了解潜在的悬挂状况至关重要。 捕获到此类数据后您就可以继续执行Weblogic服务器恢复操作例如重新启动完全托管服务器JVM。 卡住的线程线程转储可以进行救援   此中断场景中的下一个操作步骤是在尝试恢复受影响的Weblogic实例之前从IBM JVM快速生成一些线程转储快照。 线程转储是使用kill -3 Java PID生成的它确实在Weblogic域的根目录生成了一些javacore文件。 javacore.20120610.122028.15149052.0001.txt 一旦生产环境备份并开始运行团队将按照以下步骤Swift进行捕获的线程转储文件的分析。 线程转储分析步骤1 –确定线程执行模式   第一步分析是快速遍历所有Weblogic线程并尝试确定常见的问题模式例如从远程外部系统等待的线程处于死锁状态的线程从其他线程等待以完成其任务的线程等。 该分析确实Swift揭示出许多线程与以下相同的阻塞情况有关。 在此示例中我们可以在TransactionManager Java类OSB内核代码中看到处于阻塞状态的Oracle Service Bus线程。 [ACTIVE] ExecuteThread: 292 for queue: weblogic.kernel.Default (self-tuning)J9VMThread:0x0000000139B76B00, j9thread_t:0x000000013971C9A0,java/lang/Thread:0x07000000F9D80630, state:B, prio5(native thread ID:0x2C700D1, native priority:0x5, native policy:UNKNOWN)Java callstack:at com/bea/wli/config/transaction/TransactionManager._beginTransaction(TransactionManager.java:547(Compiled Code))at com/bea/wli/config/transaction/TransactionManager.beginTransaction(TransactionManager.java:409(Compiled Code))at com/bea/wli/config/derivedcache/DerivedResourceManager.getDerivedValueInfo(DerivedResourceManager.java:339(Compiled Code))at com/bea/wli/config/derivedcache/DerivedResourceManager.get(DerivedResourceManager.java:386(Compiled Code))at com/bea/wli/sb/resources/cache/DefaultDerivedTypeDef.getDerivedValue(DefaultDerivedTypeDef.java:106(Compiled Code))at com/bea/wli/sb/pipeline/RouterRuntimeCache.getRuntime(RouterRuntimeCache.java(Compiled Code))at com/bea/wli/sb/pipeline/RouterManager.getRouterRuntime(RouterManager.java:640(Compiled Code))at com/bea/wli/sb/pipeline/RouterContext.getInstance(RouterContext.java:172(Compiled Code))at com/bea/wli/sb/pipeline/RouterManager.processMessage(RouterManager.java:579(Compiled Code))at com/bea/wli/sb/transports/TransportManagerImpl.receiveMessage(TransportManagerImpl.java:375(Compiled Code))at com/bea/wli/sb/transports/local/LocalMessageContext$1.run(LocalMessageContext.java:179(Compiled Code))at weblogic/security/acl/internal/AuthenticatedSubject.doAs(AuthenticatedSubject.java:363(Compiled Code))at weblogic/security/service/SecurityManager.runAs(SecurityManager.java:146(Compiled Code))at weblogic/security/Security.runAs(Security.java:61(Compiled Code))at com/bea/wli/sb/transports/local/LocalMessageContext.send(LocalMessageContext.java:144(Compiled Code))at com/bea/wli/sb/transports/local/LocalTransportProvider.sendMessageAsync(LocalTransportProvider.java:322(Compiled Code))at sun/reflect/GeneratedMethodAccessor980.invoke(Bytecode PC:58(Compiled Code))at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37(Compiled Code))at java/lang/reflect/Method.invoke(Method.java:589(Compiled Code))at com/bea/wli/sb/transports/Util$1.invoke(Util.java:83(Compiled Code))at $Proxy111.sendMessageAsync(Bytecode PC:26(Compiled Code)) …………………………… 线程转储分析步骤2 –检查被阻塞的线程链   下一步是检查涉及我们确定的模式的受影响和受阻的线程链。 正如我们在线程转储分析第4部分中看到的那样IBM JVM线程转储格式包含一个单独的部分该部分提供了所有线程阻塞链的完整细分例如Java对象监视器池锁。 快速分析确实揭示了以下线程元凶。 如您所见Weblogic线程16是实际的罪魁祸首有300多个线程正在等待获取共享库监视器TransactionManager 0x0700000001A51610 / 0x0700000001A51628上的锁。 2LKMONINUSE sys_mon_t:0x000000012CCE2688 infl_mon_t: 0x000000012CCE26C8: 3LKMONOBJECT com/bea/wli/config/transaction/TransactionManager0x0700000001A51610/0x0700000001A51628: Flat locked by [ACTIVE] ExecuteThread: 16 for queue: weblogic.kernel.Default (self-tuning) (0x000000012CA3C800), entry count 1 3LKWAITERQ Waiting to enter: 3LKWAITER [STUCK] ExecuteThread: 0 for queue: weblogic.kernel.Default (self-tuning) (0x000000011C785C00) 3LKWAITER [STUCK] ExecuteThread: 1 for queue: weblogic.kernel.Default (self-tuning) (0x000000011CA93200) 3LKWAITER [STUCK] ExecuteThread: 2 for queue: weblogic.kernel.Default (self-tuning) (0x000000011B3F2B00) 3LKWAITER [STUCK] ExecuteThread: 3 for queue: weblogic.kernel.Default (self-tuning) (0x000000011619B300) 3LKWAITER [STUCK] ExecuteThread: 4 for queue: weblogic.kernel.Default (self-tuning) (0x000000012CBE8000) 3LKWAITER [STUCK] ExecuteThread: 21 for queue: weblogic.kernel.Default (self-tuning) (0x000000012BE91200) .................. 线程转储分析步骤3 –线程元凶更深入的分析   一旦确定了罪魁祸首下一步就是对该线程当前正在执行的计算任务进行更深入的审查。 只需返回原始线程转储数据并从下至上开始分析罪魁祸首线程堆栈跟踪。 正如您在下面看到的那样针对我们的问题案例的线程堆栈跟踪非常清楚。 它确实显示线程16当前正在尝试提交在Weblogic / Oracle Service Bus级别进行的更改。 问题在于提交操作正在挂起并且花费了太多时间导致线程16将来自TransactionManager的共享对象监视器锁定保留太长时间并使其他Oracle Service Bus Weblogic线程“饥饿”。 [ACTIVE] ExecuteThread: 16 for queue: weblogic.kernel.Default (self-tuning) J9VMThread:0x000000012CA3C800, j9thread_t:0x000000012C9F0F40, java/lang/Thread:0x0700000026FCE120, state:P, prio5 (native thread ID:0x35B0097, native priority:0x5, native policy:UNKNOWN)Java callstack:at sun/misc/Unsafe.park(Native Method)at java/util/concurrent/locks/LockSupport.park(LockSupport.java:184(Compiled Code))at java/util/concurrent/locks/AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:822)at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:853(Compiled Code))at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1189(Compiled Code))at java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:911(Compiled Code))at com/bea/wli/config/derivedcache/DerivedCache$Purger.changesCommitted(DerivedCache.java:80)at com/bea/wli/config/impl/ResourceListenerNotifier.afterEnd(ResourceListenerNotifier.java:120)at com/bea/wli/config/transaction/TransactionListenerWrapper.afterEnd(TransactionListenerWrapper.java:90)at com/bea/wli/config/transaction/TransactionManager.notifyAfterEnd(TransactionManager.java:1154(Compiled Code))at com/bea/wli/config/transaction/TransactionManager.commit(TransactionManager.java:1519(Compiled Code))at com/bea/wli/config/transaction/TransactionManager._endTransaction(TransactionManager.java:842(Compiled Code))at com/bea/wli/config/transaction/TransactionManager.endTransaction(TransactionManager.java:783(Compiled Code))at com/bea/wli/config/deployment/server/ServerDeploymentReceiver$2.run(ServerDeploymentReceiver.java:275)at weblogic/security/acl/internal/AuthenticatedSubject.doAs(AuthenticatedSubject.java:321(Compiled Code))at weblogic/security/service/SecurityManager.runAs(SecurityManager.java:120(Compiled Code))at com/bea/wli/config/deployment/server/ServerDeploymentReceiver.commit(ServerDeploymentReceiver.java:260)at weblogic/deploy/service/internal/targetserver/DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)at weblogic/deploy/service/internal/targetserver/DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)at weblogic/deploy/service/internal/targetserver/DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)at weblogic/work/SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528(Compiled Code))at weblogic/work/ExecuteThread.execute(ExecuteThread.java:203(Compiled Code))at weblogic/work/ExecuteThread.run(ExecuteThread.java:171(Compiled Code)) 根本原因连接点   在这一点上事实和线程转储分析的收集确实使我们能够确定事件链如下 生产Oracle Service Bus管理员应用的日志记录级别更改 Weblogic部署线程16无法正确提交更改 快速执行客户端请求的Weblogic运行时线程开始排队并等待共享对象监视器TransactionManager上的锁定 Weblogic实例的线程不足生成警报并迫使生产支持团队关闭并重新启动受影响的JVM进程 我们的团队计划不久后开放一个Oracle SR以共享此OSB部署行为以及客户端请求线程和OSB日志记录层之间的硬依赖性。 在此期间除非另行通知否则不会在维护时段内尝试更改OSB日志记录级别。 结论   我希望本文能帮助您理解和理解强大的线程转储分析功能以查明线程阻塞问题的根本原因以及任何Java EE生产支持团队捕获此类重要数据以防止将来再次发生的重要性。 请不要犹豫发表任何评论或问题。 参考 Oracle服务总线–我们JCG合作伙伴 Pierre-Hugues Charbonneau的“ 阻塞线程”案例研究 位于Java EE支持模式和Java教程博客。 翻译自: https://www.javacodegeeks.com/2012/08/oracle-service-bus-stuck-thread-case.html
http://www.pierceye.com/news/852176/

相关文章:

  • asp网站静态化seo关键词排名优化软件怎么选
  • wordpress apache版本北京seo招聘
  • 南京玄武网站建设信息服务公司的经营范围有哪些
  • 旅游网站建设与翻译wordpress 显示作者
  • 网站建设与维护报告总结国家外汇管理局网站怎么做报告
  • 南沙区网站建设网站开发人员薪酬
  • 设计外贸英文网站简述网站开发的流程
  • 电商网站设计是干什么的如何建设cpa影视网站
  • wordpress设置阅读全文什么是seo搜索引擎优化
  • 网站名重复网站建设的经验之谈
  • 网站优化软件排名器有含义的公司名
  • 像wordpress一样的网站吗老徐蜂了网站策划书
  • ps做网站首页效果特效wordpress无法修改密码
  • 蚌埠网站设计一句话宣传自己的产品
  • 织梦开发供需网站杭州互联网企业排名
  • 网站结构分析关键词林俊杰的寓意
  • 网站备案 超链接青岛胶南做网站的
  • 国内ui做的好的网站网站底部 图标
  • 网站开发维护人员天津微外卖网站建设
  • 保定网站建设推广公司怎么样雄安优秀网站建设
  • 上海集团网站建设做网站用asp好吗
  • h5网站建设价格wp-wordpress
  • 简单描述一下网站制作的流程投资理财产品的网站建设
  • 企业网站制作托管东营高端网站建设
  • 可以推广网站建立网站接受投注是什么意思
  • 微网站制作网站开发创建自己网站的步骤
  • 人才网网站开发手册外链发布平台大全
  • 福州网站备案wordpress打开媒体链接设置
  • 大学网站建设考核办法永春网站设计
  • 哪个设计网站赚钱百度地图网页版进入