Adobe Cluster Locking issues

We have two nodes in the cluster. Adobe is installed on just one node. Locator is running on one node. Experiencing locking issues for temporary diskstore. Below is the error description.
[12/10/14 13:13:44:925 EST] 00000013 webapp   
I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Loading Web Module: dsc.war.
[12/10/14 13:13:44:935 EST] 00000013 WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Will create a new session context for application key default_host/dsc
[12/10/14 13:13:44:963 EST] 00000013 ServletWrappe I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [LiveCycleES4] [/dsc] [UploadServlet]: Initialization successful.
[12/10/14 13:13:44:970 EST] 00000013 ArchiveFileMa A   ArchiveFileManagerImpl:getLocalCacheRootDir():Adobe tmp directory is:/data/exigen_test/PT/jvm/tmp/adobews__-581654660
[12/10/14 13:14:17:041 EST] 00000013 LocalExceptio E   CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "getDomain" on bean "BeanId(LiveCycleES4#adobe-pof.jar#adobe_POFDataDictionaryLocalEJB, null)". Exception data: com.gemstone.gemfire.cache.DiskAccessException: For DiskStore: ReplicatedGuaranteed_POF_DD_CACHE: Could not lock "/data/exigen_test/PT/jvm/tmp/adobews__-581654660/Caching/Data/ReplicatedGuaranteed_POF_D D_CACHE/DRLK_IFReplicatedGuaranteed_POF_DD_CACHE.lk". Other JVMs might have created diskstore with same name using the same directory., caused by java.io.IOException: No locks available
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.createLockFile(DiskStoreImpl.java:1800)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.loadFiles(DiskStoreImpl.java:1920)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:355)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:270)
at com.gemstone.gemfire.internal.cache.DiskStoreImpl.<init>(DiskStoreImpl.java:265)
at com.gemstone.gemfire.internal.cache.DiskStoreFactoryImpl.create(DiskStoreFactoryImpl.java :127)
at com.adobe.livecycle.cache.adapter.GemfireCacheAdapter.createSubRegion(GemfireCacheAdapter .java:1043)
at com.adobe.livecycle.cache.adapter.GemfireCacheAdapter.init(GemfireCacheAdapter.java:234)
at com.adobe.livecycle.cache.adapter.GemfireCacheAdapter.<init>(GemfireCacheAdapter.java:215 )
at com.adobe.livecycle.cache.adapter.CacheAdapterFactory.getCache(CacheAdapterFactory.java:1 03)
at com.adobe.pof.POFUtil.getPOFDataDictionaryCache(POFUtil.java:525)
at com.adobe.pof.adapter.AbstractAdapterContext.getDataDictionaryCache(AbstractAdapterContex t.java:89)
at com.adobe.pof.adapter.AbstractAdapterContext.getDomainFromCache(AbstractAdapterContext.ja va:127)
at com.adobe.pof.adapter.JDBCAdapter.getDomain(JDBCAdapter.java:4436)
at com.adobe.pof.schema.POFDataDictionaryImpl.getDomain(POFDataDictionaryImpl.java:113)
at com.adobe.pof.schema.POFDataDictionaryRemoteBean.getDomain(POFDataDictionaryRemoteBean.ja va:148)
at com.adobe.pof.schema.EJSLocalStatelessadobe_POFDataDictionaryLocalEJB_4137caa5.getDomain( Unknown Source)
at com.adobe.pof.schema.POFDataDictionaryLocalEJBAdapter.getDomain(POFDataDictionaryLocalEJB Adapter.java:69)
at com.adobe.pof.odapi.POFSchemaManagerRemoteBean.getDomain(POFSchemaManagerRemoteBean.java: 577)
at com.adobe.pof.odapi.EJSLocalStatelessadobe_POFSchemaManagerLocalEJB_626825cc.getDomain(Un known Source)
at com.adobe.pof.odapi.POFSchemaManagerLocalEJBAdapter.getDomain(POFSchemaManagerLocalEJBAda pter.java:169)
at com.adobe.idp.dsc.startup.DSCStartupServlet$1.doInTransaction(DSCStartupServlet.java:137)
at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionBMTAdapterBean.doRequiresNew (EjbTransactionBMTAdapterBean.java:218)
at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EJSLocalStatelessEjbTransactionBMTAdapter_ 3af08fdf.doRequiresNew(Unknown Source)
at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvi der.java:133)
at com.adobe.idp.dsc.transaction.impl.DefaultTransactionTemplate.execute(DefaultTransactionT emplate.java:79)
at com.adobe.idp.dsc.startup.DSCStartupServlet.init(DSCStartupServlet.java:132)
at javax.servlet.GenericServlet.init(GenericServlet.java:161)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:342)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:136 6)
at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:618)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:587)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:421)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:422)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:714)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1165)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedAppl icationImpl.java:1369)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:9 67)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java: 771)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$5.run(ApplicationMgrImpl.java:2169)
at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5468)
at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5594)
at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2174)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:389 )
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
  at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.ja va:496)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1702)
