powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / tomcat+Servlet+JSP+StoredProc
40 сообщений из 40, показаны все 2 страниц
tomcat+Servlet+JSP+StoredProc
    #38784011
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Ситуация:
Есть jsp с кнопкой submit.Сабмит вызывает метод сервлета, который коннектится к Oracle и вызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID).После этого идет переход обратно на jsp с сообщением о том что выполнено.

Вопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp?


В процедуре и JOBах уверен заранее.

Спасибо.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784022
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeвызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID)
Почему не execute() ?

altjkeВопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp?

Можно не ждать. AJAX, JEE WorkManager, Asynchronous Processing (Servlet 3.0) и 100500 аналогичных способов запустить фоновый процесс.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784041
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,

Сразу в процедуре асинхронно запускать джоб.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784204
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczaltjkeвызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID)
Почему не execute() ?

altjkeВопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp?

Можно не ждать. AJAX, JEE WorkManager, Asynchronous Processing (Servlet 3.0) и 100500 аналогичных способов запустить фоновый процесс.

1.Особой разницы не нашёл, если есть ключевой момент-буду рад услышать.
2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784210
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов?
Вышеперечисленые средства целиком и полностью в рамках представленных вами компонентов. Разве что вы портлет какой пишете или плагин для JIRA?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784216
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke1. Особой разницы не нашёл, если есть ключевой момент-буду рад услышать.
execute() - просто и понятно.
CallableStatement.executeUpdate() - при чтении кода вызывает WTF, с вопросами что именно хранимка апдейтит и почему результат этого апдейта в коде игнорируется. Соответсвтенно увеличивает WTF per minute - главный критерий качества кода.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784218
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
0FDaltjke,

Сразу в процедуре асинхронно запускать джоб.
Процедура(назовем SP1 ) запускаемая в сервлете и запускает джоб(назовем what - SP2 ). По идее блокировка сессии происходит на момент запуска SP1 , а по факту на SP2 , а насколько я знаю джобы создают свои сессии.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784224
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,

Код: java
1.
  new Thread(service:runCallableStatementToScheduleNewJob).start();
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784225
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczaltjke2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов?
Вышеперечисленые средства целиком и полностью в рамках представленных вами компонентов. Разве что вы портлет какой пишете или плагин для JIRA?
Нет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784229
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeНет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен.
Дык вот же они.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784280
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczaltjkeНет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен.
Дык вот же они.
Прошерстил ссылок 50, не нашёл нужного.
Интересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784284
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeПрошерстил ссылок 50, не нашёл нужного.

Бывает.

altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших.
Конкретно по этому вопросу уже ответил конкретным кодом: 16743789
Только это грабли. Но раз вам лень изучать более правильные технологии для реализации асинхронных процессов в JEE, то пользуйтесь этим простым кодом.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784295
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczaltjkeПрошерстил ссылок 50, не нашёл нужного.

Бывает.

altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших.
Конкретно по этому вопросу уже ответил конкретным кодом: 16743789
Только это грабли. Но раз вам лень изучать более правильные технологии для реализации асинхронных процессов в JEE, то пользуйтесь этим простым кодом.
Не лень, просто время нехватает на разбор всех этих прелестей.Сам понимаю что так код не пишут, но что поделаешь.

Позвольте несколько вопросов по new Thread().start();

1) Предполагает создание нового потока ответ которого сервлет ждать не будет?
2) В него я помещаю мой execute?
3) Как в этом случае закрывать соединение с базой?

Спрашиваю потому что не мею возможности просмотра большинства ссылок в интернете в т.ч. и доки.
Заранее спасибо.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784310
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke1) Предполагает создание нового потока ответ которого сервлет ждать не будет?

Проблемы будут только пре деплоее\редеплоее\остановки контейнера. Поэтоу JEE спека запрещает использовать свои потоки и вместо этого предлагает использовать JEE WorkManager, Asynchronous Processing (Servlet 3.0) или JMS, которые вам "некогда" изучать.

altjke2) В него я помещаю мой execute?

Не только.

altjke3) Как в этом случае закрывать соединение с базой?

Получение соединения из пула, запуск процедуры и закрытие соединения нужно всё поместить в этот поток, так как JDBC API не является потокобезопасным. И каждому потоку желательно иметь (получать и отдавать) своё соединение, чтобы не влиять на другие потоки.

