问题标签 [mbeans]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10581 浏览

java - 自动启动 JBoss 服务 (MBean)

我正在尝试构建一个应该在每次启动服务器时自动启动的 JBoss 服务。

我的服务有以下类结构:

我还有以下配置文件——jboss-service.xml——用于我的服务:

我的问题是:如何自动启动此服务?

我希望 JBoss 将调用 start() 方法作为加载过程的一部分,但事实并非如此:我的 start() 方法中有很多登录代码,但我没有看到任何输出。

但是,当我使用 JMXConsole 查看 MBean 状态时,它的状态 (StateString) 是“已启动”。

问题解决了

我找到了解决我的问题的方法。我重写了方法 start()、stop()、destroy() 和 create();尽管如此,由于我正在扩展抽象类 ServiceMBeanSupport,我应该重写方法 startService()、stopService() 等。

我刚刚将我的代码从方法 start() 移动到方法 startService(),现在一切都按照我的需要运行:只要它的依赖关系得到满足,我的服务就会启动并执行 startService() 方法。

我认为结论是:虽然 MBean 的生命周期涉及调用 create()、start()、stop() 和 destroy(),但抽象类 ServiceMBeanSupport 的实现使用这些方法来处理生命周期。然而,它提供了受保护的方法 *Service() 以允许程序员参与生命周期。

0 投票
1 回答
1025 浏览

java - 是否有(实验性)支持 JSR-262 JMX-WS 的 Java 工具或应用程序?

对 Java 管理扩展 (JMX) 代理的 Web 服务连接器和参考实现ws-jmx-connector非常感兴趣。JSR 262 将为跨平台/跨语言企业集成项目提供新的机会,提供使用非 Java 客户端与 JMX 代理进行通信的选项。(我已经能够毫不费力地将参考实现与 Delphi 客户端一起使用)。

是否有任何(开源)Java 工具或产品“启用”了 JSR 262 并通过 JMX WS 公开 MBean - 以便可以使用 JSR 262 参考实现,而无需修改其源代码?

0 投票
2 回答
3319 浏览

java - JConsole 中可见的 Coherence 节点 MBean 的 JMX 查询问题

我正在使用 JMX 构建一个自定义工具,用于监控工作中的远程Coherence集群。我能够很好地连接并直接查询 MBean,并且我已经获得了几乎所有我需要的信息。但是,在尝试查询 MBean 以获取集群中的特定缓存时,我遇到了一个障碍,我可以在其中找到有关获取/放置总数、每个平均时间等的统计信息。

当我使用 JConsole 连接到远程进程时,我尝试以编程方式访问的 MBean 是可见的,并且具有如下名称:

type=Cache如果我可以在不指定所有缓存的情况下动态获取特定节点 ID 的所有 MBean,它会更加灵活。我正在尝试像这样查询它们:

但是,无论我使用queryMBeans()or queryNames(),查询都会返回一个 Set 包含...

  • ...如果我传递上面显示的参数,则为0 个对象
  • ...如果我传递第一个参数,则为0 个对象null
  • ...如果我传递第二个参数,则域中的所有 MBean Coherence:*(112)null
  • null...如果我同时传递两个参数,则每个 MBean (128)

前两个结果是出乎意料的结果,表明QueryExp我正在通过的一个问题,但我无法弄清楚问题是什么。我什至尝试只传递typeIsCacheorspecifiedNodeId作为第二个参数(使用coherenceornull作为第一个参数),但我总是得到 0 个结果。

我对 JMX 非常熟悉——对问题所在有什么见解吗?(仅供参考,监控工具将在 Java 5 上运行,所以像 JMX 2.0 这样的东西现在对我没有帮助。)

0 投票
3 回答
586 浏览

java - 无法从 MBean 访问 Singleton 类的实例数据

我正在赶最后期限工作,我现在正在出汗。从过去几天开始,我一直在解决一个问题,现在是时候大声疾呼了。

我有一个应用程序(我们称之为“APP”),我有一个为 APP 编写的“PerformanceStatistics”MBean。我还有一个 Singleton Data 类(我们称之为“SDATA”),它为 MBean 提供一些数据来访问和计算一些应用程序运行时的东西。因此,在应用程序启动期间,然后在应用程序生命周期中,我将向 SDATA 实例添加数据。因此,此 SDATA 实例始终具有数据。

现在,问题是我无法从 PerformanceStatistics MBean 访问任何数据或数据结构。如果我在添加数据时检查数据结构,则所有结构都包含数据。但是当我从 MBean 调用这个单例实例时,我有点拥有空数据。

任何人都可以解释或提示正在发生的事情吗?任何帮助将不胜感激。

我尝试了各种 SDATA 类是最终的,所有方法都是同步的、静态的等,只是为了确保。但直到现在还没有运气。

另一个不幸的事情是,我有时会得到不同的“ServicePerformanceData”实例(即当我打印 ServicePerformanceData.getInstance() 时,它们在不同的时间是不同的)。不知道发生了什么。我在 WebLogic 服务器中运行此应用程序并使用 JConsole。

