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

标签 java jms weblogic weblogic-10.x

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

很多年前,我能够使用 Java 序列化 (ObjectInputStream) 读取 Weblogic 早期版本的 JMS 文件存储,但我拥有的文件给了我一个

java.io.StreamCorruptedException: invalid stream header: C001BEAD

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

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

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

最佳答案

  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 有消息呈现器,您可以为自定义消息类型实现它们。

关于java - 是否可以从 Weblogic JMS 文件存储中抢救消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133714/

相关文章:

java - 组合形状对象以创建组合

java - 无法连接到 Tibco JMS 服务器

java - 在 springs 中使用 JMS 的客户端可以从不使用 springs 实现 JMS 的服务器接收消息吗?

jms - HornetQ JMSException : Failed to create session factory

python - 使用 WLST 确定 EAR 是否已部署到 WebLogic Server 中?

java - Jasper Report 在 Excel 文件中多次打印同一份报告

java - LinkedList 将最后一个元素移动到第一个元素

java - 在android中以编程方式操作/etc/hosts文件

java - 启动 Weblogic Managed Server 时出现异常

weblogic - 其中一个节点未显示其健康状态