【问题标题】:WebLogic - JVM failed when a DB went offline. How do i prevent this?WebLogic - 数据库脱机时 JVM 失败。我该如何防止这种情况?
【发布时间】:2017-06-29 03:24:30
【问题描述】:

我对服务器一无所知,但我必须自己解决这个问题。如果有人能指出我的起点,那将不胜感激......

所以这就是发生的事情。在我的 weblogic 服务器中,有一些应用程序部署为 WAR 文件。我将这些应用程序称为 A、B、C、D。他们都使用 JNDI 连接到数据库。

让我们说... A 和 B 使用名为“123”的 JNDI 连接到 Oracle DB “hello”& C 和 D 使用名为“456”的 JNDI 连接到 Oracle DB “world”


DB“hello”下线维护时,A&B因无连接而失败,但C&D不受影响。 - 这是意料之中的,我没问题..

但是,当数据库“世界”因维护而停机时,整个应用程序 A~D 失败,jvm 进入“无法访问”状态。我无法恢复 jvm(它说 jvm 在不完整状态)。我不得不反弹 jvm 才能把它带回来。在我反弹 jvm 后,我能够让应用程序 A&B 在数据库“世界”在维护时工作..

我猜在服务器上为数据库“世界”做了一些额外的配置,比如不断尝试无限连接,最终导致整个 JVM 失败。但我对服务器的工作原理知之甚少,并且我不知道从哪里开始或着眼于防止这种情况在未来发生......


非常感谢任何帮助。谢谢。

【问题讨论】:

  • 这个问题太宽泛了。第一个提示:给自己买一本 Michael Nygard 的《Release it》。那本书广泛讨论了防止子系统崩溃时整个系统崩溃的模式。然后您可能需要花费数月时间来深入研究应用程序代码并修复问题。或者你给自己找了一份更适合你技能的新工作。
  • 嗨。谢谢推荐书。我一定会花时间研究它。我知道这个问题很广泛,并希望从哪里开始获得一些见解。是的,我绝对没有被聘为服务器管理员,但事情并不总是像人们所说的那样;)
  • 它是关于改善服务 - 所以最终它是一个开发职位。你可能会在那里学到很多东西——但你所处的位置很困难。因为把你带到那里的人一定是 a) 不知道他们在做什么或 b) 绝望。他们可能会给你几个星期的时间,然后开始指责你出了什么问题。只是说:为各个层面的许多问题做好准备。

标签: java oracle jvm weblogic jndi


【解决方案1】:

通常,它需要主-主、主-从或集群数据库架构来构建这样的备份(分布式数据库模型)或提供高可用性和可扩展性。这实际上取决于您或您的组织需要什么。这个 SO 答案可能会有所帮助:Master-master vs master-slave database architecture?

最简单的方法可能是租用云服务,因为他们会代表您处理此类问题。

【讨论】:

  • 感谢您的推荐。但不幸的是,我无法控制数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 2018-10-16
  • 2023-04-03
  • 2012-01-16
  • 1970-01-01
相关资源
最近更新 更多