Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Oracle |
![]() ![]() |
feagor Member Откуда: Москва Сообщений: 145 |
Ситуация - есть зависшая сессия, которая не реагирует на kill session, disconnect session Есть желание убить её со стороны ОС использую команду kill -9 spid Есть джава create or replace and compile java source named util as import java.io.*; import java.lang.*; public class Util extends Object { public static int RunThis(String args) { Runtime rt = Runtime.getRuntime(); int rc = -1; try { Process p = rt.exec(args); int bufSize = 4096; BufferedInputStream bis = new BufferedInputStream(p.getInputStream(), bufSize); int len; byte buffer[] = new byte[bufSize]; // Echo back what the program spit out while ((len = bis.read(buffer, 0, bufSize)) != -1) System.out.write(buffer, 0, len); rc = p.waitFor(); } catch (Exception e) { e.printStackTrace(); rc = -1; } finally { return rc; } } } Который по идее умеет запускать команды ОС. Можно ли как-то используя всё необходимое сварганить pl/sql процедурку, которая используя java подаст сигнал на убиение сессии из самого оракла? |
8 окт 18, 00:51 [21697620] Ответить | Цитировать Сообщить модератору |
feagor Member Откуда: Москва Сообщений: 145 |
feagor, Могу ошибаться - в java не силён, в линуксе тоже Может у кого есть какие-то наработки? Точно знаю, что можно убивать из scheduler'а, используя тип executable Но было бы очень удобно иметь обёртку из PL/SQL |
8 окт 18, 00:54 [21697622] Ответить | Цитировать Сообщить модератору |
xtender Member Откуда: Мск Сообщений: 5029 |
feagor, https://github.com/xtender/xt_shell |
8 окт 18, 04:56 [21697647] Ответить | Цитировать Сообщить модератору |
Elic Member Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ Сообщений: 28679 |
|
||
8 окт 18, 07:40 [21697668] Ответить | Цитировать Сообщить модератору |
Aliona Member Откуда: Москва Сообщений: 3778 |
Достаточно даже будет повзаимодействовать с админом oracle :) |
8 окт 18, 12:13 [21697893] Ответить | Цитировать Сообщить модератору |
feagor Member Откуда: Москва Сообщений: 145 |
xtender, Спасибо, попробую, похоже на то, что нужно |
8 окт 18, 12:49 [21697943] Ответить | Цитировать Сообщить модератору |
feagor Member Откуда: Москва Сообщений: 145 |
Elic, Хочется именно обертку для того, чтобы была возможность сделать это без админа ОС. Доступ же к ОС никто не даст. Админы доступны не 24/7. А сделать порой нужно срочно |
8 окт 18, 13:07 [21697978] Ответить | Цитировать Сообщить модератору |
Aliona Member Откуда: Москва Сообщений: 3778 |
Грантовать необходимые привилении может только SYS, он же oracle DBA. За спиной у oracle DBA не получится ничего убить. |
8 окт 18, 13:49 [21698055] Ответить | Цитировать Сообщить модератору |
feagor Member Откуда: Москва Сообщений: 145 |
Aliona, с грантами разберемся:) |
8 окт 18, 15:25 [21698221] Ответить | Цитировать Сообщить модератору |
mRdUKE Member Откуда: ТЛТ Сообщений: 471 |
Shell Commands From PL/SQL#GrantPrivileges |
||||
9 окт 18, 20:50 [21699711] Ответить | Цитировать Сообщить модератору |
feagor Member Откуда: Москва Сообщений: 145 |
xtender, добрался, работает, еще раз спасибо единственно в исходниках в grants.sql убери как-нить звездочку, которая в конце предложения To denote all files within a directory, provide the * symbol, as follows: /private/oracle/* а то pl sql developer не хочет кушать такой файл со звездочкой |
19 фев 19, 20:56 [21814884] Ответить | Цитировать Сообщить модератору |
Все форумы / Oracle | ![]() |