Locked Appraisal Record

I saw a few topics regarding locked appraisals records but was unable to identify the reason why a record gets locked in the first place. Does anyone know? I am using PHAP_ADMIN to unlock the record, but wanted to get an idea the reason behind it locking up.  Thanks.

Hello Alex,
We lock appraisal documents to ensure that only one person is able to fill out the document at a certain time. This to ensure data consistency.
With ERP2005 this concept is enhanced with offline locks as well as you will be able to download appraisal documents to a PDF version and upload it on a later time.
I hope this answers your question, when not just let me know.
Regards and Groetjes,
Maurice

Similar Messages

  • Locking multiple records in a database table at a time

    Hi Experts,
       I have a requirement to lock multiple records in the database table for writing. I have created lock object in SE11. But with this we have only 2 possibilities either lock entire table or lock a single record at a time.
       My requirement is, i have table with key field PROJECTID. I want more than one project to be locked, but not the complete table. I dont have any other field in the table to compare.
    Thanks in advance..
    Regards,
    Asrar

    Hi ,
    Try with FOR UPDATE in the SELECT sentence.
    SELECT FOR UPDATE *
        INTO Internal_Table
      FROM Table
    WHERE Conditions.
    UPDATE "Table_name" FROM TABLE  Internal_Table.
    COMMIT WORK.
    This sentence blocks only the records that satisfy of the WHERE conditions (not the entire table) and unlocks after commit work.
    Hope this information is help to you.
    Regards,
    José

  • Error - Unable to lock the record.

    Error - Unable to lock the record. Cause: The record is being modified by another user.
    Hi all,
    I encountered the error above after deleting a record from a table then clicking the next button(train). Please help.
    Thanks.
    Maeve

    the two most probable possible reasons for this error:
    1)When your program tried to delete the partiular record, somebody from back-end has deleted the record.
    2)Your program is not commiting after doing the transaction.
    Also,Check out this thread :
    Re: save button - Unable to perform transaction on the record. stale data,
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to lock a record in a database using java

    hi,
    i want to lock a record in a database. how could it be done.
    if any body has idea pls share with me

    Ok, then you can create a simple lock:
    The idea is same, but this allow you to lock multiple id at the same time:
    static Object LOCK_FLAG = new Object();
    static Object[] locker = new Object[1000]; // assuming you have id 0-999 to lock
        this function will wait until current thread succesfully
        locks all the ids to lock.
    public void lock( int[] idsToLock) {
       while (true) {
           synchronized(locker) {
              boolean success = true;
              for(int i=0; i<idsToLock.length; i++) {
                  if (locker[ idsToLock[ i ] ] != null )
                     success=false;
                  if (!success) break;
              if (success) {
                  for(int i=0; i<idsToLock.length; i++)
                     locker[ idsToLock[ i ] ] = LOCK_FLAG;
                  locker.notify();
                  return;
              locker.notify();
           try {  Thread.sleep(100); } catch (Exception ex) { }
        this function will wait until all locks are released
    public void releaseLock( int[] idsToLock) {
       synchronized(locker) {
           for(int i=0; i<idsToLock.length; i++)
                 locker[ idsToLock[ i ] ] = null;
           locker.notify();
    }How to use:
    int[] recordToLock = new int[] { 1, 100, 55, 32, 25 };
    lock(recordToLock); // lock before modify ..
    try {
       // do anything with your records ...
    } catch (Throwable t) {
       // if any exception ...
    } finally {
       releaseLock(recordToLock);  // make sure this will always be executed
    }rgds,
    Alex

  • Create locked HR record in BDC - possible???

    Is it possible to create a locked infotype record via a BDC session?
    Let me be more specific: We have a strange calculation for benefits eligible salary. So we use a program that performs that calculation and updates insurance records (it0168) with the correct coverage amount in the COVOV field in a BDC session. Now we have a new requirement that places a limit on the coverage amount w/o EoI. The BDC session will need to create two records for persons over the max - one with the limit amount, another locked record with the calc'd amount and EoI indicators. Both records will have the same start and end date.
    I've tried a number of different things, but the infotype key for both records (except for the lock indicator) is identical. So, one record just overwrites the other.
    Any help is greately apreciated.
    - George

    Hi George,
    1. Either we use BDC, or HR_INFOTYPE_OPERATION
       we cannot create duplicate records.
       ( i have tried the same)
    2. The Primary Key fields for any infotype table are
    SUBTY
    OBJPS
    SPRPS
    ENDDA
    BEGDA
    SEQNR
    3. If it is mandatory that BEGDA and ENDA (start and enddate)
    have to be the same, then the only option left is
    using the remaining field combination
    ie. SEQNR
    4. But SEQNR is probably not avaialble in BDC,
    5. For that purpose the other option is using
      FM HR_INFOTYPE_OPERATION
       (specify the SEQNR )
      This will definitely create a new record.
      ( i have tried the same)
    6. ANOTHER MOST IMPORTANT THING IS
       Will sap HR take into consideration this
      new record with SEQNR = 1 or SEQNR = 2
      in its standard business process.
       Or will it ignore it ,etc .
    7. So Before just dumping new record
      with new SEQNR, it is very crucuial to
      identify the problems.
    Hope the above helps.
    Regards,
    Amit M.

  • SDO gives JBO-26030: Failed to lock the record, another user holds the lock

    Hi,
    I have a question thats on the boundary between ADF and BPEL but I posted in this forum because its highly related to ADF Model with Service Interface.
    We have a BPEL batch process that spawns multiple child BPEL processes that handle threads inside the batch in parallel. These child processes all update the same batch record in a database with for example the lastActionDateTime. We do this by invoking an update service on a SDO application that we built following this tutorial: http://jianmingli.com/wp/?p=2838
    It all works good but sometimes when updating the same row from multiple BPEL process instances at the same time, we sometimes get a SDO JBO-26030: Failed to lock the record, another user holds the lock.
    I'm a bit stunned by this, because all we really do is updating a record. From BPEL we just invoke the updateBatch webservice method of the Service Interface.
    I can imagine that there will be wait time when these updates come in at the same time, but I didn't expect an exception would occur. Also the arbitrariness confuses me. If a child process would lock the record, I would expect this error to happen always and not at random.
    From BPEL the error displays as follows:
         <fault>
              <bpelFault>
                   <faultType>1</faultType>
                   <ServiceException>
                        <part  name="ServiceErrorMessage">
                             <tns:ServiceErrorMessage>
                                  <tns:code>26030</tns:code>
                                  <tns:message>JBO-26030: Failed to lock the record, another user holds the lock.</tns:message>
                                  <tns:severity>SEVERITY_ERROR</tns:severity>
                                  <tns:exceptionClassName>oracle.jbo.AlreadyLockedException</tns:exceptionClassName>
                             </tns:ServiceErrorMessage>
                        </part>
                   </ServiceException>
              </bpelFault>
         </fault>However when I dive into soa_server1-diagnostic.log I see the following exception:
    [2011-10-28T17:37:37.770+02:00] [soa_server1] [ERROR] [] [oracle.jbo.server.svc.ServiceJTATxnHandlerImpl] [tid: [ACTIVE].ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: a1484c49db38e963:-581f01fc:13345d7173d:-8000-00000000000322f4,0:1:0x5f5e2bf:33] [WEBSERVICE_PORT.name: ECMControllerSDOServiceSoapHttpPort] [APP: ECMControllerSDO] [composite_name: ECMProcessController] [component_name: ProcessControllerBPEL] [component_instance_id: 240335] [J2EE_MODULE.name: ECMControllerSDO] [WEBSERVICE.name: ECMControllerSDOService] [J2EE_APP.name: ECMControllerSDO] [[
    oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[CDS_20111028_8 ].
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:1077)
         at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:553)
         at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:8134)
         at oracle.jbo.server.EntityImpl.lock(EntityImpl.java:5863)
         at oracle.jbo.server.EntityImpl.beforePost(EntityImpl.java:6369)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6551)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3275)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3078)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2088)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2369)
         at oracle.jbo.server.DefaultJTATxnHandlerImpl.commit(DefaultJTATxnHandlerImpl.java:156)
         at oracle.jbo.server.svc.ServiceJTATxnHandlerImpl.commit(ServiceJTATxnHandlerImpl.java:216)
         at oracle.jbo.server.svc.ServiceJTATxnHandlerImpl.beforeCompletion(ServiceJTATxnHandlerImpl.java:124)
         at sun.reflect.GeneratedMethodAccessor2677.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.jbo.server.svc.WLSContextCrossAppProxy$WLSCrossAppProxy.invoke(WLSContextCrossAppProxy.java:66)
         at $Proxy377.beforeCompletion(Unknown Source)
         at weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCInfo.java:1239)
         at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:1214)
         at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:116)
         at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:1316)
         at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:2132)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:272)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:239)
         at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:625)
         at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:49)
         at weblogic.ejb.container.internal.BaseRemoteObject.__WL_postInvokeTxRetry(BaseRemoteObject.java:444)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:53)
         at nl.kpn.ecm4crm.am.server.serviceinterface.ECMControllerSDOServiceImpl_51vl7y_ECMControllerSDOServiceImpl.updateBatches(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
         at $Proxy373.updateBatches(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:355)
         at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:196)
         at oracle.j2ee.ws.server.jaxws.JAXWSRuntimeDelegate.processMessage(JAXWSRuntimeDelegate.java:479)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1081)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:232)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:192)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.jbo.server.svc.ServiceContextFilter.doFilter(ServiceContextFilter.java:78)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)Thank you for reading, any directions suggestions on how to solve this will be highly appreciated.
    regards,
    Gerben

    Thanks Frank.
    Already tried that , please let me know if there is any other way to get this .
    This is being discussed here :
    Re: Update without No wait
    and i am following what John Stegeman has suggested.

  • PMS Un Locking Appraisal Documents

    Hi all
    We like to unlock all the locked appraisal documents for every half an hour.
    For the above functionality our ABAPer has written a Z program to unlock all the appraisal documents and wanted it to be scheduled for every half an hour.
    Functionality of the above program.
    1) Go to Tcode PHAP_ADMIN and execute.
    2) Go to the tab Goto-> Locked appraisal documents, Then it will show all the locked appraisal documents.
    3) Select all the locked appraisal documents and then press unlock, then all the appraisal documents will be unlocked.
    The same above functionality is incorporated the program, so if it is scheduled for every half an hour,then the appraisal documents will be open to the employees for every half an hour.
    As the process is not any way related to SM12 TCode (which consists of all the locked objects),the other objects other than Appraisal documents will not be unlocked.
    Goto-> Locked appraisal documents is only specific for the appraisal documents.
    But as per our knowledge SAP Standard is unlocking all the appraisal documents for every one hour.
    If we schedule this Z Program for every half an hour, then both the standard and the Z Program will clash for every hour which is not required.
    Can any one tell me where to change that one hour limit to half an hour in the standard it self.
    or will there be any problem if both the programs clashes for every hour
    Please let me know how SAP Unlocks the Appraisal Documents for every hour, (Using a background job or Is it a configuration)If it is a background job please let me know the standard job, so that we can change the time of the standard job.
    Thanks in Advance
    Avinash

    Hi,
    Why would you want to do this? This is dangerous and can cause major inconsistencies. The standard unlocks in the web after 30 minutes as per default, but thats a configuration setting.
    I would not recommend to have this report running in a productive environment.
    Regards and Groetjes,
    Maurice Hagen

  • How to find exactly who lock the records

    hi:
    Session1: lock a record for example
    Select e.* from employees e where e.employee_id = 7034 for update;
    Session2: try to lock the same record:
    Select e.* from employees e where e.employee_id = 7034 for update nowait;
    After exception ora-00054 raised query this statement:
    Select Vs.Sid,
    Vs.Client_Identifier,
    Vs.Action,
    Vs.Status,
    Vs.Machine,
    Vs.Terminal,
    Vs.Logon_Time,
    Dmlock.Name
    From Dba_Dml_Locks Dmlock,
    V$session Vs
    Where Dmlock.Session_Id = Vs.Sid
    And Vs.Sid =
    (Select Distinct First_Value(Ash.Blocking_Session) Over(Order By Ash.Sample_Time Desc)
    From Sys.v_$active_Session_History Ash
    Where Ash.Session_Id = Sys_Context('USERENV', 'SID'))

    session #1
    21:28:14 SQL> Select e.* from employees e where e.employee_id = 206 for update;
    EMPLOYEE_ID FIRST_NAME           LAST_NAME
    EMAIL                     PHONE_NUMBER         HIRE_DATE JOB_ID         SALARY
    COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
            206 William              Gietz
    WGIETZ                    515.123.8181         07-JUN-94 AC_ACCOUNT       8300
                          205           110
    21:28:39 SQL> session #2
    SQL> set time on
    21:29:25 SQL>  Select e.* from employees e where e.employee_id = 206 for update nowait;
    Select e.* from employees e where e.employee_id = 206 for update nowait
    ERROR at line 1:
    ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
    21:29:51 SQL> session #3
    21:30:18 SQL> SELECT Vs.sid,
           Vs.client_identifier,
           Vs.action,
           Vs.status,
           Vs.machine,
           Vs.terminal,
           Vs.logon_time,
           Dmlock.name
    FROM   dba_dml_locks Dmlock,
           v$session Vs
    WHERE  Dmlock.session_id = Vs.sid
           AND Vs.sid = (SELECT DISTINCT First_value(Ash.blocking_session)
                                           over(
                                             ORDER BY Ash.sample_time DESC)
                         FROM   sys.v_$active_session_history Ash
                         WHERE  Ash.session_id = Sys_context('USERENV', 'SID')) 21:30:44   2  21:30:44   3  21:30:44   4  21:30:44   5  21:30:44   6  21:30:44   7  21:30:44   8  21:30:44   9  21:30:44  10  21:30:44  11  21:30:44  12  21:30:44  13  21:30:44  14  21:30:44  15  21:30:44  16 
    21:30:46  17  /
    no rows selected
    21:30:49 SQL> Your results are duly UNDERWHELMING!

  • User which locked the record

    Maybe somebody knows how to get the correct user which locked a record. The best way would be over the rowid of this record. I make a select for update nowait, then i get an exception. That means the record is locked. Now how can i get the user which locked this record ?
    Thanks for your help

    I can't believe that nobody has a solution for that !
    If somebody has a solution that will be nice. Thank you

  • JBO-26030: Failed to lock the record, another user holds the lock.

    Hi, i am using value change listener to a discount percentage field & after calucalion for the first time it will give the discount amount value & filling that field. But for the second attempt it is showing nothing but printing correct values in the console.it is not getting refresh.
    and also i am getting this error:JBO-26030: Failed to lock the record, another user holds the lock.

    based on Jdev documentation, re-execute the query solved the problem.

  • How can we lock the table?? how can we lock the record

    Hi
    how can we lock the complete table?? how can we lock the record ?/
    Thanks
    Rama

    Lock objects are used to lock the database table while making the modifications on the database table.
    you can create your own lock objects using SE11.
    if you create lock objects on any table system will create two function modules.
    1.ENQUEUE....
    2.DEQUEUE.....
    first one is used to lock the table
    second one used to removing lock on the table.
    lock Table
    CALL FUNCTION 'ENQUEUE_E_TABLE'
    EXPORTING
    tabname = table_name
    EXCEPTIONS
    foreign_lock = 1
    system_failure = 2
    OTHERS = 3.
    Unlock Table
    CALL FUNCTION 'DEQUEUE_E_TABLE'
    EXPORTING
    tabname = table_name
    check this link :
    http://help.sap.com/saphelp_40b/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    _SCOPE = 1: The lock is not sent to the update program. The lock is removed when the transaction is ended.
    _SCOPE = 2: The lock is sent to the update program. The update program is responsible for removing the lock. The dialog program which requested the lock no longer has an influence on the lock behavior. This is the standard setting for the ENQUEUE function module.
    _SCOPE = 3: The lock
    Re: lock objects
    Reward if this helps.

  • How to lock the record in the Form

    .How to lock the record
    That is In my customized form if user query the record in one of our Customized form and the system automatically should prevent by quering the same record by other user for the same form .The message to be displayed as locked by another user .
    For example in standard form the same option is available.
    Form Name:GMEBCHED.FMB
    Module:ORACLE PROCESS MANUFACTURING(OPM)
    Could you pls help us how to implement the same for our Customized form .
    Appricaiate your help .
    Regards,
    Radha krishnan

    Hi,
    I tried to put the code under Post-Query trigger. Since user can input the selection criteria in the form. After the form open, after I input the "Update user" ID (this is in the non-base table block), the oracle message prompt: FRM-40653: Record not reserved for update or delete. Try again later..
    So, is there any method to solve it?
    Thanks a lot.
    Regards.

  • How to find out the user who locked the record

    i can't delete a particular record from a table while executing the delete command its showing an error specifying
    that "ORA-02049: timeout: distributed transaction waiting for lock"
    syntax i used
    delete from <table_name> where <column_name>='<value>'

    Hi,
    select username,lockwait,process,sql_hash_value from v$session. Find the user who is having more lock wait
    See the lock wait has more value notedown has_value
    select sql_text from v$sqltext where has_value="Noted value " find the query whether your table is calling by the user.

  • Mass update of product master (lock material record)

    Hi! Does anyone know of any program that I can use to carry out mass update of product master in SRM? I am specifically looking at locking the materials. I originally intended to use LSMW and create a recording for it. However, the recording didn't work - when I clicked on the open button so that I can key in the product id, it returns back to the recording / LSMW transaction with the screen data. I did not even have a chance to proceed further.
    Any idea would be appreciated.
    Regards
    SF

    really . though you are ECS mode .
    material master must be there  right ?
    How your SRM PO will reflected ( indeed really creates in ECC i.e copy of srm PO).
    confusion here
    can you create a SC for local material and order a successful PO ?
    i know there is a product check in catalog web services - in SRM product master not necesary but your ECC must have material master right..
    Muthu

  • Doubt about locking of record's in distributed environment...

    i read kumar's comment in my previous thread, he haad mentioned the following code,
    cursor <> is select * from <> where <> for update of <>, so that it will be locked if it was unlocked...
    but assume i have the following part of code
    cursor <> is select * from <> where <>
    begin
    update the records if some condition is found during runtime
    end;
    and this happens to be invoked in a distributed manner, so what will happen if two sessions run the code at the same time, and how is data integrity handled in this case???
    also explain with regard to usage of sequence(S) in a distributed environment...
    Thanks And Regards,
    Vairavan.S

    Oracle will prevent two transactions from simultaneously modifying a row. Oracle can ensure that the database is consistent.
    Many applications need to enforce a more stringent constraint. They need to ensure that committed data isn't accidentally overwritten by another user.
    Session 1
    SELECT's a value of 5
    Session 2
    SELECT's a value of 5
    UPDATE's the value to 6
    COMMIT's
    Session 1
    UPDATE's the value to 7 <- most applications want to tell User 1 that he is overwriting someone else's changes here
    COMMIT's
    If you have an application where people open a record, work with it for a minute, and then save, there is plenty of opportunity for someone else to change the data before the user saves. Allowing the user to overwrite changes he's never seen is often a bad thing-- the user whose changes were overwritten often gets upset if they have to redo their work.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

Maybe you are looking for