Remote Debugging Java Portlets

Dear experts,
I am a newbie to JDeveloper and Oracle9iAS Portal.
I created some Java Portlets with the JDev and the Portlet Wizard and would like to debug them when they are executed in the Portal.
Any help on how to setup the remote debugging? Are there any documents about this out there?
Your help is much appreciated.
Cheers,
Erik

Erik,
This is something we are looking at for enhancements for the Java Portlet Wizard, but for now you remote debugging from the Oracle9iAS OPMN. You can find out more about it here:
http://otn.oracle.com/tech/java/oc4j/htdocs/oc4j-logging-debugging-technote.html
Sue Vickers

Similar Messages

  • Remote debugging

    Is it possible to set up IFS to enable remote debugging?
    I'd like to be able to attach JDeveloper debugger to the IFS JVM.
    I run IFS on a remote machine.
    Thanks,
    Roman
    null

    Roman,
    Have you checked the online help in Jdeveloper there is a lot of information on remote debugging.
    If you use 1.1 you should check the following which I've copied from the online help:
    Configuring Apache JServ for Remote Debugging Java Server Pages
    If you are using Apache Jserv, you can debug using either the Oracle Java Virtual Machine (JVM) debugging protocol or the Sun Java Platform Debugging Architecture (JPDA). When you start your remote debugging session, you will have to choose which method to use. Depending on which one you choose, your configuration options are a little different.
    Using Oracle's JVM
    To use Oracle's JVM debugging protocol, you'll need to change the JVM that Apache JServ uses, modify the parameters you send to the JVM, and modify the CLASSPATH for Apache JServ.
    These changes must be made on the computer that is hosting Apache JServ. If you do not have permission to make these changes, talk with your administrator.
    Changing the JVM
    In the jserv.properties file, set the wrapper.bin parameter to the full path of the JDeveloper JVM (java.exe). For example,
    wrapper.bin=C:\Program Files\jdeveloper\java1.2\bin\java.exe
    Setting parameters
    In jserv.properties, set the wrapper.bin parameter to
    wrapper.bin.parameters=-XXdebugondemandquietport4000
    The -XXdebug parameter options are the following:
    ondemand
    Start the java program right away and allow a debugger to connect any time. Without this option, the Java program stays halted until a debugger is connected.
    port4000
    Debugger must connect at the specified port. Without this option, the port is 4000.
    quiet
    Don't print connection messages. Without this option, connection messages are sent to standard error.
    Changing the ApJServerAction entry
    In jserv.conf comment out any existing ApJServAction .jsp entries by putting a # at the beginning of the line.]
    #ApJServAction .jsp /servlets/org.gjt.jsp.JSPServlet
    Add a new ApJServAction .jsp entry
    ApJServAction .jsp /servlets/oracle.jsp.JspServlet
    Adding servlet init parameters
    In the servlet init parameters section of the zone.properties file, add the following lines.
    servlet.oracle.jsp.JspServlet.initArgs=emit_debuginfo=true
    servlet.oracle.jsp.JspServlet.initArgs=jspcompiler=oracle.jdeveloper.jsp.JspOjcCompiler
    servlet.oracle.jsp.JspServlet.initArgs=classpath=C:\Program Files\Oracle\JDeveloper\java1.2\jre\lib\rt.jar
    Setting the CLASSPATH
    In jserv.properties, set wrapper.classpath to
    wrapper.classpath=C:\Program Files\Oracle\JDeveloper\jswdk-1.0\lib\servlet.jar
    Make sure that the location of ApacheJServ.jar is specified.
    wrapper.classpath=C:\Program Files\Apache JServ\ApacheJServ.jar
    Comment out the location of jsdk.jar.
    #wrapper.classpath=C:\jsdk2.0\lib\jsdk.jar
    Using JPDA
    To use JPDA debugging protocol, you'll need to modify the parameters you send to the JVM, tell the server how to find the JDPA library, and modify the CLASSPATH for Apache JServ.
    These changes must be made on the computer that is hosting Apache JServ. If you do not have permission to make these changes, talk with your administrator.
    Setting parameters
    In jserv.properties, set the wrapper.bin parameter to
    wrapper.bin.parameters=-classic -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -Xdebug -Xnoagent -Djava.compiler=NONE
    To see the invocation options for JPDA, see Sun VM Invocation Options.
    If you are running on Solaris, you may also need to include stdalloc=y as part of the -Xrunjdwp paramater, like the following:
    wrapper.bin.parameters=-classic -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000,stdalloc=y -Xdebug -Xnoagent -Djava.compiler=NONE
    Adding the JPDA library
    In jserv.properties, set wrapper.path to include the location of jdwp.dll. This file is is part of the Java Platform Debugging Architecture.
    wrapper.path=D:\jpda\bin
    If Apache JServ is running on Unix,
    setenv LD_LIBRARY_PATH /home/jpda/lib/sparc:$LD_LIBRARY_PATH
    setenv PATH /home/jpda/bin:$PATH
    where home/jpda is the path to your JPDA installation. In addition, you will have to pass that environment variable through Apache to the JVM. To do that, in jserv.properties, add the following line:
    wrapper.env.copy=LD_LIBRARY_PATH
    Setting the CLASSPATH
    In jserv.properties, set wrapper.classpath to
    wrapper.classpath=C:\Program Files\Oracle\JDeveloper\jswdk-1.0\lib\servlet.jar
    Make sure that the location of ApacheJServ.jar is specified.
    wrapper.classpath=C:\Program Files\Apache JServ\ApacheJServ.jar
    Comment out the location of jsdk.jar.
    #wrapper.classpath=C:\jsdk2.0\lib\jsdk.jar
    Let me know if this helps

  • How to remote debug JSPs on Tomcat 5.0 from JDev 10.1.2

    I can remote debug Java applications and servlets. But I can not make it stop within any JSP pages while doing remote debug. I have no problem if I debug locally within the built-in OC4J server.
    I set my project properties with remote debugging -> Attaching to JPDA. I start my tomcat using catalina jpda start after setting environment variables JPDA_ADDRESS=8000 and JPDA_TRANSPORT=dt_socket.
    Please help,
    TIA

    Ashraf, thanks for sharing your experience. I would like to comment on your precedure.
    Jdeveloper 10.1.2
    Tomcat 4.1.31 ( version 5.x.x won't work as it needs jdk 1.5 at least, and jdev is configured to run with 1.4 )I was able to use Jdeveloper 9.0.5 to debug a servlet running in Tomcat 5.5.9 with jdk 1.5.0. I would belive there is no fundamental obstacle for Jdeveloper 10.1.2 to debug Tomcat 5.x.x, thanks to the nature of JPDA.
    a- backup $TOMCAT$\bin\catalina.bat.
    b- edit $TOMCAT$\bin\catalina.bat to include the following:
    set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Djava.compiler=NONE
    -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000Another way is to set your environment variable JAVA_OPTS. There is then no need to modify catalina.bat.

  • Remote Debugging Portlets

    Hi,
    I am a newbie to Oracle9iAS Portal and Portlets. I already posted this topic on the Jdev Forum but no reply yet. I hope someone here can help.
    I created some Java Portlets with the JDeveloper and the Portlet Wizard and would like to debug them with the JDeveloper when they are executed in the Portal.
    Any help on how to setup the remote debugging? Are there any documents somewhere?
    Any suggestion or help is much appreciated.
    Cheers,
    Erik

    The correct URL is: Remote Debugging in OC4J.
    Or if the above link doesn't work:
    http://otn.oracle.com/jdeveloper903/help/topic?inOHW=true&linkHelp=false&file=jar%3Afile%3A/u01/webapps/OHW/ohw-app/jdeveloper903/helpsets/jdeveloper903/compiling_debugging.jar!/rem_p_main_oc4j.html

  • WD Java Remote Debug problem: Release Process from debugging

    Hi Community,
    when I used to debug Web Dynpro Java from the SAP Developer Studio (eclipse) to a remote host (Portal AS NW Java), it works fine for the first run. After disconnecting the remote debug session (server0), I changed the coding and try to debug again with the effect that the old coding is still used from the server process (server0) even though the parameter "Create and Deploy archive" is set (enabled) in the debug configuration. Furthermore the funktionality of "Relase process from debugging" option in the J2EE Engine dosn't react / work.
    I think that the debug session is still running and the Developer Studio is not able to send any "Kill" statement to the server process for ending this session.
    I tried following:
    A. Rebuild Project and Deploy the archive on the "normal" way
    B. Reopen the Developer Studio itself
    C. Start the Project in debugmode again and chose the option "Terminate All"
    ...all without any success.
    The only way is to restart the whole server process server0 again with the same trouble after the first debug.
    Did any of you have a clue or experience to clear or kill the debugsession from the process so that next debugsessions can be started, please reply.
    Thanks
    Used Basic Manuell
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/849170e3-0601-0010-d59e-ddfce735fac5

    So, I'm having the same issue, but it's like I'm chasing down a port. The first time I got these error messages
    Connecting to the database DEV.
    Executing PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE
    Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '555.12.18.288', '5950' )
    ORA-30683: failure establishing connection to debugger
    ORA-12535: TNS:operation timed out
    ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
    ORA-06512: at line 1
    Process exited.
    Disconnecting from the database DEV.Our network staff found a bunch of other denials in the firewall logs
    /5185
    /5200
    /5236
    /5815
    /5950 Now that they've those allowed, I tried to start debug again, and this time I got
    Connecting to the database DEV.
    Executing PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE
    Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP('555.12.18.288', '6266' )
    ORA-30683: failure establishing connection to debugger
    ORA-12535: TNS:operation timed out
    ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
    ORA-06512: at line 1
    Process exited.
    Disconnecting from the database DEV.What gives? Do I just keep trying until I get all of the ports allowed?
    Thanks,
    ---=Chuck

  • Debugging remote-enabled Java module

    Hi all,
    Could any one please suggest how to debugg 'Remote-Enabled Java Module( RFC Fucntion module - SPC_GET_PRICING_DOCUMENT_INFO)'.
    Thanks & Regards
    Siva Shankar

    Finished

  • Remote Debugging (Jdev 10.1.3 to AS 10.1.3)

    Hi,
    I have been trying to do a remote debugging by connecting Jdeveloper (version 10.1.3 production) to AS 10.1.3 mid-tier but the OC4J instance seems to be crashing the moment the jdeveloper makes the connection. However, before the crash, jdeveloper takes about 5minutes to connect to the server.
    The OC4J is managed by opmn and not a standalone process. I am not sure if this makes any difference. Here are the changes that I made in the 10.1.3 server:
    *) Modified opmn.xml to add the below:
    <data id="java-options" value="-server -verbose:gc -Xmx512M -Xms128M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=43503 -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB -XX:ParallelGCThreads=2 -Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
    (also tried removing "-server" option)
    *) Modified orion-web.xml to add the below:
    <init-param>
    <param-name>debug_mode</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>developer_mode</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>encode_to_java</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>emit_debuginfo</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>jspjavacompiler</param-name>
    <param-value>oracle.jdevimpl.jsp.JspOjcCompiler</param-value>
    </init-param>
    *) Modified global-web-application.xml to add the below:
    <orion-web-app
    jsp-cache-directory="./persistence"
    servlet-webdir="/servlet"
    development="true" >
    I see the below message in the jdeveloper debug window when the OC4J instance crashes:
    Debuggee process virtual machine is Java HotSpot(TM) Server VM.
    Debuggee process is application server OC4J.
    To test JSPs or servlets, you must start a browser.
    Debugger disconnected from remote process.
    I do not see any error in application.log file.
    By setting up the remote debugging, I am hoping for a better portlet development experience.
    Any help is appreciated.
    Thanks,
    Pandian.
    Message was edited by:
    apandian

    The doc is kind of vague, but here's the root reference:
    http://download.oracle.com/docs/cd/B25221_04/core.1013/b15976/opmnxml.htm#sthref144
    There's a FAQ document that prescribes how the "restart" algorithm works, see 1.3:
    http://www.oracle.com/technology/products/ias/ohs/htdocs/opmn-1013-faq.pdf
    So to tweak this behaviour, you specify a speciifc <ping> element inside of the opmn.xml for the managed process you are using -- and set the timeout, interval, retry attributes to some combination that gives you a longer pause time.
    http://download.oracle.com/docs/cd/B25221_04/core.1013/b15976/common.htm#CACGAIGH
             <ias-component id="default_group">
                <process-type id="home" module-id="OC4J" status="enabled">
                   <module-data>
                      <category id="start-parameters">
                         <data id="java-options" value="-Xrs -server -XX:MaxPermSize=128M -ms512M -mx1024M -XX:AppendRatio=3 -Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
                      </category>
                      <category id="stop-parameters">
                         <data id="java-options" value="-Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
                      </category>
                   </module-data>
                   <start timeout="600" retry="2"/>
                   <stop timeout="120"/>
                   <restart timeout="720" retry="2"/>
                   <ping timeout="300" />
                   <port id="default-web-site" range="8888" protocol="ajp"/>
                   <port id="rmi" range="12401-12500"/>
                   <port id="rmis" range="12701-12800"/>
                   <port id="jms" range="12601-12700"/>
                   <process-set id="default_group" numprocs="1"/>
                </process-type>
             </ias-component>Now I did just see something that is either a bug, or a doc error. In the doc, it shows the attributes of the <ping> tag to be: timeout, retry, interval. However when you configure opmn.xml with these, it report an error.
    Looking at the $ORACLE_HOME/opmn/conf/opmn.xsd file, it shows that only attributes are timeout and interval. You can't add a retry attribute. I'm not sure if this is a doc bug or an error in the XSD file.
    Anyways, using the timeout parameter, for your DEBUGGING phase (not production!) you should be able to bump that up to a higher value to allow OPMN to wait longer for a response from OC4J before it nukes it.
    -steve-

  • Enabling tracing in remote debugging

    Hello,
    I am wondering how to enable tracing in remote
    debugging. Here is what I now how to do:
    1) how to attach to JDPA,
    2) run till the breakpoint.
    Next, when I try to step in, or step over
    the process is always run until the next break
    point regardless of whether I have the
    required classes in the source path and
    in the "tracing ... include" list.
    I would appreciate any help,
    Vadim
    P.S. 1) Thanks for answering my previous question
    about customizing ant. I figured how to do it earlier
    on my own and wanted to post a reply but
    couldn't do it. The system wouldn't find the
    topic.
    2) As far as JB concerned, the whole process of remote
    debugging is pretty straight forward. I can help if anyone intersted.

    Hi Vadim,
    well, I am a newbie and would like some help how to setup the Jdeveloper and IAS for remote debugging my java portlets.
    If you like to contact me privatly: [email protected]
    Thanks
    Erik

  • Remote Debugging w/9iAS  not working !

    I tried posting this in the app server area but apparently, it's too difficult for anyone to answer. No replies.
    We need to debug a deployed jsp that uses java beans.
    The jsp/java beans app is in jdevleoper 9.0.3.1 (windows 2000).
    I have deployed the application to Oracle 9ias java edition (9.0.3) on Red Hat Linux.
    I know how to modify the project settings in jdeveloper for remote debugging.
    when I start debug mode in jdeveloper I am prompted for the host name and port number for the remote debug session. What port do I use ?
    Do I need to do something to start 9ias at a certain port ? If so, how do I do this ?
    I have seen conflicting information on this that mainly refers to a standalone oc4j, not the oc4j in 9ias.
    Frank

    Hi,
    We have gotten many requests for collateral that details these steps. We are currently working on such a document. Keep posted to the JDeveloper OTN website http://otn.oracle.com/products/jdev for updates on this.
    -Stuart

  • How to start listener in sql developer for remote debug

    how to start listener in sql developer for remote debug ? Since the new version 1.1.0.23 is different with the old version for remote debug, I don't know how to start the listener on the new version for remote debug.
    even follow the user guide below and not work . Experts on sql developer please help me with this.
    Remote Debugging
    To debug a procedure or function for a connection where the database is on a different host than the one on which you are
    running SQL Developer, you can perform remote debugging.
    Remote debugging involves many of the steps as for local debugging; however, do the
    following before you start the remote debugging: Use an Oracle client such as SQL*Plus to issue the debugger connection command. Whatever
    client you use, make sure that the session which issues the debugger connection commands is the same session which executes your PL/SQL
    program containing the breakpoints.
    For example, if the name of the remote system is remote1, use the following SQL*Plus command to open a
    TCP/IP connection to that system and the port for the JDWP session:
    EXEC DBMS_DEBUG_JDWP.CONNECT_TCP('remote1', '4000'); The first parameter
    is the IP address or host name of the remote system, and the second parameter is the port number on that remote system on which the debugger
    is listening.
    Right-click the connection for the remote database, select Remote Debug, and complete the information in the Debugger - Attach
    to JPDA dialog box. Then, follow the steps that you would for local debugging (for example, see Debugging a PL/SQL Procedure).
    Debugger - Attach to JPDA This dialog box is displayed when you right-click a database connection name and select Remote Debug.
    Use this
    dialog box if you are using the Sun Microsystem's Java Platform Debugger Architecture (JPDA) and you would like the debugger to listen so
    that a debuggee can attach to the debugger.
    For more information about remote debugging, see Remote Debugging.
    Host: Name or IP address of
    the remote host on which SQL Developer should listen for the database to connect.
    Port: Listening port number on the remote host. You can
    choose any valid port number that is not in use by another process.
    Timeout: The number of seconds that SQL Developer will wait for the
    remote database to make a debugging connection. Don't Show Dialog Box Before Connecting: If this option is checked, this dialog box will not
    be displayed before future connections for remote debugging

    You're not the only one:
    Not able to start remote debug listener
    Re: remote debug question at version 1.1.0.23 64

  • Advantages of using Oracle JVM over JPDA for Remote Debugging?

    What are the "additional features" that the documentation hints at when using the Oracle JVM for remote debugging vs. the JPDA protocoL? Can a member of the JDEV briefly address this? What exactly am I losing when using JPDA?

    I am not getting anywhere with 'NCOMPing' the stuff. Attempts to NCOMP keeps erroring out . The first of the errors is
    'Error while determining classes contained in jsch-1.29_minimalClassListAndTCD
    mper.java
    Exception oracle.aurora.sqljdecl.ParseException: Encountered "-" at line 14
    column 18.
    Was expecting one of:
    "extends" ...
    "implements" ...
    The following operations failed
    jsch-0.1.29_minimalClassListAndTCDumper.java: creation
    exiting : Failures occurred during processing
    Kuassi, I have looked at a few of your posts where you make mention of a file titled 'Settings_os.properties'. I see no such file in my Oracle installation. What am I missing here ?

  • Remote Debug in eclipse

    Hello!
    I am new to eclipse...Can someone tell me how to use remote debug? I thought it is done by running "Debug..." after selecting the java file...Sorry for being so ignorant about this...I will really appreciate your help. Thank you.

    You do not have to have a main() method in the application. In fact you can have a breakpoint in any Java component. It just has to be in debugger's scope and it'll get visited.
    Example: Let's say you're rinning a Tomcat app. You can have a breakpoint inside a servlet's doGet() methof and when you invkoke the servlet from Firefox, Eclipse will pause the excution and will bring the debugger perspective up.
    From the article "Eclipse Debug window should automatically pop-up with the stack pointer on your first breakpoint (See Figure 3: Breakpoint hit in Eclipse's debugger). After that, you can use all the various functions that the debugger has to offer, namely variable assignments, step-into, drop to frame, etc."
    If you're not seeining anything, chances are that you're not executing that piece of code. Double check that and let me know.
    Levent Gurses

  • How to use Remote Debugging in JDeveloper 3.1 ?

    I am trying to use the Remote Debugging option with EJBs in JDeveloper 3.1 with Oracle8i 8.1.6.
    I checking all steps the online walkthrough for Remote Debugging EJB in 8i and it didn't work.
    I'm using Oracle8i EJB/CORBA debug option in project properties, but it does not stop in my EJB's break points.
    I tried deploying the EJB again ( with break points) and again it didn't work.
    The error message I got in the trace file is:
    Errors in file D:\Oracle\admin\SCT\udump\sctS000.TRC:
    ORA-29516: Aurora assertion failure: Java thread deadlock detected
    Could someone please tell me how to use it?
    null

    Which platform is the database running on ??
    Other things you should check -
    when debugging the EJB, JDev
    3.1 looks through your IIOP connections to find the one to use.
    Make sure that the IIOP connection that JDev is using for the debugging matches the IIOP connection that the EJB client application is using.
    raghu
    null

  • Remote Debugging with SQL-Developer (APEX)

    Hello all,
    I have a problem with the Remote Debugging functionality in SQL Developer.
    I want to debug a fuction that generate a SQL-Statement. This SQL is the basic of a report in APEX.
    I grant the  privilege DEBUG CONNECT SESSION and DEBUG ANY PROCEDURE for the user.
    This is the PL/SQL in the report region:
    declare
      v_sql varchar2(32767);
    begin
      dbms_debug_jdwp.connect_tcp('192.168.2.1', 4200);
      v_sql := generate_sql(:P1_TABLENAME);
      dbms_debug_jdwp.disconnect;
      return v_sql;
    end;
    When I run the page i get this error:
    ora-30677: session is already connected to a debugger
    But I can`t debug it in SQL-Developer.
    Can you help me please?

    Hi Scott,
    Yes my call to this is in a on submit after computations and validations page process. Below is the code in which I get the insufficient privileges error:
    BEGIN
      IF :DEBUG = 'YES' THEN
        dbms_debug_jdwp.connect_tcp('10.200.37.223',4000);
      END IF;
      species_upload.load_tsv_file(:APP_USER, :P302_SURVEY_BROWSE, 'survey');
      --null;
      IF :DEBUG = 'YES' THEN
        dbms_debug_jdwp.disconnect;
      END IF;
    END; I tried running it in SQL workshop in Apex as
    begin
       dbms_debug_jdwp.connect_tcp('10.200.37.223',4000);
    end;and I still get the insufficient privileges error message.
    My parsing schema is: SNHLIVE
    And the APEX user is: APEX_PUBLIC_USER I got this by doing select USER from dual in the SQL Commands in APEX.
    I have done the following:
    grant DEBUG ANY PROCEDURE to SNHLIVE
    grant DEBUG ANY PROCEDURE to APEX_PUBLIC_USER
    grant DEBUG ANY PROCEDURE to ANONYMOUS
    grant DEBUG CONNECT SESSION to SNHLIVE;
    grant DEBUG CONNECT SESSION to APEX_PUBLIC_USER;
    grant DEBUG CONNECT SESSION to ANONYMOUS
    grant DEBUG on SNHLIVE.species_upload TO SNHLIVE;
    grant DEBUG on SNHLIVE.species_upload TO APEX_PUBLIC_USER;
    grant DEBUG on SNHLIVE.species_upload TO ANONYMOUS;What I followed was David's article: Link: [http://www.oracle.com/technology/oramag/oracle/08-may/o38browser.html?_template=/ocom/print]
    Now i can get remote debugging work on the same database using SQL Plus and Java application but not in Apex.
    Any ideas why?
    Thanks in advance,
    Paul.

  • SQL Developer Hangs when connecting for Remote Debug

    Hello,
    I've been trying to use the Remote Debug feature of SQL Developer. We are writing a Web Application that connects to Oracle and I would like to debug a package function on the database server (which is not the same machine as my SQL Developer client).
    To test my configuration, I tried connecting on SQLPlus creating a connection (by calling exec dbms_debug_jdwp.connect_tcp('xxx.xxx.xxx.xxx', 'xxxxx'); ) and calling a function which had a breakpoint and the debugging started immediately on SQL Developer. Then I tried putting the dbms_debug_jdwp.connect_tcp('xxx.xxx.xxx.xxx', 'xxxxx'); call inside the stored procedure I was debugging (prior to the line with the breakpoint) and it connected and got to the breakpoint successfully as well. So I'm pretty sure my firewall / user privileges are set up correctly.
    So I modified the function that my web application eventually calls to create the connection (in order to remain in the same session) but whenever it gets to the connect_tcp line SQL Developer hangs and I'm unable to debug. I've realized that it only hangs if I have a breakpoint there. If I don't have a breakpoint then it creates a connection just fine. Of course without a breakpoint it's a bit difficult to debug isn't it? :)
    My Sql Developer version is 3.0 and I'm connecting to Oracle 11.1.0 Below you can find a dump when running SqlDeveloper with console. My OS is windows XP and my Oracle instance is running on Linux.
    I appreciate any help you can provide.
    2012-01-27 16:08:30
    Full thread dump Java HotSpot(TM) Client VM (11.0-b16 mixed mode):
    "JDI Target VM Interface" daemon prio=6 tid=0x3398f800 nid=0x1574 runnable [0x3702f000..0x3702fa14]
    java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.net.SocketInputStream.read(SocketInputStream.java:182)
    at com.sun.tools.jdi.SocketConnection.readPacket(SocketTransportService.java:393)
    - locked <0x097d3528> (a java.lang.Object)
    at com.sun.tools.jdi.TargetVM.run(TargetVM.java:99)
    at java.lang.Thread.run(Thread.java:619)
    "JDI Internal Event Handler" daemon prio=6 tid=0x34a82c00 nid=0x15ac in Object.wait() [0x355ef000..0x355efa94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at com.sun.tools.jdi.EventQueueImpl.removeUnfiltered(EventQueueImpl.java:171)
    - locked <0x097218d0> (a com.sun.tools.jdi.EventQueueImpl)
    at com.sun.tools.jdi.EventQueueImpl.removeInternal(EventQueueImpl.java:106)
    at com.sun.tools.jdi.InternalEventHandler.run(InternalEventHandler.java:36)
    at java.lang.Thread.run(Thread.java:619)
    "JPDA Listener" prio=6 tid=0x35806400 nid=0x7b8 runnable [0x3533f000..0x3533fd94]
    java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    - locked <0x095ec870> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:453)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at com.sun.tools.jdi.SocketTransportService.accept(SocketTransportService.java:330)
    at com.sun.tools.jdi.GenericListeningConnector.accept(GenericListeningConnector.java:136)
    at oracle.jdevimpl.debugger.jdi.DebugJDIConnectorListen.run(DebugJDIConnectorListen.java:127)
    at java.lang.Thread.run(Thread.java:619)
    "Native Directory Watcher" prio=2 tid=0x35e47c00 nid=0x170c runnable [0x34fef000..0x34fefa14]
    java.lang.Thread.State: RUNNABLE
    at oracle.ide.natives.NativeHandler.enterWatcherThread(Native Method)
    at oracle.ide.natives.NativeHandler$2.run(NativeHandler.java:252)
    at java.lang.Thread.run(Thread.java:619)
    "Background Parser" prio=6 tid=0x35c4a800 nid=0x17e0 waiting on condition [0x3832f000..0x3832fa14]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:139)
    at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
    at java.lang.Thread.run(Thread.java:619)
    "status-0" prio=2 tid=0x35d54400 nid=0x1208 waiting on condition [0x3812f000..0x3812fc14]
    java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for <0x064a8cf0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
    at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:329)
    at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:291)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)
    "Background Parser" prio=6 tid=0x35dde800 nid=0xa00 waiting on condition [0x3782f000..0x3782fb14]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:139)
    at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
    at java.lang.Thread.run(Thread.java:619)
    "WeakDataReference polling" prio=2 tid=0x35f59c00 nid=0x1144 in Object.wait() [0x3802f000..0x3802fb14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x08554ba8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked <0x08554ba8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at oracle.ide.util.WeakDataReference$Cleaner.run(WeakDataReference.java:88)
    at java.lang.Thread.run(Thread.java:619)
    "Background Parser" prio=6 tid=0x35d00400 nid=0xe1c waiting on condition [0x37e2f000..0x37e2fc94]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:139)
    at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
    at java.lang.Thread.run(Thread.java:619)
    "TextBufferScavenger" prio=6 tid=0x35df1c00 nid=0xabc in Object.wait() [0x37c2f000..0x37c2fd94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0842dfe0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked <0x0842dfe0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at oracle.ide.model.TextNode$FacadeBufferReference$PollingThread.run(TextNode.java:1949)
    "pool-4-thread-1" prio=6 tid=0x33a11c00 nid=0x444 waiting on condition [0x33f0f000..0x33f0fa94]
    java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for <0x07ba2040> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)
    "IconOverlayTracker Timer" prio=6 tid=0x3491a000 nid=0x1750 in Object.wait() [0x3792f000..0x3792fb94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.util.TimerThread.mainLoop(Timer.java:483)
    - locked <0x07b36968> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)
    "Timer queue for AWT thread" daemon prio=6 tid=0x34913c00 nid=0xdfc in Object.wait() [0x3772f000..0x3772fd94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x075b5cc8> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:485)
    at ice.util.awt.TimedAWTExecutor.nextElem(TimedAWTExecutor.java:108)
    - locked <0x075b5cc8> (a java.lang.Object)
    at ice.util.awt.TimedAWTExecutor.runScheduler(TimedAWTExecutor.java:130)
    at ice.util.awt.TimedAWTExecutor$1.run(TimedAWTExecutor.java:19)
    "WaitCursor-Timer" prio=6 tid=0x35ca5800 nid=0x1230 in Object.wait() [0x3752f000..0x3752fa14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.util.TimerThread.mainLoop(Timer.java:483)
    - locked <0x0719c1c0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)
    "Timer queue for AWT thread" daemon prio=6 tid=0x35a1f800 nid=0x1444 in Object.wait() [0x3692f000..0x3692fb14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0719c240> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:485)
    at ice.util.awt.TimedAWTExecutor.nextElem(TimedAWTExecutor.java:108)
    - locked <0x0719c240> (a java.lang.Object)
    at ice.util.awt.TimedAWTExecutor.runScheduler(TimedAWTExecutor.java:130)
    at ice.util.awt.TimedAWTExecutor$1.run(TimedAWTExecutor.java:19)
    "pool-2-thread-1" prio=6 tid=0x35a75800 nid=0x135c waiting on condition [0x3742f000..0x3742fc14]
    java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for <0x06d72e80> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:422)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
    at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:857)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)
    "BaseTreeExplorer.NodeOpeningExecutor" prio=6 tid=0x359c6800 nid=0x1618 waiting on condition [0x3732f000..0x3732fc94]
    java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for <0x06d492a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)
    "Scheduler" daemon prio=6 tid=0x35a44400 nid=0x131c in Object.wait() [0x3722f000..0x3722fd14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x06d493e0> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)
    at java.lang.Object.wait(Object.java:485)
    at oracle.dbtools.raptor.backgroundTask.TaskLinkedList.takeNextTask(TaskLinkedList.java:47)
    - locked <0x06d493e0> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$SchedulerThread.run(RaptorTaskManager.java:429)
    "Thread-8" daemon prio=6 tid=0x35a01400 nid=0x1390 in Object.wait() [0x3712f000..0x3712fd94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x06d49460> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked <0x06d49460> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at org.tmatesoft.svn.core.javahl.SVNClientImplTracker.run(SVNClientImplTracker.java:65)
    at java.lang.Thread.run(Thread.java:619)
    "ChangeSetService" prio=2 tid=0x3595dc00 nid=0x11d8 in Object.wait() [0x3682f000..0x3682fa94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x06a26d80> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)
    at java.lang.Object.wait(Object.java:485)
    at oracle.jdevimpl.vcs.changeset.ChangeSetService.awaitEvents(ChangeSetService.java:178)
    - locked <0x06a26d80> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)
    at oracle.jdevimpl.vcs.changeset.ChangeSetService.eventLoop(ChangeSetService.java:199)
    at oracle.jdevimpl.vcs.changeset.ChangeSetService.access$200(ChangeSetService.java:56)
    at oracle.jdevimpl.vcs.changeset.ChangeSetService$2.run(ChangeSetService.java:138)
    at java.lang.Thread.run(Thread.java:619)
    "Thread-6" daemon prio=6 tid=0x3590e400 nid=0x1520 runnable [0x36b2f000..0x36b2fb14]
    java.lang.Thread.State: RUNNABLE
    at sun.print.Win32PrintServiceLookup.notifyPrinterChange(Native Method)
    at sun.print.Win32PrintServiceLookup.access$100(Win32PrintServiceLookup.java:32)
    at sun.print.Win32PrintServiceLookup$PrinterChangeListener.run(Win32PrintServiceLookup.java:302)
    "TimerQueue" daemon prio=6 tid=0x330a9c00 nid=0x11b0 in Object.wait() [0x3672f000..0x3672fc94]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at javax.swing.TimerQueue.run(TimerQueue.java:236)
    - locked <0x06887680> (a javax.swing.TimerQueue)
    at java.lang.Thread.run(Thread.java:619)
    "TimedCache-Timer" daemon prio=6 tid=0x33a85000 nid=0x76c in Object.wait() [0x3460f000..0x3460fa94]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x05f36890> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <0x05f36890> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)
    "JarIndex Timer" daemon prio=6 tid=0x33a83c00 nid=0x15a8 in Object.wait() [0x3410f000..0x3410fb14]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <0x05e824b0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)
    "AWT-EventQueue-0" prio=6 tid=0x33a6a400 nid=0x15e8 in Object.wait() [0x3400f000..0x3400fb94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at com.sun.tools.jdi.TargetVM.waitForReply(TargetVM.java:281)
    - locked <0x02fa0320> (a com.sun.tools.jdi.Packet)
    at com.sun.tools.jdi.VirtualMachineImpl.waitForTargetReply(VirtualMachineImpl.java:1015)
    at com.sun.tools.jdi.PacketStream.waitForReply(PacketStream.java:51)
    at com.sun.tools.jdi.JDWP$Method$LineTable.waitForReply(JDWP.java:3651)
    at com.sun.tools.jdi.JDWP$Method$LineTable.process(JDWP.java:3627)
    at com.sun.tools.jdi.ConcreteMethodImpl.getBaseLocations(ConcreteMethodImpl.java:343)
    at com.sun.tools.jdi.ConcreteMethodImpl.getLocations(ConcreteMethodImpl.java:262)
    at com.sun.tools.jdi.ConcreteMethodImpl.locationsOfLine(ConcreteMethodImpl.java:120)
    at com.sun.tools.jdi.ReferenceTypeImpl.locationsOfLine(ReferenceTypeImpl.java:893)
    at oracle.jdevimpl.debugger.jdi.DebugJDI.getLocationsOfLine(DebugJDI.java:5254)
    at oracle.jdevimpl.debugger.jdi.DebugJDIBreakpointFileLine.verify(DebugJDIBreakpointFileLine.java:71)
    at oracle.jdevimpl.debugger.jdi.DebugJDIBreakpointPackageFileLine.verify(DebugJDIBreakpointPackageFileLine.java:83)
    at oracle.jdevimpl.debugger.jdi.DebugJDI.breakpointAfterChange(DebugJDI.java:2546)
    - locked <0x09721d70> (a oracle.jdevimpl.debugger.jdi.DebugJDI)
    at oracle.jdevimpl.debugger.jdi.DebugJDIBreakpoint.afterChange(DebugJDIBreakpoint.java:386)
    at oracle.jdevimpl.debugger.jdi.DebugJDI.putBreakpoint(DebugJDI.java:2426)
    - locked <0x09721d70> (a oracle.jdevimpl.debugger.jdi.DebugJDI)
    at oracle.jdevimpl.debugger.jdi.DebugJDI.putBreakpointPackageFileLine(DebugJDI.java:893)
    - locked <0x09721d70> (a oracle.jdevimpl.debugger.jdi.DebugJDI)
    at oracle.jdevimpl.runner.debug.Breakpoint.putBreakpoint(Breakpoint.java:1701)
    at oracle.jdevimpl.runner.debug.DebuggingProcess.afterConnection(DebuggingProcess.java:1352)
    at oracle.jdevimpl.runner.debug.DebuggingProcess.accept(DebuggingProcess.java:1704)
    at oracle.jdevimpl.runner.debug.DebuggingListener$2.run(DebuggingListener.java:231)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    "AWT-Windows" daemon prio=6 tid=0x33a64000 nid=0x12e8 runnable [0x33e0f000..0x33e0fc94]
    java.lang.Thread.State: RUNNABLE
    at sun.awt.windows.WToolkit.eventLoop(Native Method)
    at sun.awt.windows.WToolkit.run(WToolkit.java:291)
    at java.lang.Thread.run(Thread.java:619)
    "AWT-Shutdown" prio=6 tid=0x33a31c00 nid=0xd4c in Object.wait() [0x33d0f000..0x33d0fd14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x05e826a0> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:485)
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
    - locked <0x05e826a0> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:619)
    "Java2D Disposer" daemon prio=10 tid=0x33a41400 nid=0x1294 in Object.wait() [0x33c0f000..0x33c0fd94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x05e82730> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked <0x05e82730> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at sun.java2d.Disposer.run(Disposer.java:125)
    at java.lang.Thread.run(Thread.java:619)
    "Low Memory Detector" daemon prio=6 tid=0x33076000 nid=0x688 runnable [0x00000000..0x00000000]
    java.lang.Thread.State: RUNNABLE
    "CompilerThread0" daemon prio=10 tid=0x3306fc00 nid=0x910 waiting on condition [0x00000000..0x336df7bc]
    java.lang.Thread.State: RUNNABLE
    "Attach Listener" daemon prio=10 tid=0x3306e400 nid=0x162c runnable [0x00000000..0x00000000]
    java.lang.Thread.State: RUNNABLE
    "Signal Dispatcher" daemon prio=10 tid=0x3306d000 nid=0x17a4 waiting on condition [0x00000000..0x00000000]
    java.lang.Thread.State: RUNNABLE
    "Finalizer" daemon prio=8 tid=0x3305d400 nid=0xe3c in Object.wait() [0x333df000..0x333dfc94]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x05e00298> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked <0x05e00298> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=10 tid=0x33058800 nid=0x1228 in Object.wait() [0x332df000..0x332dfd14]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked <0x05e00320> (a java.lang.ref.Reference$Lock)
    "main" prio=6 tid=0x00bc7c00 nid=0x10e0 waiting on condition [0x00000000..0x0012fae8]
    java.lang.Thread.State: RUNNABLE
    "VM Thread" prio=10 tid=0x33055000 nid=0x194 runnable
    "VM Periodic Task Thread" prio=10 tid=0x33077800 nid=0xfd0 waiting on condition
    JNI global references: 2649
    Heap
    def new generation total 9216K, used 3904K [0x02cd0000, 0x036c0000, 0x05e00000)
    eden space 8256K, 35% used [0x02cd0000, 0x02fb0330, 0x034e0000)
    from space 960K, 100% used [0x035d0000, 0x036c0000, 0x036c0000)
    to space 960K, 0% used [0x034e0000, 0x034e0000, 0x035d0000)
    tenured generation total 121024K, used 61455K [0x05e00000, 0x0d430000, 0x2acd0000)
    the space 121024K, 50% used [0x05e00000, 0x09a03eb0, 0x09a04000, 0x0d430000)
    compacting perm gen total 71168K, used 70950K [0x2acd0000, 0x2f250000, 0x32cd0000)
    the space 71168K, 99% used [0x2acd0000, 0x2f219bf8, 0x2f219c00, 0x2f250000)
    No shared spaces configured.
    Edited by: 910659 on Jan 27, 2012 7:45 AM

    What I mean is that I put the connect_tcp command inside the package function I want to debug in order to ensure it's going to remain in the same session. e.g.:
    Function GetValue Return Varchar2 Is
    Begin
    dbms_debug_jdwp.connect_tcp('xxx.xxx.xxx.xxx', '25255');
    return 'My Value';
    End;
    I'm afraid I cannot post our code which causes this problem due to our information security policies and simple console and web applications failed to replicate the problem. The function creates a connection to Oracle SQL Developer (which can be seen in the environment with the small ladybug icon) if no breakpoints are set which obviously doesn't allow breaking into the function. However if a breakpoint is also specified in the Return line the connection seems to freeze Oracle SQL Developer. No ladybug icon is shown and no Remote Debug Session seems to open.

Maybe you are looking for