weblogic 理解MBean

为了完全理解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”文件中。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值