是否可以从 Weblogic JMS 文件存储中抢救消息?

发布于 2025-01-02 11:05:50 字数 484 浏览 2 评论 0原文

我有几个来自 Weblogic 10.3 服务器的 JMS 文件存储,如果可能的话,我想检索其中包含的消息,而不使用 Weblogic。这可能吗?

许多年前,我能够使用 Java 序列化 (ObjectInputStream) 读取 Weblogic 早期版本的 JMS 文件存储,但是

java.io.StreamCorruptedException: invalid stream header: C001BEAD

当我使用 ObjectInputStream 打开它们时,我拥有的文件出现异常。我想知道在反序列化消息之前是否需要跳过一个文件头,或者这个版本的 Weblogic 根本不使用 Java 序列化。

文件中的消息是MapMessages。当我十六进制转储文件时,我可以看到与映射键对应的字符串,但当然这些值无法以这种方式读取。但事实上,我可以看到映射键,这让我对消息在文件中序列化充满希望。

关于如何挽救数据有什么想法吗?

I have a couple of JMS file stores from a Weblogic 10.3 server, and i would like to retrieve the messages contained in them, if possible, without using Weblogic. Is this possible?

Many years ago i was able to read the JMS file store for a previous version of Weblogic using Java serialization (ObjectInputStream), but the files i have are giving me a

java.io.StreamCorruptedException: invalid stream header: C001BEAD

exception when i open them using ObjectInputStream. I'm wondering if there is a file header that i need to skip before i can deserialize the messages, or perhaps this version of Weblogic doesn't use Java serialization at all.

The messages in the file are MapMessages. I can see the strings that correspond to the map keys, when i hex dump the file, but of course the values are not readable this way. But the fact that i can see the map keys make me hopeful that the messages are serialized in the file.

Any ideas on how to salvage the data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必在意 2025-01-09 11:05:50
  1. 将您想要挽救的所有 *.dat 文件放在安全的地方。
  2. 启动 weblogic 并登录管理控制台
  3. 转到首页 -> JMS 服务器摘要 -> XL-JMS-Server
  4. 启用“启动时暂停插入”
  5. 启用“启动时暂停生产”
  6. 启用“启动时暂停消费 ”启动”已暂停
  7. 保存设置
  8. 关闭 Weblogic
  9. 换入您想要挽救的 JMS 数据存储
  10. 启动 Weblogic
  11. 浏览 JMS 监控页面以查看哪些队列和主题有消息仍然存在。

此时,数据存储区已准备好使用您编写的 QueueBrowser 或 TopicSubscriber 检查/转储。或者,您可以使用 Hermes JMS ( http://www.hermesjms.com ) 临时遍历消息。 Hermes 具有您可以为自定义消息类型实现的消息渲染器。

  1. Set aside in a safe place all the *.dat files you wish to salvage.
  2. Start-up a weblogic and log-in to the Admin console
  3. Go to Home ->Summary of JMS Servers ->XL-JMS-Server
  4. Enable “Insertion Paused At Startup”
  5. Enable “Production Paused At Startup”
  6. Enable “Consumption Paused At Startup” paused
  7. Save the settings
  8. Shutdown Weblogic
  9. Swap-in a JMS data store you wish to salvage
  10. Start Weblogic
  11. Browse the JMS monitoring page to see which Queues and Topics have messages persisted.

At this point, the datastore is ready to be inspected/dumped using a QueueBrowser or a TopicSubscriber that you write. Alternatively, you could walk the messages ad hoc using Hermes JMS ( http://www.hermesjms.com ). Hermes has message renderers that you can implement for your custom message types.

错々过的事 2025-01-09 11:05:50

我们和 Oracle 支持人员能够想到的唯一方法是创建另一个以相同方式配置的 Weblogic 实例,并让该 Weblogic 实例拾取并处理消息。

The only way we and Oracle support were able to come up with, was to create another Weblogic instance configured the same way, and let that Weblogic instance pick up and process the messages.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文