是否可以使用 JMX 在一台中央 MBean 服务器中注册或显示来自不同 VM 的 MBean?

2023-12-04

我正在寻找一种解决方案,用于从中央 MBean 服务器中的不同 Java VM 注册 MBean 或整个 MBean 服务器本身,该服务器也应该在单独的 VM 中运行。目标是只有一个中央 MBean 服务器,其中包含整个系统的所有 MBean。 一个额外的要求是,这就是困难:-),“客户端”MBean 服务器必须连接/注册到中央 MBean 服务器,而不是相反。中央 MBean 服务器不需要任何“客户端”MBean 服务器的知识即可注册。

我只找到了 JMX 示例,其中“主”MBean 服务器连接到“客户端”MBean 服务器并获取其注册的 MBean,但没有找到其他方式。不幸的是,用于注册您自己的 MBean 的 registerMBean() 方法仅适用于本地 MBean 服务器,而不适用于 MBeanServerConnection 上的远程 MBean 服务器。在那里,只能使用 createMbean() 方法,这里的问题是,它可以在远程 MBean 服务器中注册 MBean,但随后您必须使用不同的对象,一个是本地对象,另一个是远程 MBean 服务器中的对象。所以现在的问题是,当本地对象发生某些更改时,这些更改仅存在,远程 MBean 服务器中注册的 MBean 不会获得这些更改(变量的新值...)。到目前为止,我唯一的解决方案是创建一个循环来注销远程服务器中的 MBean 并创建新的 MBean,以获取对象的实际值。这非常难看,而且对于性能来说也不太好。

我希望有人能给我一个提示,我怎样才能以更好的方式做到这一点。


The OpenDMK提供了一个完整的方法来做到这一点,使用级联服务。从文档中:

级联服务使您能够访问子代理的 MBean 直接通过主代理的 MBean 服务器。级联式 Java 动态管理工具包中的服务已被彻底修改 (Java DMK) 5.1 允许其通过连接器协议进行操作 由 Java 管理扩展 (JMX) 远程 API 定义。遗产 级联服务现已弃用。遗产的例子 由于以下原因,第 25 章保留了级联服务: 向后兼容性。但是,当使用旧版 Java DMK 时 连接器,您应该使用带有包装的新 CasdingServiceMBean 旧版连接器而不是依赖已弃用的旧版 级联代理API。

该库中有一些有趣的细节,预计将被纳入 JMX 2.0 中的标准 Java SE 中。我认为级联服务就是其中之一。一旦您了解了它的工作原理,您可能会得出结论,您可以自己实现它,尽管 OpenDMK 确实解决了一些棘手的极端情况。我不确定该项目有多活跃,但该软件看起来很稳定。

您可以找到文档集here。此外,我创建了一个包的 Mavenized 项目构建here.

//尼古拉斯

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 JMX 在一台中央 MBean 服务器中注册或显示来自不同 VM 的 MBean? 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的

