SQL Developer blocking vs non-blocking

Hi,
Is there a way in SQL Developer 3.0 to have a non-blocking SQL call? In Oracle Forms we can choose between blocking and non-blocking SQL Net connections to the database. Does SQL Developer have the same capability? If so where exactly are those options hidden in the preferences menus?
Annoyed,
ScottK
Edited by: ScottK on Jun 1, 2011 11:20 AM

Hi ScottK,
SQLDeveloper locks access to individual connections when they are in use, if you want to simulate
some aspects of non blocking behaviour you can use other connections.
The following features might help:
Use a different connection name back to the same schema in your database - it will be treated as an independent connection and 'blocking' on this connection will not affect your other connections.
This can be achieved temporarily in the worksheet by:
ctrl shift n
which creates a worksheet with new connection independent of your existing worksheet connection
though connected to the same schema and database.
-Turloch
SQLDeveloper team

Similar Messages

  • Blocking and non-blocking workflows

    How to specify a workflow to be blocking and non-blocking?
    Regards,
    Miguel

    When registering the custom workflow from Application Server Control (Enterprise Manager Web Site), you will see an option to specify whether the workflow is blocking:
    Application Server Control > Content > Custom Workflows
    Register Workflow
    * Name  
      Description  
    * Launch Event  
    * Cancel Event  
      Blocking
      Approvers Required

  • Both blocking and non-blocking io

    I'm wondering if this scenario is possible with the new nio classes:
    I have a caching server. Clients connect to the server and occasionally send requests for objects. I'd like to use the nio non-blocking APIs to detect that there is a read pending on a socket. However, once I detect this, I'd like to go into a blocking loop to process the request. After this done, I'd like to go back into non-blocking mode and wait for another request.
    It seems like this should be possible but the (woefully lacking) documentation isn't clear. Neither is the source code, apparently.
    I've got a test case working but I was hoping someone could validate for me that this is support behavior. It's done by waiting for the isReadable() key then calling socket.keyFor(selector).cancel(); and then socket.configureBlocking(true); The reads are then done in blocking mode until the request is done and then the socket is registered with the selector again.
    Thanks for any help on this.

    I have to ask why you would want to mix blocking and non-blocking I/O.
    The only reason you would (IMHO) want to use non-blocking I/O is in a highly concurrent system, to increase the maximum load a system can handle.
    The main reason you would want to use blocking I/O rather than non-blocking I/O would be to minimise the latency for a single request.
    Unfortunately, the two don't seem to mix together very well... by switching a thread to blocking, you decrease the latency for a single request, but increase latency for the other requests due to reduced resources available. Similarly, by switching to blocking, you are requiring a dedicated thread for that request, so limiting the number of concurrent requests that can be serviced.
    That is, it seems to me that using both blocking and non-blocking I/O introduces the weaknesses of both into the system, without gaining much of the benefits of either.
    The above aside, the method you gave looks like it would work as you expect, depending on what you are doing with thread creation/delegation. Did your test case work as expected?

  • UTL_TCP (blocking or non-blocking sockets mode)

    Hi for All,
    Please, someone knows if the UTL_TCP using blocking or non-blocking sockets mode? I did a search but can not find this information.
    Regards,

    Blocking only occurs when you attempt to read from the socket and there's no data to read. (in which case, the time out setting applies if specified)
    This is however not that robust in my experience. UTL_TCP provides a peek method (returns byte size of socket buffer) that tells you whether or not there is data for that socket. This enables you to verify that you read on that socket will not be a blocking call.
    I prefer using this method, as dealing with a timeout approach results in run-time behaviour issues (either a call waiting too long, or a call timing out too quickly).

  • Non-blocking SocketChannel and close - huh?

    It looks like closing a socketchannel that is in non-blocking mode can result in a dead drop of the connection, with some bytes that have already been sent and accepted (as in, 'consumed' from the buffer) being completely dropped.
    In fact, I'm generally confused: Actual C non-blocking code has a similar setup for 'close' as you can see in SocketChannel's OP_CONNECT behaviour - just because you want to connect the socket doesn't mean it magically happends without blocking. Wait for a ready flag, then try again.
    It should work the same way with close (you try to close, but it may not be possible without blocking).
    Is this a huge gaping bug that no one quite figured out just yet, or did I miss something? I loathe to turn on linger, as that's just a crapshoot (you never know if it actually gets through. You could run into funny surprises once the server gets a bit busy. I'd rather not) and tends to cause massive leaks on linux, at least according to some google searches.
    There seems to be slightly better performance (in that I have always received all data sofar) if I close the socket instead of the channel (socketChannel.socket().close() instead of socketChannel.close()) - but this has been a random attempt at 'making it work', and I can't find any documentation that backs up that this will DEFINITELY not lose any information without letting me know somehow. That still sounds impossible with this approach.

    Actual C non-blocking code has a similar setup for
    'close' as you can see in SocketChannel's
    OP_CONNECT behaviour ...No it doesn't. I don't know what you mean by this.
    Closing a socket is asynchronous, but it shouldn't lose any data - if the data can be delivered it will be, followed by the FIN. You don't know when it is delivered, and you don't get to hear about any errors such as an RST coming from the other end, say if it decided to close before reading all the data, or if some intermediate router hung you up.
    I'm wondering if you are really dealing with all the short write and zero length write possibilities, i.e. whether the data isn't really still in your output buffer. Don't wish to teach you to suck eggs but there are some subtleties here.
    Setting a positive linger timeout doesn't really help because Java doesn't tell you if the timeout expired. (I only asked for this about four years ago). You get to wait while any pending data is delivered, but you still have to guess about whether it all went or the timeout expired, and the behaviour after the timeout expires is platform-dependent: some (Windows) issue an RST, others (Unix) keep trying.
    Blocking or non-blocking mode shouldn't make any difference to this (except that Linux will block on a positive linger timeout even in non-blocking mode, which is wrong), and whether you close the channel or the socket is immaterial as one calls the other anyway.
    The reason why OP_CONNECT is different in blocking/non-blocking modes is that in blocking mode it won't return until the SYN-ACK is received, while in non-blocking mode it just sends the SYN and relies on you calling connect() again (at the C level) to collect the SYN-ACK, or not - this is what finishConnect() tells you.
    tends to cause massive leaks on linux, at least
    according to some google searchesIt can't, unless you are referring to the Helix client thing, which appears to be just a badly designed C++ class library with, for some reason, its own linger implementation outside the kernel.

  • Easy way to non-blocked sockets

    Use JSSE and NIO for a quick way to implement non-blocking communications
    October 22, 2003
    Although SSL blocking operations -- in which the socket is blocked from access while data is being read from or written to -- provide better I/O-error notification than the non-blocking counterpart, non-blocking operations allow the calling thread to continue. In this article, the author will cover both the client and server side as he describes how to create non-blocking secure connections using the Java Secure Socket Extensions (JSSE) and the Java NIO (new I/O) library, and he will explain the traditional approach to creating a non-blocking socket, as well as an alternative (and necessary) method if you want to use JSSE with NIO.
    http://www-106.ibm.com/developerworks/java/library/j-sslnb.html?ca=dgr-jw03j-sslnb

    MORE IBM SPAM Previous discussion
    I find it interesting spam, but thats a matter of taste. If the OP was truly interested in "trying to get new information out there" he would answer the mulitple questions about NIO and especially NIO mixed with traditional Sockets and NIO vs Secure Sockets. These are all on ALT, NIO is of no interest to New to Java folk.
    Given their budget I think IBM could do a better job of publishing their research.

  • Oracle sql developer and  oracle express

    I am new in PL/SQL
    I just wonder for run the pl/sql , why has the different result for two tools
    for the following example I get out put on the express
    Employee 145 commission .4 which is High
    Statement processed.
    on sql developer I get
    anonymous block completed why???
    DECLARE
      n_pct employees.commission_pct%TYPE;
      v_eval VARCHAR2(10);
      n_emp_id employees.employee_id%TYPE := 145;
    BEGIN
      -- get commission percentage
      SELECT commission_pct
      INTO n_pct
      FROM employees
      WHERE employee_id = n_emp_id;
      -- evalutate commission percentage
      CASE n_pct
      WHEN 0 THEN
        v_eval := 'N/A';
      WHEN 0.1 THEN
        v_eval := 'Low';
      WHEN 0.4 THEN
        v_eval := 'High';
      ELSE
        v_eval := 'Fair';
      END CASE;
      -- print commission evaluation
      DBMS_OUTPUT.PUT_LINE('Employee ' || n_emp_id || ' commission ' || TO_CHAR(n_pct) || ' which is ' || v_eval);
    END;
    /

    Hjava wrote:
    I just wonder for run the pl/sql , why has the different result for two tools
    for the following example I get out put on the express
    Employee 145 commission .4 which is High
    Statement processed.
    on sql developer I get
    anonymous block completed why???Nothing to do with the database or PL/SQL.
    The client makes the call (e.g. passing the PL/SQL anon block to the server to be parsed and executed).
    This is successful. The server returns a zero return code to that client call. This means successful completion of that database call.
    The client can now choose to display any message it wants to inform the user of that - from "+hey dude, it worked!+" to "+command completed successfully+" or whatever.
    The database does not return a message string in response to that call - only a return code. What the client can do is make another call and request the associated message from the client driver for that return code. In this case, an English language message file (as queried by the driver) will return the message string, "+normal, successful completion+".

  • UTL_HTTP, different error codes: APEX SQL Commands vs. Oracle SQL Developer

    Hi, omniscient all!
    I have a code sample where I try to request some URL from an inactive server:
    declare
      l_text varchar2(32000);
    begin
      l_text := utl_http.request('http://inactive.url:7777');
    exception
      when others then
        declare
          l_errcode number := utl_http.get_detailed_sqlcode;
        begin
          dbms_output.put_line(l_errcode);
          dbms_output.put_line(sqlerrm(l_errcode));
        end;
    end;
    /When I run it in Oracle SQL Developer it shows:
    anonymous block completed
    -12541
    ORA-12541: TNS:no listenerWhen I run it in the APEX 4.0 SQL Commands window it shows:
    -29263
    ORA-29263: HTTP protocol error
    Statement processed.The question is: why?
    In real world, I need to make a HTTP POST request (no problem) and catch some exceptions. But instead of the usual ORA-12541 error APEX throws an ORA-29261 one.

    Any thoughts?

  • SQL developer drop all my network connections

    Hi all,
    I have used different versions of SQL Developer and I have read many forum posts but I cannot find solution for my network problem.
    I can connect to my databases without any problem, but when my session goes to snipped state (due to idle_time setting) after some time ALL my network connections are dropped (e.g. my mail client give me message that cannot connect to the server, my ftp client session is dropped, my ssh session are dropped...). It is horrible because sometime I need connect to my PC remotely and due to this problem I cannot. It is not problem of my PC, I have used 2 different PCs and all is the same. If I don't start SQL Developer, I can have ssh session open for week without any problem.
    Last year I used to start keepalive extension, but is really annoying for every oracle session manualy enable keepalive.
    And when I open 10 db sessions and for one session I forgot click enable keepalive then all my network connections are dropped.
    Yesterday I have installed current version of SQL Developer hoping that the problem is solved but today morning I find all my network sessions dropped (e.g. I need 8 ssh sessions reconnect).
    Does anybody have any idea how to solve this?
    Thanks.
    Marian

    Hi Marian,
    I am not quite sure how using SQL Developer could make all client software accessing the network lose their connections. Do you use some kind of VPN (Virtual Private Network) software? Do you always try to use SQL Developer with the non-Oracle KeepAlive plug-in?
    Maybe local policy imposes some limit on the total number of simultaneous connections (active or inactive) you can have, and it gets exceeded only when you run SQL Developer. Are any other application clients used to access databases from your machine(s)?
    If the real network connection is stable, typically one need only worry about database session time-outs (idle limit reached) or VPN time-outs. I suggest asking for help from someone inside your organization responsible for networks. It seems like something is forcing a VPN disconnect.
    Regards,
    Gary
    SQL Developer Team

  • Oracle SQL Developer 3.0: PL/SQL debugging of anonymous blocks: ISSUES

    Hello,
    I just downloaded the Oracle SQL Developer 3.0. I have been using the EA releases as they came into existence and was happy to see the released version. So I immediately tried to debug an anonymous block (something I did not try to do in the EA releases), and nothing happened.
    The "Debug" was grayed out and the key-chord "ctrl-shift-F10" did nothing. I found this forum:
    Re: 30EA1: anonymous block debugging?
    and followed Vadim Tropashko's advice. This did nothing for my anon. block but worked fine for the simple example.
    So I started to whittle my anon. block down to find the culprit, here is a repeatable breaking point for me:
    declare
        stmt1 long;
        stmt2 long;
        stmt3 long;
        stmt4 long;
        p_data varchar2( 500 );
        i      varchar2( 10 );
    BEGIN
        STMT1 := 1;
        STMT2 := 1;
        STMT3 := 1;
        STMT4 := 1;
        --the moment this is in the block "Debug" is no longer an option
         select
            SendDocumentResult
           into
            p_data
           from
            XMLTABLE( '/data'
                    PASSING
                    xmltype.createxml( '<?xml version="1.0" encoding="utf-8"?><data><SendDocumentResult>test</SendDocumentResult></data>' )
                    COLUMNS SendDocumentResult varchar2( 1000 ) PATH 'SendDocumentResult' ) ;
    end;The moment I have the SELECT INTO ... XMLTABLE() it fails (a normal SELECT INTO works just fine).
    Is this a problem with my environment or is a problem with SQL Developer 3.0.04. Looking over K's comments, it seems the debug worked for 'simple' blocks, so I wonder if this is just out-of-scope...
    My environment:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production    
    PL/SQL Release 11.2.0.1.0 - Production                                          
    CORE     11.2.0.1.0     Production                                                        
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.1.0 - Production               
    NLSRTL Version 11.2.0.1.0 - Production
    and Oracle SQL Developer
    3.0.04 (Buld Main 04.34 with bundled Java) on a Window's XP box.

    Thanks, I'll survive. Just my luck, the first item I try to anon. debug didn't work! :)
    thanks, hopefully this problem will be few and far between

  • Anonymous Block in SQL Developer

    I am using SQL Developer 3.1x and trying to run a pretty simple Anonymous block and am having trouble declaring a variable. This block runs successfully:
    set SERVEROUTPUT on
    --declare
    -- V_CRT := CHR(13);
    begin
    for t in (select owner, table_name from dba_tables where owner = 'ABC123)
    LOOP
    DBMS_STATS.GATHER_TABLE_STATS(t.owner, t.table_name);
    end loop;
    DBMS_OUTPUT.PUT_LINE('Statistics Calculations complete');
    DBMS_OUTPUT.PUT_LINE('Begin Record Counts');
    -- DBMS_OUTPUT.PUT_LINE(v_crt);
    -- DBMS_OUTPUT.PUT_LINE(V_CRT);
    end;
    If I remove my comments in an effort to include my Declare statement, I receive: PLS-00103: Encountered the symbol "=" when expecting one of the following
    How do I declare / initialize the variable "v_crt"? Admittedly this is a VERY basic Block but I just started to build out a more "robust" procedure and am getting stumped.
    Thank you for your help!

    The symbol *:=* is for assignment, not variable declaration. Just give the variable name and then its type, like this:DECLARE
      V_CRT VARCHAR2(13);You can give it a default value if you want to.DECLARE
      V_CRT VARCHAR2(13) := 'Hello';Looks like you want it to be a carriage return character.DECLARE
      V_CRT VARCHAR2(1) := CHR(13);

  • Debugging PL/SQL blocks in SQL Developer

    Is there any way to debug blocks of PL/SQL in SQL Developer by setting breakpoints in the code? I'm using SQL Developer.
    I'm trying to debug some fairly complex PL/SQL blocks - they are not procedures or functions and so I'm unable to run them in debug mode.
    p.s. Apologies should have posted this in the database forum really.
    Edited by: Antilles on Sep 10, 2008 1:12 AM

    Hello,
    Sure you can, take a look at the following two links -
    http://sueharper.blogspot.com/2006/07/remote-debugging-with-sql-developer_13.html
    http://www.oracle.com/technology/oramag/oracle/08-may/o38browser.html
    Hope this helps,
    John.
    http://jes.blogs.shellprompt.net
    http://www.apex-evangelists.com

  • Block selection in SQL Developer?

    Hey everyone! A co-worker of mine uses TOAD to do work with our databases, however I use SQL Developer as I like it very much. During one of our meetings, he used something called "Block Selection" (I think that's what it's called....) in his code editor, by holding down ALT and highlightning a 'block' of text. This made it so he wouldn't grab text line by line.
    I thought it was very cool, and it would be extremely helpful to clean up and format a bunch of procedures I have. I use a monospaced font to keep everything "in line" so to speak....makes it easier to read, especially in very large packages. Anyone know if SQL Developer supports this capability? Been searching all over for it on google, and through all the SQL help files but havn't found anything. Could be that I just don't know what to look for. Help would be appreciated!

    It's in the older versions of SQL Developer as well
    http://www.thatjeffsmith.com/archive/2012/07/how-to-block-select-text-in-oracle-sql-developer/
    What's weird is in 4.0, it doesn't work when 'block select' is enabled, but DOES work when it's not enabled....unless I'm reading that backwards.

  • SQL Developer 2.1 Debugging Anonymous block

    Is it possible to debug Anonymous PL/SQL block in SQL Developer 2.1?
    Edited by: user623569 on Oct 21, 2009 2:59 PM
    Edited by: user623569 on Oct 21, 2009 2:59 PM

    No. Vote on the [request at the Exchange|http://htmldb.oracle.com/pls/otn/f?p=42626:39:1802279917783459::NO::P39_ID:7621] to add weight for possible future implementation.
    Thanks,
    K.

  • SQL Developer Blocked and is not allowed to connect to database ORA-200001

    SQL Developer Blocked and is not allowed to connect to database gives ORA-200001.
    i found on net that DBA can write triggers which can deny connection to database from certain appplication.
    so i want a way to change application name so that when it connects to database
    the V$SESSION will have different value (other than SQL Developer) in column PROGRAM and/or MODULE (which i think is used by dba to restrict the connection).
    one more way is
    i am using jdbc url to connect to database
    in java we can change properties of connection to change the PROGRAM in V$SESSION.
    but i am not java expert so dont know how and where to make the changes
    either way my aim is to connect to database such that V$SESSION will have different value (other than "SQL Developer") in column PROGRAM and/or MODULE

    This is not system configration or credential issue.
    This is a check which is put DBA using logon trigger
    to check certain user loging in using certain application.
    only some users using particular username are getting this error when they try to logon using oracle sql developer
    the same users when uses different username(some generic user names created to access database) to access the same database then they are able to login.
    similarly if they login using SQL navigator they are able to login with both their own and the generic user name
    more over of all the database instances this is only happening on some of the instances and all of them are development instances.
    following will help you understand
    USER | DBUSERNAME | DATABASE | APPLICATION | ACTION
    X | X | DB1 | Oracle Sql Developer | Blocked
    X | G(Genric) | DB1 | Oracle Sql Developer | Login Success
    X | X | DB1 | Sql Navigator/SqlPLus | Login Success
    X | G(Genric) | DB1 | Sql Navigator/SqlPLus | Login Success
    X | X | DB2 | Oracle Sql Developer | Login Success
    X | G(Genric) | DB2 | Oracle Sql Developer | Login Success
    X | X | DB2 | Sql Navigator/SqlPLus | Login Success
    X | G(Genric) | DB2 | Sql Navigator/SqlPLus | Login Success
    I just want to bypass this check which i think uses V$SESSION and columns PROGRAM and/or MODULE to check the application used by particular user.
    if i can override these values some where in oracle sql developer before loging in the DB then i can clearly pass this check and login to database.
    Edited by: user13430736 on Jun 21, 2011 4:05 AM
    Edited by: user13430736 on Jun 21, 2011 4:12 AM

Maybe you are looking for