Lock table: How to notify others

Hi,
I 've created a Stored Procedure that inserts into a table.
The first and last statement of by BEGIN...END part of the stored procedure locks the table successfully.
BEGIN
      LOCK TABLE MY_TABLE IN EXCLUSIVE MODE NOWAIT;
        COMMIT;
     LOCK TABLE MY_TABLE IN SHARE MODE NOWAIT;
EXCEPTION
     WHEN OTHERS THEN
           dbms_output.PUT_LINE(SQLERRM);
          ROLLBACK;
END;
/The purpose is to lock the table so that if another user accidentally tries to execute the script s/he won't be able to modify the data in the table.
However, if the procedure is already running when another user tries to execute it, the 2nd user simply sees the procedure to terminate very quickly (it normally takes around 15-20 minutes based on the data). No message that the table is locked or that the procedure is in progress from another user.
How can I notify the 2nd user that the procedure is already in progress from another user or that the table is locked? What should I put in the EXCEPTION part maybe to do that?
Thank you in advance.
Regards,
John.

PRAGMA EXCEPTION_INIT(already_lock, -54);is 54 value meant for in-buit exception table
le locked, if so, even without having a custom
exception, oracle by itself would have thrown it in
the second session, right???, please do correct me if
iam wrong,
-54, and yes it is.
>
what will be the impact if i have a WAIT instead of
f NOWAIT, will my second session just be on hold
waiting for lock to be released???Second session will wait... but WAIT doesn't exist, just write lock table t3 IN EXCLUSIVE MODE ;I advise you to read this for LOCK command : http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_914a.htm#2064408
and this for exceptions : http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784
Nicolas.

