因此,我们使用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
现在,您可以使用Eclipse或IntelliJ IDEA中的
prd_server:8788
地址附加IDE。但是,有一些陷阱:
您需要在指定端口上具有对生产服务器的TCP / IP访问。可能会涉及一些防火墙/ SSH隧道。
默认情况下,调试器在遇到断点时可能会挂起所有线程。确保仅暂停当前服务器,否则将冻结整个服务器。
...是的,远程调试非常危险,尤其是在生产环境中。
处于调试模式/侦听调试连接的JVM可能会稍微慢一些(虽然还没有看到)。