【发布时间】: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