web容器中用jmx监控hibernate sessionFactory

以tomcat为例,加入一个listner监听容器启动:

 

    <listener>
        <description>ServletContextListener</description>
        <listener-class>com.my.listener.StartupListener</listener-class>
    </listener>

 Listener中的内容:

@Override
    public void contextInitialized(ServletContextEvent sce) {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        MBeanServer ms = ManagementFactory.getPlatformMBeanServer();
                Hashtable tb = new Hashtable();
        tb.put("type", "statistics");
        tb.put("sessionFactory", "myHibernateApp");
        try {
            ObjectName on = new ObjectName("hibernate",tb);
            StatisticsService mBean = new StatisticsService();
            mBean.setSessionFactory(sf);
            mBean.setStatisticsEnabled(true);
            ms.registerMBean(mBean, on);
        } catch (Exception ex) {
            Logger.getLogger(StartupListener.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

 

tomcat启动需要添加一行jvm参数:-Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

用来启动tomcat的jmx服务管理。

 

启动后通过jconsole访问tomcat的jmx监听端口。

 

时间: 2024-09-28 06:13:43

web容器中用jmx监控hibernate sessionFactory的相关文章

配置-Java Web容器启动时,SessionFactory注入失败的问题

问题描述 Java Web容器启动时,SessionFactory注入失败的问题 包结构如下:Spring配置如下:UserDAO代码如下:Tomcat一启动,报错如下:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exception is org.

如何设计一个web容器

开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的思路,并不涉及过多的具体实现.把它分解划分成若干模块和组件,每个组件模块负责不同的功能,下图列出一些基本的组件,并将对每个组件进行介绍.   连接接收器 主要的职责就是监听是否有客户端套接字连接并接收socket,再将socket交由任务执行器(线程池)执行.不断从系统底层读取socket,

如何设计一个可用的web容器

之前在另外一个平台(http://www.jointforce.com/jfperiodical/article/1035)发表的一篇文章,现在发布到自己的博客上.     开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的思路,并不涉及过多的具体实现.把它分解划分成若干模块和组件,每个组件模块负责不同的功能,下图列出一些基本的组件,并将对

【整理】WEB 容器、WEB服务和应用服务器的区别与联系

对于一个不了解 WEB 开发的人来说,下面的概念是为了免于被别人鄙视和忽悠的~~  [web 容器]  何为容器:       容器是一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用.在 J2EE 规范中,相应的有 WEB Container 和 EJB Container 等.        WEB 容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET 直接跟容器中的环境变量交互,不必关注其它系统问题(从这个角度来说,we

通过JMX监控Spring Boot应用

在Spring Boot应用的健康监控一文中,我们通过Spring Boot Actuator对外暴露应用的监控信息,除了使用HTTP获取JSON格式 的数据之外,还可以通过JMX监控应用,Spring Boot也提供了对JMX监控的支持.JMX监控对外暴露的信息相同,不过是使用MBeans容器将应用数据封装管理. 接下来我们看下如何利用JMX获取应用状态信息,以及如何使用Jolokia JMX库对外暴露MBeans的HTTP访问URL. Get Ready 在BookPub应用的pom文件中添

Spring源代码解析(二):IOC容器在web容器中的启动

以下引用自博客:http://jiwenke-spring.blogspot.com/ 上面我们分析了IOC容器本身的实现,下面我们看看在典型的web环境中,Spring IOC 容器是怎样被载入和起作用的. 简单的说,在web容器中,通过ServletContext为Spring的IOC容器提供宿主环境,对 应的建立起一个IOC容器的体系.其中,首先需要建立的是根上下文,这个上下文持有的 对象可以有业务对象,数据存取对象,资源,事物管理器等各种中间层对象.在这个上下 文的基础上,和web MV

web容器多线程对代码的影响

问题描述 web容器多线程对代码的影响 并发访问web服务器,web服务器会创建多个线程调用代码A.如果代码A中没有任何线程控制关键词(volatile,synchronized等). 问题1:代码A的执行是安全的吗,怎么执行的按顺序吗? 问题2:web容器创建多个线程时,每个线程都会有独立的代码A副本吗,创建独立的实例,工作区间吗? 问题3:这部分是否与其他框架有关?,例如依赖注入/控制反转容器 对这部分我理解不清,有理解错的地方帮忙指正下,先谢过 解决方案 不是线程安全的,你必须自己同步共享

WEB容器调用spark程序分析数据

问题描述 WEB容器调用spark程序分析数据 请教各位大神,如何在web容器中(如tomcat)来调用spark程序啊,网上看到的都是自己把程序生成jar包,然后调用spark-submit来执行!! 解决方案 楼主的问题是怎么解决的,我们现在也要这么做,能不能给点指导,小弟在这先谢谢了 解决方案二: 可以参考 一下 这个 http://www.aboutyun.com/thread-11014-1-1.html

容器监控—阿里云&amp;容器内部服务监控

目前Docker的使用越来越离不开对容器的监控,阿里云最近上线了容器服务,不但提供了核心的容器和宿主机监控能力,而且支持集成 Cloud Insight 监控,下面会介绍如何集成. 首先介绍一下阿里云的容器监控.阿里云容器服务在用户创建集群的时候就默认开启了几个容器服务,其中就包括一个容器监控服务,其监控大概就是使用这个服务来采集数据的. 容器监控的对象就是各个正在跑的容器本身的运行状况,而如果你想要监控在容器里面运行的服务的状况呢?这时候Cloud Insight 就可以帮到你了. 那么我们先