altjkeСпрашиваю потому что не мею возможности просмотра большинства ссылок в интернете в т.ч. и доки.
Большой китайский firewall мешает?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784340
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПроблемы будут только пре деплоее\редеплоее\остановки контейнера. Поэтоу JEE спека запрещает использовать свои потоки и вместо этого предлагает использовать JEE WorkManager, Asynchronous Processing (Servlet 3.0) или JMS, которые вам "некогда" изучать.


Когда возникнут ситуации деплоя/редеплоя/отключения томкат джобы запущенные таким образом все равно работают(сейчас), думаю и с потоками должно быть так же.

Насчет файрвола - все может быть)

Спасибо за ответы.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784352
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeКогда возникнут ситуации деплоя/редеплоя/отключения томкат джобы запущенные таким образом все равно работают(сейчас), думаю и с потоками должно быть так же.

Если потоки по каким-то причинам зависнут на долго, то они будут держать ссылку на все классы war модуля задерживая его выгрузку из PermGen/Metaspace.
Так же потоки могут задерживать штатную остановку контейнера.
Есть и другие причины по которым JEE требует использовать только свои потоки. Но в такой простой задаче они не так актуальны.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784374
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke0FDaltjke,

Сразу в процедуре асинхронно запускать джоб.
Процедура(назовем SP1 ) запускаемая в сервлете и запускает джоб(назовем what - SP2 ). По идее блокировка сессии происходит на момент запуска SP1 , а по факту на SP2 , а насколько я знаю джобы создают свои сессии.

Если SP2 не надо использовать текущую сессию, то можно запустить с use_current_session=FALSE без блокировки сессии, но тогда нельзя запустить SP2 параллельно.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784433
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
0FD[но тогда нельзя запустить SP2 параллельно.
Параллельно с чем? с SP1? да мне это и не нужно.
у меня SP1 примерно такого вида:

Код: plsql
1.
2.
3.
begin
dbms_job.run(1234);
end;



А what в джобе с id=1234 лопатит миллион записей.
Мне параллель SP1 и SP2 нафиг ненужна.Мне нужно чтобы SP1 запустило джоб(джоб в свою очередь создал свою сессию) и вернул ответ типа - я молодец,я запустил джоб!А рез-т джоба мне ждать не надо,там своя обработка.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784460
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,

не получится запустить параллельно несколько SP2
так используй DBMS_SCHEDULER.RUN_JOB, зачем старый использовать dbms_job
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784486
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
0FDaltjke,

не получится запустить параллельно несколько SP2
так используй DBMS_SCHEDULER.RUN_JOB, зачем старый использовать dbms_job
На шедулер прав нету :( а так бы с радастью

А SP2 не могут одновременно выполняться и так.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784619
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших. http://assenkolov.blogspot.ru/2012/06/performance-of-long-running-requests.html
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784720
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeПосле этого идет переход обратно на jsp с сообщением о том что выполнено.
Эта часть интересна?
Ведь Вы понимаете, что если сервлет отвечает не дождаясь окончания операции с БД, то еще как-то надо узнать этот результат. :)
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784921
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей АрсеньевaltjkeПосле этого идет переход обратно на jsp с сообщением о том что выполнено.
Эта часть интересна?
Ведь Вы понимаете, что если сервлет отвечает не дождаясь окончания операции с БД, то еще как-то надо узнать этот результат. :)
Интересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784936
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeИнтересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла.
+1
JOB сам по себе асинхронный. И не требует над собой асинхронного сервлета.
Иначе это просто хранимка.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784949
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123altjkeИнтересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла.
+1
JOB сам по себе асинхронный. И не требует над собой асинхронного сервлета.
Иначе это просто хранимка.