随机推荐

  • 按文件名排序获取文件夹

    这是我用于合并 XML 的 VB 代码 但我想按文件名合并它 所以先是 1 xsl 然后是 2 xsl 如何在VB中对列表进行排序 Sub simpleXlsMerger Dim bookList As Workbook Dim merge
  • 如何检查嵌套对象是否有子对象?

    我是 Javascript React 新手 所以我不确定如何将其实现到我的递归函数中 我设置了一个 json 对象的嵌套菜单 并且想要添加小箭头来指示是否有另一个级别可以单击 由于我的菜单由大量嵌套的 json 对象组成 因此我使用递归来
  • 无法为子视图推送ViewController

    我有一个 UINavigationController 和我有单独的视图 我使用分段控件在它们之间切换 在切换视图时 我将视图作为子视图添加到导航控制器的视图中 self view addSubview segmentTab1 view a
  • C# 将图片插入Ms Access

    我要感谢所有在上一个问题中提供帮助的人 但现在 我对另一种说法有问题 即 saveimageto MS access 首先我想问一下 在ms access数据库上 Datatype应该放附件吗 我的代码 private void butto
  • CSS3 转换为梯形

    我需要使用 div 元素创建一个 CSS3 梯形 为了让我在做什么一目了然 我在下面创建了一个基本视觉效果 绿色是一个普通的矩形 div 而红色代表我需要将 div 更改为的部分 以实现我需要的梯形形状 假设我们正在编辑 trapezoid
  • 扩展 Drupal 7 搜索

    我想使用一个附加字段来扩展默认的 Drupal 7 节点搜索 我使用以下新字段更改搜索表单 function mymodule form search form alter form form state form id form basi
  • Android AudioRecord 过滤频率范围

    我正在使用android平台 从下面的参考问题我知道使用返回原始数据的AudioRecord类我可以根据我的需要过滤音频范围 但为此我需要算法 有人可以帮我找到吗过滤范围黑白 14 400 bph 和 16 200 bph 的算法 我尝试了
  • Azure 数据流需要几分钟才能触发下一个管道

    Azure 数据工厂在 10 毫秒内将数据传输到 Db 中 但我遇到的问题是它需要等待几分钟才能触发下一个管道 最终需要 40 分钟 所有管道传输数据的时间不到 20 毫秒 但不知何故 它要等待几分钟才能触发下一个 I used debug
  • 使用 meld 作为 diff 工具时查看 git 过滤器输出

    我设置了一些git 过滤器为了在提交某些文件之前对其进行预处理 在我的例子中是 IPython Notebooks 更准确地说 我正在遵循以下说明 https stackoverflow com a 20844506 578770 如果我提
  • 在 pyinstaller 中以窗口模式导出到 EXE 后,Selenium 不起作用

    我正在制作一个需要使用 selenium 的 PyQt4 应用程序 开发时一切正常 但是当我导出到单个文件执行文件 由py安装程序 and 不带控制台 它会产生以下回溯错误 WinError6 The handle is invalid 当
  • JSONModel 返回 nil

    我使用 JSONModel 从 URL 获取 JSON 这是一个非常简单的对象 仅包含 2 个字符串 name 和 url 首先我制作了对象模型 protocol Tutorial end interface Tutorial JSONMo
  • 在 jsFiddle 中有效,但在我的网站中无效

    由于某种原因 我网站上的这个 jQuery 代码可以在 jsFiddle 上运行 但不能在本地运行 代码是一样的 我刚刚复制并粘贴了它 谁能向我解释这是怎么回事 jsFiddle Local 使用Chrome的开发者工具 在控制台中出现错误
  • 导出后未在 Honeycomb 上调用 BOOT_COMPLETED

    我有一个非常奇怪的问题 网站上已有的问题都没有答案或相同的问题 我有一个接收 BOOT COMPLETED 的应用程序 我通过将 android installLocation 设置为internalOnly 确保它可以接收意图 我的 On
  • Unity : this == null 返回 true。怎么会发生这种事呢? [复制]

    这个问题在这里已经有答案了 我一直在统一开发一个项目 我试图用 Invoke string float 调用一个函数 虽然我收到一条错误消息说要检查我的gameobject为空 所以我尝试做 debug log gameObject nul
  • 用于绘制地图的底图/项目的 Pandas 错误

    我运行了下面的 Python 代码 这是一本书上的 绘制地图 可视化海地地震危机数据 的示例 Python 数据分析 第242 246页 该代码应该创建海地的绘图 但我收到如下错误 Traceback most recent call la
  • 如何从 Win32 DLL 或 OCX 中提取 GUID

    我们有一个 NET 应用程序需要检查可能包含 COM 库 DLL 和 OCX 的文件夹 当我们遇到 COM 库时 我们需要完成的一件事是从 COM DLL 或 OCX 中提取 GUID 有没有一种直接的方法可以在 NET 中执行此操作而不使
  • 无法访问存储在我的 App_Data 文件夹中的图像

    我的 ASP NET MVC Web 应用程序中有以下链接 a href App Data uploads 38 png Model Name a 但是当我点击此链接时 出现以下错误 HTTP 错误 404 8 未找到 请求过滤模块被配置为
  • 将数组从 C# COM 对象传递到 JavaScript?

    与此类似如何将 ActiveX 对象中的字符串数组返回到 JScript但在 C 中 我有一个 COM 控件 它将字符串数组传回 javascript 似乎 javascript 无法理解我传回的是什 么 并且 javascript 中的数
  • 拒绝未转义 HTML 字符的正则表达式

    我想限制在特定输入字段中使用未转义的 符号 我无法让正则表达式杀死 的使用 除非后面跟着 amp 或者可能只是限制 的使用 注意空格 我尝试调整答案在这个线程中 但无济于事 谢谢 FWIW 这是我制作的一个正则表达式 以确保文件名字段不包含
  • 是否可以使用 JMX 在一台中央 MBean 服务器中注册或显示来自不同 VM 的 MBean?

    我正在寻找一种解决方案 用于从中央 MBean 服务器中的不同 Java VM 注册 MBean 或整个 MBean 服务器本身 该服务器也应该在单独的 VM 中运行 目标是只有一个中央 MBean 服务器 其中包含整个系统的所有 MBea