Oracle Deadlock analysis

Is there a good book or document that covers IN DETAIL how to analysis both 60 and 2040 deadlock dumps. I have downloaded the metalink documents and for simple deadlock situations they work great.
I have, however, encountered dumps that did not provide straight forward information. The Metalink support analysis offered little help and I understand this is beyond the scope of their responsibility.
I did get help from a DBA on the metalink forum and by deduction something like "since you do not use Materialized View and IOT and there is no second table in the dump it must be Init Trans" he helped me resolve the problem by analysis of the dump file.
Now I have a weird 4020 error that makes little sense.
I would really like to learn how to read these dumps myself. There must be information somewhere. The Metalink Analysis pointed me to the White Papers mentioned above but our deadlocks are rarely that simple because we are careful to avoid them in our code.
If you know of any detailed information please let me know.
Thank You.

Is there a good book or document that covers IN DETAIL how to analysis both 60 and 2040 deadlock dumps. I have downloaded the metalink documents and for simple deadlock situations they work great.
I have, however, encountered dumps that did not provide straight forward information. The Metalink support analysis offered little help and I understand this is beyond the scope of their responsibility.
I did get help from a DBA on the metalink forum and by deduction something like "since you do not use Materialized View and IOT and there is no second table in the dump it must be Init Trans" he helped me resolve the problem by analysis of the dump file.
Now I have a weird 4020 error that makes little sense.
I would really like to learn how to read these dumps myself. There must be information somewhere. The Metalink Analysis pointed me to the White Papers mentioned above but our deadlocks are rarely that simple because we are careful to avoid them in our code.
If you know of any detailed information please let me know.
Thank You.