具有单吨和数据访问方法的 SDATA 类

}

PerformanceStatistics MBean 类当我调用 ServicePerformanceData .getInstance() 之类的数据时,该结构中没有任何内容。因此,我无法得到任何结果。

}

0 投票
5 回答
29842 浏览

java - 访问远程 MBean 服务器

我正在使用 JBoss 运行客户端/服务器应用程序。

如何连接到服务器 JVM 的 MBeanServer?我想使用 MemoryMX MBean 来跟踪内存消耗。

我可以使用 JNDI 查找连接到 JBoss MBeanServer,但是 java.lang.MemoryMX MBean 没有向 JBoss MBeanServer 注册。

编辑:要求是从客户端以编程方式访问内存使用情况。

0 投票
2 回答
2670 浏览

java - 强制 Spring 的 MBeanExporter 使用特定的 MBeanServer

我有一个在 JBoss 4.2.2 上运行的 Web 应用程序。为了监控性能,我启用了 Java 5 附带的内部平台 JMX 服务器。换句话说,我添加了:

到 JBoss 的启动脚本。这按预期工作。但是,因此,所有 MBean 现在都在平台 MBeanServer 上注册。我不希望这样,我希望它们在 JBoss 的 MBeanServer 上注册。

困难在于我使用 Spring 来注册我的托管 bean。为此,MBeanExporter使用。因此,我需要告诉我MBeanExporter在注册 bean 时使用 JBoss 的 MBeanServer。但是,影响所使用服务器的唯一公开方法MBeanExportersetServer(MBeanServer mBeanServer). 问题是我只知道如何以编程方式获取对正确 MBeanServer 的引用,而不是在MBeanExporter声明 的 Spring 的 XML 中。

我的选择似乎是:

  1. 编写一个子类MBeanExporter,覆盖某些方法,以便加载正确的 MBeanServer
  2. 写一个PostBeanProcessor找到 JBoss 的 MBeanServer 然后调用setServer
  3. JNDI? 仅当 MBeanServer 在 JNDI 中公开时才有效,而我无法找到它。

最惯用的方法是什么?我做的事情真的很傻吗?

0 投票
2 回答
1353 浏览

java - JBoss MBeans:如何拥有数组属性?

是否可以定义具有数组属性的 MBean。我目前有一个 MBean 定义为:

然后在 MBean 代码中拆分字符串。但是 - 对于我的下一个 MBean,我需要支持带有空格的字符串。我可以用逗号分隔,但我确信 MBean 将支持数组,因此我可以像这样定义它们:

我错了吗?

0 投票
1 回答
2867 浏览

tomcat - 在 Jconsole 中查看 Tomcat 6.0 的 MBean

我正在尝试编写一个小代理来控制 tomcat,现在看起来 JMX 对我来说是最好的选择。使用管理器 http 服务,我可以看到注册了各种整洁的 mbean,它们为我提供了我需要的所有信息。唯一的问题是,当我使用 jconsole 连接到 tomcat 实例时,我看不到任何这些 mbean,只有标准的 JVM 。

在tomcat允许在jconsole中查看其mbean之前我需要做某种巫术,还是我误解了jconsole的作用?在我了解发生了什么之前,我不想开始尝试编写任何代码。

顺便说一句,我在 win 7 上运行带有 java 1.6.0_16 的 tomcat 6.0.20。

干杯,布赖恩。

0 投票
3 回答
1181 浏览

java - 在java中跨多个进程更新单个对象

几个关系数据库表由驻留在进程中的单个对象缓存管理。当缓存被提交时,表被更新。DB 关系表由常规 SQL 查询更新,而不是像 hibernate 这样更花哨的东西。

最终,其他进程在不相互通信的情况下进入了修改该对象的业务,即,每个进程将初始化该对象(从 DB 读取)并更新它(提交到 DB),而其他进程将不知道它坚持到过时的缓存。

我必须修复这个工作流程。我想到了几种方法。一种是使这个对象成为一个mBean。因此,对象将驻留在一个进程上,并且每个进程最终都会通过 mBean 方法调用修改该进程中的对象。

然而,这种方法有几个问题。1) 此缓存返回的每个对象都是一个 mBean,这可能会使方法调用变得非常冗长。2)还要求每个进程都应该看到数据库的一致数据模型(缓存),并且如果可能的话,它应该将其内容合并到数据库中。(如交易)。如果数据库被其他进程显着更新,则合并失败是可以的。

Java中的哪些技术将有助于解决这个问题?

0 投票
2 回答
191 浏览

java - 如何在运行时获得 .ear 的文件大小?

我开始尝试使用 Length ant 任务执行此操作,但意识到这将在打包耳朵之前完成。将耳朵打包,然后检查文件大小,然后将其放入耳朵中会影响耳朵的大小。

有没有办法在运行时以编程方式获取耳朵的大小?或者可能是具有该信息的 MBean?