Tuesday, November 26, 2013

Using Oracle multithreaded Oracle model (Threaded execution)

In previous releases, Oracle processes did not run as threads on UNIX and Linux systems. Starting in Oracle Database 12c, the multithreaded Oracle Database model enables Oracle processes to execute as operating system threads in separate address spaces.

THREADED_EXECUTION specifies whether to enable the multithreaded Oracle model. Starting in Oracle Database 12c, the multithreaded Oracle model enables Oracle processes on UNIX and Linux to run as operating system threads in separate address spaces.

The choice of threading model is dictated by the THREADED_EXECUTION initialization parameter.
THREADED_EXECUTION=NO  : The default value causes Oracle to run using the multiprocess model.
THREADED_EXECUTION=YES : Oracle runs with the multithreaded model.
In a database running in threaded mode, PMON and DBW might run as operating system processes, whereas LGWR and CMON might run as threads within a single process. Two foreground processes and a parallel execution (PX) server process might run as threads in a second operating system process. A third operating system process might contain multiple foreground threads. Thus, "Oracle process" does not always mean "operating system process."

Lets play with the parameter and see what we can win on resources on the system and we will.

Oracle with THREADED_EXECUTION=false [Oracle default]

How are the sessions operational on Linux or Unix query on v$session with V$process give me the SPID or OSpid of the Linux process
SELECT s.username,
 s.osuser,
 s.sid,
 s.serial#,
 p.spid,
 p.stid,
 s.status FROM
 v$session s,
 v$process p
 WHERE  s.paddr = p.addr
 ORDER BY s.username, s.sid,  s.osuser
USERNAME OSUSER SID SERIAL# SPID  STID  STATUS
-------- ------ --- ------- ----- ----- --------
SYS oracle  48   31     3569  3569  ACTIVE
SYSTEM oracle  29   27     3557  3557  INACTIVE
SYSTEM oracle  32   15     3559  3559  INACTIVE
SYSTEM oracle  34   27     3567  3567  INACTIVE
SYSTEM oracle  35   27     3553  3553  INACTIVE
SYSTEM oracle  37   33     3551  3551  INACTIVE
SYSTEM oracle  39   19     3542  3542  INACTIVE
SYSTEM oracle  42   17     3555  3555  INACTIVE
SYSTEM oracle  45   11     3563  3563  INACTIVE
SYSTEM oracle  46   11     3561  3561  INACTIVE
SYSTEM oracle  47    9     3565  3565  INACTIVE
 oracle   1   21     3603  3603  ACTIVE
 oracle   2    1     3390  3390  ACTIVE
 oracle   3    1     3392  3392  ACTIVE
 oracle   4    1     3394  3394  ACTIVE
 oracle   5    1     3398  3398  ACTIVE
 oracle   6    1     3400  3400  ACTIVE
 oracle  7   13     3513  3513  ACTIVE
 oracle  8    1     3404  3404  ACTIVE
 oracle  9    1     3406  3406  ACTIVE
 oracle 10    1     3408  3408  ACTIVE
 oracle 11    1     3410  3410  ACTIVE
 oracle 12    1     3412  3412  ACTIVE
 oracle 13    1     3414  3414  ACTIVE
 oracle 14    1     3416  3416  ACTIVE
 oracle 15    1     3418  3418  ACTIVE
 oracle 16    1     3420  3420  ACTIVE
 oracle 17    1     3422  3422  ACTIVE
 oracle 18    1     3424  3424  ACTIVE
 oracle 19   11     3441  3441  ACTIVE
 oracle 21    7     3443  3443  ACTIVE
 oracle 22    3     3445  3445  ACTIVE
 oracle 24    1     3447  3447  ACTIVE
 oracle 26    1     3449  3449  ACTIVE
 oracle 27    3     3461  3461  ACTIVE
 oracle 31    5     3517  3517  ACTIVE
 oracle 36    5     3519  3519  ACTIVE
 oracle 40    1     3491  3491  ACTIVE
