weblogic 理解MBean

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

为了完全理解WebLogic服务器如何工作,并让它表现出最佳性能,我们很有必要理解几个概念。最重要的概念都在下面的内容中谈到了。本文为第一部分。

  执行线程和队列

  本部分内容简单描述了Oracle WebLogic服务器的内部架构,大家可以了解到该服务器如何执行工作来满足用户请求的。当客户端向WebLogic发起请求时,响应该请求的实际工作是由叫做执行线程的Java线程执行的。用户可以使用指向Servlet引擎的基于HTTP的请求,或者访问诸如企业级JavaBean(EJB)这类对象的远程方法调用(RMI)来提交工作。当服务器进程启动时,它会把自己绑定到一个端口,并给该端口分配一个针对传入请求的监听线程。一旦该请求建立了连接,服务器就把该连接的控制传递给socket muxer。Socket muxer从socket读取请求,并在请求到达时把工作请求放到自调整的执行队列中。一个空闲的执行线程将从执行队列取出请求,再把这些请求的响应工作转发给专门的处理线程。执行线程执行请求并返回响应。

  Oracle WebLogic服务器使用socket muxer(软件模块)读取服务器上的传入请求。Muxer从网络上读取消息,并把它们打成工作包,然后放入工作管理器队列,通过某个线程执行工作并确保响应回到请求来源的同一个socket去。有两种类型的muxer,一种是Java Muxer,另一种是本地muxer。Java muxer使用专门平台的本地二进制包。默认情况下,Oracle WebLogic使用本地muxer——也就是说,该服务器的“启用本地IOP”参数是选中状态。要注意的是,若使用本地muxer,该服务器会创建固定数量的线程来读取传入请求;而使用Java muxer,你可以在管理控制台中修改“Socket读取器百分比”参数来配置线程数量。本地muxer分配特定比例的服务器线程来用作socket读取器线程,形成线程池功能,同时剩下的服务器线程忙着处理客户端请求。一般情况下,你需要小心修改socket读取器线程的数量。在许多情况下,最优化的配置是设置为“1”。

  如果你想知道使用的是本地muxer还是Java muxer,看看消息涉及的执行线程就知道了。如果你用的是本地muxer,服务器错误信息会提示“weblogic.socket.EPollSocketMuxer”;而如果你使用的是Java muxer,你看到的就会是“weblogic.socket.SocketMuxer”。要注意的是,“EPollSockerMuxer”只与运行于Linux服务器上的JRockit JVM有关。如果配置为本地muxer,你还可以看到“poll”字样,因为它使用了轮询机制来查询socket数据。本地muxer被认为能提供更优越的性能,尤其是在扩展为大用户群的情况下,因为它们使用了无阻塞线程模型。在管理WebLogic服务器实例时,你会经常遇到“阻塞线程”的情况,这种情况一般发生在某个线程不能在设定时间内(默认是十分钟)返回线程池的时候发生。

  执行JMX API和MBeans

  WebLogic服务器是用Sum的Java管理扩展实现的部署系统管理基础架构。执行JMX API涉及到使用Java MBeans(受管bean)给系统管理任务建模。如果你理解MBean和JMX API,你可以使用它们创建你自己定制的管理工具。然而,所有的管理工具(比如,管理控制台)都使用相同的MBean和JMX API,所以你不必重新发明轮子来创建定制管理工具。虽然WebLogic服务器管理员不需要知道如何用JMX API编程,但是如果对其编程有所了解的话,有助于理解不同类型的MBean以及理解JMX API如何与它们交互。

  WebLogic服务器使用两种基本类型的MBean——配置MBean和运行时MBean——来配置、监视和管理服务器以及其资源。

  配置MBean包含服务器和资源的配置信息,存储在域配置文件中,比如“config.xml”文件或者其它XML文件。这些都是持久的MBean,而域配置文件(config.xml)为这些MBean存储属性值。不管什么时候你用管理工具(比如管理服务器)修改了配置属性,这些变更都会持久化到“config.xml”文件中。通过修改启动脚本,在Java启动命令中添加额外参数“-D”选项,也可以修改配置值。如果你修改了任何配置设置,“config.xml”文件都会自动更新。当受管服务器启动时,它会联系管理服务器,获得配置信息副本,在内存中存储为配置MBean。因此,域中的所有服务器在内存中都有相同的配置副本。要注意,在启动受管服务器时,你修改的任何属性都不会影响“config.xml”文件;只有在管理服务器上修改的属性值,才会保存到“config.xml”文件中。当你关闭服务器实例时,该服务器托管的所有配置MBean都会被销毁。

  运行时MBean帮助监视运行服务器实例,它包含保持服务器实例和应用程序运行时信息的属性。每个服务器的资源都会更新相关运行时MBean,包括其状态变化。例如,“ServerRuntimeMBean ”在服务器启动时会初始化,其中包括了该服务器的运行时数据。运行时MBean只由运行时数据构成,没有其它内容。当你关闭服务器时,“ServerRuntimeMBean ”中的运行时统计都被销毁了,其它所有运行时MBean的情况也类似。

  MBean服务器充当着各种MBean容器的角色,该服务器创建并提供对MBean的访问。Oracle提供三种类型的MBean服务器。管理服务器托管域运行时MBean服务器实例,它为域范围内的服务管理MBean。受管服务器和管理服务器都托管运行时MBean服务器,它支持你配置服务器实例。管理服务器还托管编辑MBean服务器,它管理挂起的配置变更。管理服务器和受管服务器还可以选择性地托管JVM的平台MBean服务器,它控制包含JDK监视信息的MBean。

  你可以在服务器实例运行时动态修改大部分域配置属性。对于不支持动态配置的属性,你就必须重启服务器实例了。你配置的运行时属性值将立即反映出你所作的变更,这些值会持久地保存在“config.xml”文件中。

 

 

