Deadlock in KMC_DBRM_TMPNODES

Hello,
We have built a WebDynpro application using KMC module, and integrated in the EP.
Our systems is based on Oracle, SPS16 and patch #3 for KMC. The server has 1 Java dispatcher and 2 server processes.
Our application stores data in a dedicated CM Repository, and searches resources matching Predefined Properties using the "com.sapportals.wcm.repository.manager.cm.CmPropertySearchManager"Property Search Manager.
When I perform a load test with 20 concurrent users, I get the following exception :
#1.5#00E08131AFB2005D0000001500000CDC00041E7F1A669B41#1159431159410#com.sap.sql.jdbc.direct.DirectPreparedStatement#sap.com/tcwddispwda#com.sap.sql.jdbc.direct.DirectPreparedStatement#rise_eu1#53####121216d04ec911db933300e08131afb2#ID\#(J2EE4659200)ID0963799650DB11903176495300471993End.WID1159341490666##0#0#Error#1#/System/Database/sql/jdbc/direct#Java#com.sap.sql_0003##SQL error occurred on connection KM4:nwb:SAPNWBDB: code=60, state="61000", message="ORA-00060: deadlock detected while waiting for resource
SQL statement is "DELETE FROM "KMC_DBRM_TMPNODES"".#5#60#61000#ORA-00060: deadlock detected while waiting for resource
#KM4:nwb:SAPNWBDB#DELETE FROM "KMC_DBRM_TMPNODES"#
#1.5#00E08131AFB2005D0000001600000CDC00041E7F1A66A875#1159431159410#com.sap.sql.jdbc.direct.DirectPreparedStatement#sap.com/tcwddispwda#com.sap.sql.jdbc.direct.DirectPreparedStatement#rise_eu1#53####121216d04ec911db933300e08131afb2#ID\#(J2EE4659200)ID0963799650DB11903176495300471993End.WID1159341490666##0#0#Error##Plain###java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource
     at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
     at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
     at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:589)
     at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1957)
     at oracle.jdbc.ttc7.TTC7Protocol.executeFetch(TTC7Protocol.java:975)
     at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2187)
     at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2063)
     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2922)
     at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:644)
     at com.sap.sql.jdbc.basic.BasicPreparedStatement.executeUpdate(BasicPreparedStatement.java:103)
     at com.sap.sql.jdbc.oracle.Oracle9iPreparedStatement.executeUpdate(Oracle9iPreparedStatement.java:465)
     at com.sap.sql.jdbc.direct.DirectPreparedStatement.executeUpdate(DirectPreparedStatement.java:311)
     at com.sap.sql.jdbc.common.CommonPreparedStatement.executeUpdate(CommonPreparedStatement.java:314)
     at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:240)
     at com.sapportals.wcm.repository.manager.cm.persistence.commonjdbc.PersistenceCommonJDBC.executeQuery(PersistenceCommonJDBC.java:849)
     at com.sapportals.wcm.repository.manager.cm.CmPropertySearchManager.execute(CmPropertySearchManager.java:86)
Is that a known bug of KMC ?
Have you already met this problem ?
Best Regards,
Nicolas

Hi Nicolas,
I tried to reproduce your description with automated testcases for loadtesting the property search in SPS20. But up to now the tests all succeeded. So I think I need some more input from you.
<b>*</b> In your test scenario: Do the ProertySearches fail or do they recover from the described exception and deliver the correct serach result anyway?
<b>*</b> What persistence mode are you using in your CM repository?
<b>*</b> Are there any services active on that repository? Can you reproduce the failure if you turn the services off?
<b>*</b> Are there any other processes working on your CM repository while you are testing?
<b>*</b> How large is the hierarchy scope that is covered by each of your search requests? Do they overlap?
<b>*</b> Can you please state what the query expression looks like that you use for testing?
Best regards,
Michael

