作为一个相对新手的支持和故障修复环境以及年轻的程序员,我从未遇到过只在Websphere环境而不是本地测试环境中发生的错误,直到今天。当我第一次收到这个错误报告时,我很困惑为什么无法在本地测试环境中重现它。我决定在Websphere测试环境中尝试一下,结果成功重现了该错误。问题是我无法对Websphere测试环境进行更改和构建。我只能在本地环境中进行更改。在这种情况下,有哪些解决这些错误的方法?或者根本没有方法学吗?有关如何处理此类问题的任何建议或帮助?
检查本地构建。确保它与测试和生产环境具有相同的版本(代码和数据库)。如果是,有哪些环境差异可能会影响您所看到的问题?(多核,负载均衡,操作系统版本,第三方库版本)。不要在调试器中本地运行,请确保您运行的是发布版本(如果测试和生产环境也是如此),甚至可以进行本地部署而不是从源代码构建。
检查是否是特定数据引起了问题。如果可以,将测试环境的数据库复制回本地,并查看是否能够重现该问题。
与其他开发人员进行核实。看看他们是否可以在他们的环境中重现该问题。与您的QA团队进行核实,获取他们对可能导致这样的问题的想法(通常情况下,他们会看到“类似”的问题,可能会给您一些线索)。
在那时,如果没有任何帮助,我通常会进入深度禅定状态,以尝试理解我所缺失的东西。但是,肯定存在差异,您只需要找到它。
ltrace
和strace
是真正查看内部情况的最佳方式。它们不容易阅读,但一旦您习惯了如何发现并解释某些系统调用的返回值,您就会获得一个非常强大的调试工具。