【问题标题】:How to debug Oracle 11g packages/procedures in docker with SQL Developer?如何使用 SQL Developer 在 docker 中调试 Oracle 11g 包/程序?
【发布时间】:2019-12-27 22:33:51
【问题描述】:

我在 docker 容器上运行 Oracle 11g 映像 (https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g)。

我正在使用调试选项创建容器,如下所述:

docker run --name oracle-xe-11g -idt -p 1521:1521 -p 49161:8080 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g /bin/bash

之后,我以 sudo 身份登录容器,使用正确的主机名配置 listener.ora,一切都遵循本指南(在 pt-Br 中,但命令易于理解)

http://loredata.com.br/2017/08/31/rodando-o-oracle-no-docker/

我可以连接 SQL Developer 和在 Wildfly 服务器上运行的主应用程序,但出于支持目的,我需要调试一些包和存储过程。

我编译了我的所有包和过程以允许调试,向用户授予调试权限,但是当我尝试使用 SQL Developer 默认调试选项调试包中的过程时,我收到以下错误:

Conectando ao banco de dados SFW_DOCKER.
Executando PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE
Executando PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '127.0.0.1', '20587' )
ORA-30683: falha ao estabelecer conexão com o depurador
ORA-12541: TNS:não há listener
ORA-06512: em "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: em line 1
Processo encerrado.
Desconectando do banco de dados SFW_DOCKER.

它说没有监听器,但我确信一切运行良好。

我还尝试在端口 4000-4999 中运行,在创建容器命令中公开它们并强制 SQL Developer 使用它们,但我得到了同样的错误。

谁能帮我解答这个问题?

【问题讨论】:

  • linux 容器可以通过 localhost:20587 访问你的主机吗?这就是调试器正在尝试做的事情,从数据库返回到运行 SQL Developer 的机器
  • 我不确定我是否理解您的要求。容器和 SQL Developer 运行的是同一台机器,这是我的开发工作站。 SQL Developer 可以通过 localhost 访问容器,并且所有其他应用程序也可以访问容器,因此我的 database.url=jdbc:oracle:thin:@localhost:1521:xe 适用于所有情况。您的意思是我的机器需要将其端口暴露给 docker 容器?
  • 我知道容器 ip 和端口,并且我知道我的机器 ip 和端口,所以我不需要尝试将我的 SQL Developer 连接到暴露容器 ip 和端口的 oracle 容器,我需要做其他事情怎么办?

标签: docker debugging oracle11g oracle-sqldeveloper


【解决方案1】:

解决尝试:

  • 从本地计算机使用 IPv4
  • 将“调试端口范围”设置为 4000 到 4000
  • 选中“提示调试器主机以进行数据库调试”选项

SQL Developer -> 工具 -> 首选项 -> 调试器

Debugger configuration

【讨论】:

    【解决方案2】:

    我通过在ide.properties 中设置DatabaseDebuggerDisableJDWP=true 解决了这个问题。在 linux 上可以这样做:

    find ~/.sqldeveloper/ -name ide.properties -type f -exec sh -c "echo 'DatabaseDebuggerDisableJDWP=true' >> {}" \;
    

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2013-08-30
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多