Table gets maintained via Zprogram although it is locked

Hi Experts,
I have one doubt ,i am maintaining one table suppose z22_ekko via SM30. As soon as i go to sm30 ,an entry gets created in Central Lock table by SAP
As you can see this entry (Transaction SM12)
Table is locked in 'Write Mode (E)' means no other user can maintain same table same time. In other session when i am trying to maintain via 'SM30' it is ok showing error 'Table is locked'. But when i try to maintain z22_ekko via a Z program with modify or Insert statement ,table gets modified although it is locked . How is it possible? If table is locked it should not allow user to modify via Zprogram also.
please clarify this doubt.
Regards,
A.Trivedi

Hi Ashish,
     If we try to visualise the SAP as a product deeply, we will realise that SAP is nothing but the same existing java .net c c++ technology where in it stores data using the similar RDMS concepts. Then what makes it different, Standardization of not only business process but also the way a developer diggs into the code. If using some standard function module we try to update a table it wont update it will say object is locked.
     Standard Procedure
          1.   Check object(table) is locked or not
          2a. If locked then show message
          2b. if not locked then lock the object
          3.   update/insert into table
          4.   unlock the table.
     Non Standard way(directly to step 3)
          update/insert into table
     So physically the tables are not locked using SM30. These are conceputally locked by lock objects using ENQUEUE and DEQUEUE. Hence we check these locks we will find the table as locked and we will not read it. Logically its always open.
For details try out this link
http://help.sap.com/erp2005_ehp_06/helpdata/EN/91/01274dc2e048d4b473fe5c45ae4e29/frameset.htm
I hope this might help you
HAPPY ABAPing
-VIshal

