启动 JBoss 6.1 的新实例时,我从 Arjuna Recovery Manager 收到以下错误,我相信它是 jboss-ts 事务服务包的一部分。此错误阻止 Web 服务器正常启动,因为 recoverymanager 是它的依赖项。
此版本的 jboss 使用 Arjuna 版本 4.14.0。
透过来源,除了那个致命错误之外,恢复管理器初始化中似乎没有任何日志调用,这使得调试问题更加困难。
以下是该问题的错误堆栈跟踪:
09:14:02,946 错误 [AbstractKernelController] 安装到创建时出错:名称 = RecoveryManager 状态 = 已配置:com.arjuna.ats.arjuna.exceptions.FatalError:ARJUNA-12359 SocketProcessId.getpid 无法获取唯一端口。在 com.arjuna.ats.internal.arjuna.utils.SocketProcessId。SocketProcessId.java:82) [:6.1.0.Final]
... Java 库 [1.6.0_26]
在 com.arjuna.ats.arjuna.utils.Utility.initDefaultProcess(Utility.java:336) [:6.1.0.Final] 在 com.arjuna.ats.arjuna.utils.Utility.getProcess(Utility.java:348) [:6.1.0.Final] 在 com.arjuna.ats.arjuna.utils.Utility.getpid(Utility.java:287) [:6.1.0.Final] 在 com.arjuna.ats.arjuna.common.Uid.(Uid.java:84) [:6.1.0.Final] 在 com.arjuna.ats.arjuna.StateManager.(StateManager.java:829) [:6.1.0.Final] 在 com.arjuna.ats.arjuna.StateManager.(StateManager.java:802) [:6.1.0.Final] 在com.arjuna.ats.arjuna.coordinator.BasicAction.(BasicAction.java:65) [:6.1.0.Final] at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.(TwoPhaseCoordinator.java:58) [:6.1.0.Final] at com.arjuna.ats.arjuna.AtomicAction.(AtomicAction.java:71) [:6.1.0.Final] at com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule.(AtomicActionRecoveryModule.java:263) [:6.1.0.Final] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ... Java 库 [1.6.0_26]> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.loadModule(PeriodicRecovery.java:893) [:6.1.0.Final]
编辑:我们找到了这个问题的罪魁祸首。我们的 /etc/network/interfaces 被破坏了,导致本地主机环回接口关闭。
破碎的:
自动 lo,eth0
固定的:
自动 eth0
经验教训:仔细检查您的服务器配置,不要把所有问题都归咎于 JBoss。针对此问题提供的最常见解决方案是按照 Bart 的建议修复 /etc/hosts。不幸的是,我们的问题是由于另一个配置问题造成的。
答案1
显然,一个错误这可能会导致以前的版本出现此问题。检查提供的补丁是否已包含在当前版本中不会有什么坏处。
您还应该检查您的 hosts 文件。该文件必须完美无缺,Arjuna/JBoss 才能运行。确保您有一行如下所示的内容:
10.12.34.56 jboss.mydomain.org jboss
从您自己的 IP 开始,然后是 FQDN,最后是主机名。