Oracle Blocking Session History

Hi Folks,
This morning the database server machine CPU hits 100% - i found a blocking session but didnt killed it as it was of the flashback session.
The only option i thought was to restart the database.
Now, i want to investigate the problem - any idea, how to find the cause of tht problem???
regards,
OraGuy

1) Session A holding a lock that Session B is waiting on, causing session B to be temporarily blocked, assuming that's what you saw when you're talking about a "blocking session", is not particularly unusual in Oracle (or any relational database for that matter). That shouldn't cause a spike in CPU and it shouldn't require a database restart to clear the problem (at worst, you might kill the session that holds the lock, but it would normally resolve itself automatically), though. And that definitely doesn't explain a hung database if that's truly what you had.
2) Since you mentioned AWR, can we assume that you are using the enterprise edition with the performance & tuning packs? If so, assuming you rebooted before the AWR snapshot captured information about the state of the system, you could potentially go through the ASH data (active session history) for the various sessions that were blocking and waiting to see what they were waiting on.
Justin

Similar Messages

  • Blocking session Locks

    Hi,
    Need some assistance...!
    For the last few weeks i was getting the blocking session alerts and when i checked out for what the blocking session is doing, i found some select or insert or pl/sql line of code is getting executed. but the thing is i have observed the blocking is done on the same table each time.
    Any suggestions how i can proceed further ? why the lock is getting on the similar table.
    Regards,
    Sunila

    About code examination, you could check the detailed SQL statements:
    - INSERT should only block if another INSERT is run on the same table with the same primary key and in this case the second INSERT statement will fail due to duplicate key.
    - SELECT can only block if SELECT with FOR UPDATE clause is used and in this case all rows returned by the SELECT (for a single table SELECT) are locked. SELECT without FOR UPDATE clause does not block.
    If not already done, see How Oracle locks data.

  • Blocking sessions during MGP compose

    We keep getting the MGP compose process blocked by inactive sessions
    We raised a SR with Oracle and they suggested adding the instance parameter DO_APPLY_BFR_COMPOSE=YES to webtogo.ora, but this does not seem to have cured the problem.
    From tracing, it seems that the problem is an inactive apply session that resulted in an error, being there for the user it is trying to compose. The actual block is on the table MOBILEADMIN.C$ALL_CLIENT_ITEMS.
    If an apply fails due to an error (eg: constraint violarion, trigger failure etc), it executes the statement
    UPDATE MOBILEADMIN.C$ALL_CLIENT_ITEMS SET CRR='Y' WHERE CLIENTID=? AND PUBLICATION_ITEM IN ( SELECT PUBLICATION FROM MOBILEADMIN.C$ALL_TEMPLATE_ITEMS ati WHERE ati.TEMPLATE=?):
    as part of the copy to the error queue. It also looks to execute the same statement at the beginning of the compose for the user, hence the block.
    The other odd thing is that looking at the blocks this morning, the MGP apply/compose kicked off at 7.09 am. The user synchronised at just after 8 am, by which time the MGP cycle was well into the compose phase, and there is no record of apply activity for the user within the cycle (the actual apply is in the following cycle), the the content of the blocking session was definitely apply code.
    MGP used to do all of the applys first, and then all of the composes, with a test to skip the compose if there was data in the user in queue. The upgrade to 10.2 (or one of the many patches since) looks to have changed the default behaviour to attempt an apply before each user compose, but the parameter above was supposed to set the server back to its old behaviour (ie: keep apply and compose seperate). NOTE i have not seen any of the old 'compose deferred because of unprocessed data in the in queue' messages in the compose recently either.
    Upshot is that it looks like it is still mixing apply and compose together, and where the apply hits an error, the apply thread is not closing correctly, or releasing its locks.
    Does anyone have any information about the parameters
    DO_APPLY_BFR_COMPOSE or
    SKIP_INQ_CHK_BFR_COMPOSE (this appeared with a value of NO when we added the other parameter.
    Information from oracle is that the two are mutualy exclusive (?) but they are not documented anywhere that i can find (the one reference on metalink leads to a non existant note), and oracle seem reluctant to supply any
    so PLEASE
    a) any information about the parameters
    b) any dependancies (ie: parameters not working because we are missing a patch)
    c) location of documentation
    d) any other ideas

    which version are you on?
    we are on 10.2.0.2, so unsure if this works in other versions
    The standard mobile manager parameters screen does not by default show these settings, but we were asked to add them into the webtogo.ora file in the [CONSOLIDATOR] section eg:
    [CONSOLIDATOR]
    # Installer will change these values
    SERVER_VERSION=8.1.7
    SKIP_INQ_CHK_BFR_COMPOSE=YES
    DO_APPLY_BFR_COMPOSE=NO
    RESUME_FILE_SIZE=512
    # 8.1.7
    # Installer won't change these values
    MAX_THREADS=3
    JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
    once this was done we stopped and restarted the mobile server and then the new parameters will appear in the normal data synchronisation>administration>instance parameters screen
    our current setting on the live system are
    SKIP_INQ_CHK_BFR_COMPOSE YES
    DO_APPLY_BFR_COMPOSE NO
    and this does the compose whether or not there is pending data in the in queues for the client. Just my opinion, but there seems little point in doing the check as even if you force two tries of the apply process (one in the main apply phhase before the compose phase, and one just before composing for a particular user), the data in the second apply will not be picked up on fast refresh publication items as the 'snapshot' of the changes has already been done in the process logs phase

  • Blocking Session -  blocked SQL - SELECT SYSDATE   FROM SYS.DUAL

    Oracle 10.0.0.4g
    When database execute some big and long queries/operations my system is slow and some users wait, can’t work (they work with some Oracle forms applications ) because I often have blocking session.
    I found up that this blocking sessions block only this query of another user:
    SELECT SYSDATE   FROM SYS.DUAL
    Or:
    +10-АВГ-2009 08:51:10 User X1 ( SID= 222 ) with the statement: SELECT ... is blocking the SQL statement on Y1 ( SID=333 ) blocked SQL -> SELECT SYSDATE FROM SYS.DUAL+
    When I kill one of the blocking session another session take his place and do the same:
    +10-АВГ-2009 08:53:10 User X2 ( SID= 444 ) with the statement: SELECT ... is blocking the SQL statement on Y2 ( SID=555 ) blocked SQL -> SELECT SYSDATE FROM SYS.DUAL+
    When long queries finished everything is OK.
    Please Help Me!!!

    I create ASH report:_
    Top User Events
    Avg Active
    Event Event Class % Activity Sessions
    enq: TM - contention Application 55.87 0.96
    db file sequential read User I/O 18.87 0.32
    CPU + Wait for CPU CPU 16.33 0.28
    db file scattered read User I/O 3.02 0.05
    Top Event P1/P2/P3 Values
    Event % Event P1 Value, P2 Value, P3 Value % Activity
    Parameter 1 Parameter 2 Parameter 3
    enq: TM - contention 55.87 "xxxxxxxxxxxxxxxxxxxx" 38.35
    name|mode object # table/partition
    "1111111111","xxxxxxx","0" 17.44
    db file sequential read 19.21 "xxxxxxxxxxxxxxx’’ 0.00
    file# block# blocks
    db file scattered read 3.03 "xxxxxxxxxxxxxxxxxxxxxx’’ 0.01
    file# block# blocks
    Top SQL Statements …………..
    SQL ID Planhash % Activity Event % Event
    fnxxxxxxxxx N/A 25.09 enq: TM - contention 23.47
    ** SQL Text Not Available **
    N/A 25.09 db file sequential read 1.19
    ** SQL Text Not Available **
    byxxxxxxxxxxxxx 1111111 10.11 enq: TM - contention 7.43
    SELECT SYSDATE FROM SYS.DUAL
    db file sequential read 2.10
    fnxxxxxxxxx 11111111111 2.57 enq: TM - contention 2.16
    ** SQL Text Not Available **
    Top DB Objects
    Object ID % Activity Event % Event
    Object Name (Type) Tablespace
    11111 10.33 enq: TM - contention 10.30
    XXXXXXXXXXXXXXXXXXXXXXXX (INDEX) CC
    99999 10.18 enq: TM - contention 10.16
    XXXXXXXXXXXXXXXXXXXXXXXXX (INDEX) IND
    933333 6.67 enq: TM - contention 6.55
    FFFFFFFFFFFFFFFF (TABLE) T3
    114545 3.88 enq: TM - contention 3.85
    RRRRRRRRRRRRRRRRRRRRRR (INDEX) JJJ
    1136664 2.96 enq: TM - contention 2.93
    FFFFFFFFFFFFFFFFFFFFFFFFF (INDEX) G
    How to found sql text that is not available ** SQL Text Not Available **?
    What to do whit this Top DB Objects that have enq: TM - contention event?
    And how to solve this problem?

  • Find blocking sessions based on forms

    Hi,
    We use R12 applications and database 10g and wanted to kill blocking sessions that were created from forms in oracle applications.
    How to find out them?

    You can use the resource manager to kill the blocking sessions.
    Also you can query to find the blocking sessions:
    select SID, SERIAL#, machine, USERNAME, status, BLOCKING_SESSION
    from v$session where BLOCKING_SESSION IS NOT NULL
    UNION ALL
    select A.SID, A.SERIAL#, A.machine, A.USERNAME, A.status, A.BLOCKING_SESSION
    from v$session A, V$SESSION b WHERE A.SID=B.BLOCKING_SESSION
    order by machine, status;

  • Forms related blocking sessions

    Hi,
    We use R12 applications and database 10g and wanted to kill blocking sessions that were created from forms in oracle applications.
    How to find out them?
    Regards

    query v$lock to find blocking sessions
    check v$session action field (for 'FRM:%') to see if they're forms
    the later releases of 11.5 set the v$session action field, so I assume R12 still does that - but don't have access to check.

  • Script to kill blocking sessions

    We use Oracle 10. We have a test database used solely for training and I need the give the trainer the ability to kill all the blocking sessions when a block(s) is holding up
    the entire class.
    My idea was to create a simple form on our Oracle menu- containing just a single button that when pressed would trigger the script. One press of the button
    to kill each and every blocking session. I have no clue as to how to write a script of this nature. Would appreciate any advice.
    Regards,
    Sandy

    This is easier said than done. Numerous reasons. Here's a couple:
    You cannot rely on using v$session to identifying blocked sessions.
    Some user sessions may be blocked by a system process (e.g. log writer), which means you cannot unblock the user sessions by killing the blocking session. (especially when running into an Oracle bug where a user session will spin on "+enq: RO - fast object reuse+" when dropping an object and then being shown as blocked by a system session/process).
    Killing a session in Oracle is a misnomer as the "+alter system kill session+" is a request and not a command. The relevant user session needs to terminate itself (kind of like assisted suicide). No other process actually kills the physical process (or thread) executing that user session. Thus if that user session is waiting on some external response or event, it will be unable (now and forever) to respond to that kill request. In such a case, the only alternative is killing the physical process instead. (or shutting down the database)
    A blocking session could be a job process that contains problematic code that leads to the blocking/serialisation. Killing that session will simply fail the job after which the job queue manager will restart the session again.. 16 times in succession. Only then will it mark that job entry as broken and cease trying to restart it.
    So killing blocking sessions? It is not easy to identify blocking processes, they cannot always be killed, and even when you do kill them, they may simply reincarnate as a new session.
    So what is the solution then?
    Blocking sessions are not "+A Bad Thing+". There are very good and technically sound reasons for serialisation. When it does become a problem, there's something more to it. And blindly killing blocking sessions in such a case is treating the symptom of a problem and ignoring the problem all together. Find the reason for this serialisation and address that.

  • Determine blocking sessions and blocked sessions in 9iR2

    Hi,
    Running 9.2.0.7 on Solaris 2.
    We are trying to develop a query that can show us the blocked sessions and the session causing it. I have one working for 11 but for 9i, its a little more trickier. I am running these two so far:
    select s1.username || '@' || s1.machine || ' ( SID=' || s1.sid ||
           ' )  is blocking ' || s2.username || '@' || s2.machine || ' ( SID=' ||
           s2.sid || ' ) ' AS blocking_status
      from gv$lock l1, gv$session s1, gv$lock l2, gv$session s2
    where s1.sid = l1.sid
       and s2.sid = l2.sid
       and l1.BLOCK = 1
       and l2.request > 0
       and l1.id1 = l2.id1
       and l2.id2 = l2.id2;
    select do.object_name,
           row_wait_obj#,
           row_wait_file#,
           row_wait_block#,
           row_wait_row#,
           dbms_rowid.rowid_create(1,
                                   ROW_WAIT_OBJ#,
                                   ROW_WAIT_FILE#,
                                   ROW_WAIT_BLOCK#,
                                   ROW_WAIT_ROW#)
      from gv$session s, dba_objects do
    where sid = 543
       and s.ROW_WAIT_OBJ# = do.OBJECT_ID;Reason I need this is that lately we have been getting a lot of DEADLOCKS and we want to determine why this is happening a lot now and we want to start with who it is and what objects are causing it....any suggestions?

    mbobak wrote:
    There are a few critical pieces to interpreting a deadlock trace file. First, to be clear, you're getting ORA-00060, not ORA-04020 (which is a library cache deadlock), correct?
    If so, the tracefile will contain a deadlock graph. This will show the type of enqueue involved (TM or TX are the likely candidates), and the modes that locks and requests are being made.
    Then, there's the SQL which encountered the deadlock, and finally, the other SQL involved in the deadlock.
    All the above information is in the deadlock trace file.
    Using it, you ought to be able to determine root cause of the deadlock.
    If you need help understanding it, post here. If you post the deadlock graph, make sure you use code tags, or it will be unreadable.Yes we are getting the ORA-00060. This is what we get exactly from the AppTeam from the App:
    Available exception message: iims.ge.common.exception.IIMSTechnicalException : ORA-00060: deadlock detected while waiting for resourceFrom our latest Deadlock occurence we got a LMD Trace file generated. We can see the DeadLock graph and its SQL. We the enqueue of TX and it's modes. Basically everything you asked for we see it in the trace file. What we want to see is what is causing it or who is so we can fix it. Maybe I am not reading the trace file correctly. I appreciate your assistance in helping me interpret the trace file. As requested, here is the trace file.
    Dump file /var/local/oracle/logs/ora_prod_can1_lmd0_4432.trc
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
    With the Partitioning and Real Application Clusters options
    JServer Release 9.2.0.8.0 - Production
    ORACLE_HOME = /opt/oracle/9.2.0
    System name:    SunOS
    Node name:      can-clust01
    Release:        5.9
    Version:        Generic_118558-36
    Machine:        sun4u
    Instance name: ORA_PROD_CAN1
    Redo thread mounted by this instance: 0 <none>
    Oracle process number: 5
    Unix process pid: 4432, image: oracle@can-clust01 (LMD0)
    *** SESSION ID:(4.1) 2010-08-15 08:07:02.736
    open lock on RM 0 0
    *** 2010-08-15 08:07:31.353
    open lock on RM 0 0
    *** 2010-08-16 11:17:21.469
    user session for deadlock lock 40972c9c0
      pid=50 serial=6956 audsid=189500961 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.1] :
    BLOCKED 40972c570 5 [0x90014][0x19bb82],[TX] [131094,2] 1
    BLOCKER 40972bb98 5 [0x90014][0x19bb82],[TX] [65586,6177] 0
    BLOCKED 40972c9c0 5 [0x110014][0x12ec40],[TX] [65586,6177] 0
    BLOCKER 40972ba18 5 [0x110014][0x12ec40],[TX] [131094,2] 1
    user session for deadlock lock 40972c9c0
      pid=50 serial=6956 audsid=189500961 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.2] :
    BLOCKED 40972c9c0 5 [0x110014][0x12ec40],[TX] [65586,6177] 0
    BLOCKER 40972ba18 5 [0x110014][0x12ec40],[TX] [131094,2] 1
    BLOCKED 40972c570 5 [0x90014][0x19bb82],[TX] [131094,2] 1
    BLOCKER 40972bb98 5 [0x90014][0x19bb82],[TX] [65586,6177] 0
    *** 2010-08-16 11:17:42.495
    user session for deadlock lock 4098bcd08
      pid=59 serial=981 audsid=189501588 user: 61/IIMS_UWR
    O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.3] :
    BLOCKED 41228b128 5 [0x70001][0x178a52],[TX] [131100,2] 1
    BLOCKER 4098bade8 5 [0x70001][0x178a52],[TX] [65595,583] 0
    BLOCKED 4098bcd08 5 [0x130025][0x1475c9],[TX] [65595,583] 0
    BLOCKER 412275b78 5 [0x130025][0x1475c9],[TX] [131100,2] 1
    user session for deadlock lock 4098bcd08
      pid=59 serial=981 audsid=189501588 user: 61/IIMS_UWR
      O/S info: user: weblogic, term: unknown, ospid: , machine: can-prod03
                program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=0
      Current SQL Statement:
      UPDATE T_POLICY_PROPERTY POP SET POP.PRP_EFFECTIVE_END_DATE = :B3 , POP.PRP_LAST_UPDATED_DATE = SYSDATE WHERE POP.PRP_POL_POLICY_ID = :B2 AND POP.PRP_
    PROPERTY_SEQ_NUM = 1 AND POP.PRP_EFFECTIVE_END_DATE = TO_DATE(:B1 , DATE_FORMAT)
    Global Wait-For-Graph(WFG) at ddTS[0.4] :
    BLOCKED 4098bcd08 5 [0x130025][0x1475c9],[TX] [65595,583] 0
    BLOCKER 412275b78 5 [0x130025][0x1475c9],[TX] [131100,2] 1
    BLOCKED 41228b128 5 [0x70001][0x178a52],[TX] [131100,2] 1
    BLOCKER 4098bade8 5 [0x70001][0x178a52],[TX] [65595,583] 0Let's see what we can get out of this now :)

  • DB Trigger firing issue in case of oracle forms session crash

    Hi All,
    Oracle DB version: Oracle Database 10g Release 10.2.0.2.0 - Production
    Oracle Forms version: (Oracle Developer Suite 10g) 10.1.2.0.2 Production
    I am entering some data in the oracle forms and committed the data to database. This form is still open.
    By some reasons i get a error as "FRM-92101: There is error during forms server startup" and the forms session gets crashed.
    When this event happens i wanted to update the records which are inserted before this error occurred. For this purpose i created a BEFORE LOGOFF ON DATABASE trigger (in SYS user) and declared that transaction as autonomous and performed update and then commit.
    But when i get this error in forms runtime session, this trigger doesn't fire and also the records don't get updated.
    If i query to v$session view, the session entry is gone because the forms session is crashed.
    Can anyone please tell me why this trigger don't get fire when oracle forms session gets crashed? Or is there is any other way to run update statement as soon as the forms session gets crashes?
    Thanks.

    Hi,
    please check java runtime console for more issue information.
    Windows:
    SystemControl->Java Plugin Ver XXXX -> Standard -> Check "Show Java Console"
    In Systray, check the console for information about errors in java after the form error.
    Attackwave

  • ORACLE server session terminated by fatal error

    Hi,
    When i try to startup my database(10g), i am getting this error after database monted.
    ORA-00603: ORACLE server session terminated by fatal error.
    (Startup nomount is ok)
    conn /as sysdba
    Total System Global Area 1048576000 bytes
    Fixed Size 1223392 bytes
    Variable Size 343934240 bytes
    Database Buffers 700448768 bytes
    Redo Buffers 2969600 bytes
    Database mounted.
    ORA-00603: ORACLE server session terminated by fatal error
    Alert.log:
    Errors in file /u01/app/oracle/product/10.2.0/db_1/admin/db/udump/db_ora_9917.trc:
    ORA-00603: ORACLE server session terminated by fatal error
    ORA-00600: internal error code, arguments: [4194], [24], [14], [], [], [], [], []
    ORA-00600: internal error code, arguments: [4194], [24], [14], [], [], [], [], []
    The trace file is 1,6GB(!)
    Trace file:
    ----- Redo read statistics for thread 1 -----
    Read rate (ASYNC): 26Kb in 0.78s => 0.03 Mb/sec
    Total physical reads: 4096Kb
    Longest record: 0Kb, moves: 0/62 (0%)
    Change moves: 35/122 (28%), moved: 0Mb
    Longest LWN: 14Kb, moves: 0/13 (0%), moved: 0Mb
    Last redo scn: 0x0000.31539752 (827561810)
    NO VALID LOG MEMBER FOR SEQ# 20884 OF THREAD 1!
    NO VALID LOG MEMBER FOR SEQ# 20883 OF THREAD 1!
    *** 2011-01-06 06:18:51.782
    ksedmp: internal or fatal error
    ORA-00600: internal error code, arguments: [4194], [56], [49], [], [], [], [], []
    Current SQL statement for this session:
    update service$ set name = :1, name_hash = :2, network_name = :3, creation_date = :4, creation_date_hash = :5, deletion_date = null, goal = :6, flags = :
    ----- Call Stack Trace -----
    Thanks

    Hello,
    ORA-01194: file 1 needs more recovery to be consistent
    ORA-01110: data file 1: '/u01/app/oracle/product/10.2.0/oradata/db/system01.dbf'The system01.dbf which belongs to the Tablespace SYSTEM is still inconsistent.
    So, I think you'll need to start from a Backup and apply all the Archived Redo logs before the ORA-600 occured.
    More over, try to open a Service Request to My Oracle Support and, send them all the Traces Files and Alert Log so that they can follow all the actions which has occured on this Database. You may need their help.
    Best regards,
    Jean-Valentin

  • Access to view blocking sessions in sql server 2008

    Hi,
    One of my client wrote a stored procedure. we scheduled this SP in a job. while job is running, it is blocking other sessions. It is happening frequently. So, client is asking me to grant permission to view blocking session( want to execute sp_who2). Could
    you please advise me, which permission I need to give. I don't like to give access other than sp_who2. Please advise.
    Thanks.
    Raja.
    Thanks, Raja

    You need VIEW SERVER STATE permissions for sp_who or sp_who2 to work. You can also use sys.dm_exec_requests which will also give blocking information and requires the same permissions.
    Else you can take a look at the other alternative which is sp_whoisactive - check this link -
    http://sqlblog.com/blogs/adam_machanic/archive/2012/03/22/released-who-is-active-v11-11.aspx
    Regards, Ashwin Menon My Blog - http:\\sqllearnings.com

  • Disk Blocks, Oracle Blocks, Physical vs. Logical I/O

    Hi,
    I would like to request for some clarification. Sam Alapati states the following in his book “Expert Oracle9i Database Administration:”
    “The storage disks on which the Oracle blocks reside are themselves divided into disk blocks, which are areas of contiguous storage containing a certain number of bytes—for example, 4096 or 32768 bytes (4KB or 32KB, because each kilobyte has 1024 bytes). Note that if the Oracle block size is smaller than the operating system file system buffer size, you may be wasting the capacity of the operating system to read and write larger chunks of data for each I/O.”
    There are several questions stemming from the above discussion:
    1.     Is the “file system buffer size” the same as the size of a disk block?
    2.     Is the disk block the unit of physical I/O?
    3.     Does there exist such a term as “logical I/O” in Oracle’s nomenclature? With the help of my limited knowledge of database administration, what I understand from the term “logical I/O” is “reading or writing of one Oracle block,” which, in turn, requires several physical I/O’s depending on how large a multiple of the OS block size the Oracle block size is. In that case, does setting the Oracle block size to, say, 8 KB, when the OS block size is, say, 2 KB then mean that one logical I/O would involve four physical I/O’s? Please correct me if I am mistaken.
    Thanks,
    Karim

    I second that.
    For all questions about the very basic concepts in the world of oracle db, you should read the, erhm, yes Concepts guide (read it back and forth a couple of times, then keep revisit).
    Also via the tahiti page you can search or get books from libraries of the various server products from 8i, 9i, and 10g families.

  • Blocking session query

    What's the query to find this kind of info, blocking session? eg
    535 session blocking one other session 1962, they are both coming from SP:

    This query will tell you who's blocking who...
    select (select username
              from v$session
             where sid = a.sid) blocker
         , a.sid
         , ' is blocking '
         , (select username
              from v$session
             where sid = b.sid) blockee
         , b.sid
      from v$lock a
         , v$lock b
    where a.block = 1
       and b.request 0
       and a.id1 = b.id1
       and a.id2 = b.id2query by Tom Kyte

  • How to kill the blocking session

    hi expert,
    when i m going to run the below query
    Update rcv_transactions_interface rti set rti.processing_mode_code ='BATCH'  where rti.interface_transaction_id = 3671265
    it gives the error:
    ORA-00054 resource busy and acquire with NOWAIT specified.
    i find out the blocking session by using the blow query;
    SELECT  a.SESSION_ID, a.SESSION_SERIAL#, min(A.SAMPLE_TIME) start_time,max(A.SAMPLE_TIME) end_time,a.inst_id, a.blocking_session,a.user_id,s.sql_text,A.EVENT,O.OBJECT_NAME,max(A.SAMPLE_TIME) - min(A.SAMPLE_TIME) 
    FROM GV$ACTIVE_SESSION_HISTORY a  ,gv$sql s, dba_objects o
    where a.sql_id=s.sql_id
    and A.CURRENT_OBJ# = O.OBJECT_ID
    and blocking_session is not null
    and a.user_id  != 0 -- exclude SYS user
    and a.sample_time > sysdate - 7
    and a.event = 'enq: TX - row lock contention'
    group by a.SESSION_ID, a.SESSION_SERIAL#, a.inst_id,a.blocking_session,a.user_id,s.sql_text,A.EVENT,O.OBJECT_NAME
    it gives the output
    SESSION_ID
    SESSION_SERIAL#
    START_TIME
    END_TIME
    INST_ID
    BLOCKING_SESSION
    USER_ID
    SQL_TEXT
    EVENT
    OBJECT_NAME
    MAX(A.SAMPLE_TIME)-MIN(A.SAMPLE_TIME)
    369
    45,849
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    554
    173
    SELECT POL.UNIT_PRICE   FROM PO_LINES POL  WHERE POL.PO_LINE_ID = :b1
    enq: TX - row lock contention
    PO_LINES_ALL
    +00 03:10:54.389000
    554
    18,872
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    365
    173
    SELECT POL.UNIT_PRICE,POL.QUANTITY,POL.UNIT_MEAS_LOOKUP_CODE,POL.AMOUNT   FROM PO_LINES POL  WHERE POL.PO_LINE_ID = :b1
    enq: TX - row lock contention
    JA_IN_PO_LINE_LOCATION_TAXES
    +00 03:10:54.389000
    572
    168
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    554
    173
    select line_location_id into :b0 from po_line_locations_all where line_location_id=:b1 for update of line_location_id
    enq: TX - row lock contention
    PO_LINE_LOCATIONS_ALL
    +00 03:10:54.389000
    581
    4,973
    9/4/2013 10:49:38.157 AM
    9/4/2013 10:50:39.259 AM
    1
    572
    173
    Update rcv_transactions_interface rti set rti.processing_mode_code ='BATCH'  where rti.interface_transaction_id = 3671265
    enq: TX - row lock contention
    RCV_TRANSACTIONS_INTERFACE
    +00 00:01:01.102000
    my problem is in the above  output among 4 which i have to delete so sove my issue.
    its very urgent for me.
    plz plz suggest me and how can i kill the session.
    thanks & regards
    pritesh ranjan

    priteshranjan wrote:
    hi expert,
    when i m going to run the below query
    Update rcv_transactions_interface rti set rti.processing_mode_code ='BATCH'  where rti.interface_transaction_id = 3671265
    it gives the error:
    ORA-00054 resource busy and acquire with NOWAIT specified.
    i find out the blocking session by using the blow query;
    SELECT  a.SESSION_ID, a.SESSION_SERIAL#, min(A.SAMPLE_TIME) start_time,max(A.SAMPLE_TIME) end_time,a.inst_id, a.blocking_session,a.user_id,s.sql_text,A.EVENT,O.OBJECT_NAME,max(A.SAMPLE_TIME) - min(A.SAMPLE_TIME)
    FROM GV$ACTIVE_SESSION_HISTORY a  ,gv$sql s, dba_objects o
    where a.sql_id=s.sql_id
    and A.CURRENT_OBJ# = O.OBJECT_ID
    and blocking_session is not null
    and a.user_id  != 0 -- exclude SYS user
    and a.sample_time > sysdate - 7
    and a.event = 'enq: TX - row lock contention'
    group by a.SESSION_ID, a.SESSION_SERIAL#, a.inst_id,a.blocking_session,a.user_id,s.sql_text,A.EVENT,O.OBJECT_NAME
    it gives the output
    SESSION_ID
    SESSION_SERIAL#
    START_TIME
    END_TIME
    INST_ID
    BLOCKING_SESSION
    USER_ID
    SQL_TEXT
    EVENT
    OBJECT_NAME
    MAX(A.SAMPLE_TIME)-MIN(A.SAMPLE_TIME)
    369
    45,849
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    554
    173
    SELECT POL.UNIT_PRICE   FROM PO_LINES POL  WHERE POL.PO_LINE_ID = :b1
    enq: TX - row lock contention
    PO_LINES_ALL
    +00 03:10:54.389000
    554
    18,872
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    365
    173
    SELECT POL.UNIT_PRICE,POL.QUANTITY,POL.UNIT_MEAS_LOOKUP_CODE,POL.AMOUNT   FROM PO_LINES POL  WHERE POL.PO_LINE_ID = :b1
    enq: TX - row lock contention
    JA_IN_PO_LINE_LOCATION_TAXES
    +00 03:10:54.389000
    572
    168
    9/4/2013 8:29:33.119 AM
    9/4/2013 11:40:27.508 AM
    1
    554
    173
    select line_location_id into :b0 from po_line_locations_all where line_location_id=:b1 for update of line_location_id
    enq: TX - row lock contention
    PO_LINE_LOCATIONS_ALL
    +00 03:10:54.389000
    581
    4,973
    9/4/2013 10:49:38.157 AM
    9/4/2013 10:50:39.259 AM
    1
    572
    173
    Update rcv_transactions_interface rti set rti.processing_mode_code ='BATCH'  where rti.interface_transaction_id = 3671265
    enq: TX - row lock contention
    RCV_TRANSACTIONS_INTERFACE
    +00 00:01:01.102000
    my problem is in the above  output among 4 which i have to delete so sove my issue.
    its very urgent for me.
    plz plz suggest me and how can i kill the session.
    thanks & regards
    pritesh ranjan
    According to the above, your session_id is 581 which is blocked by session_id 572 so you need to kill the 3rd session in the list.
    Thanks,
    Hussein

  • Service Requests - Assignment Block "Change History"

    In SAP CRM 7.0 for the Service Requests.
    How can I add a new field ("Z" fields) in the assignment block "Change History" and this new field has an historial (new value and old value)?
    Is in customizing or views or class implementation?
    Thanks for your respond.
    Best regards,
    Douglas

    Hi Vishal
    I'll explain the requirement:
    When we modify an extended field of Assignment Block "Service Request Details" (Component: SRQM_INCIDENT_H - view: IncidentHeaderEF) its change doesn't appear in the Assignment Block "Change History" (Component: BTCHIST - view: HdrOVWindow),  we need to appear this change in the Assignment Block "Change History" with old and new value as well as "changed by".
    Thanks for your respond.
    Best regards,
    Douglas

Maybe you are looking for