2017-12-28 86 views
1

데이터베이스에서 PL/SQL 패키지를 호출하는 JDBC를 사용하여 일부 데이터를 저장하려고하는 실행중인 Java 웹 응용 프로그램이 있다고 가정 해 봅니다.원격 디버그 PL/SQL 패키지

Java 코드에서 execute() 함수가 호출되었으므로 저장할 데이터가 데이터베이스의 PL/SQL 패키지로 전송 된 후 데이터가 처리되어 결국 저장됩니다.

Oracle SQL Developer 또는 PL/SQL Developer를 사용하여 호출 된 PL/SQL 패키지를 디버깅하는 방법이 있습니까? 이러한 IDE가 원격 디버깅 기능을 지원합니까?

+0

"** 데이터베이스 ** 디버깅"이란 무엇을 의미합니까? 나는이 개념에 익숙하지 않다. – mathguy

+2

PL/SQL의 대화식 디버깅은 가능하지만 사전에 준비해야합니다. 적어도 특정 권한을 부여해야하기 때문에. [관련 블로그의 단계별 개요를 제공하는 @thatjeffsmith의 블로그] (https://www.thatjeffsmith.com/archive/2014/02/how-to-start-the-plsql-debugger/)를 읽어보십시오. – APC

+0

@ mathguy thx, 서두에 쓴 지금은 – Z3d4s

답변

4

당신이 찾고있는 것은 원격 디버그 기능은 Oracle SQL Developer에서 사용할 수 있습니다. 충족되어야 할 몇 가지 전제 조건은 : 원격 디버깅을 수행 할 스키마에서 사용자가 부여되어야한다
alter package SCHEMA.PACKAGE_NAME compile debug;

  • : 디버그 컴파일해야 디버깅 할

    1. 모든 패키지는 적절한 권한 :
      • grant debug connect session to USER_NAME; 원격 사용자의 세션에 연결 가용성을위한
      • grant debug any procedure to USER_NAME;는 오라클 12C를 사용하는 경우, 당신은 dba_network_acl_privileges 같은 몇 가지 유용한 오라클 전망이 있다는 것을 herehere이 또한주의를 살펴 계정 추가 ACL 제한을 고려한다
      • (패키지에 번들로 포함) 프로 시저를 디버깅하는 가용성이다 원격 사용자가 CONNECT_TCP 절차에 액세스 할 수 있도록 디버거
        • grant execute on SYS.DBMS_DEBUG_JDWP to REMOTE_USER_NAME;은 "신호를 제공"할 수 있어야한다
      • 기존의 ACL 권한을 확인
      • ,536,913,632 10

    이러한 요구 사항을 충족하거나 충족시킬 수있는 경우 다음을 수행 할 수 있습니다. Sue Harper의 블로그 this entry (또는 동일한 저자 인 Oracle 블로그의 this article 또는 this one)을 통해 목표를 달성 할 수 있습니다. 짧게 :

    1. 특정 포트에서 디버그 수신기를 로컬로 시작하고 중단 점을 설정하거나 적절한 디버거 옵션을 설정해야합니다.
    2. 원격 사용자는 관심 대상 코드를 실행하기 전에 exec DBMS_DEBUG_JDWP.CONNECT_TCP('ip-address', port)을 실행해야하며, 이는 세션 로그온 트리거에서 구현 될 수 있습니다.
    3. 코드를 원격으로 디버깅하십시오.

    오라클과 관련하여 좀 더 구체적 일 수 있지만 일반적으로 다루는 방법입니다.

    또한 PL/SQL Developer 원격 디버깅 (DBMS_DEBUG_JDWP 대신 DBMS_DEBUG 패키지 사용), 심지어 최신 버전을 언급하고 싶습니다. 오라클 SQL 개발자는 Java로 작성된, PL/SQL 개발자, 나는 이것이 문제의 근원이라고 생각하지 않습니다.