通过MBean server监控weblogic应用 因为最近自己一直在做一个weblogic项目监控的web工程,而苦于网上关于weblogic监控可获取属性的信息少之又少,所以自己对此做了一点小小的总结,希望看到的人能少走一些弯路。 首先,从建立Mbean server的连接说起, public class MonitorWeblogic {   public static final Logger LOG = Logger.getLo 阅读详情

相关推荐

WebLogic高危漏洞CVE-2020-14882/14883原理剖析与实战复现指南

权限绕过与远程代码执行是Web应用安全领域的核心攻防技术。权限绕过漏洞通常源于访问控制逻辑缺陷,允许攻击者未经认证访问受限资源;远程代码执行漏洞则因输入验证不足,使攻击者能在服务器上执行任意命令。这两种技术组合形成的攻击链,能对Web中间件造成致命威胁,常见于企业级Java应用服务器。以Oracle WebLogic Server为例,其管理控制台的权限绕过漏洞CVE-2020-14882,与MBean组件的代码执行漏洞CVE-2020-14883形成组合利用,可在未授权情况下实现服务器完全控制。本文通过靶

weixin_34163553的博客 351

Weblogic 脚本工具 导航和编辑 MBean

导航和编辑 MBean 以下部分描述了如何使用 WLST 来导航、询问和编辑 MBean: 导航和询问 MBean 浏览运行时 MBeanMBean 层次中导航 查找 MBean 访问自定义 MBean 编辑配置 MBean 导航和询问 MBean WLST 提供了对 MBean 的简化访问。而 weblogic.Admin 实用工具(不...

管子(zero)的杂乱空间 332

WebLogic监控实战:AOP探针部署与性能指标采集深度解析

面向切面编程(AOP)是一种在程序运行时动态地将代码切入到指定方法或位置的编程范式,其核心原理是通过代理模式在不修改原有业务逻辑的前提下,实现横切关注点的模块化。在Java企业级应用监控领域,AOP技术被广泛应用于实现无侵入式的性能数据采集。其技术价值在于能够以极低开销自动捕获JVM、EJB、JDBC连接池等核心组件的运行时状态,为系统可观测性提供基础数据支撑。典型的应用场景包括对WebLogic、WebSphere等传统应用服务器的深度监控。本文聚焦于WebLogic Discovery Aspect这一

407

Java8之JMX与MBean

Dynamic MBean必须实现javax.management.DynamicMBean接口,所有的属性,方法都在运行时定义。另外还有两类 MBean:Open MBean 和 Model MBean,实际上它们也都是动态 MBean

CRUD工程师 2262

weblogic管理工具及监控 health state 的方法

1 命令行工具监控 Weblogicjrockit 自己提供了命令行监控工具,可以方便快捷的获取监控信息。(1) 配置工具的启动环境:如上图所示,在安装好weblogic后,打开cmd命令,执行 setWLSenv 脚本(setWLSenv.cmd 或 setWLSenv.sh)进行环境配置,然后就可以正常使用weblogic.Admin 工具了。(2) 执行监控命令,例如#> java weblo

抱朴守拙 6118

使用JMX访问WebLogic Server MBean

使用JMX访问WebLogic Server MBean 本章介绍如何从JMX客户端访问WebLogic Server MBean。它解释了如何为远程客户端设置类路径; 如何与MBean服务器建立本地和远程连接; 以及如何导航MBean层次结构。 本章包括以下部分: 设置远程客户端的类路径 远程连接到MBean Server 与运行时MBean服务器建立本地连接 与Domain Runtime ...

qq_38941940的博客 1623

使用MBeans创建定制的WebLogic Server负载均衡方案

本文将展示如何根据从集群的托管服务器收集的MBean信息制定一个定制负载均衡解决方案。 本文将展示如何根据从集群的托管服务器收集的MBean信息制定一个定制负载均衡解决方案。该解决方案基于BEA WebLogic Server CallRouter类和所收集MBean统计信息的组合使用。在本文中,我把使用各个服务器上的大量空闲内存作为一种策略。结果,服务器之间的大量工作将

轻风大叔 937

Weblogic8官方文档有关JMX部分的地址

http://docs.oracle.com/cd/E13222_01/wls/docs81/jmx/index.html Weblogic8所有MBean索引: http://docs.oracle.com/cd/E13222_01/wls/docs81/javadocs/index.html

听雨轩 188

监控WebLogic 9.x和10.x解决方案(监控应用服务器系列文章四)

前言:做了一个监控应用服务器的项目(支持Tocmat、WebSphere、WebLogic各版本),过程也算是磕磕绊绊,由于网上缺少相关资料,或者深陷于知识的海洋难以寻觅到有效的资料,因而走过不少弯路,遇过不少困难。为了留下点印记,给后来人留下点经验之谈,助之少走弯路,故将这些经验整理出来,与大家分享。水平有限,难免疏漏,还望指正。如有疑问,欢迎留言,或者加入Q群参与讨论:35526521。

清晨之风专栏 1600

tomca源码06 - 组件扩展管理JMX和MBean

tomca源码06 - 组件扩展管理JMX和MBean

qq_43350524的博客 860

通过weblogic API 深入解析如何获取weblogic中服务的IP和端口

我们的服务是部署在weblogic上的,最近遇到一个需求,需要在代码中获取weblogic部署当前服务的IP地址和端口。 后来搜到一段代码,亲测有效: public static String getIpAndPort(){ try { InitialContext initialContext = new InitialContext(); MBeanServe...

liufangbaishi2014的博客 3215

Weblogic常用监控指标以及监控工具小结

Weblogic常用监控指标 JMSRuntime JMSServersCurrentCount 返回当前JMS服务的连接数 ConnectionsCurrentCount 返回本JMS服务器上当前的连接数 JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数 ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数

hualusiyu的专栏 1万+

[JMX-MBean]JMX简介

[JMX-MBean]JMX简介 一、JMX的定义 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。这是官方文档上的定义,我看过很多次也无法很好的理解。我个人的理解是JMX让程序有被管理的功能,例如你开发一个WEB网站,它是在24小时不间断运行,那么你...

liaoyoujinb的专栏 366

WebLogic Server 9.0 应用配置管理接口

WebLogic Server 9.0 应用配置管理接口   WLS 9可以说是自WLS 6.0以来最重大的一次改革,不仅增加了许多功能,而且对许多旧有的子系统重新进行了设计。为了集成第三方管理系统,WLS提供了与JMX完全兼容的标准接口来执行所有的管理操作。   在WLS中,每个Domain中使用一系列Mbean负责维护该Domain的配置。这些MBean对内部的各个子系统是树状组织

asmallrole的专栏 706

Weblogic常用监控指标

JMSRuntime JMSServersCurrentCount 返回当前JMS服务的连接数 ConnectionsCurrentCount 返回本JMS服务器上当前的连接数 JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数 ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数 JVMRuntime HeapSi

3584

通过JMX监控管理weblogic的运行

1.JMX概述 JMX(Java Management Extensions)是SUN创建的一套规范。BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价很高,认为是目前为止最好的软件集成工具。JBoss的成功依靠于JMX。 ...

weixin_34352449的博客 217
上一篇: 3种session的存储方式和3种timeout的设置方式
下一篇: Oracle优化器(RBO与CBO)
嗯没有名字
博客等级 码龄18年 33粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值