因此,我们使用Netbeans 6.9.1,将代码推送到SVN服务器(dev),然后运行连接到DEV计算机上MySQL的本地Web服务器(Tomcat)。我们可以在调试模式下运行并逐步执行代码。

但是,然后我们将我们的WAR文件推送到生产机器(在生产数据库上)。该机器与开发人员完全分开。

但是我们遇到了持续的问题。当我们对所有列进行三重检查时,诸如Hibernate中的null id之类的东西。

我们需要的是一种将调试器附加到PRODUCTION用户并逐步执行代码的方法。

我们有什么选择?

感谢您的任何建议。

编辑

我想发布更多信息。感谢那些提供建议的人。

首先,我们的生产服务器托管3个应用程序(以及prod数据库)。我们遇到最多问题的应用只有一个用户,数据几乎与开发人员的数据相同。我们在JDBC中遇到事务问题,无法找到问题的根源。

最佳答案

如果您真的想将调试器附加到正在运行的生产服务器上,则Java完全可以做到这一点。首先,使用以下命令运行服务器/ JVM:

-Xrunjdwp:transport=dt_socket,address=8778,server=y,suspend=n


现在,您可以使用EclipseIntelliJ IDEA中的prd_server:8788地址附加IDE。

但是,有一些陷阱:


您需要在指定端口上具有对生产服务器的TCP / IP访问。可能会涉及一些防火墙/ SSH隧道。
默认情况下,调试器在遇到断点时可能会挂起所有线程。确保仅暂停当前服务器,否则将冻结整个服务器。
...是的,远程调试非常危险,尤其是在生产环境中。
处于调试模式/侦听调试连接的JVM可能会稍微慢一些(虽然还没有看到)。

10-07 19:37
查看更多