Caused by: java.io.IOException: No locks available
        at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:924)
        at java.nio.channels.FileChannel.tryLock(FileChannel.java:973)
        at com.gemstone.gemfire.internal.cache.DiskStoreImpl.createLockFile(DiskStoreImpl.java:1781)
        ... 56 more
Any immediate help would be appreciated to resolve the issue. Thank you.

Similar issue : https://forums.adobe.com/message/6156015#6156015
Check the configuration of temp as well as GDS directories for the cluster : http://www.avoka.com/blog/2008/06/livecycle-directories-global-storagetemp-clustering-and- more/
-Wasil

Similar Messages

  • EOIO cluster lock in JMS sender channel

    Hi All,
    Our production environment is using cluster.
    I have 2  sender JMS channel where EOIO feature has been used.
    Today while monitoring we found one of the cluster node is showing below error
    EOIO cluster lock:com.sap.aii.adapter.jms.eoio has already been acquired for EOIO channel by another cluster node. Therefore channel has been made inactive. Underlying lock manager reported message(if any) as: Cannot lock [20u2026u2026u2026u2026ip address, com.sap.aii.adapter.jms.eoio,c8u2026(channel ID),E]; it is in use by another owner. The lock collision occurred with user.
    We have asked basis to remove the lock and they said that can be removed in NWA system lock.
    But before removing the lock I wanted to understand the following
    1)Why this lock happened, since it is EOIO? ( this issue is not there in other EO communication channels)
    2)Is there any side effect if we delete the lock?
    Appreciate your fast response .

    Hi Michal,
    The warning of EOIO cluster lock is still  there.
    we have 2 clusters, c1 and c2.
    in NWA i can see the lock name *($com.sap.aii.adapter.jms.eoio)* is locked by c1 (2 locks (i.e.2 lock argumnets)) and c2           (1 lock).
    i can understand that , to ensure the EOIO message proccessing the AF locks the queue , but it should theoritically unlock once the message processing completes.But this is not happening in my case.
    Should i try removing one lock? or this is bug.

  • Oracle VM aquire lock issues

    I have been trying to manage an Oracle VM environment (1 Master server, 3 VM servers) for several months. THe main issue we have is that every so often when we have to reboot a VM guest either when the guest is going down or coming up we will see the following error in the master server /var/log/ovs-agent/ovs_root.log file:
    "2011-06-08 22:28:44" ERROR=> OVSPolicyServer.execute_policy(): error. => errcode=00001, errmsg=CDS accquire lock /etc/ovs-agent/db/cluster.lock timeout. locker process is 14070
    StackTrace:
    File "/opt/ovs-agent-2.3/OVSPolicyServer.py", line 38, in execute_policy
    pool_ha_enable = db_load("cluster", "pool_ha_enable", get=True)
    File "/opt/ovs-agent-2.3/OVSCDS.py", line 159, in db_load
    cds = CDS(db_name)
    File "/opt/ovs-agent-2.3/OVSCDS.py", line 119, in __init__
    raise CDSLockTimeout(ERR_CDS_LOCK_TIMOUT, {
    The only way to get the VM guest to come back online is to shutdown all other VM guests running on the assigned VM server, reboot the VM server, then try again.
    I have tried many different avenues to get a resolution:
    1. Enabled the server pool/vm servers/vmguests to have HA. This was a disaster because every time the aforementioned error occurred the Master server would be affected and bring down the entire environment.
    2. Rebuilt the Oracle VM DB (remove all files in /etc/ovs-agent/db/ and restart/add servers to server pool)
    3. Disable HA and rebuild DB again.
    Still these errors occur and is really causing many customer issues with constant maintenance reboots. Has anyone seen this and discovered a solution?

    Hi,
    is your storage repository on NFS?
    And do you expirence short neworkt outage on the NFS storage maybe, before this error occurs?
    You can try with the following workaround:
    Stop all OVS-Agents: /etc/init.d/ovs-agent stop --disable-nowayout
    Delete the locks on the master: rm /OVS/.ovs-agent/db/*.lock
    Start all OVS_Agents: /etc/init.d/ovs-agent start
    Regards
    Sebastian
    Edited by: ssolbach on Jun 9, 2011 6:06 AM

  • Adobe reader locks up when attempting to print drawing

    Every time I try to print a floor plan or drawing to plotter Adobe Reader locks up. I have uninstalled and reinstalled adobe. Any suggestions?

    Hi,
    Are you still facing this issue. When you say drawing what is the format of that file you are trying to open in Adobe Reader?
    Regards,
    Ajlan Huda.

  • Adobe creative cloud issue to download the apps

    Adobe creative cloud issue to download the apps. Please find attached the error message below:
    we are faceing issue in woendow 7

    Hi,
    Regarding the download error issue please refer the following forum thread.
    https://forums.adobe.com/thread/1156604
    Hope this helps.
    Regards,
    Sumit Singh

  • Report Designer Locking issue

    Hi,
       We have found locking issue while accessing same report(Created in Report Designer) by multi users at a time .
       Has anyone face this issue and How to fix it. It's major concern because same report can be accessed by multiusers at  same time
    Thanks
    Siva

    Siva,
    only one person at a time has permission to open the report in the Report designer - just like with Queries in the query designer.  This should not have any effect on you actually executing the report in the portal - multiple people can do it then.
    this is a security issue that other software vendors use as well - just like you cannot open any MS Office files on the network for editing that someone has opened already.
    Thanks

  • Locking issue in workflow with conseutive database update

    Dear Workflowers,
    We are in ECC 5.0 and release 6.40. We went live for SAP in February and we are currently using workflow in PLM module for DMS and ECM.
    We have been facing this locking issue randomly happened in our production and quality system. The error from workflow log is "Document XXXX is locked by WF-BATCH". I have two steps in workflow one is to update the document user( from originator to editor with custom BO "zdraw" new method "setuser") and the next step is to update the document status( BO "zdraw" "setstatus" method which inherited form standard BO "draw").  
    I have tried to use "wait" (1st try) , statements  "BAPI_DOCUMENT_ENQUEUE", "BAPI_DOCUMENT_DEQUEUE" (2nd try) and  "Commit work and wait" (3rd try) to add one step in between, however the issue remains.
    The other question I had was we need to write "commit work" when we use BAPI to perform database update in the ABAP program. But I don't see "commit work" in the method of BO(for example "setstatus" in "draw" object) which performs database update. How does workflow perform DB update properly without "commit work" by referencing standard method?
    Could anyone please share your expertise with the issue I am facing?
    Thank you in advance,
    Merta

    Hi Merta,
    Regarding COMMITs: theoretically you should never use COMMIT statements because the Workflow runtime handles that - the transaction of executing the task is the LUW, not your method. By adding COMMIT WORK you are also committing the workflow task execution.
    In practice however there are the occasional exceptions where something just won't work without an explicit commit - but the theory remains that you should always try it without.
    Regarding your problem, the one way to be certain that a DB update is complete is to use a terminating event - either through change documents or status management.
    Failing that, you can write a wrapper method for SETSTATUS that does something like:
    do 10 times.
      try to lock it.
      if success.
        unlock.
        swc_call_method self 'SetStatus' container.
        set success flag.
      else.
        wait up to 3 seconds.
      endif.
    enddo.
    if no success, raise exception.
    Cheers,
    Mike

  • Locking Issue in Planning DSO in SAP BW 7.3(Integrated Planning)

    Hi Experts,
    We have built Aggregation Level on Direct Update (planning enabled) DSO and used the same in the input ready queries.( Its complete Manual planning - new row addition feature in WAD).
    We have 5 characteristic and one key figure for planning.
    We are facing lock issue while planning the data i.e. when one user is planning, other user cannot plan.
    The lock relevant characteristic is Column A and the same has been added to the Lock Characteristic tab(RSPLSE) of the infoprovider. The input ready query is also restricted with a variable on Column A (manual input single variable- mandatory).
    While the user opens the Planning Layout and plans the data, we can see lock entry in RSPLSE(locks tab) for the Column A selection in the infoprovider, yet if another user is trying to plan for data for some other selection of Column A, a lock entry in RSPLSE is shown with the selection but it errors in thelayout with lock on the infoprovider and cannot plan the data.
    Any inputs will be of great help.
    Regards,
    Priyanka

    Post is closed.
    Refer http://scn.sap.com/thread/3564212 for the solution.
    Regards,
    Priyanka

  • Locking Issue in Planning DSO- SAP BW 7.3 Integarted Planning

    Hi Experts,
    We have built Aggregation Level on Direct Update (planning enabled) DSO and used the same in the input ready queries.( Its complete Manual planning - new row addition feature in WAD).
    We have 5 characteristic and one key figure for planning.
    We are facing lock issue while planning the data i.e. when one user is planning, other user cannot plan.
    The lock relevant characteristic is Column A and the same has been added to the Lock Characteristic tab(RSPLSE) of the infoprovider. The input ready query is also restricted with a variable on Column A (manual input single variable- mandatory).
    While the user opens the Planning Layout and plans the data, we can see lock entry in RSPLSE(locks tab) for the Column A selection in the infoprovider, yet if another user is trying to plan for data for some other selection of Column A, a lock entry in RSPLSE is shown with the selection but it errors in thelayout with lock on the infoprovider and cannot plan the data.
    Any inputs will be of great help.
    Regards,
    Priyanka

    Found the answer.
    We had used the Planning Function directly in the WAD layout before saving data without filter.(basically to check some condition).
    Created the Planning Sequence with Column A filter on the Aggregation level and used the same sequence before saving the data in WAD
    Issue resolved.
    Consider this post as closed.
    Regards,
    Priyanka

  • [ADF-11.1.2] Locking issue with SQL 92

    I see one Locking issue with SQL92 Oracle ADF Application.
    ADF Version: [ADF-11.1.2]
    Database: Oracle 10g Express Edition
    Situation 1:
    With Following setting:
    File: Application Resource > Description > ADF META-INF > adf-config.xml
        <startup>
          <amconfig-overrides>
            <config:Database jbo.SQLBuilder="SQL92" jbo.locking.mode="optimistic"/>
          </amconfig-overrides>
        </startup>I have a page showing record 'x' of view object. I open same record on another page. Now I have same record showing on two different tabs of browser.
    1. I modify first record and save it. It worked... Got commited to database.
    2. I goto second tab and modify same record and tried to same it. It throws me an error - Another user has changed the row with primary key oracle.jbo.Key[38 ] . As expected...
    3. I then, reopen the same record on 3rd tab of browser. Modify it and tried to save it. It just hang... as if it is processing the record endlessly.
    If I see the Log:
    <BaseSQLBuilderImpl> <doEntitySelectForAltKey> [312] BaseSQLBuilderImpl Executing doEntitySelect ... (true)
    <BaseSQLBuilderImpl> <doEntitySelectForAltKey> [313] Generating new LOCK statement
    <BaseSQLBuilderImpl> <buildSelectString> [314] Built select: 'SELECT ID, CI_ID, COLUMN_NAME, DISPLAY_COLUMN_NAME, COLUMN_VALUE, CREATE_DATE, CREATE_BY FROM ESUSER.CI_AUDIT'
    <BaseSQLBuilderImpl> <doEntitySelectForAltKey> [315] Executing LOCK "SELECT ID, CI_ID, COLUMN_NAME, DISPLAY_COLUMN_NAME, COLUMN_VALUE, CREATE_DATE, CREATE_BY FROM ESUSER.CI_AUDIT WHERE ID=? FOR UPDATE"
    <BaseSQLBuilderImpl> <bindWhereAttrValue> [316] Where binding param 1: 38
    That's it.. nothing happens further.. If I execute above query on SQL Worksheet, it doesn't come up with the result. Just hang for something...
    SELECT ID, CI_ID, COLUMN_NAME, DISPLAY_COLUMN_NAME, COLUMN_VALUE, CREATE_DATE, CREATE_BY FROM ESUSER.CI_AUDIT WHERE ID='38' FOR UPDATE I can execute above query for other record of same table but not '38'. Even if I fire commit command to database, it is not working.
    I have to restart the database services to bring everything to normal state.
    Situation 2:
    With Oracle as Database :
        <startup>
          <amconfig-overrides>
            <config:Database jbo.SQLBuilder="Oracle" jbo.locking.mode="optimistic"/>
          </amconfig-overrides>
        </startup>Everything is working file. i.e. at step 3, record is getting modified successfully with following log:
    <OracleSQLBuilderImpl> <doEntitySelectForAltKey> [27] OracleSQLBuilder Executing doEntitySelect on: ESUSER.CI_AUDIT (true)
    <ADFLogger> <begin> Entity read all attributes
    <OracleSQLBuilderImpl> <buildSelectString> [28] Built select: 'SELECT ID, CI_ID, COLUMN_NAME, DISPLAY_COLUMN_NAME, COLUMN_VALUE, CREATE_DATE, CREATE_BY FROM ESUSER.CI_AUDIT CIAudit'
    <OracleSQLBuilderImpl> <doEntitySelectForAltKey> [29] Executing LOCK...SELECT ID, CI_ID, COLUMN_NAME, DISPLAY_COLUMN_NAME, COLUMN_VALUE, CREATE_DATE, CREATE_BY FROM ESUSER.CI_AUDIT CIAudit WHERE ID=? FOR UPDATE NOWAIT
    <ADFLogger> <addContextData> Entity read all attributes
    <OracleSQLBuilderImpl> <bindWhereAttrValue> [30] Where binding param 1: 38
    <ADFLogger> <addContextData> Entity read all attributes
    <ADFLogger> <end> Entity read all attributes
    <ADFLogger> <end> Lock Entity
    <ADFLogger> <begin> Before posting the entity's changes
    <ADFLogger> <begin> Updating audit columns
    <ADFLogger> <end> Updating audit columns
    <ADFLogger> <end> Before posting the entity's changes
    <OracleSQLBuilderImpl> <doEntityDML> [31] OracleSQLBuilder Executing, Lock 2 DML on: ESUSER.CI_AUDIT (Update)
    <OracleSQLBuilderImpl> <buildUpdateStatement> [32] UPDATE buf CIAudit>#u SQLStmtBufLen: 210, actual=60
    <OracleSQLBuilderImpl> <doEntityDML> [33] UPDATE ESUSER.CI_AUDIT CIAudit SET COLUMN_VALUE=? WHERE ID=?
    <ADFLogger> <begin> Entity DML
    <OracleSQLBuilderImpl> <bindUpdateStatement> [34] Update binding param 1: cip7ri1
    <OracleSQLBuilderImpl> <bindWhereAttrValue> [35] Where binding param 2: 38
    <ADFLogger> <addContextData> Entity DML
    <ADFLogger> <end> Entity DML
    Can any one please tell me, what is the issue with SQL92 setting ?
    Edited by: Anandsagar Sah on Mar 11, 2012 8:10 AM

    The framework works correctly in the Situation #1. Please, note that the locking statement in this case is "SELECT ... FOR UPDATE", but not "SELECT ... FOR UPDATE NOWAIT" (as it is in the Situation #2). When you entered the 2nd tab and tried to update the row, then the framework executed the locking statement and the row was locked (and it remained locked because the framework detected that another user had modified the row, so it stopped the processing and no COMMIT operation was executed). When you entered the 3rd tab and tried to update the row, then the framework tried to lock the row againg, but the locking statement was blocked by the existign lock and it started waiting on the lock from the 2nd tab. So this is expected behaviour.
    The interesting question is why you do not get any error in the Situation #2. In my opinion you should get an error because the locking statement from the 3rd tab should fail immediately (because the row should have been locked from the 2nd tab and the locking statement is with NOWAIT option). I suspect that when the DB is Oracle and you use Oracle SQLBuilder, then the ADF issues a DB savepoint at the beginning of the DML operation and rolls back to the savepoint is a case of some failure, so the 2nd tab has not left any lock. You can check this by setting on SQL trace on the DB server.
    Dimitar

  • Purchase order locking issue

    Hi ,
    We are processing IDoc. The IDoc FM does GR of STO by using MIGO transaction via BDC , then FM also does GR of STO Delivery number by using VL02N transaction . MIGO transaction is successful but while doing GR of STO Delivery number via VL02N we are getting an error like ' Purchase order XXXXXXXXXX is currently locked by user XXXXXX .
    This happens if we process the IDoc in background . If I process the IDoc in foreground  by putting breakpoint at MIGO and VL02N , it executes successfully .
    I feel it is a locking issue . I tried using FM DEQUEUE_ALL , MM_DEQUEUE_DOCUMENT after MIGO but it did not work out .
    Please suggest for any pointers on this locking issue .
    Regards,
    Kiran.

    Forget about WAIT statement.
    Use:
    set update task local.
    ...before starting MIGO.
    regards

  • FOR UPDATE cursor is causing Blocking/ Dead Locking issues

    Hi,
    I am facing one of the complex issues regarding blocking / dead locking issues. Please find below the details and help / suggest me the best approach to ahead with that.
    Its core Investment Banking Domain, in Our Day to day Business we are using many transaction table for processing trades and placing the order. In specific there are two main transaction table
    1)     Transaction table 1
    2)     Transaction table 2
    These both the tables are having huge amount of data. In one of our application to maintain data integrity (During this process we do not want other users to change these rows), we have placed SELECT …………….. FOR UPDATE CURSOR on these two table and we have locked all the rows during the process. And we have batch jobs (shell scripts ) , calling this procedure , we will be running 9 times per day 1 hrs each start at 7:15AM in the morn finish it up in the eve 5PM . Let’s say. The reason we run the same procedure multiple times is, our business wants to know the voucher before its finalized. Because there is a possibility that order can be placed and will be updated/cancelled several times in a single day. So at the end of the day , we will be sending the finalized update to our client.
    20 07 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 08 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 09 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 10 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 11 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 12 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 13 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 14 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 15 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 16 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    20 17 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
    Current Program will look like:
    App_Prc_1
    BEGIN
    /***** taking the order details (source) and will be populate into the table ****/
    CURSOR Cursor_Upload IS
    SELECT col1, col2 … FROM Transaction table1 t 1, Source table 1 s
    WHERE t1.id_no = t2.id_no
    AND t1.id_flag = ‘N’
    FOR UPDATE OF t1.id_flag;
    /************* used for inserting the another entry , if theres any updates happened on the source table , for the records inserted using 1st cursor. **************/
    CURSOR cursor_update IS
    SELECT col1, col2 … FROM transaction table2 t2 , transaction table t1
    WHERE t1.id_no = t2.id_no
    AND t1.id_flag = ‘Y’
    AND t1.DML_ACTION = ‘U’,’D’ -- will retrieve the records which are updated and deleted recently for the inserted records in transaction table 1 for that particular INSERT..
    FOR UPDATE OF t1.id_no,t1.id_flag;
    BLOCK 1
    BEGIN
    FOR v_upload IN Cursor_Upload;
    LOOP
    INSERT INTO transaction table2 ( id_no , dml_action , …. ) VALUES (v_upload.id_no , ‘I’ , … ) RETURNING v_upload.id_no INTO v_no -- I specify for INSERT
    /********* Updating the Flag in the source table after the population ( N into Y ) N  order is not placed yet , Y  order is processed first time )
    UPDATE transaction table1
    SET id_FLAG = ‘Y’
    WHERE id_no = v_no;
    END LOOP;
    EXCEPTION WHEN OTHER THEN
    DBMS_OUTPUT.PUT_LINE( );
    END ;
    BLOCK 2
    BEGIN -- block 2 starts
    FOR v_update IN Cursor_Update;
    LOOP;
    INSERT INTO transaction table2 ( id_no ,id_prev_no, dml_action , …. ) VALUES (v_id_seq_no, v_upload.id_no ,, … ) RETURNING v_upload.id_no INTO v_no
    UPDATE transaction table1
    SET id_FLAG = ‘Y’
    WHERE id_no = v_no;
    END LOOP;
    EXCEPTION WHEN OTHER THEN
    DBMS_OUTPUT.PUT_LINE( );
    END; -- block2 end
    END app_proc; -- Main block end
    Sample output in Transaction table1 :
    Id_no | Tax_amt | re_emburse_amt | Activ_DT | Id_Flag | DML_ACTION
    01 1,835 4300 12/JUN/2009 N I ( these DML Action will be triggered when ever if theres in any DML operation occurs in this table )
    02 1,675 3300 12/JUN/2009 Y U
    03 4475 6500 12/JUN/2009 N D
    Sample output in Transaction table2 :
    Id_no | Prev_id_no Tax_amt | re_emburse_amt | Activ_DT
    001 01 1,835 4300 12/JUN/2009 11:34 AM ( 2nd cursor will populate this value , bcoz there s an update happened for the below records , this is 2nd voucher
    01 0 1,235 6300 12/JUN/2009 09:15 AM ( 1st cursor will populate this record when job run first time )
    02 0 1,675 3300 12/JUN/2009 8:15AM
    003 03 4475 6500 12/JUN/2009 11:30 AM
    03 0 1,235 4300 12/JUN/2009 10:30 AM
    Now the issues is :
    When these Process runs, our other application jobs failing, because it also uses these main 2 tranaction table. So dead lock is detecting in these applications.
    Solutin Needed :
    Can anyone suggest me , like how can rectify this blocking /Locking / Dead lock issues. I wants my other application also will use this tables during these process.
    Regards,
    Maran

    hmmm.... this leads to a warning:
    SQL> ALTER SESSION SET PLSQL_WARNINGS='ENABLE:ALL';
    Session altered.
    CREATE OR REPLACE PROCEDURE MYPROCEDURE
    AS
       MYCOL VARCHAR(10);
    BEGIN
       SELECT col2
       INTO MYCOL
       FROM MYTABLE
       WHERE col1 = 'ORACLE';
    EXCEPTION
       WHEN PIERRE THEN
          NULL;
    END;
    SP2-0804: Procedure created with compilation warnings
    SQL> show errors
    Errors for PROCEDURE MYPROCEDURE:
    LINE/COL                                                                          ERROR
         12/9        PLW-06009: procedure “MYPROCEDURE” PIERRE handler does not end in RAISE or RAISE_APPLICATION_ERROR
         :)

  • Delivery Document Lock Issue in Z Program using BAPI(s)

    Hi,
    I am a functional consultant posting this in ABAP forum. We have developed a Z-Program.
    User enters the Service Order no. in this program and executes it.
    The program then updates the following linked documents in the following sequence using BAPI(s)
    Outbound Delivery
    Service Notification
    Service Order (This is done using BDC of IW32)
    It sometimes happens that once the Program reaches the iw32 bdc, it gives error "Delivery XXXXXXXX is locked by User ID XXXXXX"
    The user ID being that of the person executing the transaction.
    This happens like 3 out of 100 times in the Production Server. We are unable to replicate this issue in Quality or Development Server.
    We believe it to be a performance issue (database updating is slow)
    However Client wants us to investigate the Program and see what is possible.
    We are thinking of putting WAIT after the BAPI(s) of the Delivery Update.
    Any suggestions, please help.

    Hello Suhas,
    Thanks for the reply.
    These documents are seperate objects but are interlinked. i.e I can see in the Document Flow for Service Order, which is the Service Notification and Outbound Delivery for the Material.
    Also, If I'm in change mode in the Outbound Delivery, I cannot go into the change mode of the Service Order.
    Yes, we are using BAPI_TRANSACTION_COMMIT after each BAPI in the Program. We have used the Wait Statement in all BAPIs for the Service Notification. These BAPI(s) are before the IW32 BDC.
    I am copying code from one of the commit BAPI(s)
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                    EXPORTING
                      wait = c_x.
                  WAIT UP TO 1 SECONDS.
    I noticed in the Outbound Delivery BAPI(s) (two of them) don't have the wait in the BAPI_TRANSACTION_COMMIT. Hence I though if we add this, could this resolve the issue?
    Service Order gets updated last through BDC for IW32 after all the BAPI(s) are executed for Outbound Delivery and Service Notification.
    I understand WAIT would increase processing time, that is why I am posting this to know if we have some other solution available for such a lock issue.

  • I have a DVD Acrobat Pro 9. I upgraded laptops and trying to install but the DVD is not readable. How can I get a new DVD or Download Acrobat Pro 1. The product is registered and I have the serial number. PS: Contacting Adobe on this issue is impossible..

    I have a DVD Acrobat Pro 9. I upgraded laptops and trying to install but the DVD is not readable. How can I get a new DVD or Download Acrobat Pro 1. The product is registered and I have the serial number. PS: Contacting Adobe on this issue is impossible... direct support stinks.

    Download AA 9 Pro from http://helpx.adobe.com/acrobat/kb/acrobat-downloads.html. Make a new backup for your archive. You might also take the DVD to your library to see if it is a drive problem. You might also carefully clean the DVD with water and soap (do not use anything that would scratch the surface or you have destroyed it for sure) and see if that solves the problem. This is particularly an issue if you have finger prints or other crud on the DVD. However, it could also be a bad drive as I mentioned. Hopefully the download solves your problem in any case (I would backup the download to CD and/or backup HD).

  • Row locking issue with version enabled tables

    I've been testing the effect of locking in version enabled tables in order to assess workspace manager restrictions when updating records in different workspaces and I have encountered a locking problem where I can't seem to update different records of the same table in different sessions if these same records have been previously updated & committed in another workspace.
    I'm running the tests on 11.2.0.3.  I have ROW_LEVEL_LOCKING set to ON.
    Here's a simple test case (I have many other test cases which fail as well but understanding why this one causes a locking problem will help me understand the results from my other test cases):
    --Change tablespace names as required
    create table t1 (id varchar2(36) not null, name varchar2(50) not null) tablespace XXX;
    alter table t1 add constraint t1_pk primary key (id) using index tablespace XXX;
    exec dbms_wm.gotoworkspace('LIVE');
    insert into t1 values ('1', 'name1');
    insert into t1 values ('2', 'name2');
    insert into t1 values ('3', 'name3');
    commit;
    exec dbms_wm.enableversioning('t1');
    exec dbms_wm.gotoworkspace('LIVE');
    exec dbms_wm.createworkspace('TESTWSM1');
    exec dbms_wm.gotoworkspace('TESTWSM1');
    --update 2 records in a non-LIVE workspace in preparation for updating in different workspaces later
    update t1 set name = name||'changed' where id in ('1', '2');
    commit;
    quit;
    --Now in a separate session (called session 1 for this example) run the following without committing the changes:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --Now in another session (session 2) update a different record from the same table.  The below update will hang waiting on the transaction in session 1 to complete (via commit/rollback):
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    I'm surprised records of different ids can't be updated in different sessions i.e. why does session 1 lock the update of record 2 which is not being updated anywhere else.  I've tried this using different non-LIVE workspaces with similar results.  I've tried changing table properties e.g. initrans with and still get a lock.  The changes to table properties are successfully propagated to the _LT tables but not all the related workspace manager tables created for table T1 above.  I'm not sure if this is the issue.
    Note an example of the background workspace manager query that may create the lock is something like:
    UPDATE TESTWSM.T1_LT SET LTLOCK = WMSYS.LT_CTX_PKG.CHECKNGETLOCK(:B6 , LTLOCK, NEXTVER, :B3 , 0,'UPDATE', VERSION, DELSTATUS, :B5 ), NEXTVER = WMSYS.LT_CTX_PKG.GETNEXTVER(NEXTVER,:B4 ,VERSION,:B3 ,:B2 ,683) WHERE ROWID = :B1
    Any help with this will be appreciated.  Thanks in advance.

    Hi Ben,
    Thanks for your quick response.
    I've tested your suggestion and it does work with 2 workspaces but the same problem is enountered when additional workspaces are created. 
    It seems if multiple workspaces are used in a multi user environment, locks will be inevitable which will degrade performance especially if a long transaction is used. 
    Deadlocks can also be encountered where eventually one of the sessions is rolled back by the database. 
    Is there a way of avoiding this e.g. by controlling the creation of workspaces and table updates?
    I've updated my test case below to demonstrate the extra workspace locking issue.
    --change tablespace name as required
    create table t1 (id varchar2(36) not null, name varchar2(50) not null) tablespace XXX;
    alter table t1 add constraint t1_pk primary key (id) using index tablespace XXX;
    exec dbms_wm.gotoworkspace('LIVE');
    insert into t1 values ('1', 'name1');
    insert into t1 values ('2', 'name2');
    insert into t1 values ('3', 'name3');
    commit;
    exec dbms_wm.enableversioning('t1');
    exec dbms_wm.gotoworkspace('LIVE');
    exec dbms_wm.createworkspace('TESTWSM1');
    exec dbms_wm.gotoworkspace('TESTWSM1');
    update t1 set name = name||'changed' where id in ('1', '2');
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    --end of original test case, start of additional workspace locking issue:
    Session 1:
    rollback;
    Session 2:
    rollback;
    --update record in both workspaces
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '3';
    commit;
    exec dbms_wm.gotoworkspace('TESTWSM1');
    update t1 set name = 'changed' where id = '3';
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;
    exec dbms_wm.gotoworkspace('LIVE');
    exec dbms_wm.createworkspace('TESTWSM2');
    exec dbms_wm.gotoworkspace('TESTWSM2');
    update t1 set name = name||'changed2' where id in ('1', '2');
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --this now gets locked out by session 1
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;
    --update record 3 in TESTWSM2
    exec dbms_wm.gotoworkspace('TESTWSM2');
    update t1 set name = 'changed' where id = '3';
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --this is still locked out by session 1
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;
    --try updating LIVE
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '3';
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --this is still locked out by session 1
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;
    --try updating TESTWSM1 workspace too - so all have been updated since TESTWSM2 was created
    exec dbms_wm.gotoworkspace('TESTWSM1');
    update t1 set name = 'changed' where id = '3';
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --this is still locked out by session 1
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;
    --try updating every workspace afresh
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changedA' where id = '3';
    commit;
    exec dbms_wm.gotoworkspace('TESTWSM1');
    update t1 set name = 'changedB' where id = '3';
    commit;
    exec dbms_wm.gotoworkspace('TESTWSM2');
    update t1 set name = 'changedC' where id = '3';
    commit;
    Session 1:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '1';
    --this is still locked out by session 1
    session 2:
    exec dbms_wm.gotoworkspace('LIVE');
    update t1 set name = 'changed' where id = '2';
    Session 1:
    rollback;
    Session 2:
    rollback;

Maybe you are looking for

  • Problem Using HTTP Dispatcher -- Could Not able to get the data in JSP

    Hi, I am using HTTP Dispatcher to send my events to particular URL which is a JSP page. I am trying to populate the received event through URL and populate to a oracle data base. But could not able to get the data in Oracle database. Code is : <h1>JS

  • Parenthesis within a select query.

    I have a doubt as whether i can include Parenthesis within a select query as below:- SELECT C.CITY_CODE,A.DOCUMENT_TYPE,SUM(A.INSTRUMENT_AMounT) FROM ppbs_RECEIPT_HEADER A,ppbs_DISTRIBUTOR_MASTER C WHERE A.DISTRIBUTOR_ID = C.DISTRIBUTOR_ID AND ( A.ST

  • CONNECT -TIME FAILOVER ERROR IN ORACLE 10G ENTERPRISE MANAGER

    Hi All, Please can anyone explain why I am getting this error and how to fix it? I was trying this exercise to create a backup LISTENER to support a connect-time failover in Enterprise manager.The steps were .1)I clicked the Listener's link on Databa

  • RH9 hangs while generating printed doc

    I was generating a printed doc and left my desk. When I came back, the laptop had gone to sleep. When I woke it, it was stuck on the last part, Updating Index. I let it go for a while (the progress bar was showing that it was almost done and still pr

  • SNC with SAPRouter configuration for Third party company

    Hi expers, Need your advise for my below scenario. We are running SAP on IBM i. My question is about outside world connectivity with encryption mechanism to SAP AS. As of now , we are not using SNC either for internal / external network connectivity