Conform the process with ps -ef linux command
!ps -eLf |grep PROD|grep -v grep
oracle    3390     1  3390  0    1 04:36 ?        00:00:00 ora_pmon_PROD1
oracle    3392     1  3392  0    1 04:36 ?        00:00:00 ora_psp0_PROD1
oracle    3394     1  3394  8    1 04:36 ?        00:00:47 ora_vktm_PROD1
oracle    3398     1  3398  0    1 04:36 ?        00:00:00 ora_gen0_PROD1
oracle    3400     1  3400  0    1 04:36 ?        00:00:00 ora_mman_PROD1
oracle    3404     1  3404  0    1 04:36 ?        00:00:00 ora_diag_PROD1
oracle    3406     1  3406  0    1 04:36 ?        00:00:00 ora_dbrm_PROD1
oracle    3408     1  3408  0    1 04:36 ?        00:00:00 ora_dia0_PROD1
oracle    3410     1  3410  0    1 04:36 ?        00:00:00 ora_dbw0_PROD1
oracle    3412     1  3412  0    1 04:36 ?        00:00:00 ora_lgwr_PROD1
oracle    3414     1  3414  0    1 04:36 ?        00:00:00 ora_ckpt_PROD1
oracle    3416     1  3416  0    1 04:36 ?        00:00:00 ora_smon_PROD1
oracle    3418     1  3418  0    1 04:36 ?        00:00:00 ora_reco_PROD1
oracle    3420     1  3420  0    1 04:36 ?        00:00:00 ora_lreg_PROD1
oracle    3422     1  3422  0    1 04:36 ?        00:00:01 ora_mmon_PROD1
oracle    3424     1  3424  0    1 04:36 ?        00:00:00 ora_mmnl_PROD1
oracle    3426     1  3426  0    1 04:36 ?        00:00:00 ora_d000_PROD1
oracle    3428     1  3428  0    1 04:36 ?        00:00:00 ora_s000_PROD1
oracle    3441     1  3441  0    1 04:36 ?        00:00:00 ora_tmon_PROD1
oracle    3443     1  3443  0    1 04:36 ?        00:00:00 ora_tt00_PROD1
oracle    3445     1  3445  0    1 04:36 ?        00:00:00 ora_smco_PROD1
oracle    3447     1  3447  0    1 04:36 ?        00:00:00 ora_fbda_PROD1
oracle    3449     1  3449  0    1 04:36 ?        00:00:00 ora_aqpc_PROD1
oracle    3453     1  3453  0    1 04:36 ?        00:00:00 ora_p000_PROD1
oracle    3455     1  3455  0    1 04:36 ?        00:00:00 ora_p001_PROD1
oracle    3457     1  3457  0    1 04:36 ?        00:00:00 ora_p002_PROD1
oracle    3459     1  3459  0    1 04:36 ?        00:00:00 ora_p003_PROD1
oracle    3461     1  3461  0    1 04:36 ?        00:00:00 ora_cjq0_PROD1
oracle    3491     1  3491  0    1 04:36 ?        00:00:00 ora_w000_PROD1
oracle    3513     1  3513  0    1 04:36 ?        00:00:00 ora_qm02_PROD1
oracle    3517     1  3517  0    1 04:36 ?        00:00:00 ora_q002_PROD1
oracle    3519     1  3519  0    1 04:36 ?        00:00:00 ora_q003_PROD1
oracle    3542  3541  3542  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3551  3550  3551  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3553  3552  3553  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3555  3554  3555  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3557  3556  3557  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3559  3558  3559  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3561  3560  3561  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3563  3562  3563  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3565  3564  3565  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3567  3566  3567  0    1 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3569  3568  3569  0    1 04:39 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3603     1  3603  0    1 04:43 ?        00:00:00 ora_w001_PROD1
On linux there is an utility pidstat
!pidstat | grep [o]ra_ 
                 PID    %usr %system  %guest    %CPU   CPU  Command