Similar Messages

  • Lock Table Overflow Error in SM58

    Hi Team,
    Error has observed on transactional RFC (SM58),it is happing  every monday during business hours .So we observed that same day db2 automatic reorg job is running same day and same time in SAp PI .Please confirm is this issue with SAPPI or target system ?
    Error Text: “Lock table overflow”
    This issue has fixed after reorg job finished automatically .is there any relation b/w lock table and reorg job ?
    I observed that this was due to DB2 reorg job causing the issue.Please correct me if am wrong ?
    Regards ,
    Ravindar.a

    Hi
    Please check the following link:
    http://help.sap.com/saphelp_nw04/helpdata/en/37/a2e3ba344411d3acb00000e83539c3/frameset.htm
    http://help.sap.com/saphelp_nw70/helpdata/en/d3/43d2416d9c1c7be10000000a1550b0/frameset.htm
    http://sap.ittoolbox.com/groups/technical-functional/sap-basis/lock-table-overflow-506470
    Mutti

  • How to Create an Alert on a V$Lock Table

    Hi Gurus,
    Can anyone help me out on. how to create an event alert on locks table (V$LOCK). so that whenever a table is locked , i can send the email notificaiton to the user regarding the locking history.
    any approach is highly appreciable.

    Hi,
    as event alerts in eBS in fact are based on trigger concept and it's not allowed to
    create triggers on objects owned by SYS i don't think that this will be possible.
    Regards

  • How to print two tables adjacent to each other?

    Hi,
    Scenario
    I have a form with a body page and two tables. The property of the body page is set to 'Flowed', 'top to bottom' as flow direction and the check box for page break is set.
    Requirement
    The two tables need to be printed adjacent to each other.
    Approach followed until now
    1. Since the body page is 'Flowed' type, the two tables are placed one below the other (Tab1 & Tab2). So I tried to set the Flow direction of the Body page to 'Western text'. But this did not solve the issue as since it is set to 'western text', only after Tab1 is rendered, table Tab2 starts printing itself, which is not desired. Both the tables should be printed at the same time.
    2. I wrapped both the tables in one sub form with 'Type' set to 'Positioned' and set the check box for page break. Now I arranged the tables adjacent to each other. But the check box for page break for both the tables were disabled and because of this if there is not enough space to print the total records of both the tables, the complete tables is shifted to another page leaving the previous page blank.
    Kindly suggest how to resolve this issue.
    Regards
    s@k

    Dear Andres,
    I tried as per you suggestion and it works fine. Thanks a lot.
    Now adding to this, I am trying to print the 'formatted text'. The tables have two columns. the first column is a normal field and the second column is table having the 'formatted text'.
    As per your suggestion, I concatenated the two tables in one table. So the final table has 2 normal fields and 2 tables.
    Final table structure:
    Column1      Column2(Table)             Blank             Column3          Column4(Table)
    Settings maintained:
    I have set the 'Body' row of the table to 'Flowed' with direction as 'Western text' (Top to bottom does not help ).
    The settings for Column 2 & 4 (tables) are maintained as:
    1. The Table is set to 'Flowed' with direction 'Top to Bottom'.
    2. The body row is 'Flowed' with direction 'Western Text'
    (The Border 'Edges' for the tables, columns is maintained as 'None')
    Issue:
    The sample data has around 10 entries in the (final)  table. When I try to print the form, if column2(table) is initial, the data in Column3 and 4 are shifted towards Left hand side.
    Kindly suggest how to resolve this issue.
    Regards
    s@k

  • I lost my Iphone 5 today in Johor Bahru. Not install Find my Phone/Icloud/Offline. How to prevent others access my email and data ? Or how to remote lost mode/locking phone ?

    I lost my Iphone 5 today in Johor Bahru. Not install Find my Phone/Icloud/Offline. How to prevent others access my email and data ? Or how to remote lost mode/locking phone ?

    suyantosdf wrote:
    I lost my Iphone 5 today in Johor Bahru. Not install Find my Phone/Icloud/Offline. How to prevent others access my email and data ? Or how to remote lost mode/locking phone ?
    If you didn't enable find my iphone in icloud settings on your phone, then you can't do a lost mode or lock your phone.
    I would assume you had a passcode on your phone to lock it.  If you didn't then start changing your passwords.
    Report the lost to your phone carrier - local authorities.

  • Lock tables when load data

    Are there any way to lock tables when i insert data with SQL*Loader? or oracle do it for me automatically??
    how can i do this?
    Thanks a lot for your help

    Are there any problem if in the middle of my load (and commits) an user update o query data ?The only problem that I see is that you may run short of undo space (rollback segment space) if your undo space is limited and the user is running a long SELECT query for example: but this problem would only trigger ORA-1555 for the SELECT query or (less likely since you have several COMMIT) ORA-16XX because load transaction would not find enough undo space.
    Data is not visible to other sessions, unless, the session which is loading data, commits it. That's the way Oracle handle the read committed isolation level for transaction.
    See http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2689
    Or what happens if when i want to insert data someone has busy the table?You will get blocked if you try to insert data that has the same primary key as a row being inserted by a concurrent transaction.

  • Timeout when inserting row in a locked table

    How can I set the timeout before an INSERT statement fails with error ORA-02049 (timeout: distributed transaction waiting for lock) when the entire table has been lock with LOCK TABLE .
    Documentation says to modify DISTRIBUTED_LOCK_TIMEOUT parameter, but it is obsolete in Oracle 8i.
    Any idea ???

    You could set an alarm() in a signal. Then on return (for whatever reason) you clear the alarm, inspect the return code of the sql execute call and determine what happened (i.e. did the transaction completed or did the alarm get you).
    Hope it helps.
    -Lou
    [email protected]
    How can I set the timeout before an INSERT statement fails with error ORA-02049 (timeout: distributed transaction waiting for lock) when the entire table has been lock with LOCK TABLE .
    Documentation says to modify DISTRIBUTED_LOCK_TIMEOUT parameter, but it is obsolete in Oracle 8i.
    Any idea ???

  • RFC calls with SAP table insert - lock tables

    Hi,
    I have an external server program, which is calling a rfc function many times the same time with different transaction types. There are transaction types, which are downloading information from SAP (only send data back to the caller), and there are transaction types which are uploading data to SAP (inserting/updating data on SAP).
    The function calls are synchronous as the server needs to get feedback directly. The parallel work processes for RFC calls are limited, so a system overload can´t happen.
    The problem now is, if the server is down for while and going to be restarted, it´s opening parallel threads and calls the function in SAP at nearly the same time. That means, it will call the function with upload requests (table must be locked), and download requests the same time.
    In the upload requests, the table has to be locked, that it can´t occur that we get wrong entries...
    I can only enqueue the table with just two fields... I know, that is almost like locking the whole table, but it´s not possible to lock it in a different way.
    I tried to use the enqueue function with the parameter WAIT, but it didn´t help, as there where too many parallel calls and after some seconds, they were ending up with an error (Because the table has been locked by another call).
    It seems that it´s trying to lock the table again for all parallel calls at exactly the same time....
    The calls has to be synchronous, as the server needs to get the feedback directly. Any ideas how top solve this, that it handles all incoming calls parallel and waits for the table is unlocked again?
    Thank you for your help!

    Hi,
    thank you for your answer!
    I have investigated something new yesterday:
    I thought at the beginning, that the problem just occurs, when the system work processes are reached. The system has for example set up 15 dialog processes and the external server is calling the function 20 times in parallel. Then we normally need 5 dialog processes more. The system is taking then all 15 dialog processes and the locks got stucked.
    That means, that I´ll maybe only get 4 or 5 uploads, which have really been updated the tables. All the others couldn´t get the table locked for their process.
    But if I now let the server call the function just about 13 times in parallel, nearly all uploads have been updated the table!
    From my point of view, the lock from SAP gets stucked, when the limit of dialog processes is reached. It´s not working in the right way anymore...
    The same is happening, when you set up in the system, that only 10 work proecesses can be used by RFC. If I have more than 10, it´s going to be critical with the locks....
    WEIRD!
    Can anybody help me out of trouble?
    Thank you!

  • How does "notify me" actually work in mail app

    Might be a daft question, but how does "notify me" actually work in iPhone email app?
    I get the principal but surely when you get a reply thats already noticed you?
    Could someone advise me how it actually notifies and is it in addition to receiving the reply to the mail?

    I have the columns in place. But I have a few questions -
    1. Iis there some kind of audit trail report on the updates to my record to the table? If so how do I get to see?
    2. Am I expected to create a <entity name>_HISTORY table for this to work? I see some such recommendation  here .

  • Enqueue Replication Server - Lock Table Size

    Note : I think I had posted it wrongly under ABAP Development, hence request moderator to kindly delete this post. Thanks
    Dear Experts,
    If Enqueue Replication server is configured, can you tell me how to check the Lock Table size value, which we set using profile parameter enque/table_size.
    If enque server is configured in the same host as CI, it can be checked using
    ST02 --> Detail Analysis Menu --> Storage --> Shared Memory Detail --> Enque Table
    As it is a Standalone Enqueue Server, I don't know where to check this value.
    Thanking you in anticipation.
    Best Regards
    L Raghunahth

    Hi
    Raghunath
    Check the following links
    http://help.sap.com/saphelp_nw2004s/helpdata/en/37/a2e3ab344411d3acb00000e83539c3/content.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/44/5efc11f3893672e10000000a114a6b/content.htm
    Regards
    Bhaskar

  • How to notify in case SQL query(JDBC sender adapter) does not fetch records

    hi,
    How can we notify(by alerts or something) in case SQL query(JDBC sender adapter) does not fetch records? In channels logs it only says processing started & finished(no message is created for same).
    Thanks,
    Mayank

    Hi,
    1 ) What is exact audit log message ?
    2) Try fetching the count in SQL statement  if there are any valid records it will give the count.
        May for testing you can use <TEST> in update statement.
    3) Have you used taskTimeout parameter ?
    4) Are multiple channels polling on same table ?
    regards
    Ganga

  • Command object locks table (TX)

    Im having locking probmlems with ODP.NET. Im updating same table with many connections in many threads. I get table locks for hours (over 24 hours) and I cant find any timout to set. The CommandTimeout on the Command object is not implemented.
    In the V$Lock table I can see two locks on the same table made by two session ids from the same computer.
    Im using transactions on the Connection object.
    How do I set a timout for the update so that the lock will dissapear?
    String connString = "Data Source="     + dsn + ";"
              + "User ID="          + user + ";"
              + "Password="          + pwd;
    OracleConnection conn = new OracleConnection(connString);
    String sql = "UPDATE ABDATA2 SET ABNAVN='SOLNA STAD ' WHERE OBJID = -21805738";
    OracleCommand command = new OracleCommand(sql, m_conn);
    //command.CommandTimeout = 60000; Exists but not supported
    command.ExecuteNonQuery();
    Is there anyone who has a clue?

    Hi Neo, thanks for responding;
    I did not publish the report with saved data, and I'm not sure what you mean about appending the string value?  Could you explain that part?
    The parameter I created is only declared as a string with no default value with a name of "CodeTableName".  I used the Create paramter button you have in the Command object window to make it.
    I then added the parameter name to my SQL statement as listed above.
    The actual code table names in the database is actually longer then what the parameter calls for.  They all start with "TIBURON.ZZ_" and end with "_Codes".  I didn't want the users to have to remember the full names so that's why the SQL statement shows those additional parts.
    The report works perfect when I'm running this report from Crystal Reports 9 or CR11 itself.  It's only when I upload the report to our web server that the users isn't provided a prompt to enter a parameter.  They only have button labed "Run Report".
    Any ideas?
    Thanks,
    Joe

  • Db_associate fails with : Lock table is out of available lock entries

    Hi
    Occasionally on startup my app needs to rebuild its secondary database, so I call db_associate with DB_CREATE set. If the primary db is large the associate fails with "Lock table is out of available lock entries". Both databases are hashes, so I have not configured any special lock sizes as I didn't think I needed to.
    What lock configuration does db_associate need to succeed?
    I am using version 4.7.25
    Thanks
    Ashley

    Hi Ashley,
    You should be sizing the locking subsystem with high enough values so the secondary database rebuilds successfully, then run the "db_stat -C" utility and see how many locks, lock objects and lockers did you need to perform the operation and reconfigure the locking subsystem with values slightly bigger than what you needed, so you make sure that you'll have enough resources for the next time you'll rebuild the secondary.
    "Lock table is out of available lock entries" means that the Berkeley DB locking subsystem has not been configured for enough locks. For more information, see the "Configuring locking: sizing the system" section of the Berkeley DB Reference Guide, included in your download package and also available at:
    http://download.oracle.com/docs/cd/E17076_01/html/programmer_reference/lock_max.html
    To see what locks are held in the database environment at any time, you can dump the lock table using the -Cl options:
    % db_stat -h [database environment directory] -Cl -N
    Additional documentation:
    db_stat: http://download.oracle.com/docs/cd/E17076_02/html/api_reference/C/db_stat.html
    set_lk_max_locks: http://download.oracle.com/docs/cd/E17076_01/html/api_reference/C/envset_lk_max_locks.html
    Bogdan Coman

  • Insert & Update while Locking tables

    Update & Insert
    Is it possible for me to insert a record and update 2 fields in another record, whil locking the database tables for the process to take place?
    If so, how?
    Thanks
    Pete

    I don't know which database server you are using. But in MySQL, you can do something like this:
    <?php
    function get_next_number( $field = 'id' )
         $id = 0;
         //Lock the table for write
         mysql_query('LOCK TABLES name_of_table WRITE');
         $sql = 'SELECT '.$field.' FROM name_of_table ORDER BY '.$field.' DESC LIMIT 1';
         $query = mysql_query($sql);
         if ( mysql_num_rows($query) > 0 )
              $row = mysql_fetch_row($query);
              //Get the $field value
              $id = $row[0];
         //Unlock tables
         mysql_query('UNLOCK TABLES');
         return ++$id;
    ?>
    I didn't test this function, but the idea is that
    Check if you are connected to MySQL server
    Regards,
    Rafael

  • My iPad 3 "Brain/Table" (How it is called in my language) Burnt. Can it be repaired ?

    My iPad 3 "Brain/Table" (How it is called in my language) Burnt. Can it be repaired ? and I need to know the English name of that "Brain" and I need to know the English name of that "Brain"
    By the way, last time when I tried to turn it on, it charged, showed the Apple logo and than turned off, no lock screen and nothing.
    Than I gave it to repair and they said brain is burnt..

    I don't know what the Brain is but I imagine that the repair center said that the processor was bad. If they couldn't repair it, then there is nothing that you can do with it. Apple doesn't repair iPads, they replace them. If you are out of warranty they do offer replacement iPads starting at $250.00 in the U.S. you can check and see what the policy is where you live.
    http://support.apple.com/kb/index?page=servicefaq&geo=United_States&product=ipad

Maybe you are looking for

  • Creation of a new Formula Routine for condition base value calculation

    hello people, i am stuck up in a situation where SAP has itself said that nothing can be done. but i know you all can guide me to some way or the other see, the scenario is like this 1. i have to calculate the base value for a pricing condition. whic

  • JPA Error "No Persistence provider for EntityManager",using org.eclipse.per

    Hello Colleagues, I have created JPA project, with out any error have done mapping also. with orm.xml and persistense .xml I am getting No Persistence provider for EntityManager error when calling Entity Manager in Entity class Error >>> EntityManage

  • Calculating tax condition amount

    Hi all, I am  confused on how the system calculates tax conditon amount (let' say MWST) in sales order. In my system the tax condition type mwst has a condition record maintained of 4%  thru VK11 and a tax code V0 assoicated with it. The base value f

  • Calling report with desformat prt file

    Hello. First some background: According to forms and reports documentation, when you want to call a character mode report (MODE=Character) when DESTYPE=FILE and DESNAME=filename using a printer definition file (prt file) you set DESFORMAT=name_of_prt

  • Problemas con mi ID

    saludo como cambio mi ID sin perder mi con tenido de Id ??? gracias