我使用前端的apache和mod_jk
作为连接器为两个tomcat配置群集。我尝试了一个测试应用程序来检查配置,它工作正常。正在成功复制会话并成功检测到故障转移。但是当我为我的实际应用尝试这个时,它不起作用。我在httpd.conf中进行了相应的修改并且非常谨慎。日志中没有异常,没有错误。我无法追踪问题。最初我得到NotSerializableException
特定类,我让它们可序列化。现在没有异常,但是如果托管tomcat被关闭,即使集群的其他tomcat成员处于活动状态,我仍然无法加载应用程序。你能帮帮我吗我可以理解,当您不确定问题时,制作解决方案非常困难。
答案 0 :(得分:4)
所以你有2个服务,配置方式相同,只是一个正确地进行故障检修而另一个没有?
当你看到看起来不可能的东西时,有一般的经验法则。而这个规则是你没有看到你认为你所看到的。通常是因为被戏称为PEBKAC(键盘和椅子之间存在的问题)。真正令人沮丧的是,无论多么明显,你都可以盯着它看100次而且不会很明显,因为你看到了你所知道的东西而不是那里的东西。
根据我的经验,有两种很好的方法可以解决这类问题。
你可能需要遵循第二种方法。你可能不想 - 我从来没有 - 但它通常不像你想象的那么痛苦。首先,在测试系统上复制完整的应用程序,并证明您具有相同的故障。 (如果不这样做,那么你就开始仔细查看生产和测试之间的差异。特别是看看操作系统版本,库版本等等。)
假设您有一个测试系统,请保存该配置。然后开始删除您认为与配置问题无关的实际应用程序的大块,定期测试您是否在正确的路径上。 (并且每次都保存。)一旦你有一个最小的应用程序,开始尝试将其转向工作测试应用程序。在某个地方,你会发现一个有所作为的变化。它可能在任何地方。一旦找到它,您通常就会知道如何修复生产系统。或者如果你不这样做,你会非常清楚地知道你的问题。
有时你会发现一个奇怪的错误。如果是这样,那么您应该尽可能地开始尝试简化所有内容,直到您有一个很好的错误报告发送。