04:48:37 AM      3390    0.00    0.00    0.00    0.01     0  ora_pmon_prod1
04:48:37 AM      3392    0.01    0.00    0.00    0.01     0  ora_psp0_prod1
04:48:37 AM      3394    1.50    0.90    0.00    2.40     0  ora_vktm_prod1
04:48:37 AM      3398    0.00    0.00    0.00    0.00     0  ora_gen0_prod1
04:48:37 AM      3400    0.00    0.00    0.00    0.00     0  ora_mman_prod1
04:48:37 AM      3404    0.00    0.00    0.00    0.00     0  ora_diag_prod1
04:48:37 AM      3406    0.00    0.00    0.00    0.00     0  ora_dbrm_prod1
04:48:37 AM      3408    0.02    0.00    0.00    0.02     0  ora_dia0_prod1
04:48:37 AM      3410    0.00    0.00    0.00    0.01     0  ora_dbw0_prod1
04:48:37 AM      3412    0.00    0.00    0.00    0.01     0  ora_lgwr_prod1
04:48:37 AM      3414    0.01    0.01    0.00    0.01     0  ora_ckpt_prod1
04:48:37 AM      3416    0.00    0.00    0.00    0.00     0  ora_smon_prod1
04:48:37 AM      3418    0.00    0.00    0.00    0.00     0  ora_reco_prod1
04:48:37 AM      3420    0.00    0.00    0.00    0.00     0  ora_lreg_prod1
04:48:37 AM      3422    0.04    0.01    0.00    0.05     0  ora_mmon_prod1
04:48:37 AM      3424    0.02    0.00    0.00    0.02     0  ora_mmnl_prod1
04:48:37 AM      3426    0.00    0.00    0.00    0.00     0  ora_d000_prod1
04:48:37 AM      3428    0.00    0.00    0.00    0.00     0  ora_s000_prod1
04:48:37 AM      3441    0.00    0.00    0.00    0.00     0  ora_tmon_prod1
04:48:37 AM      3443    0.00    0.00    0.00    0.00     0  ora_tt00_prod1
04:48:37 AM      3445    0.00    0.00    0.00    0.00     0  ora_smco_prod1
04:48:37 AM      3447    0.00    0.00    0.00    0.00     0  ora_fbda_prod1
04:48:37 AM      3449    0.00    0.00    0.00    0.00     0  ora_aqpc_prod1
04:48:37 AM      3453    0.00    0.00    0.00    0.00     0  ora_p000_prod1
04:48:37 AM      3455    0.00    0.00    0.00    0.00     0  ora_p001_prod1
04:48:37 AM      3457    0.00    0.00    0.00    0.00     0  ora_p002_prod1
04:48:37 AM      3459    0.00    0.00    0.00    0.00     0  ora_p003_prod1
04:48:37 AM      3461    0.02    0.00    0.00    0.02     0  ora_cjq0_prod1
04:48:37 AM      3491    0.01    0.00    0.00    0.01     0  ora_w000_prod1
04:48:37 AM      3513    0.00    0.00    0.00    0.00     0  ora_qm02_prod1
04:48:37 AM      3517    0.00    0.00    0.00    0.00     0  ora_q002_prod1
04:48:37 AM      3519    0.00    0.00    0.00    0.00     0  ora_q003_prod1
04:48:37 AM      3603    0.00    0.00    0.00    0.00     0  ora_w001_prod1
Validate the connections of system as process
! ps -ef|grep oraclePROD1 
oracle    3542  3541  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3551  3550  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3553  3552  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3555  3554  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3557  3556  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3559  3558  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3561  3560  0 04:38 ?        00:00:00 oraclePROD1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
What is the trace file name of the session with linux process 3542
select tracefile from v$process where spid='3542'
TRACEFILE
----------------------------------------------------------------
/u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3542.trc