Similar Messages

  • Bursting 2 Oracle BI Analysis type Data Set

    Hi
    We have 2 Oracle BI Analysis type Data Set.We are able to burst but in the email we just recieve only email attachement with only header(only column headings) ( in
    excel/pdf output without any data.
    But when we import the report xml and load into xml into template we are able to preview data in excel or PDF format.
    Could you Please answer as soon as possible
    Thanks
    Nitesh

    edit BI Analysis and remove any FILTER USING etc... save analysis and then try in BIP to add the BI Analysis data set.

  • Oracle 10g analysis workspace manager

    I'm looking for a weblink to install Oracle 10g analysis workspace manager.
    I'm not sure whether it's available for free download.
    Can someone help me?..
    Thanks,
    Bhagat

    Hey;
    Thanks again for the response. I tried dropping the repository and got a whole bunch of errors. While attempting to enable the sysman account, I realized that my password contained some characters that have special meaning for oracle and I think that's what was throwing it. The errors with the repository convinced me to try one more reinstall. Bit overkill, perhaps, but that's the whole point of a practice box. Once the database was up and running, teh enterprise manager is fully functional.
    Now that I think about it, I wonder if that password could be responsible for my other schema issue as well...
    Thanks again; I appreciate your time and patience.
    Doug O'Leary

  • Oracle deadlock question

    *** 2003-12-25 01:02:42.782
    *** SESSION ID:(12.3) 2003-12-25 01:02:42.732
    DEADLOCK DETECTED
    No current SQL statement being executed.
    The following deadlock is not an ORACLE error. It is a
    deadlock due to user error in the design of an application
    or from issuing incorrect ad-hoc SQL. The following
    information may aid in determining the deadlock:
    Deadlock graph:
    ---------Blocker(s)-------- ---------Waiter(s)---------
    I have an application causing an Oracle deadlock with the following trace/dump. The app uses a single transaction to insert a record (containing a blob col) and then select it for update to use the blob col ref to add the blob value. Transaction commit/rollback is explicit after success/failure.
    My question is, given that the trace file indicates the same process/session for the waiter and the blocker, can a single running app instance w/a single session and transaction, block itself? if so, what conditions produce such a deadlock...
    Thanks for any help,
    -Dean Palamides
    Resource Name process session holds waits process session holds waits
    TX-00010016-00000882 12 12 X 12 12 S
    session 12: DID 0001-000C-00000002     session 12: DID 0001-000C-00000002
    Rows waited on:
    Session 12: obj - rowid = 00003152 - AAAAAAAADAAD45hAAA
    (dictionary objn - 12626, file - 3, block - 1019489, slot - 0)
    Information on the OTHER waiting sessions:
    End of information on OTHER waiting sessions.

    Hi Dean:
    We've had a similar problem (but doesn't manifest consistently), also single-thread, via JDBC "thin" onto Oracle 9.2.0.1.0... there's a MetaLink note, 130214.1, that shows the same symptom with Oracle 8.0 when MAX_TRANS of the LOB index is too low. I suspect in our case the INI_TRANS is too low (at 2), but LOB index storage parameters cannot be set in Orcle 9 - it's automatic.
    Were you using JDBC? Is the problem the same when you use PL/SQL's DBMS_LOB.xxx procedures? What Oracle version do you have? Was it BLOB or CLOB? Is the failure consistent?
    If I get any joy from Oracle support, I'll post it here... please let me know any particulars you have (such as above) about your problem.

  • Oracle Deadlock Weblogic 8.1 sp4, Oracle 8i, StuckThreadMaxTime

    It will be very helpful if you can suggest on the deadlock issue....
    Application was fine for more than 6 months, all of a sudden Appplication goes down after throwing Oracle deadlock exception and after which all thread are hung and no ideal thread available to process incoming request.
    We are using weblogic 8.1 sp4 and Oracle 8.1.7
    "<WebLogicServer> <BEA-000337> <ExecuteThread: '19' for queue: 'weblogic.kernel.Default' has been busy for "1,209" seconds working on the request "Http Request: /requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>"
    Attaching part of Thread dump and Jdbc log:
    "ExecuteThread: '24' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=0006a308 nid=37 lwp_id=17700 runnable [0x574e400
    0..0x574e34c0]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:134)
    at oracle.net.ns.Packet.receive(Unknown Source)
    at oracle.net.ns.DataPacket.receive(Unknown Source)
    at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:971)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:941)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:432)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
    at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:783)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2885)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2976)
    - locked <79098e48> (a oracle.jdbc.driver.T4CCallableStatement)
    - locked <5d00fca0> (a oracle.jdbc.driver.T4CConnection)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103)
    - locked <79098e48> (a oracle.jdbc.driver.T4CCallableStatement)
    - locked <5d00fca0> (a oracle.jdbc.driver.T4CConnection)
    at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:102)
    at com.compoundrequester.dataobjects.DeliveryDO.creatOrderOnSubmitRequest(DeliveryDO.java:157)
    at com.compoundrequester.servlets.RequestConfirmedServlet.processInitialScreen(RequestConfirmedServlet.java:
    264)
    at com.compoundrequester.servlets.RequestConfirmedServlet.service(RequestConfirmedServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322)
    at com.compoundrequester.servlets.AbstractRequesterServlet.forwardTo(AbstractRequesterServlet.java:140)
    at com.compoundrequester.servlets.RequestInformationServlet.processSubmitRequest(RequestInformationServlet.j
    ava:312)
    JDBC log stream started at Mon Sep 10 03:00:51 EDT 2007
    DriverManager.initialize: jdbc.drivers = null
    JDBC DriverManager initialized
    registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    DriverManager.getDriver("jdbc:oracle:thin:@prd-coats.prius.jnj.com:1601:CMIP1")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    registerDriver: driver[className=weblogic.jdbc.jts.Driver,weblogic.jdbc.jts.Driver@8864af]
    registerDriver: driver[className=weblogic.jdbc.pool.Driver,weblogic.jdbc.pool.Driver@c787d7]
    registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@1051922]
    DriverManager.getConnection("jdbc:oracle:thin:@ncsprd04.rar.ncsus.jnj.com:1573:cosmprp4")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    DriverManager.deregisterDriver: oracle.jdbc.driver.OracleDriver@1051922
    getConnection returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@1402772]
    DriverManager.getConnection("jdbc:oracle:thin:@ncsprd04.rar.ncsus.jnj.com:1573:cosmprp4")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    DriverManager.deregisterDriver: oracle.jdbc.driver.OracleDriver@1402772
    getConnection returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@893e69]
    SQLException: SQLState(null) vendor code(17110)
    java.sql.SQLException: execution completed with warning
         at oracle.jdbc.driver.DatabaseError.newSqlException(DatabaseError.java:80)
         at oracle.jdbc.driver.DatabaseError.newSqlException(DatabaseError.java:98)
    java.sql.SQLException: Error (-60) caught executing stored procedure: ORA-00060: deadlock detected while waiting for resource
         at com.compoundrequester.dataobjects.AbstractRequestorDataObject.checkStoredProcedure(AbstractRequestorDataObject.java:91)

    We solved the deadlock after changing code.
    Issue is, when Submit button is clicked, it calls requestconfirmed servlet, which in turn calls a proceduer and gets stuck, we tested the same proceduer on development server, but on production it gives the following error, some how database is not processing requests fast enough...
    <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '20' for queue: 'weblogic.kernel.Default' has been busy for "821" seconds working on the request "Http Request: /us/requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
    <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '21' for queue: 'weblogic.kernel.Default' has been busy for "825" seconds working on the request "Http Request: /us/requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
    <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '22' for queue: 'weblogic.kernel.Default' has been busy for "1,125" seconds working on the request "Http Request: /us/requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
    <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '23' for queue: 'weblogic.kernel.Default' has been busy for "1,425" seconds working on the request "Http Request: /us/requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
    <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '24' for queue: 'weblogic.kernel.Default' has been busy for "1,121" seconds working on the request "Http Request: /us/requestconfirmed", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
    Below is thread dump
    Full thread dump [Wed Sep 19 11:58:59 EDT 2007] (Java HotSpot(TM) Server VM 1.4.2 1.4.2.05-040917-18:54-PA_RISC2.0 PA2.0 (aCC_AP) mixed mode):
    "ListenThread.Default" prio=10 tid=0007a318 nid=62 lwp_id=24967 runnable [0x56d54000..0x56d544c0]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <5d2455d8> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:454)
         at java.net.ServerSocket.accept(ServerSocket.java:425)
         at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:26)
         at weblogic.t3.srvr.ListenThread.accept(ListenThread.java:735)
         at weblogic.t3.srvr.ListenThread.run(ListenThread.java:301)
    "OracleTimeoutPollingThread" daemon prio=8 tid=01ddf950 nid=61 lwp_id=24114 waiting on condition [0x568cb000..0x568cb4c0]
         at java.lang.Thread.sleep(Native Method)
         at oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:144)
    "Thread-8" prio=8 tid=0007aa20 nid=60 lwp_id=24110 waiting on condition [0x5694c000..0x5694c4c0]
         at java.lang.Thread.sleep(Native Method)
         at com.jandj.rwjpri.us.release.REL1.run(REL1.java:221)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-7" daemon prio=8 tid=0007a8b8 nid=59 lwp_id=24107 waiting on condition [0x569cd000..0x569cd4c0]
         at java.lang.Thread.sleep(Native Method)
         at com.jandj.rwjpri.us.sessiontracker.usSessionTracker.run(usSessionTracker.java:171)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-6" prio=10 tid=0007a750 nid=58 lwp_id=24088 in Object.wait() [0x56a4e000..0x56a4e4c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5cfb8c18> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <5cfb8c18> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "weblogic.health.CoreHealthMonitor" daemon prio=8 tid=0007a5e8 nid=57 lwp_id=24022 waiting on condition [0x56acf000..0x56acf4c0]
         at java.lang.Thread.sleep(Native Method)
         at weblogic.t3.srvr.CoreHealthMonitorThread.run(CoreHealthMonitorThread.java:128)
    "Thread-5" prio=10 tid=0007a480 nid=56 lwp_id=24020 in Object.wait() [0x56b50000..0x56b504c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5cd1cdc0> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <5cd1cdc0> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "LDAPConnThread-0 ldap://NCSUSRAEBZWLA01:5001" daemon prio=10 tid=0007a1b0 nid=53 lwp_id=23989 runnable [0x56cd3000..0x56cd34c0]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:134)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <5cc37d78> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:538)
         at java.lang.Thread.run(Thread.java:534)
    "VDE Transaction Processor Thread" prio=10 tid=00079ee0 nid=51 lwp_id=23986 in Object.wait() [0x56dd5000..0x56dd54c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5cc0c2c8> (a com.octetstring.vde.backend.standard.TransactionProcessor)
         at java.lang.Object.wait(Object.java:429)
         at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:365)
         - locked <5cc0c2c8> (a com.octetstring.vde.backend.standard.TransactionProcessor)
         at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)
    "ExecuteThread: '2' for queue: 'weblogic.admin.RMI'" daemon prio=10 tid=0007a048 nid=50 lwp_id=23985 in Object.wait() [0x56e56000..0x56e564c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5cb6f4f0> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'weblogic.admin.RMI'" daemon prio=10 tid=00079c10 nid=49 lwp_id=23984 in Object.wait() [0x56ed7000..0x56ed74c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5cb6efc8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'weblogic.admin.RMI'" daemon prio=10 tid=00079d78 nid=48 lwp_id=23983 in Object.wait() [0x56f58000..0x56f584c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5cb6ea80> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=00079aa8 nid=47 lwp_id=23978 waiting for monitor entry [0x56fd9000..0x56fd94c0]
         at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:93)
         - waiting to lock <5ca5efe0> (a java.lang.String)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=00079940 nid=46 lwp_id=23977 waiting for monitor entry [0x5705a000..0x5705a4c0]
         at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:93)
         - waiting to lock <5ca5efe0> (a java.lang.String)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=000797d8 nid=45 lwp_id=23976 runnable [0x570db000..0x570db4c0]
         at weblogic.socket.PosixSocketMuxer.poll(Native Method)
         at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:100)
         - locked <5ca5efe0> (a java.lang.String)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    "weblogic.security.SpinnerRandomSource" daemon prio=10 tid=00079670 nid=44 lwp_id=23974 in Object.wait() [0x5715c000..0x5715c4c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5ca48110> (a java.lang.Object)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.security.SpinnerRandomBitsSource.run(SpinnerRandomBitsSource.java:60)
         - locked <5ca48110> (a java.lang.Object)
         at java.lang.Thread.run(Thread.java:534)
    "weblogic.time.TimeEventGenerator" daemon prio=10 tid=00079508 nid=43 lwp_id=23973 in Object.wait() [0x571dd000..0x571dd4c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5ca46690> (a weblogic.time.common.internal.TimeTable)
         at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:272)
         - locked <5ca46690> (a weblogic.time.common.internal.TimeTable)
         at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:118)
         at java.lang.Thread.run(Thread.java:534)
    "ExecuteThread: '4' for queue: 'weblogic.kernel.System'" daemon prio=10 tid=000793a0 nid=42 lwp_id=23972 in Object.wait() [0x5725e000..0x5725e4c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5ca45e18> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '3' for queue: 'weblogic.kernel.System'" daemon prio=10 tid=00079238 nid=41 lwp_id=23971 in Object.wait() [0x572df000..0x572df4c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5ca45958> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '2' for queue: 'weblogic.kernel.System'" daemon prio=10 tid=000790d0 nid=40 lwp_id=23970 in Object.wait() [0x57360000..0x573604c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5ca45498> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'weblogic.kernel.System'" daemon prio=10 tid=00078f68 nid=39 lwp_id=23969 in Object.wait() [0x573e1000..0x573e14c0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5ca44fd8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'weblogic.kernel.System'" daemon prio=10 tid=00078e00 nid=38 lwp_id=23968 in Object.wait() [0x57462000..0x574624c0]
         at java.lang.Object.wait(Native Method)
         - waiting on <5ca44b18> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
         - locked <5ca44b18> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '24' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=00078c98 nid=37 lwp_id=23967 runnable [0x574e4000..0x574e34c0]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:134)
         at oracle.net.ns.Packet.receive(Unknown Source)
         at oracle.net.ns.DataPacket.receive(Unknown Source)
         at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:971)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:941)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:432)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:783)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2885)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2976)
         - locked <5d4c8b68> (a oracle.jdbc.driver.T4CCallableStatement)
         - locked <5d01e348> (a oracle.jdbc.driver.T4CConnection)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103)
         - locked <5d4c8b68> (a oracle.jdbc.driver.T4CCallableStatement)
         - locked <5d01e348> (a oracle.jdbc.driver.T4CConnection)
         at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:102)
         at com.jnj.jjprd.compoundrequester.dataobjects.DeliveryDO.creatOrderOnSubmitRequest(DeliveryDO.java:157)
         at com.jnj.jjprd.compoundrequester.servlets.RequestConfirmedServlet.processInitialScreen(RequestConfirmedServlet.java:264)
         at com.jnj.jjprd.compoundrequester.servlets.RequestConfirmedServlet.service(RequestConfirmedServlet.java:115)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322)
         at com.jnj.jjprd.compoundrequester.servlets.AbstractRequesterServlet.forwardTo(AbstractRequesterServlet.java:140)
         at com.jnj.jjprd.compoundrequester.servlets.RequestInformationServlet.processSubmitRequest(RequestInformationServlet.java:312)
         at com.jnj.jjprd.compoundrequester.servlets.RequestInformationServlet.service(RequestInformationServlet.java:102)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    "ExecuteThread: '23' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=00078b30 nid=36 lwp_id=23966 runnable [0x57565000..0x575644c0]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:134)
         at oracle.net.ns.Packet.receive(Unknown Source)
         at oracle.net.ns.DataPacket.receive(Unknown Source)
         at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:971)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:941)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:432)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:783)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2885)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2976)
         - locked <7a880610> (a oracle.jdbc.driver.T4CCallableStatement)
         - locked <7a880958> (a oracle.jdbc.driver.T4CConnection)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103)
         - locked <7a880610> (a oracle.jdbc.driver.T4CCallableStatement)
         - locked <7a880958> (a oracle.jdbc.driver.T4CConnection)
         at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:102)
         at com.jnj.jjprd.compoundrequester.dataobjects.DeliveryDO.creatOrderOnSubmitRequest(DeliveryDO.java:157)
         at com.jnj.jjprd.compoundrequester.servlets.RequestConfirmedServlet.processInitialScreen(RequestConfirmedServlet.java:264)
         at com.jnj.jjprd.compoundrequester.servlets.RequestConfirmedServlet.service(RequestConfirmedServlet.java:115)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322)
         at com.jnj.jjprd.compoundrequester.servlets.AbstractRequesterServlet.forwardTo(AbstractRequesterServlet.java:140)
         at com.jnj.jjprd.compoundrequester.servlets.RequestInformationServlet.processSubmitRequest(RequestInformationServlet.java:312)
         at com.jnj.jjprd.compoundrequester.servlets.RequestInformationServlet.service(RequestInformationServlet.java:102)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    vs
    Edited by sw_vishal at 09/25/2007 10:29 AM

  • Problem with Oracle deadlocks

    We are having severe problems with deadlocks in Oracle. We have a web-based student online course registration system that gets hit hard at the precise minute registration starts, then proceeds to generate between 100-200 trace files within 10 minutes, bringing the database to a near standstill. Every trace file contains the same SQL statement and I tried reorganizing the table referenced in the statement, allocating 100 initrans slots. This did not help at all. The application vendor is looking at their PL/SQL source, but denies that they have a problem. Does anyone have any suggestions?
    Any input would be much appreciated,
    Regards,
    Don Morse

    To solve deadlocks, the developer must ensure that in every transaction of the application, the tables are updated in same order.
    That is:
    Transaction 1
    UPDATE T1
    UPDATE T2
    COMMIT
    Transaction 2
    UPDATE T1
    UPDATE T2
    COMMIT
    And also, if you have multiple updates to the same table across the code of your application, they must be in the same order also.
    Transaction 1
    UPDATE T1 WHERE COL=1
    UPDATE T1 WHERE COL=2
    COMMIT
    Transaction 2
    UPDATE T1 WHERE COL=1
    UPDATE T1 WHERE COL=2
    COMMIT
    If you cant be sure of the order, you can make more frecuent COMMIT, but be sure the database doesn't go inconsistent.

  • Oracle deadlock - how to use "synchronised" keyword in a transaction?

    Hi,
    I use WL6.1 SP4, Oracle 8.1.6, with some Java objects which execute a
    lot
    of SQL queries (mixed update, insert and select) using plain JDBC
    calls,
    and Weblogic connection pools. These objects are called by servlets.
    I experienced recently deadlocks when two users call the object at the
    same
    time (See error below).
    I execute the queries using "synchronized" keyword in the following
    way:
    synchronized (this)
    conConnection.setAutoCommit(false);
    executeTransaction(myStatement);
    conConnection.commit();
    executeTransaction is overriden in sub-classes and is the method which
    executes
    all the queries.
    It calls methods in other objects. These methods are not declared as
    synchronized.
    1) Should they?
    2) Should I use the keyword "synchronized" in another way?
    3) This part of code is also called when I do only "select"
    statements. I guess
    it should only be synchronized when we do "update" and "insert" which
    could lead
    to a deadlock?
    4) Do you have any idea why this deadlock occurs as I use the
    "synchronized"
    keyword, and one thread should wait until the other one has finished?
    Thanks for any idea,
    Stéphanie
    ----------------- error:
    <ExecuteThread: '4' for queue: 'default'> <> <> <000000> <SQL request
    sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
    4 WHERE par.IDPARTICIPANT = 8983566>
    <ExecuteThread: '11' for queue: 'default'> <> <> <000000> <SQL request
    sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
    6 WHERE par.IDPARTICIPANT = 8983570>
    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:573)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
         at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
         at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:872)
         at weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.java:89)
         at weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:100)
         at bfinance.framework.EDBBLBean.executeSQL(EDBBLBean.java:299)

    Hi Stepanie,
    I'd try to group update statement together. Usually it helps.
    Regards,
    Slava Imeshev
    "Stephanie" <[email protected]> wrote in message
    news:[email protected]...
    Thanks for your answer.
    In the case you describe, is there a way to ensure that tx-2 waits for
    tx-1
    to be finished before beginning?
    My transaction which causes the problem is the following (simplified):
    UPDATE tableA SET islast=0 WHERE externalid=myid;
    for (int i=0; i< aVector.size(); i++) {
    INSERT INTO tableA (id, islast, ranking, externalid) (SELECT
    SEQ_tableA.nextval, 1, 0, myid);
    UPDATE tableA SET ranking = /*calculated ranking */
    WHERE externalid=myid AND islast=1;
    UPDATE tableB ....
    commit;
    tx-1 and tx-2 execute this transaction at the same time. tx-1 begins
    The deadlock appears when tx-2 executes the second UPDATE tableA
    query.
    I don't see how I can avoid to execute these two update queries, so if
    I can find another way to prevent deadlock, it would be great!
    Stéphanie
    Joseph Weinstein <[email protected]_this> wrote in message
    news:<[email protected]_this>...
    Stephanie wrote:
    Hi,
    I use WL6.1 SP4, Oracle 8.1.6, with some Java objects which execute a
    lot
    of SQL queries (mixed update, insert and select) using plain JDBC
    calls,
    and Weblogic connection pools. These objects are called by servlets.
    I experienced recently deadlocks when two users call the object at the
    same
    time (See error below).Hi. The error you are getting isn't necessarily from a lack ofsynchronization
    of your java objects. It has to do with the order in which you accessDBMS
    data. You are getting ordinary DBMS deadlocks, which are caused when
    two DBMS connections each have a lock the other wants, in order toproceed.
    The DBMS will quickly discover this and will kill one transaction inorder to
    let the other one proceed:
    time 0: tx-1 and tx-2 have started.....
    time 1: tx-1: update tableA set val = 1 where key = 'A'
    time 2: tx-2: update tableB set val = 2 where key = 'B'
    time 3: tx-1: update tableB set val = 1 where key = 'B' (waitsbecause tx-2 has the row
    locked)
    time 4: tx-2: update tableA set val = 2 where key = 'A' (waitsbecause tx-1 has the row
    locked)
    This is a deadlock. The solution is to organize your application code sothat every
    transaction accesses the data in the same order, eg: update tableAfirst, then update tableB.
    This will prevent deadlocks.
    Joe Weinstein at BEA
    I execute the queries using "synchronized" keyword in the following
    way:
    synchronized (this)
    conConnection.setAutoCommit(false);
    executeTransaction(myStatement);
    conConnection.commit();
    executeTransaction is overriden in sub-classes and is the method which
    executes
    all the queries.
    It calls methods in other objects. These methods are not declared as
    synchronized.
    1) Should they?
    2) Should I use the keyword "synchronized" in another way?
    3) This part of code is also called when I do only "select"
    statements. I guess
    it should only be synchronized when we do "update" and "insert" which
    could lead
    to a deadlock?
    4) Do you have any idea why this deadlock occurs as I use the
    "synchronized"
    keyword, and one thread should wait until the other one has finished?
    Thanks for any idea,
    Stéphanie
    ----------------- error:
    <ExecuteThread: '4' for queue: 'default'> <> <> <000000> <SQL request
    sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
    4 WHERE par.IDPARTICIPANT = 8983566>
    <ExecuteThread: '11' for queue: 'default'> <> <> <000000> <SQL request
    sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
    6 WHERE par.IDPARTICIPANT = 8983570>
    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:573)
    atoracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
    atoracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
    atoracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047
    atoracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
    :2709)
    atoracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
    atweblogic.jdbc.pool.Statement.executeUpdate(Statement.java:872)
    atweblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.java:89
    atweblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:100)
    at bfinance.framework.EDBBLBean.executeSQL(EDBBLBean.java:299)

  • Oracle deadlocks on delete statement

    I had a package procedure that deletes from a inline-view. It worked well and didn't create any database locks, looked like this:
    PROCEDURE serverdisconnect(pCode1 NUMERIC, pCode2 NUMERIC) IS
      BEGIN
         DELETE FROM
            SELECT cl.* FROM CurrentLogins cl, Accounts a
            WHERE cl.Code1 = pCode1
            AND cl.Code2 = pCode2
            AND cl.Code = a.code
            AND a.Type = 'lplayer'
            ORDER BY a.code
        COMMIT;
      END serverdisconnect;I slightly changed the procedure to look like following, and deadlocks started to come:
    PROCEDURE ServerDisconnect(pCode1 NUMERIC, pCode2 NUMERIC, pChannelServerCode CurrentLogins.ChannelServerCode%TYPE, pDeleteList OUT cursor_type)
      IS
        vDeleteList sys.ODCINumberList;
      BEGIN
        DELETE FROM
            SELECT cl.* FROM CurrentLogins cl, Accounts a
            WHERE cl.Code1 = pCode1
           AND cl.Code2 = pCode2
           AND cl.Code = a.code
           AND cl.ChannelServerCode = pChannelServerCode
           AND cl.Code = a.code
           AND a.Type = 'lplayer'
        ) RETURNING Code
          BULK COLLECT INTO vDeleteList;
        OPEN pDeleteList FOR
          SELECT * FROM TABLE(vDeleteList);
        COMMIT;
      END ServerDisconnect;As you see the main difference in the delete statement is that i removed "ORDER BY"-clause? Can really such data ordering plays a role with dead locking? Does the data records be always ordered with ORDER-BY-clause same way always to avoid deadlock? Why i started to get deadlock after changing the procedure?
    I have Oracle 10g.

    Yes, typo, i fixed initial post now.
    Delete will be technically done on table CurrentLogins, using that inline-view.
    I will move the Commit to proper place as you suggested.
    but still i don't understand why deadlocks started to occure.
    Maybe really the answer is having "order by" clause, which solves the deadlocks?
    See this link:
    http://www.oracle-base.com/articles/misc/Deadlocks.php
    >
    To resolve the issue, make sure that rows in tables are always locked in the same order.
    >
    Does it says that i always have to have "order by" sentence included into my delete statement?
    Relationships between tables:
    alter table CURRENTLOGINS
      add constraint FK_CURRENTLOGINS_ACCOUNTS foreign key (CODE)
      references ACCOUNTS (CODE);Maybe ORDER-BY really solves deadlocks then, see:
    http://www.dbasupport.com/forums/archive/index.php/t-50438.html
    >
    Add an explicit ORDER BY to the select, and it will probably go away.
    >
    Edited by: CharlesRoos on Sep 9, 2010 6:05 AM

  • Troubleshooting tuxedo services .. related to Oracle deadlock errors

    Afternoon all,
    I support an application that allows API calls to tuxedo services using messages comprised of FML fields. Our application sits on an OracleDB that is experiencing deadlock issues, one of the tuxedo servers involved in the deadlock is one that advertises services accessed by the API calls so I'm trying to rule it out as the source.
    Is there any way to trace/log the services in detail so that I can tie the deadlocks directly to a call of a tuxedo service?
    I've looked into TMTRACE, but I'm not sure this is going to give me the detail I need.
    Changing application code is not an option unfortunately.
    Thanks,
    Adam

    Hi Todd,
    Thanks for the quick response.
    Aplogies for the ignorance, but what do you mean by XA / local database transaction?
    Our architecture is such that a tuxedo server, that offers the services our APIs talk to, makes the Oracle updates. Is that XA or local?
    Oracle's logging and deadlock messages show me what the updates are, but I'm trying to make sure 100% that an API called service is instigating that update.
    Hope that is clear enough!
    Cheers,
    Adam
    Todd Little wrote:
    Hi Adam,
    Are the Tuxedo services using XA transactions or only local database transactions? The reason I ask is that TSAM offers the ability to track XA transactions and might be able to tell you what's happening. It can also track services and call paths, i.e., complete end-to-end call tracking from a Tuxedo client, through intervening servers (services).
    If you are not using XA transactions, I'm afraid there isn't a lot that Tuxedo can provide you as Tuxedo is unaware of the underlying database requests. In fact, if you aren't using XA transactions, Tuxedo doesn't even know a database is involved it the processing of requests.
    I would think you should be able to trace things from the database side, but you'd have to ask that question over in the database forums as I'm not familiar enough with what tracing/debugging facilities on the database side to give you much help.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Oracle Deadlock script

    hi,
    i am using oracle 11g in windows 2003 server. i stimulated oracle dead lock but i want a script which should show me whether the lock is dead lock or normal lock etc......
    Plz can anyone tell me what all the tables i should use to get the information?????
    Thanks in advance

    There is no query to check for deadlocks - since deadlocks are handled (or resolved immediately) by Oracle kernel.
    For transactional locks, you can query V$lock, v$locked_object, dba_blockers.

  • Best Oracle DB Analysing utility

    Hai Experts,
    I need a Software , to help the Oracle Database Optimization...(such a as statspack analyser/details of long sql operations...etc..)
    so please give me the details of the best tools available in the market (Free/Paid software)..
    regards,
    jp
    Edited by: jp@valapad on Mar 17, 2010 1:23 AM

    Hi
    V 11.1.0.7
    AWR , ADDM , SPA , DBMS_ADVISOR , DBMS_SQLTUNE .....
    EE and separate license is required to use them
    T

  • Javascript error in Oracle BI analysis

    Hi all,
    I am getting the following js error when i am creating analyses.
    this error happens when i drag and drop column from subject area to selected column panel.
    And nothing happen rather than showing column.
    Webpage error details
    User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MALC)
    Timestamp: Tue, 30 Oct 2012 08:28:12 UTC
    Message: 'kmsgPickerUIJSCantAddColumns' is undefined
    Line: 1
    Char: 1781
    Code: 0
    URI: http://127.0.0.1:9704/analytics/res/b_mozilla/picker.js
    Message: 'kmsgPickerUIJSCantAddColumns' is undefined
    Line: 1
    Char: 1781
    Code: 0
    URI: http://127.0.0.1:9704/analytics/res/b_mozilla/picker.js

    Hi prassu,
    Thanks for reply,
    we don't change anything. we don't even know where it is.
    can u tell me location of the file that i can replace?
    this start happens after we change ip address of BI server.
    same problem happens on any browser.
    With Regards,
    WP

  • Oracle Sales Analyser

    Hi All,
    I have installed Oracle Express server & OSA Server in my Sun solaris server machine,where my oracle 8.0 database is running and Oracle Express client & OSA client in another machine(Working in Windows 95 platform). I have done all basic settings properly. Further,it is allowing to create dimensions using Relational Access Manager in client machine. But,I am getting SNAPI error, while trying to connect OSA server from OSA client.
    Can you please help me.
    Thanks in advance.
    swami

    You'll probably get more responses to this if it's posted under "Business Intelligence". This forum is specifically for users of Oracle Projects applications (Project Costing, Project Billing, etc.).

  • Deadlock Analysis help required

    Hi,
    In our environment we received an deadlock as below. Could any one please help me understand the cause of this deadlock. This occurred on SQL Server 2005 Sp4. Update stats and reindexing occurs daily once in the night.
    <EVENT_INSTANCE>
      <EventType>DEADLOCK_GRAPH</EventType>
      <PostTime>2014-10-16T03:01:56.317</PostTime>
      <SPID>21</SPID>
      <TextData>
        <deadlock-list>
          <deadlock victim="process4445978">
            <process-list>
              <process id="process4445978" taskpriority="0" logused="18444" waitresource="KEY: 61:72057599368822784 (ef00451cf601)" waittime="1965" ownerId="31549861052"
    transactionname="INSERT" lasttranstarted="2014-10-16T03:01:54.317" XDES="0x5cfd1faa50" lockMode="S" schedulerid="23" kpid="66500" status="suspended" spid="98" sbid="0"
    ecid="0" priority="0" transcount="1" lastbatchstarted="2014-10-16T03:01:54.297" lastbatchcompleted="2014-10-16T03:01:54.293" clientapp="IMPT" hostname="IMPT" hostpid="328" loginname="sa"
    isolationlevel="read committed (2)" xactid="31549861052" currentdb="61" lockTimeout="4294967295" clientoption1="134348832" clientoption2="49192">
                <executionStack>
                  <frame procname="DBName.dbo.CheckTAR" line="11" stmtstart="892" stmtend="2416" sqlhandle="0x03003d00cecb4b0b1b9d5a00f09f00000000000000000000">
    select @bking = cting.bking_id,
      @company = bking.company_code,
      @dest = bking.bking_dest_type,
      @bking_type = isnull( bking_type, 'B' ),
      @travel_type = cting.cting_travel_type,
      @best = IsNull( cting_offered_local, 0.00 ),
      @pub = IsNull( cting_regular_local, 0.00 ),
      @reason = cting_reason_code,
      @reason_acc = reason_code_acc,
      @account_code = cting.account_code,
      @ticket = IsNull( cting.cting_ticket_number, '' ),
      @basefare = cting.service_sell_local
     from bking, cting
     where bking.agency_id = cting.agency_id
     and bking.bking_id = cting.bking_id
     and cting.cting_unique = @cting
     and cting.agency_id = @agency_id
     -- if BSP cting, ticket number is required     </frame>
                  <frame procname="DBName.dbo.cn_ai_cting" line="70" stmtstart="6180" stmtend="6324" sqlhandle="0x03003d0072a4ec0aa86f5800c5a300000100000000000000">
    select @tar = dbo.CheckTAR( @agency_id, @cting )
     -- Missing TAR     </frame>
                  <frame procname="DBName.dbo.tr_cting_iu" line="259" stmtstart="26016" stmtend="26124" sqlhandle="0x03003d00ab3a29741fa27201b8a300000000000000000000">
    exec cn_ai_cting @agency_id, @bking, @cting     </frame>
                  <frame procname="adhoc" line="1" stmtstart="2608" sqlhandle="0x0200000042b0400dc6178184082a38472f12940cda29b1a3">
    INSERT INTO [cting]([agency_id],[bking_id],[cting_unique],[currency_code],[iata_code],[account_code],[service_cost_basis],[service_cost_amount],[service_cost_exchange],[service_cost_local],[service_sell_basis],[service_sell_amount],[service_sell_exchange],[service_sell_local],[cting_total_discount],[cting_total_tax],[cting_total_override],[cting_override_amount],[cting_override_percent],[cting_rebate_amount],[cting_rebate_percent],[service_sell_voucher],[cting_received],[cting_remitted],[cting_payment_due],[cting_reason_code],[cting_region],[cting_cost_centre],[office_code],[cting_carrier],[cting_designator],[cting_ticket_number],[cting_conjunction],[cting_ticket_sold],[cting_ticket_cash],[cting_ticket_cash_tax],[cting_ticket_credit],[cting_ticket_credit_tax],[cting_company],[cting_discount_percent],[cting_tax_percent],[cting_commission_percent],[cting_commission_amount],[cting_fop_card],[cting_fop_account],[credit_display],[cting_status],[user    
    </frame>
                  <frame procname="adhoc" line="1" sqlhandle="0x020000004752571d04c3e3b7c69eff6934faf515098b050f">
    INSERT INTO cting ( agency_id , bking_id , cting_unique , currency_code , iata_code , account_code , service_cost_basis , service_cost_amount , service_cost_exchange , service_cost_local , service_sell_basis , service_sell_amount , service_sell_exchange , service_sell_local
    , cting_total_discount , cting_total_tax , cting_total_override , cting_override_amount , cting_override_percent , cting_rebate_amount , cting_rebate_percent , service_sell_voucher , cting_received , cting_remitted , cting_payment_due , cting_reason_code ,
    cting_region , cting_cost_centre , office_code , cting_carrier , cting_designator , cting_ticket_number , cting_conjunction , cting_ticket_sold , cting_ticket_cash , cting_ticket_cash_tax , cting_ticket_credit , cting_ticket_credit_tax , cting_company , cting_discount_percent
    , cting_tax_percent , cting_commission_percent , cting_commission_amount , cting_fop_card , cting_fop_account , credit_display , cting_status , users     </frame>
                </executionStack>
                <inputbuf>
    INSERT INTO cting ( agency_id , bking_id , cting_unique , currency_code , iata_code , account_code , service_cost_basis , service_cost_amount , service_cost_exchange , service_cost_local , service_sell_basis , service_sell_amount , service_sell_exchange , service_sell_local
    , cting_total_discount , cting_total_tax , cting_total_override , cting_override_amount , cting_override_percent , cting_rebate_amount , cting_rebate_percent , service_sell_voucher , cting_received , cting_remitted , cting_payment_due , cting_reason_code ,
    cting_region , cting_cost_centre , office_code , cting_carrier , cting_designator , cting_ticket_number , cting_conjunction , cting_ticket_sold , cting_ticket_cash , cting_ticket_cash_tax , cting_ticket_credit , cting_ticket_credit_tax , cting_company , cting_discount_percent
    , cting_tax_percent , cting_commission_percent , cting_commission_amount , cting_fop_card , cting_fop_account , credit_display , cting_status , user    </inputbuf>
              </process>
              <process id="process17627438" taskpriority="0" logused="21992" waitresource="KEY: 61:72057599368822784 (fa00dbccee86)" waittime="1981" ownerId="31549861037"
    transactionname="INSERT" lasttranstarted="2014-10-16T03:01:54.313" XDES="0x2bb7a58850" lockMode="S" schedulerid="4" kpid="86920" status="suspended" spid="75" sbid="0"
    ecid="0" priority="0" transcount="1" lastbatchstarted="2014-10-16T03:01:54.293" lastbatchcompleted="2014-10-16T03:01:54.290" clientapp="IMPT" hostname="IMPT" hostpid="2264" loginname="sa"
    isolationlevel="read committed (2)" xactid="31549861037" currentdb="61" lockTimeout="4294967295" clientoption1="134348832" clientoption2="49192">
                <executionStack>
                  <frame procname="DBName.dbo.CheckTAR" line="11" stmtstart="892" stmtend="2416" sqlhandle="0x03003d00cecb4b0b1b9d5a00f09f00000000000000000000">
    select @bking = cting.bking_id,
      @company = bking.company_code,
      @dest = bking.bking_dest_type,
      @bking_type = isnull( bking_type, 'B' ),
      @travel_type = cting.cting_travel_type,
      @best = IsNull( cting_offered_local, 0.00 ),
      @pub = IsNull( cting_regular_local, 0.00 ),
      @reason = cting_reason_code,
      @reason_acc = reason_code_acc,
      @account_code = cting.account_code,
      @ticket = IsNull( cting.cting_ticket_number, '' ),
      @basefare = cting.service_sell_local
     from bking, cting
     where bking.agency_id = cting.agency_id
     and bking.bking_id = cting.bking_id
     and cting.cting_unique = @cting
     and cting.agency_id = @agency_id
     -- if BSP cting, ticket number is required     </frame>
                  <frame procname="DBName.dbo.cn_ai_cting" line="70" stmtstart="6180" stmtend="6324" sqlhandle="0x03003d0072a4ec0aa86f5800c5a300000100000000000000">
    select @tar = dbo.CheckTAR( @agency_id, @cting )
     -- Missing TAR     </frame>
                  <frame procname="DBName.dbo.tr_cting_iu" line="259" stmtstart="26016" stmtend="26124" sqlhandle="0x03003d00ab3a29741fa27201b8a300000000000000000000">
    exec cn_ai_cting @agency_id, @bking, @cting     </frame>
                  <frame procname="adhoc" line="1" stmtstart="2608" sqlhandle="0x0200000042b0400dc6178184082a38472f12940cda29b1a3">
    INSERT INTO [cting]([agency_id],[bking_id],[cting_unique],[currency_code],[iata_code],[account_code],[service_cost_basis],[service_cost_amount],[service_cost_exchange],[service_cost_local],[service_sell_basis],[service_sell_amount],[service_sell_exchange],[service_sell_local],[cting_total_discount],[cting_total_tax],[cting_total_override],[cting_override_amount],[cting_override_percent],[cting_rebate_amount],[cting_rebate_percent],[service_sell_voucher],[cting_received],[cting_remitted],[cting_payment_due],[cting_reason_code],[cting_region],[cting_cost_centre],[office_code],[cting_carrier],[cting_designator],[cting_ticket_number],[cting_conjunction],[cting_ticket_sold],[cting_ticket_cash],[cting_ticket_cash_tax],[cting_ticket_credit],[cting_ticket_credit_tax],[cting_company],[cting_discount_percent],[cting_tax_percent],[cting_commission_percent],[cting_commission_amount],[cting_fop_card],[cting_fop_account],[credit_display],[cting_status],[user    
    </frame>
                  <frame procname="adhoc" line="1" sqlhandle="0x02000000dbecfc160f5260e7011ee92610cf7802483d2cff">
    INSERT INTO cting ( agency_id , bking_id , cting_unique , currency_code , iata_code , account_code , service_cost_basis , service_cost_amount , service_cost_exchange , service_cost_local , service_sell_basis , service_sell_amount , service_sell_exchange , service_sell_local
    , cting_total_discount , cting_total_tax , cting_total_override , cting_override_amount , cting_override_percent , cting_rebate_amount , cting_rebate_percent , service_sell_voucher , cting_received , cting_remitted , cting_payment_due , cting_reason_code ,
    cting_region , cting_cost_centre , office_code , cting_carrier , cting_designator , cting_ticket_number , cting_conjunction , cting_ticket_sold , cting_ticket_cash , cting_ticket_cash_tax , cting_ticket_credit , cting_ticket_credit_tax , cting_company , cting_discount_percent
    , cting_tax_percent , cting_commission_percent , cting_commission_amount , cting_fop_card , cting_fop_account , credit_display , cting_status , users     </frame>
                </executionStack>
                <inputbuf>
    INSERT INTO cting ( agency_id , bking_id , cting_unique , currency_code , iata_code , account_code , service_cost_basis , service_cost_amount , service_cost_exchange , service_cost_local , service_sell_basis , service_sell_amount , service_sell_exchange , service_sell_local
    , cting_total_discount , cting_total_tax , cting_total_override , cting_override_amount , cting_override_percent , cting_rebate_amount , cting_rebate_percent , service_sell_voucher , cting_received , cting_remitted , cting_payment_due , cting_reason_code ,
    cting_region , cting_cost_centre , office_code , cting_carrier , cting_designator , cting_ticket_number , cting_conjunction , cting_ticket_sold , cting_ticket_cash , cting_ticket_cash_tax , cting_ticket_credit , cting_ticket_credit_tax , cting_company , cting_discount_percent
    , cting_tax_percent , cting_commission_percent , cting_commission_amount , cting_fop_card , cting_fop_account , credit_display , cting_status , user    </inputbuf>
              </process>
            </process-list>
            <resource-list>
              <keylock hobtid="72057599368822784" dbid="61" objectname="DBName.dbo.cting" indexname="_dta_index_cting_66_1872829834__K104_K2_K1_5_13_21_25_65_71_72_122" id="lock2fdfacb00"
    mode="X" associatedObjectId="72057599368822784">
                <owner-list>
                  <owner id="process4445978" mode="X" />
                </owner-list>
                <waiter-list>
                  <waiter id="process17627438" mode="S" requestType="wait" />
                </waiter-list>
              </keylock>
              <keylock hobtid="72057599368822784" dbid="61" objectname="DBName.dbo.cting" indexname="_dta_index_cting_66_1872829834__K104_K2_K1_5_13_21_25_65_71_72_122" id="lock1a0c079a80"
    mode="X" associatedObjectId="72057599368822784">
                <owner-list>
                  <owner id="process17627438" mode="X" />
                </owner-list>
                <waiter-list>
                  <waiter id="process4445978" mode="S" requestType="wait" />
                </waiter-list>
              </keylock>
            </resource-list>
          </deadlock>
        </deadlock-list>
      </TextData>
      <TransactionID />
      <LoginName>sa</LoginName>
      <StartTime>2014-10-16T03:01:56.317</StartTime>
      <ServerName>SQLInstName</ServerName>
      <LoginSid>AQ==</LoginSid>
      <EventSequence>31666061849</EventSequence>
      <IsSystem>1</IsSystem>
      <SessionLoginName />
    </EVENT_INSTANCE>
    Thanks,
    PK

    >Do newer versions of SQL Server have more deadlocks than SQL2K and SQL7 versions?
    No.  There have been improvements to reduce them, especially RCSI which enables readers to not use locks.  SQL 2014 introduced Memory-Optimized tables which are lock-free and latch-free and use true optimistic concurrency.
    I have so far used neither, and neither is a guaranty.
    The problem I kept running into is SQL Server not treating statements as atomic, and there was NOTHING I could do to change that, hence when you mentioned using applocks instead I recognized the situation.
    But needing to use an applock like that means SQL Server's basic concurrency logic is broken.
    I'm wondering if older versions did more work inside of atomic boundaries, certainly the code was generated in larger chunks than since 2005.
    In the old days it was not uncommon for an application to handle and retry on deadlocks, treating them like an optimistic concurrency failure.  You can see the legacy of this in that it still requires a trace flag to log deadlock details. 
    But SQL Server application development practice has evolved (right everyone ?) to treat deadlocks as bugs, and investigate and remediate them.   The incidence is lower and the remediation options are more effective.
    I went back and put retry logic into our apps, it wasn't a great solution but it was workable - for some cases.
    Of course all optimistic locking apps are supposed to handle situations where collisions occur, but few do.  That's a topic for another discussion, but in practice it's rare and mostly harmless.  It seems there are more cases where deadlocks occur
    and they are often more obscure when they do.
    >SQL Server ... does the right thing all by itself as long as you follow some minimal best practices.
    Mostly it does.  For instance here the deadlock was caused by some really questionable design choices.
    Are you referring here to the trigger?  I don't really see a complete diagnosis here.  I assume it's the nonatomic operations of his inserts, exactly what I'm talking about.  And when that happens, it's not clear that either snapshot or memory
    resident tables, will prevent the occurrence.
    "Mostly" only in the probabilistic case of collisions rarely happening.
    That the collisions need not happen in that they should be handled by normal locking procedures, is the issue.
    Josh

  • Deadlock when deleting from rsstatmanpsa during DSO activation

    We are experiencing intermittent Oracle deadlocks during DSO activation in our BI system.  The deadlocks occur when the following SQL statement is executed:
          delete from rsstatmanpsa where
                 partnr >= l_s_status-rnr_sid and
                 psa     = l_s_status-dta.
    This is at line 83 of the SET STATUS method of class CL_RSSM_STATMAN.  (See below for runtime error details.)
    When these errors occur the background job for the DSO activation is cancelled with the message ABAP/4 processor: DBIF_RSQL_SQL_ERROR.  Strangely, when this occurs as part of a process chain, the status of the process variant does not get updated until/unless someone displays the process chain log, at which point the status changes and follow-on events are triggered.  In other words, the process chain does not seem to be receiving word that the DSO activation process has abended, so we do not receive alerts that a problem has occurred.
    Has anyone else experienced this issue?
    Thanks,
    Bob
    P.S.  We are running BI 7.0, Patch Level 15 on Oracle 10.2.0.4.0
    Runtime Errors         DBIF_RSQL_SQL_ERROR
    Exception              CX_SY_OPEN_SQL_DB
    Error analysis
    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 "SET_STATUS" "(METHOD)", nor was it propagated by a RAISING clause.
    How to correct the error
    Database error text........: "ORA-00060: deadlock detected while waiting for
    resource"
    Internal call code.........: "[RSQL/DELE/RSSTATMANPSA ]"
    Please check the entries in the system log (Transaction SM21).
    If the error occures in a non-modified SAP program, you may be able to
    find an interim solution in an SAP Note.
    If you have access to SAP Notes, carry out a search with the following
    keywords:
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    "CL_RSSM_STATMAN===============CP" or "CL_RSSM_STATMAN===============CM008"
    "SET_STATUS"
    If you cannot solve the problem yourself and want to send an error
    notification to SAP, include the following information:
    1. The description of the current problem (short dump)
    To save the description, choose "System->List->Save->Local File
    (Unconverted)".
    2. Corresponding system log
    Display the system log by calling transaction SM21.
    Restrict the time interval to 10 minutes before and five minutes
    after the short dump. Then choose "System->List->Save->Local File
    (Unconverted)".
    3. If the problem occurs in a problem of your own or a modified SAP
    program: The source code of the program
    In the editor, choose "Utilities->More
    Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.
    The exception must either be prevented, caught within proedure
    "SET_STATUS" "(METHOD)", or its possible occurrence must be declared in the
    RAISING clause of the procedure.
    To prevent the exception, note the following:
    Information on where terminated
    Termination occurred in the ABAP program "CL_RSSM_STATMAN===============CP" -
    in "SET_STATUS".
    The main program was "RSPROCESS ".
    In the source code you have the termination point in line 83
    of the (Include) program "CL_RSSM_STATMAN===============CM008".
    The program "CL_RSSM_STATMAN===============CP" was started as a background job.
    Job Name....... "BI_PROCESS_ODSACTIVAT"
    Job Initiator.. "ALEREMOTE"
    Job Number..... 05302800
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    procedure "SET_STATUS" "(METHOD)", but it was neither handled locally nor
    declared
    in the RAISING clause of its signature.
    The procedure is in program "CL_RSSM_STATMAN===============CP "; its source
    code begins in line
    1 of the (Include program "CL_RSSM_STATMAN===============CM008 ".
    Source Code Extract
    Line
    SourceCde
    53
    if i_with_internal_check is initial.
    54
    l_s_status = i_s_status.
    55
    call function 'RSSM_GET_TIME'
    56
    importing
    57
    e_timestamps = l_s_status-ts_last_changed.
    58
    if l_s_status-ts_proc_started <= '10000101000000'.
    59
    l_s_status-ts_proc_started = l_s_status-ts_last_changed.
    60
    endif.
    61
    if l_s_status_exist is initial.
    62
    insert rsstatmanstatus from l_s_status.
    63
    if sy-subrc <> 0.
    64
    message x000.
    65
    endif.
    66
    else.
    67
    modify rsstatmanstatus from l_s_status.
    68
    if sy-subrc <> 0.
    69
    message x000.
    70
    endif.
    71
    endif.
    72
    delete from rsstatmanpart where
    73
    rnr      = l_s_status-rnr and
    74
    dta      = l_s_status-dta and
    75
    dta_type = l_s_status-dta_type.
    76
    select single * from rsstatmanpsa into l_s_psa where
    77
    rnr      = l_s_status-rnr and
    78
    psa      = l_s_status-dta.
    79
    if sy-subrc = 0.
    80
    delete from rsmdatastate_psa where
    81
    psa  = l_s_status-dta and
    82
    type = l_s_status-dta_type.
    >>>>>
    delete from rsstatmanpsa where
    84
    partnr >= l_s_status-rnr_sid and
    85
    psa     = l_s_status-dta.
    86
    else.
    87
    select single * from rsmdatastate_psa into l_ds_psa where
    88
    psa  = l_s_status-dta and
    89
    type = l_s_status-dta_type.
    90
    if sy-subrc = 0 and l_ds_psa-sid_checked > l_s_status-rnr_sid.
    91
    delete from rsmdatastate_psa where
    92
    psa  = l_s_status-dta and
    93
    type = l_s_status-dta_type.
    94
    delete from rsstatmanpsa where
    95
    partnr >= l_s_status-rnr_sid and
    96
    psa     = l_s_status-dta.
    97
    endif.
    98
    endif.
    99
    if i_with_commit = 'X'.
    100
    call function 'DB_COMMIT'.
    101
    endif.
    102
    endif.

    Walter,
    Thanks for the suggestion.  This is the same recommendation I just received from SAP.
    We are currently in the midst of regression testing for a major release, so cannot implement these corrections immediately.  I'll post again after we implement the corrections and let you know if they solve our problem.
    Thanks again.
    Bob

Maybe you are looking for