wa'alaikum salam,

saya cuplik aja procedur di backend.
buat procedure ini sebagai user SYS.
grant execute ke user schedulernya
trus tinggal panggil aja.....
selama ini sih it runs well

procedure sys.pr_kill_session(p_sid in varchar2, p_serial# in varchar2) is
    cursor_name     pls_integer default dbms_sql.open_cursor;
    ignore          pls_integer;
BEGIN
    select count(*) into ignore
      from V$session
     where username = 'nama_schemanya'
       and sid = p_sid
       and serial# = p_serial# ;

    if ( ignore = 1 ) then
        dbms_sql.parse(cursor_name,'alter system kill session ''' 
||p_sid||','||p_serial#||'''',dbms_sql.native);
        ignore := dbms_sql.execute(cursor_name);
    else
        raise_application_error( -20001, 'You do not own session ''' || 
p_sid || ',' || p_serial# ||'''' );
    end if;
END;

hth
--J


----- Original Message ----- 

> assalamu'alaikum wr wb
>
> selamat pagi kawan warga milis Indo Oracle.
>
> saya menggunakan oracle 9i,
> username admin aplikasi = adminapp
> username sys = sys
> username client = opr... (... mulai dari 1 s/d 147)
> yg diijinkan menggunakan plsql adalah username adminapp dan sys.
> setiap waktu selalu dimonitor user mana aja yg pakai plsql dg sript
> sbb:
> ------------------------
> SELECT s.sid SID, s.serial# SERIAL, s.username, RTRIM(s.osuser)
> OS_USER, s.machine, b.spid OS_ID, s.program,
>       s.logon_time, s.status, s.resource_consumer_group
> FROM  v$session s, v$session_longops l, v$process b, dba_resumable r
> WHERE (s.sid = l.sid(+))
> AND s.program in
> ('PLSQLDEV.EXE', 'PLSQLDev.exe', 'plsqldev.exe', 'crw32.exe')
> AND NOT s.username in ('adminapp', 'SYS')
> AND (s.sid = r.session_id(+))
> AND s.paddr=b.addr
> GROUP BY s.username, s.serial#, r.session_id, r.error_number,
> r.status, s.sid, s.status, s.osuser,
>         b.spid, s.machine,
> s.program,s.logon_time,s.resource_consumer_group;
> -----------------------
>
> ternyata hasil dari run sql menunjukkan ada 2 user iseng. jika
> secara manual bisa dilakukan dg SQL
> -----------------------
> ALTER SYSTEM KILL SESSION '238,18067';
> -----------------------
> maka perintah tsb menghapus sid= 238 dan serial# =18067
>
> pertanyaannya adalah sbb:
> 1. bagaimanakah cara menghapus (dg script secara auto) semua user
> iseng yg menggunakan plsql.
> 2. maunya ada script yg bisa autorun setiap 10 menit.
> 3. berikut sript yg telah dibuat tetapi masih ada error tepat di
> ALTER SYSTEM KILL SESSION 'rec_.sid, rec_.serial';
> lengkapnya dibawah ini
> ----------------------
> SET SERVEROUTPUT ON;
> -- bila ada   dbms_output.put_line(...)
> DECLARE
> CURSOR get_kill is
> SELECT s.sid SID, s.serial# SERIAL, s.username, RTRIM(s.osuser)
> OS_USER, s.machine, b.spid OS_ID, s.program,
>       s.logon_time, s.status, s.resource_consumer_group
> FROM  v$session s, v$session_longops l, v$process b, dba_resumable r
> WHERE (s.sid = l.sid(+))
> AND s.program in
> ('PLSQLDEV.EXE', 'PLSQLDev.exe', 'plsqldev.exe', 'crw32.exe')
> AND NOT s.username in ('IFSAPP', 'SYS')
> AND (s.sid = r.session_id(+))
> AND s.paddr=b.addr
> GROUP BY s.username, s.serial#, r.session_id, r.error_number,
> r.status, s.sid, s.status, s.osuser,
>         b.spid, s.machine,
> s.program,s.logon_time,s.resource_consumer_group;
> BEGIN
>  --SET TRANSACTION READ ONLY;
>  for rec_ in get_kill loop
>    IF rec_.sid>0 then
>      dbms_output.put_line('SID: '||rec_.sid||' ---
> '||rec_.username||'     serial#--'||rec_.serial);
>      ALTER SYSTEM KILL SESSION 'rec_.sid, rec_.serial';
>      dbms_output.put_line('Session '||rec_.sid||' Killed');
>    END IF;
>  END LOOP;
> END;
> ---------------------------
> mohon bantuan kawan-kawan tentang masalah diatas. terima kasih telah
> membaca dan menanggapinya.
>
>
> siswanto


Send instant messages to your online friends http://asia.messenger.yahoo.com 


--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.blogspot.com
Mirror: http://indooracle.wordpress.com
-----------------------------------------------

Bergabung dengan Indonesia Thin Client User Groups, 
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.blogspot.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/indo-oracle/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Kirim email ke