Oracle with THREADED_EXECUTION=TRUE

First change the spfile and listener.ora file.
 show parameter thread
NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
parallel_threads_per_cpu      integer  2
thread         integer  0
threaded_execution       boolean  FALSE
Change the parameter threaded_execution to TRUE
alter system set threaded_execution=TRUE comment='Test multithreaded Oracle model' scope=spfile;
Before startup first add DEDICATED_THROUGH_BROKER_LISTENER=ON to the listener.ora and reload the listener, than proceed with the restart of the oracle database. Connect as user sys/ and everthing runs fine.
When using THREADED_EXECUTION=TRUE, which enables the multithreaded Oracle model, operating system authentication is not supported. Attemp to connect (CONNECT / AS SYSDBA or CONNECT / ) give ORA-01031 "insufficient privileges" error. The sollution for this is DEDICATED_THROUGH_BROKER_=ON parameter in the listener.ora file. This enables the server to spawn threads when connections to the database are requested through the listener.

 startup force
 show parametger thread
NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
parallel_threads_per_cpu      integer  2
thread         integer  0
threaded_execution       boolean  TRUE
Now see what this has done on OS linux level
SELECT s.username,
 s.osuser,
 s.sid,
 s.serial#,
 p.spid,
 p.stid,
 s.status FROM
 v$session s,
 v$process p
 WHERE  s.paddr = p.addr
 ORDER BY s.username, s.sid,  s.osuser
USERNAME  OSUSER   SID  SERIAL# SPID STID  STATUS
--------- ------- ----- ------- ---- ---- --------
SYS   oracle     51  17     3887 4013 ACTIVE
SYSTEM    oracle      1  15     3887 3996 INACTIVE
SYSTEM   oracle     35  39     3887 3984 INACTIVE
SYSTEM   oracle     38  23     3887 4001 INACTIVE
SYSTEM   oracle     40  41     3887 3986 INACTIVE
SYSTEM   oracle     41  21     3887 3988 INACTIVE
SYSTEM   oracle     43  23     3887 3990 INACTIVE
SYSTEM   oracle     45  11     3887 3992 INACTIVE
SYSTEM   oracle     47   9     3887 3994 INACTIVE
SYSTEM   oracle     49   9     3887 4005 INACTIVE
SYSTEM   oracle     50   9     3887 4007 INACTIVE
   oracle      2   1     3873 3873 ACTIVE
   oracle      3   1     3875 3875 ACTIVE
          oracle      4   1     3877 3877 ACTIVE
   oracle      5   1     3881 3881 ACTIVE
   oracle      6   1     3881 3883 ACTIVE
   oracle      7   1     3881 3884 ACTIVE
   oracle      8  15     3887 3951 ACTIVE
   oracle      9   1     3887 3887 ACTIVE
   oracle     10   1     3887 3889 ACTIVE
   oracle     11   1     3881 3890 ACTIVE
   oracle     12   1     3887 3891 ACTIVE
   oracle     13   1     3893 3893 ACTIVE
   oracle     14   1     3881 3894 ACTIVE
   oracle     15   1     3881 3895 ACTIVE
   oracle     16   1     3881 3896 ACTIVE
   oracle     17   1     3887 3897 ACTIVE
   oracle     18   1     3881 3898 ACTIVE
   oracle     19   1     3887 3899 ACTIVE
   oracle     20   1     3887 3900 ACTIVE
   oracle     21   9     3887 3912 ACTIVE
   oracle     23   7     3887 3913 ACTIVE
   oracle     24   3     3887 3914 ACTIVE
   oracle     26   1     3887 3915 ACTIVE
   oracle     28   1     3887 3916 ACTIVE
   oracle     30   3     3887 3922 ACTIVE
   oracle     32  11     3887 3950 ACTIVE
   oracle     42   9     3887 3948 ACTIVE
   oracle     44   3     3887 3937 ACTIVE
