如何在Weblogic集群环境中设置远程调试?

10

我正在尝试远程调试一个部署在WebLogic 12c上的集群Web应用程序。

我知道如何为普通(非集群)环境设置远程调试,我只需将以下参数添加到名为[startWebLogic.cmd]的文件中:

set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n

但是,当我尝试在集群环境的所有节点上设置相同的参数,然后使用WebLogic控制台页面启动集群时,远程调试将无法正常工作!(Eclipse将无法连接)。

我怀疑这是由于WebLogic的节点管理器启动各个节点的方式导致的,就好像它没有为每个节点调用[startWebLogic.cmd]。


你是否查看了nodemanager.properties文件以查看它调用了什么?你需要设置startScriptEnabled=true并将其指向startManagedWeblogic,然后再调用startWebLogic - Display Name is missing
我已经在下面发布了解决方案,非常感谢。 - Ghayth
2个回答

20

我明白了!

当您通过WebLogic控制台页面启动集群节点时, 节点管理器以某种方式处理每个节点的启动,因此它不会运行每个节点的[startWebLogic.cmd]文件!

我发现您可以通过控制台页面为每个节点设置远程调试参数,这样节点管理器在尝试启动节点时将向每个节点传递这些参数。

以下是我如何做到这一点(编辑:在WebLogic 12c上):

  1. 打开WebLogic控制台页面(例如:localhost:7001/console
  2. 在页面左侧,转到环境 > 集群
  3. 找到您的群集环境名称并单击它
  4. "配置"选项卡中,打开"服务器"子选项卡
  5. 在页面底部,您将找到所有群集节点的表格。
  6. 单击其中一个节点(服务器)。
  7. "配置"选项卡中,打开"服务器启动"子选项卡
  8. 向下滚动一点,您将找到名为"Arguments"的文本区域,用远程调试参数填充它: -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
  9. 单击"保存",并在所有其他群集节点上重复步骤6-8

完成!


0

在WebLogic服务器上启用调试

为了使JDeveloper调试器能够调试部署到WebLogic服务器上的应用程序,必须以调试模式启动服务器。WebLogic服务器调试基于Java平台调试体系结构(JPDA)。注意:我们使用域wl_server来部署和调试提供的应用程序。

要以调试模式启动WebLogic服务器,您需要修改\wlserver_10.0\samples\domains\wl_server目录中的startWebLogic.cmd脚本。其中,是安装WebLogic 10.0.1的目录。

在startWebLogic.cmd脚本中,使用JAVA OPTIONS指定:

set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n

-XDebug参数启用调试。-Xnoagent参数禁用默认的sun.tools.debug调试代理。-Xrunjdwp参数加载JPDA JDWP参考实现。在4000端口上启用调试。JDWP协议是使用远程调试器进行调试的协议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接