Similar Messages

  • Error-Code: ora-4020 Deadlock error, while updating a record

    Hello!
    Is it possible to get a deadlock error when two or more users try to update the same record simultaneously? And what would be the best solution to circumvent this?
    Thanks
    Your help is appreciated.

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by ( vidya):
    Hello Vidhya,
    Issue either Commit or Rollback without much delay once the statement(s) is/are executed.
    vmkrish
    [email protected]
    Is it possible to get a deadlock error when two or more users try to update the same record simultaneously? And what would be the best solution to circumvent this?
    Thanks
    Your help is appreciated.<HR></BLOCKQUOTE>
    null

  • ORA-00060: Deadlock detected

    I getting error as "ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/.................". Following are my observations on the occurence of this error.
    The deadlock is encountered first time when trying to login to applications. I have R12 vision instance on linux.
    Following the content of the alert_VIS.log file
    Mon Jun 15 04:41:41 2009
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 3
    Using LOG_ARCHIVE_DEST_1 parameter default value as /d01/oracle/VIS/db/tech_st/10.2.0/dbs/arch
    Autotune of undo retention is turned on.
    IMODE=BR
    ILAT =44
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    ksdpec: called for event 13740 prior to event group initialization
    Starting up ORACLE RDBMS Version: 10.2.0.3.0.
    System parameters with non-default values:
    tracefiles_public = TRUE
    processes = 200
    sessions = 400
    timed_statistics = TRUE
    shared_pool_size = 419430400
    shared_pool_reserved_size= 41943040
    nls_language = american
    nls_territory = america
    nls_sort = binary
    nls_date_format = DD-MON-RR
    nls_numeric_characters = .,
    nls_comp = binary
    nls_length_semantics = BYTE
    sga_target = 1073741824
    control_files = /d01/oracle/VIS/db/apps_st/data/cntrl01.dbf, /d01/oracle/VIS/db/apps_st/data/cntrl02.dbf, /d01/oracle/VIS/db/apps_st/data/cntrl03.dbf
    db_block_checksum = TRUE
    db_block_size = 8192
    compatible = 10.2.0
    log_buffer = 14251008
    log_checkpoint_interval = 100000
    log_checkpoint_timeout = 1200
    db_files = 512
    log_checkpoints_to_alert = TRUE
    dml_locks = 10000
    undo_management = AUTO
    undo_tablespace = APPS_UNDOTS1
    db_block_checking = FALSE
    O7_DICTIONARY_ACCESSIBILITY= FALSE
    session_cached_cursors = 500
    utl_file_dir = /usr/tmp, /usr/tmp, /d01/oracle/VIS/db/tech_st/10.2.0/appsutil/outbound/VIS_oracleebsr12, /usr/tmp
    plsql_native_library_dir = /d01/oracle/VIS/db/tech_st/10.2.0/plsql/nativelib
    plsql_native_library_subdir_count= 149
    plsql_code_type = native
    plsql_optimize_level = 2
    job_queue_processes = 2
    systemtrig_enabled = TRUE
    cursor_sharing = EXACT
    parallel_min_servers = 0
    parallel_max_servers = 8
    background_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump
    user_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump
    max_dump_file_size = 20480
    core_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/cdump
    db_name = VIS
    open_cursors = 600
    ifile = /d01/oracle/VIS/db/tech_st/10.2.0/dbs/VIS_oracleebsr12_ifile.ora
    sortelimination_cost_ratio= 5
    btree_bitmap_plans = FALSE
    fastfull_scan_enabled = FALSE
    sqlexecprogression_cost= 2147483647
    likewith_bind_as_equality= TRUE
    pga_aggregate_target = 1073741824
    workarea_size_policy = AUTO
    optimizer_secure_view_merging= FALSE
    aq_tm_processes = 1
    olap_page_pool_size = 4194304
    Mon Jun 15 04:42:05 2009
    WARNING:Oracle instance running on a system with low open file descriptor
    limit. Tune your system to increase this limit to avoid
    severe performance degradation.
    PSP0 started with pid=3, OS id=6824
    PMON started with pid=2, OS id=6822
    MMAN started with pid=4, OS id=6826
    DBW0 started with pid=5, OS id=6828
    CKPT started with pid=7, OS id=6832
    SMON started with pid=8, OS id=6834
    RECO started with pid=9, OS id=6836
    CJQ0 started with pid=10, OS id=6838
    LGWR started with pid=6, OS id=6830
    MMON started with pid=11, OS id=6840
    MMNL started with pid=12, OS id=6842
    Mon Jun 15 04:42:19 2009
    ALTER DATABASE MOUNT
    Mon Jun 15 04:42:25 2009
    Setting recovery target incarnation to 2
    Mon Jun 15 04:42:27 2009
    Successful mount of redo thread 1, with mount id 243370348
    Mon Jun 15 04:42:27 2009
    Database mounted in Exclusive Mode
    Completed: ALTER DATABASE MOUNT
    Mon Jun 15 04:42:28 2009
    ALTER DATABASE OPEN
    Mon Jun 15 04:42:48 2009
    Thread 1 opened at log sequence 16
    Current log# 3 seq# 16 mem# 0: /d01/oracle/VIS/db/apps_st/data/log3.dbf
    Successful open of redo thread 1
    Mon Jun 15 04:42:48 2009
    MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
    Mon Jun 15 04:42:48 2009
    SMON: enabling cache recovery
    Mon Jun 15 04:42:48 2009
    Incremental checkpoint up to RBA [0x10.a779.0], current log tail at RBA [0x10.a779.0]
    Mon Jun 15 04:43:01 2009
    Successfully onlined Undo Tablespace 18.
    Mon Jun 15 04:43:01 2009
    SMON: enabling tx recovery
    Mon Jun 15 04:43:04 2009
    Database Characterset is UTF8
    Mon Jun 15 04:43:18 2009
    replication_dependency_tracking turned off (no async multimaster replication found)
    Mon Jun 15 04:43:44 2009
    Starting background process QMNC
    QMNC started with pid=14, OS id=6884
    Mon Jun 15 04:46:48 2009
    Completed: ALTER DATABASE OPEN
    Mon Jun 15 05:03:23 2009
    Incremental checkpoint up to RBA [0x10.b1bd.0], current log tail at RBA [0x10.b1f3.0]
    Mon Jun 15 05:23:33 2009
    Incremental checkpoint up to RBA [0x10.b5b3.0], current log tail at RBA [0x10.b5c2.0]
    Mon Jun 15 05:45:12 2009
    Incremental checkpoint up to RBA [0x10.b7b0.0], current log tail at RBA [0x10.fbce.0]
    This is upto the point where all DB and application services has been started.
    Once trying to login to applications following content got appended to the log file
    Mon Jun 15 05:53:39 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:53:51 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:02 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:12 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:22 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:28 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:35 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:54:42 2009
    ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
    Mon Jun 15 05:59:06 2009
    Process J000 died, see its trace file
    Mon Jun 15 05:59:11 2009
    kkjcre1p: unable to spawn jobq slave process
    Mon Jun 15 05:59:11 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
    Mon Jun 15 05:59:23 2009
    Process J000 died, see its trace file
    Mon Jun 15 05:59:24 2009
    kkjcre1p: unable to spawn jobq slave process
    Mon Jun 15 05:59:24 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
    Mon Jun 15 05:59:50 2009
    Process J000 died, see its trace file
    Mon Jun 15 05:59:50 2009
    kkjcre1p: unable to spawn jobq slave process
    Mon Jun 15 05:59:50 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
    I did the TKPROF on .trc files but the tkprof file does not show any details as such except similar to :- (don't know if I am missing anything while issuing TKPROF as $ tkprof filename.trc
    filename.txt explain=apps/apps)
    TKPROF: Release 10.2.0.3.0 - Production on Mon Jun 15 06:07:14 2009
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Trace file: /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc
    Sort options: default
    count = number of times OCI procedure was executed
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    disk = number of physical reads of buffers from disk
    query = number of buffers gotten for consistent read
    current = number of buffers gotten in current mode (usually for update)
    rows = number of rows processed by the fetch or execute call
    0 statements EXPLAINed in this session.
    Trace file: /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc
    Trace file compatibility: 10.01.00
    Sort options: default
    1 session in tracefile.
    0 user SQL statements in trace file.
    0 internal SQL statements in trace file.
    0 SQL statements in trace file.
    0 unique SQL statements in trace file.
    22 lines in trace file.
    0 elapsed seconds in trace file.
    Yesterday, I did login to applications after multiple attempts and tried submitting a concurrent request of a standard report (after resolving the data block corrupt issue) and got the same ORA-00060 Error.
    I have a fresh VISION R12 (12.0.4) installed without any customizations. My installation looks to be quite unstable, takes 2-3 attempts for successful login to apps.
    Can you please give any clues on this and how to overcome the problem?
    Thanks,
    Amit

    I have run cmclean.sql as per :- Re: R12 Vision install - Unable to submit concurrent request
    This is the only change made. No new patches etc. Before running cmclean.sql I believe the instance was working fine.
    Now everytime I start the application services, its causing ORA=00060: Deadlock error. There are no issues with just DB services up and running.
    And after apps services up, when trying to Login to apps it just hangs, get error as follows:
    Tue Jun 23 02:04:55 2009
    Process J001 died, see its trace file
    Tue Jun 23 02:04:55 2009
    kkjcre1p: unable to spawn jobq slave process
    Tue Jun 23 02:04:55 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
    Tue Jun 23 02:05:04 2009
    Process q002 died, see its trace file
    Tue Jun 23 02:05:04 2009
    ksvcreate: Process(q002) creation failed
    Tue Jun 23 02:05:55 2009
    Process J000 died, see its trace file
    Tue Jun 23 02:05:55 2009
    kkjcre1p: unable to spawn jobq slave process
    Tue Jun 23 02:05:55 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
    Tue Jun 23 02:06:11 2009
    Process J000 died, see its trace file
    Tue Jun 23 02:06:11 2009
    kkjcre1p: unable to spawn jobq slave process
    Tue Jun 23 02:06:11 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
    Tue Jun 23 02:08:51 2009
    Process J000 died, see its trace file
    Tue Jun 23 02:08:52 2009
    kkjcre1p: unable to spawn jobq slave process
    Tue Jun 23 02:08:52 2009
    Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
    The OS also hangs (Linux) and I have to exit abnormally everytime which is frustrating.
    I am not sure the reason for the same. I have gone through the metalink notes pointed which says to install the health check engine.
    Do you have any clues based on above information as to what might be causing this problem.
    I have 4 GB RAM installed on my Windows and 2 GB has been allocated to Linux on VMware.
    Please let me know if I need to upgrade the memory.
    Any pointers would be really helpful.
    Thanks,
    Amit

  • Print process deadlock

    Hi All,
    <br/>
    <br/>We are now facing some problems on our smartform printing programs, sometimes some of the smartform programs look getting stuck, from SM50, the processing time is endless, and from the detailed tracing log, there are repeated messages like below for every ONE MINUTE:
    <br/>I  WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
    <br/>
    <br/>I've searched the forum and also did google and SAP notes but can not get useful information match with my error, so could anyone please help to analyse what exact cause of this problem? Any suggestions is highly appreciated.
    <br/>
    <br/>The smartform program itself is simple and correct, just has one header and several items and uses normal SSF_FUNCTION_MODULE_NAME and CALL FNAME to do the print work, in most of time it works correct, but sometimes it just has problem and then the deadlock error occurred. I guess maybe it's because user tried to print too fast than the capability of the printer and then user canceled the job, then in some situations, the upcoming printing jobs get blocked and then get stuck, but it's just a guess, i've no proof to identify it.
    <br/>
    <br/>Here I attached the full trace log, hope someone could give me a idea, thank you very much!
    <br/>
    <br/>----
    <br/>trc file: "dev_w38", trc level: 1, release: "701"
    <br/>----
    <br/>M Thu Dec  9 14:03:55 2010
    <br/>M  db_connect o.k.
    <br/>M  ICT: exclude compression: .zip,.cs,.rar,.arj,.z,.gz,.tar,.lzh,.cab,.hqx,.ace,.jar,.ear,.war,.css,.pdf,.js,.gzip
    <br/>I  MtxInit: 38 0 0
    <br/>M  SHM_PRES_BUF               (addr: 0x700001050000000, size: 44000000)
    <br/>M  SHM_ROLL_AREA          (addr: 0x700001060000000, size: 536870912)
    <br/>M  SHM_PAGING_AREA          (addr: 0x700001080000000, size: 536870912)
    <br/>M  SHM_ROLL_ADM               (addr: 0x700000006221000, size: 5506336)
    <br/>M  SHM_PAGING_ADM          (addr: 0x7000010a0000000, size: 1311776)
    <br/>M  ThCreateNoBuffer          allocated 544152 bytes for 1000 entries at 0x7000010b0002000
    <br/>M  ThCreateNoBuffer          index size: 3000 elems
    <br/>M  ThCreateVBAdm          allocated 11776 bytes (50 server) at 0x7000010d0000000
    <br/>X  EmInit: MmSetImplementation( 2 ).
    <br/>X  MM global diagnostic options set: 0
    <br/>X  EM/TOTAL_SIZE_MB = 262144
    <br/>X  mm.dump: set maximum dump mem to 96 MB
    <br/>M  Deactivate statistics hyper index locking
    <br/>I  *** INFO  Shm 44 in Pool 40    18928 KB estimated     14500 KB real (   -4427 KB    -24 %)
    <br/>I  *** INFO  Shm 45 in Pool 40    12928 KB estimated      8500 KB real (   -4427 KB    -35 %)
    <br/>B  dbntab: NTAB buffers attached
    <br/>B  dbntab: Buffer FTAB(hash header)  (addr: 0x7000010b0088088, size: 584)
    <br/>B  dbntab: Buffer FTAB(anchor array) (addr: 0x7000010b00882d0, size: 1280008)
    <br/>B  dbntab: Buffer FTAB(item array)   (addr: 0x7000010b01c0ad8, size: 5120000)
    <br/>B  dbntab: Buffer FTAB(data area)    (addr: 0x7000010b06a2ad8, size: 122880000)
    <br/>B  dbntab: Buffer IREC(hash header)  (addr: 0x7000010b7bd4088, size: 584)
    <br/>B  dbntab: Buffer IREC(anchor array) (addr: 0x7000010b7bd42d0, size: 1280008)
    <br/>B  dbntab: Buffer IREC(item array)   (addr: 0x7000010b7d0cad8, size: 1280000)
    <br/>B  dbntab: Buffer IREC(data area)    (addr: 0x7000010b7e452d8, size: 12288000)
    <br/>B  dbntab: Buffer STAB(hash header)  (addr: 0x7000010b89ff088, size: 584)
    <br/>B  dbntab: Buffer STAB(anchor array) (addr: 0x7000010b89ff2d0, size: 1280008)
    <br/>B  dbntab: Buffer STAB(item array)   (addr: 0x7000010b8b37ad8, size: 1280000)
    <br/>B  dbntab: Buffer STAB(data area)    (addr: 0x7000010b8c702d8, size: 6144000)
    <br/>B  dbntab: Buffer TTAB(hash header)  (addr: 0x7000010b924e088, size: 6720)
    <br/>B  dbntab: Buffer TTAB(anchor array) (addr: 0x7000010b924fac8, size: 1280008)
    <br/>B  dbntab: Buffer TTAB(item array)   (addr: 0x7000010b93882d0, size: 3200000)
    <br/>B  dbntab: Buffer TTAB(data area)    (addr: 0x7000010b96956d0, size: 23360000)
    <br/>B  db_con_shm_ini:  WP_ID = 38, WP_CNT = 59, CON_ID = -1
    <br/>B  dbstat: TABSTAT buffer attached (addr: 0x7000010f002d2d0)
    <br/>B  dbtbxbuf: Buffer TABL  (addr: 0x700001100000100, size: 180000000, end: 0x70000110aba9600)
    <br/>B  dbtbxbuf: Buffer TABLP (addr: 0x700000006763100, size: 20480000, end: 0x700000007aeb100)
    <br/>B  dbexpbuf: Buffer EIBUF (addr: 0x700000007aec108, size: 67108864, end: 0x70000000baec108)
    <br/>B  dbexpbuf: Buffer ESM   (addr: 0x700001110000108, size: 4194304, end: 0x700001110400108)
    <br/>B  dbexpbuf: Buffer CUA   (addr: 0x7000010bace2108, size: 18432000, end: 0x7000010bbe76108)
    <br/>B  dbexpbuf: Buffer OTR   (addr: 0x700001120000108, size: 4194304, end: 0x700001120400108)
    <br/>B  dbcalbuf: Buffer CALE  (addr: 0x70000000baee000, size: 500000, end: 0x70000000bb68120)
    <br/>M  CCMS: AlInitGlobals : alert/use_sema_lock = TRUE.
    <br/>S  *** init spool environment
    <br/>S  TSPEVJOB updates inside critical section: event_update_nocsec = 0
    <br/>S  initialize debug system
    <br/>T  Stack direction is downwards.
    <br/>T  debug control: prepare exclude for printer trace
    <br/>T  new memory block 0x114388060
    <br/>S  spool kernel/ddic check: Ok
    <br/>S  using table TSP02FX for frontend printing
    <br/>S  1 spool work process(es) found
    <br/>S  frontend print via spool service enabled
    <br/>S  printer list size is 150
    <br/>S  printer type list size is 50
    <br/>S  queue size (profile)   = 300
    <br/>S  hostspool list size = 3000
    <br/>S  option list size is 30
    <br/>I  *** INFO  Shm 49 in Pool 40     2898 KB estimated      1632 KB real (   -1266 KB    -44 %)
    <br/>S      found processing queue enabled
    <br/>S  found spool memory service RSPO-RCLOCKS at 0x7000010bbe77070
    <br/>S  doing lock recovery
    <br/>S  setting server cache root
    <br/>S  found spool memory service RSPO-SERVERCACHE at 0x7000010bbe78160
    <br/>S    using messages for server info
    <br/>S  size of spec char cache entry: 297032 bytes (timeout 100 sec)
    <br/>S  size of open spool request entry: 2512 bytes
    <br/>S  immediate print option for implicitely closed spool requests is disabled
    <br/>A  **GENER Trace switched on ***
    <br/>A
    <br/>A  -PXA--
    <br/>A  PXA INITIALIZATION
    <br/>A  PXA: Locked PXA-Semaphore.
    <br/>A  System page size: 4kb, total admin_size: 237304kb, dir_size: 58960kb.
    <br/>A  Attached to PXA (address 0x700001130000000, size 3000000K, 4 fragments of 690676K )
    <br/>A
    <br/>A Thu Dec  9 14:03:59 2010
    <br/>A  abap/pxa = shared unprotect gen_remote
    <br/>A  PXA INITIALIZATION FINISHED
    <br/>A  -PXA--
    <br/>A
    <br/>A  ABAP ShmAdm attached (addr=0x700000f4046c000 leng=20955136 end=0x700000f41868000)
    <br/>A  >> Shm MMADM area (addr=0x700000f40915418 leng=247168 end=0x700000f40951998)
    <br/>A  >> Shm MMDAT area (addr=0x700000f40952000 leng=15818752 end=0x700000f41868000)
    <br/>A  RFC rfc/signon_error_log = -1
    <br/>A  RFC rfc/dump_connection_info = 0
    <br/>A  RFC rfc/dump_client_info = 0
    <br/>A  RFC rfc/cp_convert/ignore_error = 1
    <br/>A  RFC rfc/cp_convert/conversion_char = 23
    <br/>A  RFC rfc/wan_compress/threshold = 251
    <br/>A  RFC rfc/recorder_pcs not set, use defaule value: 2
    <br/>A  RFC rfc/delta_trc_level not set, use default value: 0
    <br/>A  RFC rfc/no_uuid_check not set, use default value: 0
    <br/>A  RFC rfc/bc_ignore_thcmaccp_retcode not set, use default value: 0
    <br/>A  RFC Method> initialize RemObjDriver for ABAP Objects
    <br/>M  ThrCreateShObjects          allocated 122630 bytes at 0x70000000c124000
    <br/>N  SsfSapSecin: putenv(SECUDIR=/usr/sap/PRD/DVEBMGS00/sec): ok
    <br/>N
    <br/>N  =================================================
    <br/>N  === SSF INITIALIZATION:
    <br/>N  ===...SSF Security Toolkit name SAPSECULIB .
    <br/>N  ===...SSF library is /usr/sap/PRD/DVEBMGS00/exe/libsapcrypto.o .
    <br/>N  ===...SSF default hash algorithm is SHA1 .
    <br/>N  ===...SSF default symmetric encryption algorithm is DES-CBC .
    <br/>N  ===...SECUDIR="/usr/sap/PRD/DVEBMGS00/sec"
    <br/>N  ===...loading of Security Toolkit successfully completed.
    <br/>N  ===   SAPCRYPTOLIB  5.5.5C pl29  (Jan 30 2010) MT-safe
    <br/>N  =================================================
    <br/>N  MskiInitLogonTicketCacheHandle: Logon Ticket cache pointer retrieved from shared memory.
    <br/>N  MskiInitLogonTicketCacheHandle: Workprocess runs with Logon Ticket cache.
    <br/>M  JrfcVmcRegisterNativesDriver o.k.
    <br/>W  =================================================
    <br/>W  === ipl_Init() called
    <br/>B    dbtran INFO (init_connection '<DEFAULT>' [ORACLE:700.08]):
    <br/>B     max_blocking_factor =   5,  max_in_blocking_factor      =   5,
    <br/>B     min_blocking_factor =   5,  min_in_blocking_factor      =   5,
    <br/>B     prefer_union_all    =   0,  prefer_join                 =   0,
    <br/>B     prefer_fix_blocking =   0,  prefer_in_itab_opt          =   1,
    <br/>B     convert AVG         =   0,  alias table FUPD            =   0,
    <br/>B     escape_as_literal   =   1,  opt GE LE to BETWEEN        =   0,
    <br/>B     select *            =0x0f,  character encoding          = STD / <none>:-,
    <br/>B     use_hints           = abap->1, dbif->0x1, upto->2147483647, rule_in->0,
    <br/>B                           rule_fae->0, concat_fae->0, concat_fae_or->0
    <br/>W    ITS Plugin: Path dw_gui
    <br/>W    ITS Plugin: Description ITS Plugin - ITS rendering DLL
    <br/>W    ITS Plugin: sizeof(SAP_UC) 2
    <br/>W    ITS Plugin: Release: 701, [7010.0.97.20020600]
    <br/>W    ITS Plugin: Int.version, [33]
    <br/>W    ITS Plugin: Feature set: [22]
    <br/>W    ===... Calling itsp_Init in external dll ===>
    <br/>W      PpioRecoverLocks, table: 0x700000f418f2778
    <br/>W      PpioRecoverLocks, number of file locks 256
    <br/>W      PpioRecoverLocks: file lock set to: (nil)
    <br/>W      PpioRecoverLocks: directory lock set to: (nil)
    <br/>W      PpioRecoverLocks: global lock set to: (nil)
    <br/>W      PpioRecoverLocks() done
    <br/>W      PprcRecoverLocks, table: 0x700000f418f27e8
    <br/>W      PprcRecoverLocks: directory lock set to: (nil)
    <br/>W      PprcRecoverLocks() done
    <br/>W  === ipl_Init() returns 0, ITSPE_OK: OK
    <br/>W  =================================================
    <br/>N  VSI: WP init in ABAP VM completed with rc=0
    <br/>E  Profile-Parameter: enque/deque_wait_answer = FALSE
    <br/>E  Profile-Parameter: enque/sync_dequeall = 0
    <br/>E  EnqId_SuppressIpc: local EnqId initialization o.k.
    <br/>E  EnqCcInitialize: local enqueue client init o.k.
    <br/>M  ThCheckPrevUser: previous user was T78/M0, clean counter 0
    <br/>M  ThCheckPrevUser: clean previous user T78/U26013/M0/I2/V-1
    <br/>M
    <br/>M  Modeinfo for User T78/M0
    <br/>M
    <br/>M    tm state = 4
    <br/>M    uid = 26013
    <br/>M    term type = 0x4
    <br/>M    display = 0x8
    <br/>M    cpic_no = 0
    <br/>M    cpic_idx = -1
    <br/>M    usr = >8000199     <
    <br/>M    terminal = >ceegsap20           <
    <br/>M    client = >800<
    <br/>M    conversation_ID = >        <
    <br/>M    appc_tm_conv_idx = -1
    <br/>M    its_plugin = NO
    <br/>M    allowCreateMode = YES
    <br/>M    wp_ca block = -1
    <br/>M    appc_ca block = -1
    <br/>M    blockSoftCanel = NO
    <br/>M    session_id = >4CFF77CE4A6A0068E10080000A04C87E<
    <br/>M    ext_session_id = >4CFF77CE4A6A0068E10080000A04C87E<
    <br/>M    imode = 2
    <br/>M    mode state = 0x1a
    <br/>M    mode clean_state = 2
    <br/>M    task_type = ZTTADIA
    <br/>M    lastThFc = THFCTERM
    <br/>M    lastAction = TH_IACT_NO_ACTION
    <br/>M    th_errno = 0
    <br/>M    rollout_reason = 1
    <br/>M    last_rollout_level = 7
    <br/>M    async_receives = 0
    <br/>M    cpic_receive = 0
    <br/>M    em handle = 67
    <br/>M    roll state = 3
    <br/>M    abap state = 3
    <br/>M    em state = 2
    <br/>M    eg state = 1
    <br/>M    spa state = 3
    <br/>M    enq state = 0
    <br/>M    softcancel = 1
    <br/>M    cancelInitiator = DISPATCHER
    <br/>M    clean_state = DP_SOFTCANCEL
    <br/>M    next hook = T-1/U-1/M255
    <br/>M    master hook = T-1/U-1/M255
    <br/>M    slave hook = T-1/U-1/M255
    <br/>M    debug_tid = 255
    <br/>M    debug_mode = 0
    <br/>M    mode type = 0x1
    <br/>M    debug = 0
    <br/>M    msg_count = 6
    <br/>M    tcode = >ZPP015              <
    <br/>M    last_wp = 38
    <br/>M    client conversation_ID = >        <
    <br/>M    server conversation_ID = >        <
    <br/>M    lock = 0
    <br/>M    max enq infos = 0
    <br/>M    act enq infos = 0
    <br/>M    em_hyper_hdl = 0x700000f41d918e8
    <br/>M    plugin_info = NULL
    <br/>M    act_plugin_hdl = -1
    <br/>M    act_plugin_no  = 0
    <br/>M    max_plugin_no  = 0
    <br/>M
    <br/>M  ThCheckPrevUser: reset spa state for user T78/U26013/M0
    <br/>M  ThSetDoSafeCleanup: th_do_safe_cleanup = FALSE (wanted FALSE)
    <br/>M  LOCK WP ca_blk 44
    <br/>M  ThAtWpBlk: set zttatiln to zero
    <br/>M  ThAtWpBlk: set zttatoln to zero
    <br/>M  DpVmcGetVmByTmAdm: no VM found for T78/M0/I2
    <br/>M  LOCK APPC ca_blk 640
    <br/>M  set task type ZTTADIA
    <br/>M  ThCleanPrevUser: clean U26013 T78 M0 I2 no VM clean state DP_SOFTCANCEL clean counter 1
    <br/>M  ThCleanPrevUser: saved MODE_REC = 10
    <br/>M  PfStatDisconnect: disconnect statistics
    <br/>M  ThCleanPrevUser: found soft cancel flag
    <br/>M  ThSoftCancel: set clean state of T78/M0 to DP_DEFAULT_CLEANING
    <br/>M  ThSoftCancel session in state TM_DISCONNECTED, delete mode
    <br/>M  ThIAMDel: delete tid/mode 78/0 (th_errno 47, release 1)
    <br/>M  ThIDeleteMode (78, 0, 3, ><, 0, 255, TRUE)
    <br/>M  ThIDeleteMode: no modes found ..
    <br/>M    no sub modes
    <br/>M  ThCheckMemoryState (0, 0, 1)
    <br/>M  ThRollIn: roll in T78/U26013/M0/I2 (level=7, abap_level=1, attach_em=1)
    <br/>M  ThCheckEmState: check ATTACH for em hdl 67
    <br/>M  ThCheckEmState: call EmContextAttach (em_hdl=67)
    <br/>I Thu Dec  9 14:05:00 2010
    <br/>I  WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
    <br/>I Thu Dec  9 14:06:00 2010
    <br/>I  WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
    <br/>I Thu Dec  9 14:07:00 2010
    <br/>I  WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
    <br/>I Thu Dec  9 14:08:00 2010
    <br/>I  WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?

    Hi Sitarama,
    <br/>
    <br/>Thanks very much for your fast reply. Yes, the smartforms are custom-built. Besides the deadlock error, there still has some errors in SP01 says "Could not pass request to host spool system". But it previews wonderfully in SP01. The detailed SP01 error log is like below:
    Print request processing log
    Errors occurred processing this print request
    Error during print request output. l_rc = 99
    There may be no printout
    Most important attributes of spool request
    Request number 2828
    Request name SMART  LOCA 8000199
    Client 800
    Owner 8000199
    Request attributes
    Time created   2010120906014800
    Remaining life  +00007235800
    Dispo 1 (Go/Hold) G
    Dispo 2 (Keep/Delete)     D
    Dispo 3 (Indirect/Direct) D
    Default output device LOCA
    Default no. copies  1
    Format ZTEST
    Main print request characteristics
    Spool request number 2828
    Print request number 1
    Print request attributes
    Time created   2010120906020500
    Output device LOCA
    Format ZTEST
    What do you mean parallel processing on table level? The smartforms extract data from different SAP tables and then transfer to smartform interface, then they can added in form pages. Do you think this results parallel processing towards tables?
    <br/>
    Thank you and hope to hear more from you.
    Best Regards,
    Jeff

  • How to deal with deadlock on wwv_flow_data table when http server times out

    There are some threads about a deadlock on the wwv_flow_data table. None of them contain a real explanation for this behaviour. In my case I will try to explain what I think is happening. Maybe it helps somebody who is hitting the same matter.
    In my case with APEX 3.2.1 I am navigating from one page to another. Doing this APEX will lock the table wwv_flow_data. As soon as the other page is shown the lock will be released. But now this other page contains a bad performing query (standaard report region). After 5 minutes the http server (modplsql) will time out and present the message "No response from the application server" on the screen. In the meanwhile the query is still running on the database server and the lock stays on the wwv_flow_data table.
    Normal user behaviour will be that the user will use the back button to return to the previous page and tries it again to navigate to the other page or
    the user will try to refresh the page with the bad performing query.
    And voila now you will have a deadlock on the wwv_flow_data table since a second session is trying to do the same thing while the first hasn't finished yet.
    How to deal with it?
    First of all. Have a good look at the bad performing query. Maybe you can improve it that it will succeed before the http server will timeout.
    In my case the 11gr1 optimizer couldn't handle a subquery factoring clause in the best way. After changing it back to a classical inline query the problem was solved.
    Secondly you could increase the timeout parameter of the http server. Although this not the best way.
    Maybe it would better if APEX in a next version would release the lock on the table wwv_flow_date earlier or do a rollback just before the moment that the http server is timing out.
    regards,
    Mathieu Meeuwissen

    Hello Shmoove,
    I saw your reply here and you probably understand the problems the HTTP 100 response may cause.
    I am trying to send image that was taken by getSnapshot. The problem is that the server respond with this HTTP 100 message.
    I suspect that the reason that my server doesn't recognize the file that I'm sending from J2me is that the "server to client" response to the 100 message comes after the second message of (see what the TCPIP viewer shows down here):
    POST /up01/up02.aspx HTTP/1.1
    Content-Type: multipart/form-data; boundary=xxxxyyyyzzz
    Connection: Keep-Alive
    Content-length: 6294
    User-Agent: UNTRUSTED/1.0
    Host: szekely.dnsalias.com:80
    Transfer-Encoding: chunked
    400: Client to Server (126 bytes)
    78
    --xxxxyyyyzzz
    Content-Disposition: form-data; name="pic"; filename="david.jpg"
    Content-Type: application/octet-stream
    400: Connected to Server
    400: Server to Client (112 bytes)
    HTTP/1.1 100 Continue
    Server: Microsoft-IIS/5.1
    Date: Wed, 23 Mar 2005 00:47:02 GMT
    X-Powered-By: ASP.NET
    Any help will be appreciated,
    David

  • Max Degree of Parallelism, Timeouts and Deadlocks

    We have been trying to track down some timeout issues with our SQL Server. Our SQL Server runs a AccPac Account System, an Internal Intranet site and some SharePoint Content DBs.  
    We know that some of the queries are complex and take some time, though the timeouts seem to happen randomly and not always on the same pages/queries.   IIS and the SQL timeouts are set to 60 and 120 seconds. 
    Looking at some of the SQL Server settings, I noticed that MAXDOP was set to 1. Before doing extensive research on it and looking through the BOL, another DBA and I changed it to 0. 
    Server is a Hyper-V VM with:
    Processors:4
    NUMA nodes:2
    Sockets: 2
    Interesting thing happened. Our Timeouts seem to have disappeared. Going from several a day, we are now at 1 every few days. Though now the issue we are having is that our Deadlocks have gone through the roof. Going from one or two every few days, we are
    up to 8+ a day!
    We have been changing our Select statements to include WITH (NOLOCK) so they do not compete with the UPDATE statements they usually fall victim to. The Deadlocks and timeouts do not seem to be related to any of the SharePoint Content DBs. All of the deadlocks
    are with our Intranet Site and When it communicates with the AccPac DB, or the Internet Site on its own.
    Any Suggestions on where I should be focusing my energy on benchmarking and tuning the server?
    Thank you,
      Scott<-

    Thank you all for your replies.
    The server had 30GB of RAM and then we bumped it up to 40GB at the same time we changed the MAXDOP to 0.
    It was set to 1 because if it isn't MS won't support your SharePoint installation. This is from the Setup Guide for SharePoint on SQL Server, MAXDOP = 1 is a must in their book for official support. It always forces serial plans, because to be honest
    the sharepoint queries are extremely terrible.
    I understand this, though I would guess that the install of SharePoint didn’t actually do the MAXDOP =1 setting during the install? We basically have two Sharepoint sites on the server. One has about 10 users and the other has maybe 20 users. The Sites are
    not used very much either. So I didn't think there would be too much impact. 
    Though now the issue we are having is that our Deadlocks have gone through the roof.
    You probably didn't get this before (though they probably still happened) because the executions were forced serially and you dodged many-a-bullet because of this artificial speed bump. Deadlocks are application based, pure and simple.
    The accounting system we are running is something we typically do not alter the DB Contents directly, we are only peering into the database to present information to the user. We looked at READ_COMMITTED_SNAPSHOT, though since that is a DB setting on not
    on individual queries, we do not want to alter the Accounting DB as we could not know the potential ramifications of what that would cause.
    A Typical Deadlock will occur when the Accounting system is creating or modifying an order’s master record so no one else can modify it, though instead of row lock, it locks the table. This is something that is out of our control. When we do a select against
    the same table from the Intranet site, we get a deadlock unless we use the WITH (NOLOCK). The data that we get is not Super Critical. The only potential issue that might happen is that in an uncommitted Transaction form the Accounting system, it could be adding
    multiple rows to an order and when we SELECT the data, we might miss a line Item or two.
    We have been changing our Select statements to include WITH (NOLOCK) so they do not compete with the UPDATE statements they usually fall victim to.
    This really isn't going to get very far to be honest. Are you deadlocking on the same rows? It seems to be the order of operations taken by either the queries or the logic used in them. Without deadlock information there really is nothing to diagnose, but
    that definitely sounds like the same resource being used in multiple places when it probably doesn't need to be.
    This is one of the typical deadlocks that we get. Intranet Site is getting Totals for Orders while the accounting system is in the process of setting its internal record Lock on an Order. 
    <EVENT_INSTANCE>
    <EventType>DEADLOCK_GRAPH</EventType>
    <PostTime>2014-05-12T15:26:09.447</PostTime>
    <SPID>23</SPID>
    <TextData>
    <deadlock-list>
    <deadlock victim="process2f848b048">
    <process-list>
    <process id="process2f848b048" taskpriority="0" logused="0" waitresource="OBJECT: 12:644249400:0 " waittime="1295" ownerId="247639995" transactionname="SELECT" lasttranstarted="2014-05-12T15:26:08.150" XDES="0x69d1d3620" lockMode="IS" schedulerid="2" kpid="2856" status="suspended" spid="184" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2014-05-12T15:26:08.150" lastbatchcompleted="2014-05-12T15:26:08.150" lastattention="2014-05-12T14:50:52.280" clientapp=".Net SqlClient Data Provider" hostname="VSVR-WWW-INT12" hostpid="15060" loginname="SFA" isolationlevel="read committed (2)" xactid="247639995" currentdb="7" lockTimeout="4294967295" clientoption1="673185824" clientoption2="128056">
    <executionStack>
    <frame procname="SFA.dbo.SAGE_SO_order_total_no_history_credit" line="20" stmtstart="1190" stmtend="5542" sqlhandle="0x030007004c642a7a7c17d000e9a100000100000000000000">
    SELECT SUM(t.price * t.qtyord) AS On_Order_Total
    FROM PRODATA01..somast m
    INNER JOIN PRODATA01..sotran t ON m.sono = t.sono
    INNER JOIN SFA..item i ON i.our_part_number COLLATE DATABASE_DEFAULT = t.item COLLATE DATABASE_DEFAULT
    INNER JOIN SFA..supplier s ON s.supplier_key = i.supplier_key
    INNER JOIN SFA..customer c ON c.abbreviation COLLATE DATABASE_DEFAULT = m.custno COLLATE DATABASE_DEFAULT
    INNER JOIN SFA..sales_order_ownership soo ON soo.so_id_col = m.id_col
    LEFT JOIN PRODATA01..potran p ON p.id_col = t.po_id_col
    LEFT JOIN SFA..alloc_inv a ON a.sono COLLATE DATABASE_DEFAULT = t.sono COLLATE DATABASE_DEFAULT AND a.tranlineno = t.tranlineno
    WHERE c.is_visible = 1 AND m.sostat NOT IN ('V','X') AND m.sotype IN ('C','','O')
    AND t.sostat NOT IN ('V','X') AND t.sotype IN ('C','','O')
    --AND t.rqdate BETWEEN @start_ordate AND @end_ordate
    AND UPPER(LEFT(t.item,4)) &lt;&gt; 'SHIP' AND t.item NOT LIKE '[_]%'
    AND ((SUBSTRING(m.ornum,2,1) = 'A' AND p.expdate &lt;= @end_ordate) OR (t.rqdate &lt;= @en </frame>
    </executionStack>
    <inputbuf>
    Proc [Database Id = 7 Object Id = 2049598540] </inputbuf>
    </process>
    <process id="process51df0c2c8" taskpriority="0" logused="28364" waitresource="OBJECT: 12:1369823992:0 " waittime="1032" ownerId="247639856" transactionname="user_transaction" lasttranstarted="2014-05-12T15:26:07.940" XDES="0xf8b5b620" lockMode="X" schedulerid="1" kpid="7640" status="suspended" spid="292" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2014-05-12T15:26:08.410" lastbatchcompleted="2014-05-12T15:26:08.410" clientapp="Sage Pro ERP version 7.5" hostname="VSVR-DESKTOP" hostpid="15892" loginname="AISSCH" isolationlevel="read uncommitted (1)" xactid="247639856" currentdb="12" lockTimeout="4294967295" clientoption1="536870944" clientoption2="128056">
    <executionStack>
    <frame procname="adhoc" line="1" stmtstart="22" sqlhandle="0x02000000304ac5350b86da8b9422b389413bf23015ac25d0">
    UPDATE PRODATA01..SOTRAN WITH (TABLOCK HOLDLOCK) SET lckuser = lckuser WHERE id_col = @P1 </frame>
    <frame procname="unknown" line="1" sqlhandle="0x000000000000000000000000000000000000000000000000">
    unknown </frame>
    </executionStack>
    <inputbuf>
    (@P1 float)UPDATE PRODATA01..SOTRAN WITH (TABLOCK HOLDLOCK) SET lckuser = lckuser WHERE id_col = @P1 </inputbuf>
    </process>
    </process-list>
    <resource-list>
    <objectlock lockPartition="0" objid="644249400" subresource="FULL" dbid="12" objectname="PRODATA01.dbo.somast" id="lock18b5e3900" mode="X" associatedObjectId="644249400">
    <owner-list>
    <owner id="process51df0c2c8" mode="X" />
    </owner-list>
    <waiter-list>
    <waiter id="process2f848b048" mode="IS" requestType="wait" />
    </waiter-list>
    </objectlock>
    <objectlock lockPartition="0" objid="1369823992" subresource="FULL" dbid="12" objectname="PRODATA01.dbo.sotran" id="lock2ce1c4680" mode="SIX" associatedObjectId="1369823992">
    <owner-list>
    <owner id="process2f848b048" mode="IS" />
    </owner-list>
    <waiter-list>
    <waiter id="process51df0c2c8" mode="X" requestType="convert" />
    </waiter-list>
    </objectlock>
    </resource-list>
    </deadlock>
    </deadlock-list>
    </TextData>
    <TransactionID />
    <LoginName>sa</LoginName>
    <StartTime>2014-05-12T15:26:09.447</StartTime>
    <ServerName>VSVR-SQL</ServerName>
    <LoginSid>AQ==</LoginSid>
    <EventSequence>2335848</EventSequence>
    <IsSystem>1</IsSystem>
    <SessionLoginName />
    </EVENT_INSTANCE>
    I'd (in parallel) look at why parallel plans are being chosen. Not that parallel plans are a bad thing, but is the cost of the execution so high that parallelism is chosen all of the time?
    How can I determine the cost of different statements? The Current Cost threshold value is 5.
    The last place I would set my effort is on the Dev team. Internal Intranet queries should not take 60 to 120 seconds. That's just asking for issues that you already have. If some larger functionality with that is needed, do it on the back end as
    aggregation over a certain time period and use that new static data. Recompute as needed. This is especially true if your deadlocks are happening on these resources (chances are, it is).
    We are working with the long queries.  Trying to Break them up.  We thought about backend processing of the data so its available for the user when they need it, but some of the pages that take time are not accessed that often, so if we gathered
    the data every 10 minutes in the background it would be called way many more times in a day than would be called on demand. 
    Thank you all again!

  • Multiple threads block each other, but its not a deadlock!

    I have recently upgraded to Berkeley 2.4.16/DB 4.6.21 on Linux 2.6.9-68.9.ELsmp #1 SMP 2008 x86_64 GNU/Linux
    Right away I noticed that when I run two threads, one doing a putDocument, another doing a query, they get stuck, as if they were deadlocked, however running db_deadlock does not change the quagmire.
    Here is the simplest class I could come up with that produces the problem I have been dealing with:
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import com.sleepycat.db.DatabaseException;
    import com.sleepycat.db.Environment;
    import com.sleepycat.db.EnvironmentConfig;
    import com.sleepycat.db.ReplicationManagerAckPolicy;
    import com.sleepycat.db.ReplicationTimeoutType;
    import com.sleepycat.dbxml.XmlContainer;
    import com.sleepycat.dbxml.XmlContainerConfig;
    import com.sleepycat.dbxml.XmlDocumentConfig;
    import com.sleepycat.dbxml.XmlManager;
    import com.sleepycat.dbxml.XmlManagerConfig;
    import com.sleepycat.dbxml.XmlQueryContext;
    import com.sleepycat.dbxml.XmlResults;
    import com.sleepycat.dbxml.XmlUpdateContext;
    import com.sleepycat.dbxml.XmlValue;
    public class TestEnvironment
        private XmlManager i_xmlManager = null;
        private XmlContainer i_container = null;
        private XmlContainerConfig i_xmlContainerConfig = null;
        private XmlDocumentConfig i_docCfg = null;
        public TestEnvironment(File dataDir, File dbErr, File dbOut)
        throws DatabaseException, FileNotFoundException
            final EnvironmentConfig cfg = new EnvironmentConfig();
            cfg.setErrorStream(new FileOutputStream(dbErr));
            cfg.setMessageStream(new FileOutputStream(dbOut));
            cfg.setAllowCreate(true);
            cfg.setInitializeLocking(true);
            cfg.setInitializeLogging(true);
            cfg.setInitializeCache(true);
            cfg.setTransactional(true);
            cfg.setRunRecovery(false);
            cfg.setTxnNoSync(true);
            cfg.setTxnNotDurable(false);
            cfg.setTxnTimeout(60000000L);
            cfg.setCacheSize(1073741824L);
            cfg.setThreaded(true);
            cfg.setInitializeReplication(false);
            cfg.setReplicationLimit(1048576L);
            cfg.setVerboseReplication(true);
            cfg.setReplicationManagerAckPolicy(ReplicationManagerAckPolicy.NONE);
            cfg.setMaxLockers(100000);
            cfg.setMaxLockObjects(100000);
            cfg.setMaxLocks(100000);
            cfg.setLockDown(false);
            cfg.setSystemMemory(false);
            cfg.setInitializeCDB(false);
            final Environment env = new Environment(dataDir, cfg);
            env.setReplicationTimeout(ReplicationTimeoutType.ACK_TIMEOUT,  100000);
            env.setReplicationTimeout(ReplicationTimeoutType.CONNECTION_RETRY, 100000);
            env.setReplicationTimeout(ReplicationTimeoutType.ELECTION_RETRY, 100000);
            env.setReplicationTimeout(ReplicationTimeoutType.ELECTION_TIMEOUT, 90000);
            final XmlManagerConfig mgrCfg = new XmlManagerConfig();
            mgrCfg.setAdoptEnvironment(true);
            mgrCfg.setAllowAutoOpen(true);
            mgrCfg.setAllowExternalAccess(false);
            XmlManager.setLogCategory(XmlManager.CATEGORY_ALL, true);
            XmlManager.setLogLevel(XmlManager.LEVEL_ALL, true);
            i_xmlManager = new XmlManager(env, mgrCfg);
            i_xmlManager.setDefaultContainerType(XmlContainer.NodeContainer);
            i_xmlContainerConfig = new XmlContainerConfig();
            i_xmlContainerConfig.setAllowValidation(false);
            i_xmlContainerConfig.setIndexNodes(true);
            i_xmlContainerConfig.setNodeContainer(true);
            i_xmlContainerConfig.setTransactional(true);  
            if (i_xmlManager.existsContainer("container.dbxml") != 0)
                i_container = i_xmlManager.openContainer("container.dbxml", i_xmlContainerConfig);
            else
                i_container = i_xmlManager.createContainer("container.dbxml", i_xmlContainerConfig);
            i_docCfg = new XmlDocumentConfig();
            i_docCfg.setGenerateName(true);
            final TestEnvironment thisRef = this;
            Runtime.getRuntime().addShutdownHook(new Thread()
                public void run()
                    try
                        thisRef.close();
                        System.out.println("Shutting down the TestEnvironment.");
                    catch (Exception e)
                        e.printStackTrace();
        public void close() throws DatabaseException
            if (i_container != null)
                i_container.close();
                i_container = null;
            if (i_xmlManager != null)
                i_xmlManager.close();
                i_xmlManager = null;
        public void insert(String doc) throws DatabaseException
            System.out.println('[' + Thread.currentThread().getName() +
            "] insert received document to be inserted");
            final long beforeT = System.currentTimeMillis();
            final XmlUpdateContext ctxt = i_xmlManager.createUpdateContext();
            i_container.putDocument(null, doc, ctxt, i_docCfg);
            final long afterT = System.currentTimeMillis();
            System.out.println('[' + Thread.currentThread().getName() +
                "] insert  took " + (afterT - beforeT) + " ms. ");
        public String[] query(String xquery) throws DatabaseException
            System.out.println('[' + Thread.currentThread().getName() +
                "] query \"" + xquery + "\" received.");
            String[] retVal = {};
            final long beforeT = System.currentTimeMillis();
            XmlQueryContext qctxt = null;
            XmlResults rs = null;
            XmlValue nextValue = null;
            try
                qctxt = i_xmlManager.createQueryContext();
                qctxt.setQueryTimeoutSeconds(10);
                rs = i_xmlManager.query(xquery, qctxt);
                if (rs != null)
                    retVal = new String[rs.size()];
                    for  (int i = 0; i < retVal.length && rs.hasNext(); i++)
                        nextValue = rs.next();
                        retVal[i] = nextValue.asString();
                        nextValue.delete();
                        nextValue = null;
            finally
                if (nextValue != null)
                    nextValue.delete();
                if (qctxt != null)
                    qctxt.delete();
                if (rs != null)
                    rs.delete();
            final long afterT = System.currentTimeMillis();
            System.out.println('[' + Thread.currentThread().getName() +
                "] query \"" + xquery + "\" took " + (afterT - beforeT) + " ms. ");
            return retVal;
    }If I call the insert and the query methods in parallel from two different threads, they will both be stuck, the former in the method com.sleepycat.dbxml.dbxml_javaJNI.XmlContainer_putDocument__SWIG_0(Native Method) and the latter in the method com.sleepycat.dbxml.dbxml_javaJNI.XmlManager_query__SWIG_2(Native Method). I would really appreciate help with this issue, I've looked through all compilation flags for db and dbxml, and all runtime configuration parameters, and I can not figure out why this is not working. Thank you!
    Edited by: gmfeinberg on Mar 26, 2009 10:41 AM for formatting

    Upon your suggestion, I added explicit transactions to my code, and now it looks like this:
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import com.sleepycat.db.DatabaseException;
    import com.sleepycat.db.Environment;
    import com.sleepycat.db.EnvironmentConfig;
    import com.sleepycat.db.LockDetectMode;
    import com.sleepycat.dbxml.XmlContainer;
    import com.sleepycat.dbxml.XmlContainerConfig;
    import com.sleepycat.dbxml.XmlDocumentConfig;
    import com.sleepycat.dbxml.XmlException;
    import com.sleepycat.dbxml.XmlManager;
    import com.sleepycat.dbxml.XmlManagerConfig;
    import com.sleepycat.dbxml.XmlQueryContext;
    import com.sleepycat.dbxml.XmlResults;
    import com.sleepycat.dbxml.XmlTransaction;
    import com.sleepycat.dbxml.XmlValue;
    public class TestEnvironment
        private static final int DEADLOCK_DETECTOR_INTERVAL = 5000;
        private XmlManager i_xmlManager = null;
        private XmlContainer i_container = null;
        private XmlContainerConfig i_xmlContainerConfig = null;
        private XmlDocumentConfig i_docCfg = null;
        private boolean i_shuttingDown = false;
        public TestEnvironment(File dataDir, File dbErr, File dbOut)
        throws XmlException, DatabaseException, FileNotFoundException
            final EnvironmentConfig cfg = new EnvironmentConfig();
            cfg.setErrorStream(new FileOutputStream(dbErr));
            cfg.setMessageStream(new FileOutputStream(dbOut));
            cfg.setAllowCreate(true);
            cfg.setInitializeLocking(true);
            cfg.setInitializeLogging(true);
            cfg.setInitializeCache(true);
            cfg.setTransactional(true);
            cfg.setRunRecovery(false);
            cfg.setTxnNoSync(true);
            cfg.setTxnNotDurable(false);
            //cfg.setTxnTimeout(500000L);
            cfg.setCacheSize(1073741824L);
            cfg.setThreaded(true);
            cfg.setInitializeReplication(false);
            cfg.setMaxLockers(100000);
            cfg.setMaxLockObjects(100000);
            cfg.setMaxLocks(100000);
            cfg.setLockDown(false);
            cfg.setSystemMemory(false);
            cfg.setInitializeCDB(false);
            final Environment env = new Environment(dataDir, cfg);
            final XmlManagerConfig mgrCfg = new XmlManagerConfig();
            mgrCfg.setAdoptEnvironment(true);
            mgrCfg.setAllowAutoOpen(true);
            mgrCfg.setAllowExternalAccess(false);
            XmlManager.setLogCategory(XmlManager.CATEGORY_ALL, true);
            XmlManager.setLogLevel(XmlManager.LEVEL_ALL, true);
            i_xmlManager = new XmlManager(env, mgrCfg);
            i_xmlManager.setDefaultContainerType(XmlContainer.NodeContainer);
            i_xmlContainerConfig = new XmlContainerConfig();
            i_xmlContainerConfig.setAllowValidation(false);
            i_xmlContainerConfig.setIndexNodes(true);
            i_xmlContainerConfig.setNodeContainer(true);
            i_xmlContainerConfig.setTransactional(true);  
            i_xmlContainerConfig.setStatisticsEnabled(false);
            if (i_xmlManager.existsContainer("container.dbxml") != 0)
                i_container = i_xmlManager.openContainer("container.dbxml", i_xmlContainerConfig);
            else
                i_container = i_xmlManager.createContainer("container.dbxml", i_xmlContainerConfig);
            i_docCfg = new XmlDocumentConfig();
            i_docCfg.setGenerateName(true);
            final TestEnvironment thisRef = this;
            Runtime.getRuntime().addShutdownHook(new Thread()
                public void run()
                    try
                        thisRef.close();
                        System.out.println("Shutting down the TestEnvironment.");
                    catch (Exception e)
                        e.printStackTrace();
            final Thread deadLockDetector = new Thread("deadLockDetector") {
                @Override
                public void run()
                    while (!i_shuttingDown)
                        try
                            i_xmlManager.getEnvironment().detectDeadlocks(LockDetectMode.YOUNGEST);
                            System.out.println('[' + Thread.currentThread().getName() +
                                "] ran deadlock detector.");
                            Thread.sleep(DEADLOCK_DETECTOR_INTERVAL);
                        catch (XmlException e)
                            e.printStackTrace();
                        catch (DatabaseException e)
                            e.printStackTrace();
                        catch (InterruptedException e)
                            e.printStackTrace();
            deadLockDetector.start();
        public void close() throws XmlException
            i_shuttingDown = true;
            if (i_container != null)
                i_container.close();
                i_container = null;
            if (i_xmlManager != null)
                i_xmlManager.close();
                i_xmlManager = null;
        public void insert(String doc) throws XmlException
            System.out.println('[' + Thread.currentThread().getName() +
                "] insert received document to be inserted");
            final long beforeT = System.currentTimeMillis();
            final XmlTransaction txn = i_xmlManager.createTransaction();
            try
                i_container.putDocument(txn, null, doc, i_docCfg);
                txn.commit();
            catch (XmlException e)
                txn.abort();
                throw e;
            finally
                txn.delete();
            final long afterT = System.currentTimeMillis();
            System.out.println('[' + Thread.currentThread().getName() +
                "] insert  took " + (afterT - beforeT) + " ms. ");
        public String[] query(String xquery) throws XmlException
            System.out.println('[' + Thread.currentThread().getName() +
                "] query \"" + xquery + "\" received.");
            String[] retVal = {};
            final long beforeT = System.currentTimeMillis();
            XmlQueryContext qctxt = null;
            XmlResults rs = null;
            XmlValue nextValue = null;
            final XmlTransaction txn = i_xmlManager.createTransaction();
            try
                qctxt = i_xmlManager.createQueryContext();
                qctxt.setQueryTimeoutSeconds(10);
                rs = i_xmlManager.query(txn, xquery, qctxt);
                if (rs != null)
                    retVal = new String[rs.size()];
                    for  (int i = 0; i < retVal.length && rs.hasNext(); i++)
                        nextValue = rs.next();
                        retVal[i] = nextValue.asString();
                        nextValue.delete();
                        nextValue = null;
                txn.commit();
            catch (XmlException e)
                txn.abort();
                throw e;
            finally
                txn.delete();
                if (nextValue != null)
                    nextValue.delete();
                if (qctxt != null)
                    qctxt.delete();
                if (rs != null)
                    rs.delete();
            final long afterT = System.currentTimeMillis();
            System.out.println('[' + Thread.currentThread().getName() +
                "] query \"" + xquery + "\" took " + (afterT - beforeT) + " ms. ");
            return retVal;
    }For the purpose of brevity I omitted the main method, but it merely runs two parallel threads -- one inserting a collection of different XML documents, the other -- querying. Each thread runs a semi-tight loop with a 10 millisecond sleep after each iteration. The documents being inserted are all fairly similar, and well-formed. Here is what happens: if I do not set a maximum transaction timeout, every SINGLE concurrent pair of inserts/queries results in a deadlock, that is only broken when the deadlock detector thread runs every five seconds. Our application does require massive inserts/quieries run in parallel sometimes. If I do set a maximum transaction timeout that expires before the deadlock detector thread runs, I get the following exception:
    com.sleepycat.dbxml.XmlException: Error: DB_LOCK_NOTGRANTED: Lock not granted, errcode = DATABASE_ERROR
            at com.sleepycat.dbxml.dbxml_javaJNI.XmlContainer_putDocument__SWIG_3(Native Method)
            at com.sleepycat.dbxml.XmlContainer.putDocument(XmlContainer.java:736)
            at com.sleepycat.dbxml.XmlContainer.putDocument(XmlContainer.java:232)
            at com.sleepycat.dbxml.XmlContainer.putDocument(XmlContainer.java:218)
            at TestEnvironment.insert(TestEnvironment.java:178)
            at TestEnvironment$3.run(TestEnvironment.java:327)which does not seem to be a deadlock.
    Now I understand that deadlocks are a fact of life, but I thought they were statistically rare, and in this scenario every single insert/query pair results in a deadlock. The same code works without any deadlocks in the Berkeley DB XML 2.3/Berkeley DB 4.5 combination
    Could there be a patch or a bugfix that I missed? This seems very very suspicious. I also tried the same code on both Linux and Windows with the same result
    Thank you,
    Alexander.

  • Deadlocks with ALTER TABLE DISABLE CONSTRAINT

    Hello,
    We're deleting millions of redundant rows from a particular table in our live 10g database. This is being done online because the downtime would be unacceptable. The table in question has 30 child tables, so for speed I am disabling the foreign keys using ALTER TABLE DISABLE CONSTRAINT before the deletion (we haven't had any constraint violations for ages). Without this, deletion takes about 1 second per row i.e. a very long time.
    However, we're finding that ALTER TABLE DISABLE CONSTRAINT often reports ORA-00060: deadlock detected. This is causing problems with the live system. Can anyone think of the reason why a deadlock might occur in this situation and what we could do to prevent it happening? Note that any solution has to be doable without downtime unless it takes less than 30 minutes.
    Thanks a lot
    Ed
    Edited by: edwiles on Feb 4, 2009 6:02 AM

    look suggestions in the similar thread:
    Re: Deadlock when deleting a not linked data record in a parent table

  • Data Committed instead of Rollback after Deadlock Error in SQL Server 2008 R2 (SP2)

    We're having a strange issue which is occurring only with one Customer having SQL Server 2008 R2 (SP2).
    Basically we have multiple threads uploading data and when an error occurs (like deadlock or any other error). The deadlock victim (process/transaction) is rolledback (from .NET). However the rollback command is not reaching SQL Server as it doesn't show
    in the trace (through SQL Profiler).
    To make things worse, not only the transaction is not being rolled back but the INSERTs executed before the error are being somehow committed, leaving the database in an inconsistent state.
    This is only produced in one environment.
    Any idea what the issue could be?

    All statements are executed with in a Transaction. Under the same scenario this code works perfectly fine for 1000s of customers. Only one customer has this issue.
    You need to capture profiler to check transaction scope.
    Balmukund Lakhani
    Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
    This posting is provided "AS IS" with no warranties, and confers no rights.
    My Blog |
    Team Blog | @Twitter
    | Facebook
    Author: SQL Server 2012 AlwaysOn -
    Paperback, Kindle

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

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

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

  • Database error"ORA-00060: deadlock detected while waiting for resource"

    Hi All,
    I got dump as
    Database error text........: "ORA-00060: deadlock detected while waiting for
      resource"
    Internal call code.........: "[RSQL/RDUP/NRIV ]"
    Please check the entries in the system log (Transaction SM21).
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
    in
    procedure "READ_NRIV" "(FORM)", nor was it propagated by a RAISING clause.
    Can u ppl tell me how to get correct this?
    Edited by: Bala Chandar on Jul 20, 2009 11:01 AM

    Hi Bala,
    Same type of dump we got when we trigger the DTP which in process chain to load data from DSO to Info cube. And the load had processed with 225 data package and at 164th data package we got this error and except 164th data package all data package processed successfully
    And the request was red. So we had done processed manually by clicking the icon. So all its been green and successfully loaded.
    So when you do process manual the particular data package which got failed will be process successfully  

  • ORA-00060 "deadlock detected while waiting for resource"

    Hello.
    I am having an oracle deadlock when calling a stored procedure (wich updates several records in several tables) from several threads: ORA-00060 error. The error does not happen very often but from time to time, normally the calls to this proceudre end ok.
    Each call starts and ends a transaction. (When the oracle error raises the transaction where it raises is rolled back) and the other transactions can go on.
    I don't how to avoid it. Should it be solved at the stored procedure level or could it be solved at java level by doing the call to the stored procedure to be synchronized?
    Thanks in advance.

    Fernando_Sanchez wrote:
    Hello.
    I am having an oracle deadlock when calling a stored procedure (wich updates several records in several tables) from several threads: ORA-00060 error. The error does not happen very often but from time to time, normally the calls to this proceudre end ok.Which doesn't really sound good.
    If you have a java thread then to do JDBC, regardless of what type, you get a new connection and new statements in each one.
    If you are not doing that then that is a problem.
    If you are doing that then the thread information is irrelevant at the java level.
    You can of course do all sorts of interesting things with locks and transactions in Oracle and via stored procs but other ways as well. And if you are not careful it will cause problems.

  • ORA-00060: deadlock detected while waiting for resource ON INSERT

    I am running into a deadlock while INSERTING records into a table. This seems strange to me. I've tracked it down to the following, and it feels like an Oracle bug to me, so I wanted to get another opinion:
    I have a procedure that inserts records into a table.
    That table has a Before INSERT OR UPDATE OR DELETE FOR EACH ROW trigger on it.
    The trigger has an IF UPDATING section in it; this section updates records in other tables related to this table.
    I have confirmed that the IF UPDATING section is not firing (which makes sense because I am inserting, but since I was getting a deadlock, it seemed to make sense that somehow the updating section was firing).
    Here's the part that makes this feel buggy:
    I have been able to reproduce the deadlock pretty much on command.
    I commented out the IF UPDATING section of the trigger, compiled the trigger, and then put the IF UPDATING section of the trigger back in, and compiled it. Note there was no net code change.
    I ran my procedure that inserts records and experienced NO DEADLOCK.
    However, if I compile the original version of the trigger (before I commented code out and put it back in), the deadlock reappears. To make the deadlock go away, I have to re-comment out the code, compile, put the code back, and compile again.
    I know this sounds crazy. I'm running Oracle Database 11g Release 11.2.0.2.0.
    Has anyone ever seen something like this before?

    MPL wrote:
    Thanks - there are no autonomous transactions being run. Here's the deadlock graph:
    ---------Blocker(s)--------  ---------Waiter(s)---------
    Resource Name          process session holds waits  process session holds waits
    TX-00220006-0000a762        71     207     X             70      46           S
    TX-00200020-000072ee        70      46     X             71     207           S
    session 207: DID 0001-0047-00000016     session 46: DID 0001-0046-00000021
    session 46: DID 0001-0046-00000021      session 207: DID 0001-0047-00000016
    Rows waited on:
    Session 207: obj - rowid = 00000000 - D/////AACAAAMS9AAA
    (dictionary objn - 0, file - 2, block - 50365, slot - 0)
    Session 46: obj - rowid = 0000ADF7 - AAAsJmAASAAAXYGAAA
    (dictionary objn - 44535, file - 18, block - 95750, slot - 0)
    There are various anomalies that can cause the TX locks waiting in S mode - many of them to do with indexes or unique constraints. Your rowid information may be misleading - but it's worth checking which object has object_id 44535. (I'm always inclined to assume that any reference to slot 0 is suspect, and objn 0 is clearly not a real object.)
    The trace file should be reporting the SQL that the two sessions are waiting on - does that give you any clues.
    Regards
    Jonathan Lewis

  • ORA-00060: deadlock detected while waiting for resource CLOSE cursor

    Hi,
    I am a new member of this forum. I am working with a problem we got a few weeks ago. It is from a Pro C batch executable running on 10 threads dealing with >800 data accessed from multiple tables. The error as reported came from a package.function call.
    This is the error I encountered:
    process_item~G****, D***~-60~ORA-00060: deadlock detected while waiting for resource~PACKAGE ERROR = CLOSE cursor C_***** in package R***.I*** 7641
    The cursor is a simple SELECT cursor without Table or Record locking.
    My questions are:
    *Upon the occurrence of this error, is the execution already at the CLOSE cursor line or did the error occurred between the OPEN cursor and the CLOSE cursor? There are several lines of code in between OPEN and CLOSE:
    - one that calls for a package.function that simply stores parameter values to a variable
    - another one which fetches the cursor. The group that holds the cursor values is only used by a single function in the package
    *Is it possible for this CLOSE cursor to cause a deadlock? What could have caused this?
    *From what I know, Oracle deals with deadlocks by aborting the deadlocking process while others continue, but this deadlock caused our program to hang. How is this possible? Could the root cause of the deadlock be from our threading program? This is a rare occurrence and happened only twice this year.
    Thanks,
    Raf

    Raf Serrano wrote:
    Hi,
    I am a new member of this forum. I am working with a problem we got a few weeks ago. It is from a Pro C batch executable running on 10 threads dealing with >800 data accessed from multiple tables. The error as reported came from a package.function call.
    This is the error I encountered:
    process_item~G****, D***~-60~ORA-00060: deadlock detected while waiting for resource~PACKAGE ERROR = CLOSE cursor C_***** in package R***.I*** 7641
    The cursor is a simple SELECT cursor without Table or Record locking.
    My questions are:
    *Upon the occurrence of this error, is the execution already at the CLOSE cursor line or did the error occurred between the OPEN cursor and the CLOSE cursor? There are several lines of code in between OPEN and CLOSE:
    - one that calls for a package.function that simply stores parameter values to a variable
    - another one which fetches the cursor. The group that holds the cursor values is only used by a single function in the package
    *Is it possible for this CLOSE cursor to cause a deadlock? What could have caused this?
    *From what I know, Oracle deals with deadlocks by aborting the deadlocking process while others continue, but this deadlock caused our program to hang. How is this possible? Could the root cause of the deadlock be from our threading program? This is a rare occurrence and happened only twice this year.
    Thanks,
    RafSELECT (without FOR UPDATE) statements are never involved in ORA-00060.
    only DML statements throw ORA-00060 error

  • ORA-00060: deadlock detected while adding a datafile

    Hello all,
    I found a strange error today.
    We were trying add datafile to our existing tablespace as usually but suddenly caught in a problem.
    SQL> alter tablespace erp_dat2 add datafile '/hotdata2/irsdata/erp_dat2irs_145.dbf' size 2000M;
    alter tablespace erp_dat2 add datafile '/hotdata2/irsdata/erp_dat2irs_145.dbf' size 2000M
    ERROR at line 1:
    ORA-00060: deadlock detected while waiting for resourcelooks very strange.Searched on google but not found something useful.Still searching.No trace file is generated as such.
    Any ideas will be appreciated. Is it related to any batch job running?
    OS : SunOS 5.10 Generic_142900-13 sun4u sparc SUNW,Sun-Fire (64-bit)
    RDBMS : 11.1.0.7
    Regards!
    Edited by: Nitin Joshi on Sep 30, 2010 3:41 PM
    Changed subject line

    seems like you're hitting a bug in 11.1.0.7
    Bug 8332021 - Cannot add a datafiles when sessions reporting ORA-1653 [ID 8332021.8]
    ORA-60 can occur during datafile addition when concurrent sessions
    are reporting ORA-1653 .>>Workaround:
    >> Stop the sessions getting the errors then add the datafile.

Maybe you are looking for

  • Do I Need To Back-Up This File? Airport Utility Problem Too....

    Hi all.... I need to start by thanking those in this particular forum for all of your help. My Time Capsule was unable to complete it's initial back-up - I made 4 calls and 3 hours on the phone with Apple Care and they were not able to figure out my

  • A very simple scenario, but I can't find a solution

    Hi, I have an iPhone that runs IOS 4.1. It is synced with iTunes library at home which has all my music, video, podcasts, apps, etc. Occasionally when I'm at work I come across an audio clip or video clip that I would like to save on an iPhone to wat

  • Search by PR #, PO # etc from R12.1.3

    Dear All, Currently we are using 11.5.9 and soon going for upgrade to R 12.1.3. At present, we are using a seperate portal to search PR#, PO#, status (Inprocess/Approved), vendor, Buyer, by division (a person from a division can search only his/her d

  • Buying a new mac with snow leopard vs. lion?

    I've been saving up to buy a Macbook pro for sometime, to make the PC to Mac switch, and after the announcement of lion I've been considering waiting to buy a new Macbook until lion comes out. I'm not entirely sure about this decision though because

  • I just bought a Macbook Air 2 months ago, turns out they sold me a 2011 instead of 2012! What can I do?

    I am brand new to purchasing Mac computers, and pretty much was duped from the start. I purchased a "new" Macbook Air and was so excited. It's pretty much had huge issues from the start. I did some reading and found out all 2011 models have this issu