What is the result of ps -ef command on linux
!ps -eLf |grep PROD|grep -v grep
oracle    3873     1  3873  0    1 05:09 ?        00:00:00 ora_pmon_PROD1
oracle    3875     1  3875  0    1 05:09 ?        00:00:00 ora_psp0_PROD1
oracle    3877     1  3877  8    1 05:09 ?        00:00:36 ora_vktm_PROD1
oracle    3881     1  3881  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3882  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3883  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3884  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3890  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3894  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3895  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3896  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3881     1  3898  0    9 05:09 ?        00:00:00 ora_u004_PROD1
oracle    3887     1  3887  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3888  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3889  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3891  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3897  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3899  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3900  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3901  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3902  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3903  0   35 05:09 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3912  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3913  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3914  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3915  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3916  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3918  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3919  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3920  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3921  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3922  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3937  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3948  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3950  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3951  0   35 05:10 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3984  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3986  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3988  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3990  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3992  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3994  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  3996  0   35 05:14 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  4001  0   35 05:15 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  4005  0   35 05:15 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  4007  0   35 05:15 ?        00:00:00 ora_u005_PROD1
oracle    3887     1  4013  0   35 05:15 ?        00:00:00 ora_u005_PROD1
oracle    3893     1  3893  0    1 05:09 ?        00:00:00 ora_dbw0_PROD1
Utility pidstat. we only see 5 processes instead of global 40 processes.
!pidstat | grep [o]ra_
05:18:10 AM      3873    0.00    0.00    0.00    0.00     0  ora_pmon_prod1
05:18:10 AM      3875    0.00    0.00    0.00    0.00     0  ora_psp0_prod1
05:18:10 AM      3877    0.64    0.40    0.00    1.04     0  ora_vktm_prod1
05:18:10 AM      3881    0.01    0.01    0.00    0.02     0  ora_scmn_prod1
05:18:10 AM      3887    0.17    0.02    0.00    0.19     0  ora_scmn_prod1
05:18:10 AM      3893    0.00    0.00    0.00    0.00     0  ora_dbw0_prod1
what is in this environment the tracefile name of the proces 3887
select stid, tracefile from v$process where spid=3887 
STID TRACEFILE
---- ---------------------------------------------------------------------
3912 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_tmon_3887_3912.trc
3889 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_diag_3887_3889.trc
3887 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_scmn_3887_3887.trc
3891 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_dia0_3887_3891.trc
3897 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_reco_3887_3897.trc
3899 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_mmon_3887_3899.trc
3900 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_mmnl_3887_3900.trc
3901 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_d000_3887_3901.trc
3902 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_s000_3887_3902.trc
3903 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_n000_3887_3903.trc
3948 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_qm02_3887_3948.trc
3913 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_tt00_3887_3913.trc
3914 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_smco_3887_3914.trc
3915 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_fbda_3887_3915.trc
3916 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_aqpc_3887_3916.trc
3922 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_cjq0_3887_3922.trc
3918 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_p000_3887_3918.trc
3919 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_p001_3887_3919.trc
3920 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_p002_3887_3920.trc
3921 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_p003_3887_3921.trc
3937 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_w000_3887_3937.trc
3984 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3984.trc
3986 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3986.trc
3988 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3988.trc
3990 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3990.trc
3992 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3992.trc
3994 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3994.trc
3996 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_3996.trc
4001 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_4001.trc
3950 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_q002_3887_3950.trc
3951 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_q003_3887_3951.trc
4044 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_w001_3887_4044.trc
4005 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_4005.trc
4007 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_4007.trc
4013 /u02/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_3887_4013.trc
Here you see that the stid is toegevoegd aan de trace file and that we have multiple threads behind or inside one linux process.

Killing Sessions

When oracle use the multithreaded model, it is not possible to kill -9 of the spid oracle session. Hopefull oracle comes in the following patchset with orakill utility. This uutility well known in Windows evironment to kill oracle threads

Note