Но сервлет почему то ждет пока процедура в JOBe отработает :(
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784958
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,
- тебе же сказали: Результат важен, вот и ждёт. Так?
- сколько ждёт клиент?
Сколько клиентов? Ведь всё равно новый сервлет это новый поток\процесс.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imho
я в своём проекте возвращаю результат в виде HTTP.error. (ошибка в БД)
И, конечно жду от БД результат.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784968
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на это прав нету?
Код: java
1.
2.
3.
DBMS_JOB.RUN( 
      job    IN BINARY_INTEGER,
      force  IN BOOLEAN DEFAULT FALSE);


http://my-oracle.it-blogs.com.ua/post-60.aspx
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784970
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123altjke,
- тебе же сказали: Результат важен, вот и ждёт. Так?
- сколько ждёт клиент?
Сколько клиентов? Ведь всё равно новый сервлет это новый поток\процесс.

Так, ещё раз объясню.
В сервлете запускается процедура 1, которая запускает JOB с процедурой 2.
Мне нужен ответ от процедуры 1 (успешно она запустила JOB или нет).
Ответ от процедуры 2 (о том как отработала процедура JOBа) мне не нужен в вебе.
Клиент пока только я сам, жду столько, сколько при обычном вызове этого JOBa через pl/sql developer.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784975
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeТак, ещё раз объясню.
ну, значит я не понял.
Форум программистов, а не писателей - приведи код.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38784990
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123altjkeТак, ещё раз объясню.
ну, значит я не понял.
Форум программистов, а не писателей - приведи код.

Сервлет:
Код: java
1.
2.
3.
4.
5.
6.
Statement stmt = dbconnection.createStatement();
String stQuery = "begin"
                        + " jobs_manage(1,'PROC2');"
                        + "end;";
                        
                 stmt.execute(stQuery);



Оракловая процедура по запуску джоба (PROC1):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select job into JOBID from sys.user_jobs 
where lower(what) like lower('%PROC2%');
commit;
end if;

begin
DBMS_JOB.RUN(JOBID);  
end;  



Сервлет ждет отработки процедуры(PROC2) в этом джобе.
Код: plsql
1.
2.
3.
 begin
DBMS_JOB.RUN(JOBID);  
end;  



___
Для наглядности вместо параметров указал конкретные значения
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785028
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeстолько, сколько при обычном вызове этого JOBa через pl/sql developer.
imho
не пойму. Почему в IDE оракла нельзя запустить и отработать постановку задания _в фоне_ пакетом DBMS_JOB.
А потом уже заниматься вебом?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785032
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставь интервал 5 сек и занимайся своими делами.
Если свернуть окно ослика влом.
Удачи! imho
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785051
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123поставь интервал 5 сек и занимайся своими делами.

Рассматривал такой вариант, только менять не интервал а след. дату.
Но застрял на моменте возвращения задания на первичный график.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,
OK
просто, имхо это лучше чем потоки городить.
Кстати, если вкладку осла закрыть = сессия закрывается = JOB а ля хранимка запускается?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785095
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123altjke,
OK
просто, имхо это лучше чем потоки городить.
Кстати, если вкладку осла закрыть = сессия закрывается = JOB а ля хранимка запускается?

Да :D JOBы в оракле неостановимы средствами оракла. Еси только сид вырубать.
Но мне нельзя осла сворачивать или закрывать, мне нужно по нескольку джобов запускать в короткие сроки+пользоваться другим функ-ом веба в рамках одной хттп сессии.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785114
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjkeНо мне нельзя осла сворачивать или закрывать, мне нужно по нескольку джобов запускать в короткие сроки
придираюсь, но не логично))
- кликнул кнопку JSP - она запустила и сама себя убила.
Чем не вариант?
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785133
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,

а добавлять джоб можете? тогда можно так попробовать, время запуска sysdate, interval null-запустится только раз
declare i number; begin dbms_job.submit(i,'PROC2;');commit; end;
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785136
altjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123altjkeНо мне нельзя осла сворачивать или закрывать, мне нужно по нескольку джобов запускать в короткие сроки
придираюсь, но не логично))
- кликнул кнопку JSP - она запустила и сама себя убила.
Чем не вариант?
После вызова, идет ещё инсерт и параметры типа request.getSession().setAttribute() которые нужны в других сервлетах, а вынести их до execute не могу, так как нужен ответ о том что джоб запустился.
В итоге решил не парится и создавать новый job с тем же what в sysdate + 5сек, без интервала - сервлет не виснет да и джоб подтирается сам потом.Теперь остается только придумать корректировку дат первоначальных jobов, при ситуации когда создался такой джоб до даты по расписанию.
...
Рейтинг: 0 / 0
tomcat+Servlet+JSP+StoredProc
    #38785160
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
altjke,
ok
imho вопрос болше в ORA-форум
Если ты сервер, не суетись под клиентом (с) ))
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / tomcat+Servlet+JSP+StoredProc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]