Tag: mbeans

插入MBean拦截器

我正在一个实现MBean的java项目中工作,我需要拦截MBean并在注册表之前更改/添加它们的属性。 示例: domainName:name = myMBean – > domainName:name = myMBean1,type = myType 我发现这个链接提供了如何应用拦截器,然后默认拦截器,但我不知道如何在代码中。 提前致谢。

JMX身份validation – 基于角色的MBean操作

我已经通过RMI实现了JMXAuthenticator for JMX身份validation,但是我不确定如何创建角色以允许readonly / readwrite访问级别。 例如,在JMXAuthenticator.authenticate我有自定义身份validation逻辑,并希望这可以确定访问角色。 我尝试了以下但在JConsole中执行操作时没有任何区别: @Override public Subject authenticate(Object credentials) { Subject subject = new Subject(); JMXPrincipal p; //…my logic String accessLevel = myCustomLogic(); if (accessLevel.equals(“admin”)) { p = new JMXPrincipal(“adminrole”); } else { p = new JMXPrincipal(“basicrole”); } subject.getPrincipals().add(p); return subject; } 然后我创建了一个包含的访问文件jmxaccess.properties adminuser readwrite basicuser readonly 和jmx.management.properties ,其中包含com.sun.management.jmxremote.access.file=PATH TO ACCESS FILE […]

来自JDK1.6中ManagementFactory的托管Mbeans – NotCompliantMBeanException:

我使用ManagementFactory来获取JDK1.5和JBOSS 4.X中的ManagedMbeans。 现在想将我的相同代码移动到JDK 1.6。 Mbean部分打破抛出exception 引发者:javax.management.NotCompliantMBeanException:Class不公开管理接口:java.lang.Object引发者:java.lang.Exception:无法使用JBoss MBeanServer注册平台(JVM)MBean

相同的JMX Mbean类用于同一服务器上的许多应用程序

我有超过5个春季网络应用程序,所有这些都使用另一个公共库。 这个公共库有自己的MBean。 由于强制唯一objectName约束,我的应用程序无法部署在同一服务器上。 我使用MBean的方式是这样的: @ManagedResource(objectName = “com.org.city:name=City”, description = “City related operations”) 我想为所有应用程序使用具有不同objectNames的相同MBean类。 在不重复我的MBean的情况下使用它的正确方法是什么。 谢谢

检测新注册的MBean

我在Java 1.6中使用平台MBeans服务器,在OSGi容器中运行。 主要使用MBean作为统计计数器和事件。 它们的实现在一个包中,但它们在其他几个包中实例化。 每个MBean都使用平台MBean服务器自行注册。 问题是,当我通过JMX附加并查询MBean时,我只获得当前注册的那些,并且在它们被实例化之前它们不会被注册(因为静态类在第一次访问之前不存在,或者因为捆绑还没有开始,或者计数器深入一些逻辑,直到第一次使用才会存在) 我需要某种方式来订阅MBeans服务器中的“注册”事件。 或者确定何时向服务器添加新MBean的其他方法。 检测已删除的MBean将是一个额外的好处,但不是必需的。 我得到的唯一解决方案基本上是一个每隔5秒轮询一次服务器的线程,并将结果与​​保存的MBean列表进行比较,这非常难看。

从JBoss 4.x到JBoss 7的端口MBean

我们目前正在将一些项目从JBoss 4.x移植到JBoss 7.到目前为止,除了我们通常用于提供简单管理操作的MBean之外,一切似乎都运行正常。 我一直在寻找相当长的一段时间,但要么我无法提出正确的搜索术语,要么我缺少一些知识来弥补JBoss 4.x和JBoss 7中的MBean定义之间的差距。 因此,希望有人可以提供我可能缺少的内容或我必须阅读的内容(可能是一些文档,示例等) 在Jboss 4.x中,我们的MBean通常如下所示: @Service( objectName = “Domain:Name=SomeMBean”, xmbean=”resource:”) class SomeMBean { @EJB private SomeService someService; public String someOperation() { someService.doSomething(); return “success”; } } 我们使用@Service注释来定义对象名称和xmbean描述符,JBoss会自动注册那些mbeans。 显然,在JBoss 7中, @Service注释不再存在,因此需要另一种方法。 到目前为止,我设法用平台mbean服务器手动注册MBean,但我更喜欢JBoss自动执行此操作。 另外,到目前为止,我还没有设法提供方法/参数的描述(尽管这些function更加出色)。 为了清楚起见,我会重复这个问题: 如何在JBoss 7(Java EE 6)中定义提供以下function的MBean? 自动部署 访问EJB 可通过JConsole或JMX-Console访问(我目前正在使用Dimitris Andreadis的端口) 提供方法/参数的描述 更新 这是我到目前为止所得到的: 首先,我发现了这个投影,它使用CDI来包装相应注释的任何bean的注入目标,并在postConstruct()方法中进行JMX注册: http : //code.google.com/p/jmx-annotations/ 。 此外,扫描找到的MBean以获取类/属性/方法/参数注释,这些注释提供带注释属性的描述。 但是,似乎没有为EJB调用postConstruct()方法(我假设这是为了不与EJB容器冲突)。 […]

如何以编程方式检查JMX MBean操作和属性?

假设我们有一个具有以下属性和操作的MBean。 属性:名称大小 操作:getName()getSize() 有没有办法以编程方式检查属性和操作? 我一直在使用IBM WebSphere MBeans,他们的文档不是很好。 例如,如果您转到IBM Infocenter并导航到Network Deployment – > Reference – > Programming interfaces – > Mbean interfaces – > ThreadPool。 它们只列出属性而没有操作。 使用WebSphere wsadmin工具,我实际上可以检查以查看操作和属性。 我想知道是否有办法对所有MBean这样做。 wsadmin>print Help.attributes(object) Attribute Type Access name java.lang.String RO maximumSize int RW minimumSize int RW inactivityTimeout long RW growable boolean RW stats javax.management.j2ee.statistics.Stats RO wsadmin>print Help.operations(object) Operation java.lang.String […]

如何获取MBean绑定类实例

我试图使用MBean获取绑定在jboss-service.xml中的服务类的实例。 JBoss-Service.xml定义了一个我们想在代码中使用它的BasicThreadPool 。 这就是JBOSS-Service.xml 。 JBoss System Threads System Threads 60000 10 1000 run 我试图在我的代码中访问它,如下所示, MBeanServer server = MBeanServerLocator.locateJBoss(); MBeanInfo mbeaninfo = server.getMBeanInfo(new ObjectName(“jboss.system:service=ThreadPool”)); 现在我有MBean信息。 我想在MBean中定义一个BasicThreadPool对象的实例。 可能吗 ? 我知道一种方法,我们可以从MBean Info中获取类名,我们也可以获取构造实例的属性。 有没有更好的方法呢?

访问远程MBean服务器

我正在使用JBoss运行客户端/服务器应用程序。 如何连接到服务器JVM的MBeanServer? 我想使用MemoryMX MBean来跟踪内存消耗。 我可以使用JNDI查找连接到JBoss MBeanServer,但java.lang.MemoryMX MBean未向JBoss MBeanServer注册。 编辑:要求从客户端以编程方式访问内存使用情况。

JBoss AS 7 JMX控制台

我今天花了一些时间查看JBoss AS7 。 到目前为止我看到的东西给我留下了深刻印象,但我注意到好的’JMX-Console不再存在。 有谁知道为什么它被遗漏了? 我知道我可以通过JConsole,MC4J等进行连接,但有没有替代方案可以提供对已部署MBean的基于Web的访问?