Similar Messages

  • Get the table's rowid of the session that is locking in RAC database

    I am a developer and not a DBA and I need to find th correct query to find the exact rowid of the record locked on a table. This is for a RAC database and locked record can be from the web form in oracle application server. When I try to get the correct row id, I get the following error:
    ORA-01410 - Invalid row id
    For the criteria, the output is Dbms_Rowid.rowid_create(1, -1, 36, 7845, 0), why I get a -1 for the ROW_WAIT_OBJ#?
    Additional Information: The lock type is DML and the lock mode is: Row Exclusive, the table is locked and the program is web oracle forms executiong.
    I am executing the query in Oracle Database 11g Enterprise Edition Release 11.1.0.7.0
    How to accomplish gettting the correct rowid? Below is the selection criteria I have:
    select vs.inst_id,
    vs.audsid audsid,
    locks.sid sid,
    locks.type,
    locks.id1 id1,
    locks.id2 id2,
    locks.lmode lmode,
    locks.request request,
    locks.ctime ctime,
    locks.block block,
    vs.serial# serial#,
    vs.username oracle_user,
    vs.osuser os_user,
    vs.program program,
    vs.module module,
    vs.action action,
    vs.process process,
    decode(locks.lmode,
    0, '0 None',
    1, '1 NULL',
    2, '2 Row Share',
    3, '3 Row Exclusive',
    4, '4 Share',
    5, '5 Share Row Exclusive',
    6, '6 Exclusive', '?') lock_mode_held,
    decode(locks.request,
    0, '0 None',
    1, '1 NULL',
    2, '2 Row Share',
    3, '3 Row Exclusive',
    4, '4 Share',
    5, '5 Share Row Exclusive',
    6, '6 Exclusive', '?') lock_mode_requested,
    decode(locks.type,
    'MR', 'Media Recovery',
    'RT', 'Redo Thread',
    'UN', 'User Name',
    'TX', 'Transaction',
    'TM', 'DML',
    'UL', 'PL/SQL User Lock',
    'DX', 'Distributed Xaction',
    'CF', 'Control File',
    'IS', 'Instance State',
    'FS', 'File Set',
    'IR', 'Instance Recovery',
    'ST', 'Disk Space Transaction',
    'TS', 'Temp Segment',
    'IV', 'Library Cache Invalidation',
    'LS', 'Log Start or Log Switch',
    'RW', 'Row Wait',
    'SQ', 'Sequence Number',
    'TE', 'Extend Table',
    'TT', 'Temp Table',
    locks.type) lock_type,
    vs.row_wait_obj# row_wait_obj#,
    vs.row_wait_file# row_wait_file,
    vs.row_wait_block# row_wait_block#,
    vs.row_wait_row# row_wait_row#,
    dbms_rowid.rowid_create ( 1, vs.ROW_WAIT_OBJ#, vs.ROW_WAIT_FILE#, vs.ROW_WAIT_BLOCK#, vs.ROW_WAIT_ROW# ) rowid_created,
    objs.owner object_owner,
    objs.object_name object_name,
    objs.object_type object_type,
    round( locks.ctime/60, 2 ) lock_time_in_minutes,
    from gv$session vs,
    gv$lock locks,
    dba_objects objs,
    dba_tables tbls
    where locks.id1 = objs.object_id
    and vs.sid = locks.sid
    and objs.owner = tbls.owner
    and objs.object_name = tbls.table_name
    and objs.owner != 'SYS'
    -- and locks.type in ('TM', 'TX')
    order by lock_time_in_minutes;
    Edited by: user3564713 on Jun 10, 2012 10:56 PM

    Firstly, read this thread
    Identifying locked rows
    And the last bit from Randolf
    >
    It is a common misconception that you can locate a locked row in Oracle via a query. The point is that the information that you're querying only gets populated in case of a blocking lock, and even then not in every case, since you might have blocking locks that do not refer to a particular row.
    Oracle stores the lock information within the block, so if you identified in which block the row is located that you've attempted to lock, you could get detailed information about the row locks of that block by performing a block dump.
    Other than that Oracle doesn't maintain this information anywhere else and it is only externalized for blocking situations - it is a matter of design that there is no central lock manager in Oracle that would inherently limit scalability, hence the downside of that approach is that there is no central information pool where you could obtain detailed information about row level locks.
    >
    However, if you see support note "Sample Code to Select from a Table EXCLUDING Locked Rows [ID 186531.1]"
    You can take the same code from the script in that note to identify rowid of the locked rows.

  • Long Time: Fill Internal Header Table for VBUK via Doc. Flow Predeces

    Good Morning Support,
    I have installed DMIS (2006_1_620) and DMIS_CNT (2006_1_620), both atthe level of SP = 13. Data Base = Informix.
    The activity "Header Fill Internal Table for Predicting Flow VBUK via Doc" is taking a long time in execution.
    I wanted to create an index to improve performance according to the note 1256679 but I can not because the tables VBFA and VBFCL are "Table cluster" and I have no way to create index.
    Any suggestions?I open the remote connection.
    Thanks,
    Hugo.

    Hello Hugo,
    There are 2 ways out of this :
    1. Either convert the Cluster Table to Transparent Table.
    2. Enable Cluster Handling by setting P_CLU to Y. But in this case, you will have to set the parameter for all the 3 activities for VBUK i.e.
    a) Fill Internal Header Table for Table VBUK (Initial)                      -
    > TD05X_FILL_VBUK
    b) Fill Internal Header Table for Table VBUK via Document Flow  -
    > TD05X_FILL_VBUK_1
    c) Fill Internal Header Table for VBUK via Doc. Flow Predeces.  -
    > TD05X_FILL_VBUK_2
    Then re-run the previous activities in the above order so that the cluster gets filled.
    Hope this helps.
    Regards,
    Suman

  • How to get  invoice via material document

    HI,
    How to  get  invoice via material document is there any table or any inderect way?
    thanks
    pandu

    Hi Lakshimipathi,
    thanks for your reply.
    i have checked in vbfa but it's not showing anything.
    my client is providing below information and asking that invoice number.
    material,
    plat,
    material doc,
    movement type,
    posting date.
    i have ran the mb59 by giving material , plant , movement type and Archive info struct as Z_MM_MATBE. here i got the material doc and same doc i have checked at table levle but it's showing.
    and how can i get invoice number by using this information..
    please letme know if you have any idea.
    thanks in advance.
    pandu.

  • Accessing tables through DBlinks via ADF BC entities, jdev11.1.1.2.0

    To my understanding, everytime any object is accessed via a dblink, a transaction is created on the database; even if one merely selects from a table. For example, whenever we were writing PL/SQL, after we were finished accessing data through a dblink we performed a commit to close any open transaction that opened via selects. Using ADF BC, if we create an entity that accesses a table via dblink, what guarantee that transaction sessions are closed after simple selects (no DML)? How would these transactions be closed if data from a db link is simply displayed in an ADF table or referenced via LOV? Is there perhaps some setting that can be set to open connections without transactions?
    Reference: http://www.jlcomp.demon.co.uk/faq/dblink_commit.html
    Best Regards,
    Valon

    valon,
    This is indeed a tricky one. You are correct that a transaction is started whenever you do any selects that touch a remote object. The problem that I see is that even if you were somehow able to execute a commit after every SELECT statement, the transaction always executes in the context of an application module - if you committed the transaction, you'd also commit any outstanding transaction going on in the AM at the time. In general, this would be a bad thing, although you may be able to ensure that it is OK for your specific use case. I did a quick scan of the APIs to see if I could locate any method that you could possibly override, but didn't locate anything that looked promising.
    John

  • Updating MDM table when another table gets updated

    Hi Guys,
    We use MDM catalog for SRM we have a table Catogories and Hierarchy, Our requirement is when ever Catogories table gets updated we have to update the Hierarchy table using some logic, So please let me know whether it is possible to do this and How to do it.
    Regards,
    Prabhu

    Hi Adrivit
    Thanks for ur idea, Could you please help me for the below questions,
    1. Currently we use Import manager to create a Catogories table, Now we want to do via PI, So we create a OUT file and drop it in the MDM OUT FTP directory but I want to know how the system picks it and process.
    2. When the MDM picks the file to upload it in Catogories table whether i will do duplicate check??? Or Is there any way I can code to check whether the give data record exist in the MDM data base then exclude or Ignore those entries.
    Regards,
    Prabhu

  • In Which table Will maintain the All Workflows Triggering Event Details?

    Hi,
    Can Any one tell me
    In Which table Will maintain the All Workflows Triggering Event Details?

    Hi Mohit,
    The Tr Codes KE29N/KE28L will give me the Logs of Past TDD runs. However, i would like to see the all the variants in a go. Due to a Organizational change, there is a new characteristics introduced. Now we need to change the sequence of the TDD runs. Since there are lot of TDD Variants that are in use. we need to get all of them into an excel and then decide the necessary changes.
    Thanks & Regards
    Surya

  • Af:table gets cleared when adding new record in it

    Dear All,
    I am having a af:table on my page, which has an dropdown. When the value of dd is changed then a record(blank) should be inserted in the same af:table.
    Now i have following problem.
    When i set row Selection to single, then every thing works fine,
    When i set it to none then when i add a row to table(on change of dropdown) then table gets cleared, means only newely added values gets cleared and not the one which are fetched from database.
    The reason behind setting row selection to none is that on single selection when ever the user tries to change the value of from other row then it hits server, sometimes it becomes slow also.So for the workaround i need to set autoSubmit="true" to all fields in table but then also whenever user changes the value it hits server.
    Please guys can any one give me proper solution...except rowSelection
    Thanks,
    Santosh
    jdeveloper 11.1.1.5.0

    Hi Frank,
    Thanks for the reply. I can get the correct input component to display on a given row in the table.
    The real issue is when a new row is added (via a createInsert operation on a button). The creation of a new row PPRs the table and the input Components are all set the same on any existing rows, irrespective of which component was used to input data.
    I'm assuming here that it should be possible to have one row show one component under the column, while another row shows a different input component under the same column..?
    Do I need to iterate through the af:table (if possible) when a new row is created to reset the correct input component??
    Thanks.

  • Sender File Adapter  not able to get file via FTP from an external system

    Hi,
    I have a Sender File Adapter using FTP which polls a server every 10 seconds looking for a file ".xml".  The adapter will connect and pick up the waiting file, but sometimes the adapter not able to get file via FTP from an external system. The file is on the server, but despite the polling, the adapter does not pick up it. There is no return error.
    The connect mode is Permanently and the transfer mode is Binary.
    Can you help me?
    Thanks.
    T.

    Hi Teresa,
    does this case appears with a file size higher the others?
    Personally, I do not recommend to have a polling under 1min.
    10s could be too just, if the file is not small and/or if the file server is far (several kilometers) to where the Adapter Engine is, and/or this file server is beside a firewall. Do not forget also that, with previous points, you could have like a conflict, betwen the 1st polling and the 2nd polling, if in less 10s PI adapter has not enough time: to connect to the FTP server (several Km), find the file (perhaps among 100 other files in the directory), go back to the file to Adapter Engine server (several Km again), convert your file to XML message (with a complex Content Conversion), then check the XML structure, and when all that is done, return back to FTP server (several Km), to archive the source file... Well It's my understanding of a FTP exchange with FILE adapter...
    If you really need a 10s polling, that's mean your have a pseudo real time interface. In that case, in my mind file should not be used! but we should use a Web service, JDBC JMS (any exchange without a physical object like a file). For me, it's a non-sens to have a file in that case.
    regards.
    mickael

  • My iphone is not charging or showing in my computer. but its getting charged via wall apple charger.. Not able to connect with itunes.. please help.... :(

    My iphone is not charging or showing in my computer. but its getting charged via wall apple charger.. Not able to connect with itunes.. please help....

    No it doesn't. Sometimes it make a sound that it should when connecting but that is it. Never actually charges or syncs. And it is a brand new cord.

  • How and when does a dimension table gets generated

    Hi Gurus,
                     I am new into BI and I will be put into a project within 2 months. I have learned that dimension table contains the sid's of all the charateristics in the dimension table. My conclusions are like
    1. Dimension table contains the dim id as the primary key.
    2. Dimension table contains sid's of the characteristics.
    3. Though sid's in the dimension table are primary keys in thier 'S' table they are not key in the dimension table.
    My question is
    1. Is there any chance to generate new dim id's for the same combination of sid's because sid's are not part of the key?
    2. I got confused when and how does the dimension table gets generated ?
    I have searched in the forum and google but still my doubts didnt get clarified. If anyone could throw some light on this topic I would really appreciate it.

    HI,
    All your conclusions are correct.
    Now for your questions the answers are in line:
    1. Is there any chance to generate new dim id's for the same combination of sid's because sid's are not part of the key?
        No new dim id's will be generated, dim Id is unique for the same combination of sid's .
    2. I got confused when and how does the dimension table gets generated ?
        They get generated when you activate the info provider.
    Hope this helps.
    thanks,
    Rahul

  • Unable to update when executed, table gets lock Execution does not stop Execution even for an hour

    Following is my Query unable to update when Executed table gets lock Execution does not stop even for an hour.
    update Employees 
          set Status = 'Close'
          where statusid IN (select statusid 
                                             from MyView 
                                              where DownloadedDate ='2014-07-27 00:00:00.000'
    here Employee contains 3,00,000 of records and Subquery return 1,50,000 Empid 
    i tried in various ways but not able to solve, statusid  column have no index on,  i tried using cursor but it does not work.
    plz let me know how to solve this Issue, THANKS IN ADVANCE.

    Hello,
    You should better post your question to a more related Forum, like Transact-SQL or SQL Server Database Engine; this Forum is for samples & community Projects.
    Have you checked the execution plan if indexes are used?
    You could update the data in chunks, e.g. 10.000 rows per execution. For this you have to add a TOP clause and a filter to update only those, who are not updated yet.
    update TOP (10000) Employees
    set Status = 'Close'
    where statusid IN
    (select statusid
    from MyView
    where DownloadedDate ='2014-07-27 00:00:00.000')
    AND Status <> 'Close'
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Unable to update, when executed table gets lock and Execution does not stop even for an hour.

    Following is my Query, which unables to update. When Executed, table gets lock and Execution does not stop even for an hour.
    update Employees 
          set Status = 'Close'
          where statusid IN (select statusid 
                                             from MyView 
                                              where DownloadedDate ='2014-07-27 00:00:00.000'
    here Employee contains 3,00,000 of records and Subquery return 1,50,000 Empid 
    i tried in various ways but not able to solve, statusid  column have no index on,  i tried using cursor but it does not work.
    plz let me know how to solve this Issue, Its very Important to get solve as all my further work depends on Updation
    , THANKS IN ADVANCE.

    See also your other thread with the same question:
    http://social.msdn.microsoft.com/Forums/en-US/80243625-fc3b-4ee1-bce1-4adcdbc16c14/unable-to-update-when-executed-table-gets-lock-execution-does-not-stop-execution-even-for-an-hour?forum=sqlserversamples
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Query to find out list of the tables getting selected frequently

    Hi All,
    Please tell me Is there any way to find out list of the tables getting selected frquently, ( please exclude the insert+updates+deletes+truncate+drop).
    Regards

    Hi Sameer
    You can check V$SQL_PLAN to see the objects being accessed by your SQL statements. If you have diagnostic licence, you can also check DBA_HIST_SQL_PLAN
    select distinct object_owner, object_name from v$sql_plan;
    select object_name, count(*) from v$sql_plan group by object_nameRemeber, this is only a crude way of finding this information.
    Regards
    Venkat

  • In which table can maintain the SAP MM Display changes?

    hi,
    I have One doubt. Regarding In MM...
    In which Table can Maintain the Changes of Material?

    Hello,
    Please use function CHANGEDOCUMENT_READ.
    Thanks,
    Venu

Maybe you are looking for