Parse Lock clarification.

Folks - I read the following in a website:
Oracle Breakable Parse Locks
A SQL statement (or PL/SQLprogram unit) in the shared pool holds a parse lock for each object referenced. Parse locks are gotten so that the associated shared SQL area can be invalidated if a referenced object is altered or dropped. A parse lock does not disallow any DDL operation and can be broken to allow conflicting DDL operations.
Gotten during the parse phase of SQL statement execution and held as long as the shared SQL area for that statement remains in the shared pool.
I see that the execution proceeds in the statements as,
- check for parse locks.
- if broken reload.
- if intact proceed.
I have a quick question here - if the locks are broken after we check but before the statement completes, what happens? Is the statement allowed to complete?
Essentially if the parse locks don't protect against any DDL, how can the statement depend on it for execution?

user10987711 wrote:
Folks - I read the following in a website:
I see that the execution proceeds in the statements as,
- check for parse locks.
- if broken reload.
- if intact proceed.
Things have changed in late 10.2 and 11g where Oracle has introduced more amd more "mutexes", but in earlier versions of Oracle you also have "pins".
The "parse lock" is the entry you see in v$open_cursor (x$kgllk), and this allows you to check whether you need to reload or are allowed to proceed - it is held in "null" mode while the cursor is open. If you proceed, you acquire a pin (x$kglpn) in share mode.
If the cursor is invalidated (e.g. by someone collecting stats on an underlying object) then the next session to start using the cursor will have do the reload, so they will upgrade their null lock to an exclusive lock (and you're allowed to hold exclusive while others are still holding null), and then attempt to request an exclusive pin. But if anyone is using the cursor their share pin will block the exclusive pin. (Just like a row-share lock will block an exclusive lock on a table - and in the same way anyone else wishing to use the cursor - i.e which means acquiring a shared pin - will queue behind the session waiting for the exclusive pin.
If you want to track this type of activity, you can see it through a couple of views (dba_kgllock is the one I prefer) and that you can create (as sys) by running script: catblock.sql from $ORACLE_HOME/rdbms/admin
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"For every expert there is an equal and opposite expert"
Arthur C. Clarke

Similar Messages

  • Using Swing Parser locks up.

    I'm using the Swing Parser class to read all the text content of an HTML page off the web.
    I override the parse() method. I then setup my URL connection and setup my BufferedReader, and then I call super.parse(br);
    I run this code every 5 seconds in a thread. After some time my java.exe process consumes almost 100% of my CPU and my java program is blocked.
    It seems to me that my program is locking up somwhere inside the super class method parse().
    I'm open to any advice or suggestions. I'm using jdk1.3.1_01 and windows xp. I know XP isn't exactly Java friendly. I'm not sure if that is the cause.
    Any help or advice is gretly appreciated.

    Here is my entire program. I re-read the Swing article on HTML and as you can see, there is minimal code here.
    Could it be that the particular web site I'm trying to visit maybe denies me access if I keep hitting it?
    After awhile my java process stops running and is in some kind of loop and uses 90+% cpu.
    Thanks for any insight.
    import java.util.*;
    import javax.swing.text.html.parser.*;
    import javax.swing.text.html.parser.*;
    import java.util.Hashtable;
    import javax.swing.text.html.HTML.*;
    import javax.swing.text.html.HTMLEditorKit;
    public class HTMLToString {
         ArrayList     htmlTextContent;
         public Object[] getHtmlTextContent(String url) {
              htmlTextContent = new ArrayList();
              parse(url);
              return     htmlTextContent.toArray();
    // note: url can also just be a file name:
    public boolean parse(String addr) {
         HTMLEditorKit.ParserCallback callback = new HTMLEditorKit.ParserCallback () {
                                                                          public void handleText(char[] data, int pos) {
                                                                               //System.out.println("Test");
                                                                               htmlTextContent.add((String) new String(data));
                                                                               //System.out.println(data);
              try
              URL url = new URL(addr);
    URLConnection uconn = url.openConnection();
                   InputStream is = uconn.getInputStream();
                   InputStreamReader isr = new InputStreamReader(is);
                   new ParserDelegator().parse(isr, callback, false);
              catch (IOException ioe)
                   System.out.println(ioe);
              return true;
         public static void main(String[] argv) {
              HTMLToString hts;//= new HTMLToString();
              while(true) {
              try
                        hts = new HTMLToString();
                        Object[] page = hts.getHtmlTextContent("http://www.jossh.com/database/inventory/Solrain_Core.html");
                        Thread.sleep(100);
                        System.out.println("Html Read\n");
              catch (InterruptedException ie)

  • Breakable parse lock, two rows for every sid in x$kgllk

    Hi,
    I've got query like that
    select t.* , (select sid from v$session where saddr = t.KGLLKUSE) sid from x$kgllk t where
      2      kglnahsh in (select /*+ no_unnest */ kglnahsh
      3                   from x$kglob
      4                   where
      5                        upper(kglnaown) like upper('USER')
      6                   and  upper(kglnaobj) like upper('PACKAGE')
      7*                 )and I'm getting 2 rows for every session having this lock .
    So why is that:
    I can see difference in output in KGLHDNSP column .
    Is that because Oracle is locking package body and spec separately ?
    DB is 9.2.0.8 .
    Regards
    GregG

    GregG wrote:
    Thanks Jonathan, additionaly I've notice that KGLLKSNM is equal to sid taken from v$session so looks like my scalar subquery is redundant .
    Is that good assumption that KGLLKSNM = SID or just coincidence ?GregG
    That's correct. If fact, if you query v$fixed_view_definitions you'll find that the definiition of gv$open_cursor confirms this:
    select
            inst_id,kgllkuse, kgllksnm, user_name, kglhdpar, kglnahsh, kgllksqlid, kglnaobj 
    from
            x$kgllk
    where
            kglhdnsp = 0
    and     kglhdpar != kgllkhdl
    SQL> desc gv$open_cursor
    Name                                      Null?    Type
    INST_ID                                            NUMBER
    SADDR                                              RAW(4)
    SID                                                NUMBER
    USER_NAME                                          VARCHAR2(30)
    ADDRESS                                            RAW(4)
    HASH_VALUE                                         NUMBER
    SQL_ID                                             VARCHAR2(13)
    SQL_TEXT                                           VARCHAR2(60)Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    Author: <b><em>Oracle Core</em></b>

  • Dead Lock what made by another user!(patition table)

    I have a question about Dead-Lock!
    Our Situation is ..
    User "A" made a Patition Table, ACNT_WONJANG
    (without any Trigger,Function, Procedure)
    When "B" - another user - tried to drop its Partition,
    Dead-Lock invoked.
    but A droped it's Partition well.
    What can i Do?
    this is the trace file.
    /oracle/home/admin/ACNT/udump/ora_44478_acnt.trc
    Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.7.0.0 - Production
    ORACLE_HOME = /oracle/home
    System name: AIX
    Node name: acnt
    Release: 3
    Version: 4
    Machine: 000C962D4C00
    Instance name: ACNT
    Redo thread mounted by this instance: 1
    Oracle process number: 15
    Unix process pid: 44478, image: oracle@acnt (TNS V1-V3)
    *** SESSION ID:(16.394) 2001-10-04 15:00:41.829
    A self-deadlock among DDL and parse locks
    is detected. In most cases, this self-deadlock
    is handled internally.
    This should be reported to Oracle Support
    ONLY IF an error is signalled back to the
    user on a command-line or screen.
    The following information may aid in finding
    user on a command-line or screen.
    The following information may aid in finding
    the problem.
    ORA-04020: deadlock detected while trying to lock object
    F03P.ACNT_WONJANG
    session: 440786b4 request: X
    LIBRARY OBJECT HANDLE: handle=43108348
    name=F03P.ACNT_WONJANG
    hash=76b93583 timestamp=NULL
    namespace=TABL/PRCD/TYPE flags=KGHP/TIM/SML/[02000000]
    kkkk-dddd-llll=0000-0001-0001 lock=S pin=S latch=0
    lwt=43108360[43108360,43108360] ltm=43108368[43108368,43108368]
    pwt=43108378[43108378,43108378] ptm=431083d0[431083d0,431083d0]
    ref=43108350[43108350,43108350] lnd=431083dc[4310824c,425b7ec4]
    LIBRARY OBJECT: object=431080d0
    flags=NEX[0002] pflags= [00] status=VALD load=0
    DATA BLOCKS:
    data# heap pointer status pins change
    0 431082d8 43108154 I/P/A 0 NONE
    HEAP DUMP OF DATA BLOCK 0:
    HEAP DUMP heap name="library cache" desc=0x431082d8
    HEAP DUMP heap name="library cache" desc=0x431082d8
    extent sz=0x224 alt=32767 het=8 rec=9 flg=2 opc=0
    parent=30000030 owner=431080d0 nex=0 xsz=0x0
    EXTENT 0
    Chunk 431080c0 sz= 196 perm "perm "
    alo=196
    431080C0 500000C5 00000000 00000000 000000C4 [P...............]
    431080D0 43108348 431080D4 431080D4 431080DC [C..HC...C...C...]
    431080E0 431080DC 00000000 00000000 00020100 [C...............]
    431080F0 00000000 00000000 00000000 00000000 [................]
    43108100 43108144 00000000 00000000 00000000 [C..D............]
    43108110 00000000 00000000 00000000 00000000 [................]
    Repeat 2 times
    43108140 00000000 431082D8 00000000 43108154 [....C.......C..T]
    43108150 00000000 00000000 00000000 00000000 [................]
    Repeat 1 times
    43108170 00000000 00000000 00000019 00000000 [................]
    43108180 00000000 [....]
    Total heap size = 196
    FREE LISTS:
    Bucket 0 size=0
    Total free space = 0
    UNPINNED RECREATABLE CHUNKS (lru first):
    Total free space = 0
    UNPINNED RECREATABLE CHUNKS (lru first):
    PERMANENT CHUNKS:
    Chunk 431080c0 sz= 196 perm "perm "
    alo=196
    Permanent space = 196

    carlyfromal wrote:
    Here's the thing I myself have an Ipad 3 that I got from Ebay that is activation locked and I have the same issue. Can't get the info. Well,since Apple conveniently decided to discontinue selling the Ipad 3 the only way I could get one was to buy a used one,so it looks to me like they could have some mercy and help a person unlock the thing. We're not dishonest people that go around stealing things,yet because of Apple's brilliant(I use that term sarcastically) idea to put this stupid new crap in place people like us who have to buy second-hand products have to suffer and get screwed out of money we had to save up to buy this stuff! And all anyone can come up with is "well boohoo" or "tough luck" or whatever! But,what about the rights of the rest of us?! Some of you may find this a tad rude, but oh well,tough luck!
    On the other hand, there are those of us that appreciate the theft protection provided by the latest IOS.
    There are certain things to watch out for when purchasing used devices of any sort, the first of which is to ensure that you're not buying stolen property.  Since you are unable to obtain cooperation from the seller, perhaps your device was stolen!

  • JDAPI Error: ORA-04020: deadlock detected while trying to lock object

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

  • How to set DDL lock for a table

    OCI,how to set DDL lock for a table?

    Oracle acquires a dictionary lock automatically on behalf of any DDL transaction requiring it. Users cannot explicitly request DDL locks. Only individual schema objects that are modified or referenced are locked during DDL operations. The whole data dictionary is never locked
    DDL locks fall into three categories: exclusive DDL locks, share DDL locks, and breakable parse locks.
    see this link
    http://www.sc.ehu.es/siwebso/KZCC/Oracle_10g_Documentacion/server.101/b10743/consist.htm#i5281

  • DDL 작업 시 LOCK 문제 해결 예제

    제품 : ORACLE SERVER
    작성날짜 : 2002-04-09
    DDL 작업 시 LOCK 문제 해결 예제
    ===============================
    DDL lock은 다중 사용자의 DDL command로부터 database의 schema
    object를 보호하기 위하여 사용되는 lock으로 schema object(table,
    procedure,package, view, synonym, trigger, function package body,
    cluster)를 생성하거나 삭제할 때 발생한다.
    간혹 이러한 compile이나 grant작업중 library cache lock(also called
    breakable parse lock)을 점유하지 못하여 작업이 되지 않는 경우가
    발생하게 되는데 이러한 경우 dynamic view 의 DDL lock 정보를 조회하여
    문제 해결을 할 수가 있다. 다음은 lock monitoring view 생성 및 blocking
    lock에 대한 예와 그 해결 방법에 대한 내용이다.
    [Dynamic tables]
    DBA_DDL_LOCKS : database의 모든 DDL lock에 대한 상태 정보
    DBA_LOCK_INTERNAL : library cache lock에 대한 상태 정보
    [Dynamic table 생성]
    sys user(svrmgrl)로 $ORACLE_HOME/rdbms/admin/catblock.sql을 실행
    다음은 procedure에서 수행되는 dml작업에 대한 lock conflict가 이
    procedure에 대한 DDL작업을 방해하는 예이다.
    (마찬가지로 long running query가 수행되고 있는 procedure에 대한 grant,
    compile과 같은 작업이 방해 받는 경우 역시 아래의 방법에 따라 그 원인을
    확인해 볼 수 있다.
    이때의 해결방법은 수행중인 procedure가 종료될 때 까지 기다리거나 kill
    시키는 방법이 있겠다.)
    [Blocking DDL lock 발생]
    session A :
    SQL> create or replace procedure delemp(no IN number) is
    begin
    delete emp where empno = no;
    end;
    SQL> exec delemp(7900);
    (emp table에 대하여 table lock 및 TX lock이 점유된다.)
    session B :
    SQL> exec delemp(7900);
    | <= hangup
    (session A에서 선점된 TX lock이 release될 때까지 waiting 상태를
    갖게 되며 share mode library cache lock이 점유된다.)
    session C :
    SVRMGR> connect internal
    SVRMGR> select session_id, substr(lock_type, 1, 10),
    substr(mode_held, 1, 10),
    substr(mode_requested, 1, 15), substr(lock_id1, 1, 40),
    substr(lock_id2, 1, 10)
    from dba_lock_internal;
    10 Transactio None Exclusive 65538 1904
    10 Table/Proc Share None SCOTT.DELEMP 31FBC1D8
    session D :
    SQL> drop procedure delemp;
    | <= hangup
    session C :
    SQL> select session_id, substr(lock_type, 1, 10), substr(mode_held, 1,
    10),
    substr(mode_requested, 1, 15), substr(lock_id1, 1, 40),
    substr(lock_id2, 1, 10)
    from dba_lock_internal;
    10 Table/Proc Null None SCOTT.DELEMP 31FBC1D8
    10 Table/Proc Share None SCOTT.DELEMP 31FBC1D8
    13 Table/Proc Exclusive None SCOTT.DELEMP 31FBC1D8
    13 Table/Proc None Exclusive SCOTT.DELEMP 31FBC1D8
    SQL> select session_id, substr(name, 1, 15), substr(type, 1, 10),
    substr(mode_held, 1, 15), substr(mode_requested, 1, 15)
    from dba_ddl_locks;
    10 DELEMP Table/Proc Null None
    12 DELEMP Table/Proc Null None
    13 DELEMP Table/Proc Null None
    13 DELEMP Table/Proc Exclusive None
    (session D에 의해 점유된 DDL lock이 dba_ddl_locks에서 확인되나 waiting
    session은 확인이 되지 않고 있으나 DBA_LOCK_INTERNAL에서는 blocking
    lock과 waiting lock이 확인되고 있다.)
    session E:
    SQL> alter procedure delemp compile;
    | <= hangup
    session C :
    9 DELEMP Table/Proc None Exclusive
    13 DELEMP Table/Proc Exclusive None
    (session D에 의해 선점된 DDL lock으로 인해 session E의 DDL lock이
    waiting 상태에 있다.)
    [lock conflict 해결]
    이제까지 dba_lock_internal와 dba_ddl_locks을 조회하여 internal lock 및
    DDL lock에 대하여 확인해 보았다. 이 예의 경우는 개발 작업 시 일어날 수
    있는 상황을 재현해 본 것으로 해결 방법은 선점된 lock을 잡고 있는 session
    을 찾아 lock을 release해주는 것이다.
    이 경우에서의 최선의 해결책은 선점된 DML locking session을 찾아 commit
    이나 rollback을 시키는 것이다.
    다음은 위에서 예로 든 상황에 대한 해결 과정이다.
    SQL> select object_id, object_type
    from dba_objects
    where object_name = 'EMP' and owner = 'SCOTT';
    SQL> select * from v$lock where type in ('TM', 'TX');
    ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
    30199BBC 30199BD0 10 TM 4769 0 3 0 2919 0
    30176508 30176518 10 TX 65580 1908 0 6 2919 0
    10364FE0 103650AC 12 TX 65580 1908 6 0 2946 1
    30199B48 30199B5C 12 TM 4769 0 3 0 2946 0
    조회 결과 object_id에 대하여 TM lock을 잡고 있는 session 중 TX lock을
    선점한 session id가 12인 것을 알 수 있다.
    session 12에서 TX commit을 발행하면 blocking lock이 release되고 DDL
    작업들이 이루어진다.

  • Open and closed cursor

    I have some doubts/questions .
    What is the difference between open and closed cursor?
    Are library cache locks same as parse locks?
    What is the difference between latch and mutex?
    I would be grateful if experts could answer these questions.
    Regards

    Almost correct. The terminology is however nor correct.
    Simplistically:
    The SQL engine receives a SQL. It attempts a soft parse first. This means looking for an existing cursor in the Shared Pool with the same SQL. This existing cursor can be in use by other sessions. It does not matter - if that cursor is in used (opend by other sessions), or not. It may not be in use at all and simply sitting there in the cache. If such a cursor is found, it is used for that session's SQL - and that session gets a cursor handle (reference/pointer) to that existing cursor.
    If the SQL engine does not find an existing cursor to use, it needs to create a brand new cursor in the Shared Pool. This is a hard parse. Again, the session receives a cursor handle for that new cursor created.
    And that is it.
    You now need to decide how to use that cursor handle. The cursor itself is a program. You have a handle to execute that cursor program. Via its bind interface you can input data to this cursor program. Then execute it and receive (fetch) output of that cursor program.
    So the ideal is to re-use the cursor handle again and again.
    Basic example: the following is not optimal as the same cursor is opened and closed, opened and closed, for each read from the file. A lot of soft parsing results.
    while not-eof( filehandle )   // read data from a file
      read file data into var1, var2
      open cursor for 'insert into testtab values( :1, :2)'   // create a cursor
      bind cursor :1 = var, :2 = var2  // bind values to cursor (for insert)
      exec cursor // do SQL insert
      close cursor 
    end whileThis is a lot better. A single cursor is used and executed again and again:
    open cursor for 'insert into testtab values( :1, :2)'   // create a cursor
    while not-eof( filehandle )   // read data from a file
      read file data into var1, var2
      bind cursor :1 = var, :2 = var2  // bind values to cursor (for insert)
      exec cursor // do SQL insert
    end while
    close cursor  In this case a single soft/hard parse - and the client uses that cursor handle to execute that cursor (insert data) program again and again.

  • Disabled property node hangs loop

    I've got a parser loop, operating on streamed data from a CRIO via UDP.  The loop operates at about 90Hz.  In response to the user opening a file, the code will use a property node to enable (or disable and gray) a couple of boolean front-panel objects.  When these property nodes execute, I see the CPU usage (in Windows task manager) go to close to 100% and coincidentally, the parser loop hangs.  Other loops within the same VI continue to run.  CPU usage stays at 100% until I force a VI abort.
    With a small test-VI, I've noted that these property nodes require roughly 10ms to execute.  This seems quite sluggish, but nonetheless, my thoughts are that my code, running at 90Hz, would be able to tolerate a single slip of the loop execution time, particularly because the UDP data is queued.
    Any thoughts regarding this property node execution time or suggestions on how to improve the code?  Thanks in advance.

    Mark, thank you for offering to look at a stripped-down version of the code.  I just couldn't spare the time required to simplify our complex code.  However, I've been working on this problem in the past couple of weeks since I originally posted the question, and have made some progress toward a solution.  Although I still do not have a conclusive explanation for the Labview's behavior, I thought I'd follow up with a list of what appears to have made improvements to the code.  I'll concede that these suggestions are not definitive, but the problems are not repeatable and without any transparency into Labview's internal behavior, my analysis of the problems and my attempts to find a fix are admittedly speculative in nature.  Software development shouldn't be magic, but damn it seems like Labview requires we dance around a black candle.  Frustrating.  OK, exiting rant mode, here is a list of what NOT to do if you want Labview to be more stable:
    --  Do not use frames around your front panel objects.  Our main panel has approximately 100 front-panel indicators.  In an attempt to make the interface more intuitive, in a recent code revision we grouped the objects using frames.  The effect was a sluggish UI and a processor loading that went to close to 85%.  I'm aware from posts on this forum that overlapping indicators forces Labview to update all when any is updated.  This is an understandable coding contraint.  OK, fine, we weren't overlapping any idicators.  But for pete's sake, why should the same constraint apply to a purely decorative object like a frame?  This strikes me as a fundamental philosophical flaw in LV's coding.  Group N objects with a nice frame -- update the objects N-squared times.  If this is the result of using a frame, I would have preferred that NI not even offer the option.  Bad choice on the part of the Labview coders and bad choice on our part for assuming zero frame impact on performance.
    -- Do not use property nodes.  We occasionally gray-out front panel objects when appropriate for the state of the software.  This appeared to be contributing to Labview's instability.  I built a diagnostic routine that measures execution time for the "gray-out and disable" property node.  Generally around 8ms, but occasionally as high as 16ms.  Good grief.  I've got a code loop running at 90Hz.  A 16ms hit isn't easy to tolerate or frankly to understand.  Particularly when slow execution is the BEST of the consequences -- the worst is that the property node seemed on occasion to precipitate a hung loop.
    -- Do not use Labview's built-in queue structure.  Our code was originally using queues to hand off packets of data from a UDP-listener loop to a packet-parser.  The UDP-listener blocks on UDP reception, shoves the packets into the queue.  The packet parser blocks on data available in the queue and subsequently writes the data to file.  NI would have you believe, and I did believe for a while, that this is an elegant producer/consumer approach to this problem.  When our problem would occur, the UDP-listener continued to put data into the queue, but the packet parser would never retrieve it.  Just went off into nowhere, consumed and forgotten by the Great Labview Scheduler in the Sky.  The loop would hang, wouldn't respond to the stop button, would require a forced-abort.  Subsequently, if we simply restarted the code, we couldn't be assured that the packets retrieved from the queue would be in chronological order.  Seemed to be just randomly retrieved.  Clearly the failures had corrupted some of the Labview internal data structures that govern the queue operation.  We couldn't assure proper behavior unless we shut down and restarted Labview each time the error occurred.  The solution was to abandon code elegance in favor of sequential operation -- get rid of the queue, listen for the UDP packet then parse it immediately.  No queue handoff.  No further parser lock-ups.
    I'm not sure what other bombs might be lurking in our code.  Our listener and parser code hasn't lately hung, but the problem is starting to move on to other loops.  They'll run for hours and then just stop.  Dead.  Frozen.  In the most recent cases, even the abort button won't shut them down.  We have to use Windows Task Manager to kill them.  I'll admit to harboring some deepening skepticism for any of the more clever and powerful "features" that NI has added to LV.  From my perspective, these more powerful features cannot come free of cost -- they must impose some unavoidable computational burden on LV itself, a burden that LV seems unable to handle, with unpleasant consequences.  Must we impose a moratorium on Timed Loops?  Event structures?  To what level of simplicity must I drive our code to ensure stability?
    Thanks, everyone, for tolerating my frustration, and for your comments, if you've got any guidance you can offer.
    -dave sprinkle

  • Run away process

    Can anyone tell me way to find what a particular user is doing up the unix process id as shown in the the v$process view. eg joining it with v$session and anything else which might help me
    thanks

    First of all this is not called "run away process". Not sure where you got the term.
    It's not a good idea to recompile a package while other sessions are using it. However the other sessions should recognize the changes after the package been recompiled.
    There're a few DDL locks involved here,
    Oracle will place an Exclusive DDL Locks on target package to make sure other session will not compile the same package at the same time.
    Oracle will also place Share DDL Locks on all referenced tables and other objects to make sure they are not changed during the compile.
    In your "other" sessions that calling this package they all have Breakable Parse Locks on the package. So that the associated shared SQL area can be invalidated if a referenced object is altered or dropped. In your case recompiled.
    In another words, whenever you recompiled the package, these Breakable Parse Locks are broken, Oracle will know the old SQL area for the package is invalidated. The session need parse the package again.

  • BUG?: WebDAV access very very very slow with rsync -vrt

    rsync -vrt --progress dir/ /Volumes/website.com/dir
    Volume was mounted with Finder to an account on hostmonster.com
    I assume the reason is refected in the system.log output, but I might be wrong.
    Sep 13 17:13:41 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:13:42 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:13:48: --- last message repeated 1 time ---
    Sep 13 17:13:48 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:13:48 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:13:55: --- last message repeated 2 times ---
    Sep 13 17:13:55 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:02 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:05 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:05 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:13: --- last message repeated 2 times ---
    Sep 13 17:14:13 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:17 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:20: --- last message repeated 1 time ---
    Sep 13 17:14:20 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:27 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:31: --- last message repeated 1 time ---
    Sep 13 17:14:31 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:35 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:38: --- last message repeated 1 time ---
    Sep 13 17:14:38 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:42 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Sep 13 17:14:45: --- last message repeated 1 time ---
    Sep 13 17:14:45 adsl-116 webdavfs_agent[3362]: unexpected statusCode 412
    Sep 13 17:14:49 adsl-116 webdavfs_agent[3362]: error parsing lock token; file: /SourceCache/webdavfs/webdavfs-252.6/mount.tproj/webdav_parse.c; line: 1731
    Message was edited by: katzlbt
    Message was edited by: katzlbt

    calender_too_slow++
    It doesn't take 50s with my > 4000 entries but it may take up to ~1/2 minute.
    BTW: More annoying than that, because those actions are more frequent, are the long times to switch views: days 3-5s, weeks and months similar, new entries or changes to existing ones showing up that slowly, having an entry on the 31st each month not showing up on months with less than 31 days...
    And FWIW: are you really happy without global search for calendar entries ? 

  • ALTER SYSTEM FLUSH SHARED_POOL

    I am currently using oracle 8.1.5.0 standard edition and created a new index. Now to start using this index on some of my constant scripts that are already cached I need to flush the cache. What would be the effect of using this command while there are other sessions active?? Would it effect these in anyway if I used the above command?? Thank you in advance.

    I don't think that the sql that is currently running will be affected, but all new sql launched by the sessions will have to be hard parsed (there is no prior sql anymore in the shared_pool)
    I don't think you will hace to flush your shared pool since by creating an index on a table you have broken the breakable parse lock on that table. Oracle uses this lock to allow the parsed, cached statement to be invalidated (flushed) in the shared pool if the lock is broken (in case of a drop or alter).
    so by adding the index, you break the parse lock and all cached statements that are referring to that table are flushed.
    Greetings
    Freek
    I am currently using oracle 8.1.5.0 standard edition and created a new index. Now to start using this index on some of my constant scripts that are already cached I need to flush the cache. What would be the effect of using this command while there are other sessions active?? Would it effect these in anyway if I used the above command?? Thank you in advance.

  • [svn:fx-trunk] 11601: Integrating Min' s recent fixes to FXGUtils for a group of attribute parsing bugs and clarification of error messages .

    Revision: 11601
    Author:   [email protected]
    Date:     2009-11-09 22:00:50 -0800 (Mon, 09 Nov 2009)
    Log Message:
    Integrating Min's recent fixes to FXGUtils for a group of attribute parsing bugs and clarification of error messages.
    QE notes: Please confirm test cases.
    Doc notes: N/A
    Bugs:
    SDK-22982 - FXG compiler fails on percentage lineheight inside formatted text content
    SDK-24093 - If a
    tag has children, you do not get a compile error.
    SDK-24092 - You get a compile error if you set justificationStyle="prioritizeLeastAdjustment"
    SDK-24097 - Setting an invalid verticalAlign style on RichText has a typo in the error message
    Reviewer: Min
    Tests run: Checkintests, Bug test cases
    Is noteworthy for integration: No
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-22982
        http://bugs.adobe.com/jira/browse/SDK-24093
        http://bugs.adobe.com/jira/browse/SDK-24092
        http://bugs.adobe.com/jira/browse/SDK-24097
    Modified Paths:
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGException_en.properties
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/RichTextNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/AbstractRich BlockTextNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/AbstractRich TextLeafNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/AbstractRich TextNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/BRNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/ImgNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/TabNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/richtext/TextHelper.j ava
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/AbstractCharacte rTextNode.java
        flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/sax/FXGSAXScanner.java

    Dear Pallavi,
    Very useful post!
    I am looking for similar accelerators for
    Software Inventory Accelerator
    Hardware Inventory Accelerator
    Interfaces Inventory
    Customization Assessment Accelerator
    Sizing Tool
    Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
    Request help on such accelerators... Any clues?
    Any reply, help is highly appreciated.
    Regards
    Manish Madhav

  • La commande STAT à échoué: failed to lock or parse or multiple access

    Hi,
    I installed Thunderbird 24.4.0 and configured an account in IMAP and everything went fine. Then I configured that same account in POP3 and I'm having the message: "La commande STAT a échoué. Erreur lors de la récupération des tailles et du nombre de messages. Le serveur de courrier XXX a répondu: failed to lock or parse or multiple access." I've been searching the web for an answer and did not find any. I'm just about to remove Thunderbird.
    I configured some other IMAP accounts on the same provider and everything works fine. It looks like only the POP3 doesn't work.
    I installed Thunderbird 24.4.0 on a Windows 7 x64 computer. I also installed all recent patch in case, but it did not solve the problem.
    Hope you can help me. Thanks for any suggestions.

    Paramètres de base de l'application
    Nom: Thunderbird
    Version: 24.4.0
    Agent utilisateur: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
    Dossier de profil: Ouvrir le dossier correspondant
    (Lecteur local)
    Identifiant de compilation de l'application: 20140316131045
    Plugins activés: about:plugins
    Configuration de compilation: about:buildconfig
    Rapports de plantage: about:crashes
    Utilisation mémoire: about:memory
    Comptes courrier et groupes
    account1:
    INCOMING: account1, , (none) Local Folders, plain, passwordCleartext
    account2:
    INCOMING: account2, , (imap) imap-mail.outlook.com:993, SSL, passwordCleartext
    OUTGOING: smtp-mail.outlook.com:587, alwaysSTARTTLS, passwordCleartext, true
    account9:
    INCOMING: account9, , (pop3) 207.134.105.7:110, plain, passwordCleartext
    OUTGOING: relais.videotron.ca:587, plain, passwordCleartext, true
    Extensions
    Préférences modifiées importantes
    Nom: Valeur
    browser.cache.disk.capacity: 358400
    browser.cache.disk.smart_size.first_run: false
    browser.cache.disk.smart_size.use_old_max: false
    browser.cache.disk.smart_size_cached_value: 358400
    extensions.lastAppVersion: 24.4.0
    font.name.monospace.el: Consolas
    font.name.monospace.tr: Consolas
    font.name.monospace.x-baltic: Consolas
    font.name.monospace.x-central-euro: Consolas
    font.name.monospace.x-cyrillic: Consolas
    font.name.monospace.x-unicode: Consolas
    font.name.monospace.x-western: Consolas
    font.name.sans-serif.el: Calibri
    font.name.sans-serif.tr: Calibri
    font.name.sans-serif.x-baltic: Calibri
    font.name.sans-serif.x-central-euro: Calibri
    font.name.sans-serif.x-cyrillic: Calibri
    font.name.sans-serif.x-unicode: Calibri
    font.name.serif.el: Cambria
    font.name.serif.tr: Cambria
    font.name.serif.x-baltic: Cambria
    font.name.serif.x-central-euro: Cambria
    font.name.serif.x-cyrillic: Cambria
    font.name.serif.x-unicode: Cambria
    font.name.serif.x-western: Cambria
    font.size.fixed.el: 14
    font.size.fixed.tr: 14
    font.size.fixed.x-baltic: 14
    font.size.fixed.x-central-euro: 14
    font.size.fixed.x-cyrillic: 14
    font.size.fixed.x-unicode: 14
    font.size.fixed.x-western: 14
    font.size.variable.el: 17
    font.size.variable.tr: 17
    font.size.variable.x-baltic: 17
    font.size.variable.x-central-euro: 17
    font.size.variable.x-cyrillic: 17
    font.size.variable.x-unicode: 17
    font.size.variable.x-western: 12
    mail.openMessageBehavior.version: 1
    mailnews.database.global.datastore.id: 655e8821-60e3-4b55-887b-e0a2779889e
    network.cookie.prefsMigrated: true
    places.database.lastMaintenance: 1398527739
    places.history.expiration.transient_current_max_pages: 49654
    plugin.importedState: true
    plugin.state.java: 0
    Accélération graphique
    Description de la carte: Intel(R) HD Graphics 4000
    ID du vendeur: 0x8086
    ID du périphérique: 0x0166
    RAM de la carte: Unknown
    Pilotes de la carte: igdumd64 igd10umd64 igd10umd64 igdumd32 igd10umd32 igd10umd32
    Version du pilote: 8.15.10.2712
    Date du pilote: 3-26-2012
    Direct2D activé: false
    DirectWrite activé: false (6.2.9200.16571)
    Paramètres ClearType: Paramètres ClearType introuvables
    Rendu WebGL: false
    Fenêtres avec accélération graphique: 0
    AzureCanvasBackend: skia
    AzureFallbackCanvasBackend: cairo
    AzureContentBackend: none
    JavaScript
    Ramasse-miettes incrémentiel: 1
    Accessibilité
    Activée: 0
    Empêcher l'accessibilité: 0
    Versions des bibliothèques
    Version minimale attendue
    Version utilisée
    NSPR
    4.10.2
    4.10.2
    NSS
    3.15.4 Basic ECC
    3.15.4 Basic ECC
    NSS Util
    3.15.4
    3.15.4
    NSS SSL
    3.15.4 Basic ECC
    3.15.4 Basic ECC
    NSS S/MIME
    3.15.4 Basic ECC
    3.15.4 Basic ECC

  • Need clarification on working of different type of locks.

    Hi,
    I was reading about the table locks in oracle documentation but get some confused with their working. Like I have read following section-
    ROW SHARE ROW SHARE permits concurrent access to the locked table but prohibits users from locking the entire table for exclusive access. ROW SHARE is synonymous with SHARE UPDATE, which is included for compatibility with earlier versions of Oracle Database.
    ROW EXCLUSIVE ROW EXCLUSIVE is the same as ROW SHARE, but it also prohibits locking in SHARE mode. ROW EXCLUSIVE locks are automatically obtained when updating, inserting, or deleting.
    SHARE UPDATE See ROW SHARE.
    SHARE SHARE permits concurrent queries but prohibits updates to the locked table.
    SHARE ROW EXCLUSIVE SHARE ROW EXCLUSIVE is used to look at a whole table and to allow others to look at rows in the table but to prohibit others from locking the table in SHARE mode or from updating rows.
    EXCLUSIVE EXCLUSIVE permits queries on the locked table but prohibits any other activity on it.
    After reading this, I get confused about working of every type of lock. Can anyone make clear to me, what is the difference between them?
    Thanks in advance,
    Sachin Jaiswal

    You never did provide any info about what what it was about the LOCKs you had trouble understanding so that it might help others.

Maybe you are looking for