|
|
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
Добрый день. Ситуация: Есть jsp с кнопкой submit.Сабмит вызывает метод сервлета, который коннектится к Oracle и вызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID).После этого идет переход обратно на jsp с сообщением о том что выполнено. Вопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp? В процедуре и JOBах уверен заранее. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 13:17 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeвызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID) Почему не execute() ? altjkeВопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp? Можно не ждать. AJAX, JEE WorkManager, Asynchronous Processing (Servlet 3.0) и 100500 аналогичных способов запустить фоновый процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 13:24 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke, Сразу в процедуре асинхронно запускать джоб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 13:36 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
Blazkowiczaltjkeвызывает процедуру с помощью executeUpdate() (процедура легкая-запускает JOBы по их ID) Почему не execute() ? altjkeВопрос: Сервлет ждет пока выполниться процедура в вызванном JOBе . Можно ли не ждать пока выполниться executeUpdate и сразу перейти обратно на jsp? Можно не ждать. AJAX, JEE WorkManager, Asynchronous Processing (Servlet 3.0) и 100500 аналогичных способов запустить фоновый процесс. 1.Особой разницы не нашёл, если есть ключевой момент-буду рад услышать. 2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:23 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов? Вышеперечисленые средства целиком и полностью в рамках представленных вами компонентов. Разве что вы портлет какой пишете или плагин для JIRA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:25 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke1. Особой разницы не нашёл, если есть ключевой момент-буду рад услышать. execute() - просто и понятно. CallableStatement.executeUpdate() - при чтении кода вызывает WTF, с вопросами что именно хранимка апдейтит и почему результат этого апдейта в коде игнорируется. Соответсвтенно увеличивает WTF per minute - главный критерий качества кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:28 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
0FDaltjke, Сразу в процедуре асинхронно запускать джоб. Процедура(назовем SP1 ) запускаемая в сервлете и запускает джоб(назовем what - SP2 ). По идее блокировка сессии происходит на момент запуска SP1 , а по факту на SP2 , а насколько я знаю джобы создают свои сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:28 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke, Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:30 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
Blazkowiczaltjke2.Существуют ограничения на используемые ср-ва.Можно ли сделать это в рамках представленных мной компонентов? Вышеперечисленые средства целиком и полностью в рамках представленных вами компонентов. Разве что вы портлет какой пишете или плагин для JIRA? Нет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:31 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeНет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен. Дык вот же они. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 15:32 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
BlazkowiczaltjkeНет, просто никогда не сталкивался с этими вещами на практике. Если кинете пару примеров реализации AJAX под сервлеты, буду признателен. Дык вот же они. Прошерстил ссылок 50, не нашёл нужного. Интересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:00 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeПрошерстил ссылок 50, не нашёл нужного. Бывает. altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших. Конкретно по этому вопросу уже ответил конкретным кодом: 16743789 Только это грабли. Но раз вам лень изучать более правильные технологии для реализации асинхронных процессов в JEE, то пользуйтесь этим простым кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:04 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
BlazkowiczaltjkeПрошерстил ссылок 50, не нашёл нужного. Бывает. altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших. Конкретно по этому вопросу уже ответил конкретным кодом: 16743789 Только это грабли. Но раз вам лень изучать более правильные технологии для реализации асинхронных процессов в JEE, то пользуйтесь этим простым кодом. Не лень, просто время нехватает на разбор всех этих прелестей.Сам понимаю что так код не пишут, но что поделаешь. Позвольте несколько вопросов по new Thread().start(); 1) Предполагает создание нового потока ответ которого сервлет ждать не будет? 2) В него я помещаю мой execute? 3) Как в этом случае закрывать соединение с базой? Спрашиваю потому что не мею возможности просмотра большинства ссылок в интернете в т.ч. и доки. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:12 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke1) Предполагает создание нового потока ответ которого сервлет ждать не будет? Проблемы будут только пре деплоее\редеплоее\остановки контейнера. Поэтоу JEE спека запрещает использовать свои потоки и вместо этого предлагает использовать JEE WorkManager, Asynchronous Processing (Servlet 3.0) или JMS, которые вам "некогда" изучать. altjke2) В него я помещаю мой execute? Не только. altjke3) Как в этом случае закрывать соединение с базой? Получение соединения из пула, запуск процедуры и закрытие соединения нужно всё поместить в этот поток, так как JDBC API не является потокобезопасным. И каждому потоку желательно иметь (получать и отдавать) своё соединение, чтобы не влиять на другие потоки. altjkeСпрашиваю потому что не мею возможности просмотра большинства ссылок в интернете в т.ч. и доки. Большой китайский firewall мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:20 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПроблемы будут только пре деплоее\редеплоее\остановки контейнера. Поэтоу JEE спека запрещает использовать свои потоки и вместо этого предлагает использовать JEE WorkManager, Asynchronous Processing (Servlet 3.0) или JMS, которые вам "некогда" изучать. Когда возникнут ситуации деплоя/редеплоя/отключения томкат джобы запущенные таким образом все равно работают(сейчас), думаю и с потоками должно быть так же. Насчет файрвола - все может быть) Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:31 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeКогда возникнут ситуации деплоя/редеплоя/отключения томкат джобы запущенные таким образом все равно работают(сейчас), думаю и с потоками должно быть так же. Если потоки по каким-то причинам зависнут на долго, то они будут держать ссылку на все классы war модуля задерживая его выгрузку из PermGen/Metaspace. Так же потоки могут задерживать штатную остановку контейнера. Есть и другие причины по которым JEE требует использовать только свои потоки. Но в такой простой задаче они не так актуальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:38 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke0FDaltjke, Сразу в процедуре асинхронно запускать джоб. Процедура(назовем SP1 ) запускаемая в сервлете и запускает джоб(назовем what - SP2 ). По идее блокировка сессии происходит на момент запуска SP1 , а по факту на SP2 , а насколько я знаю джобы создают свои сессии. Если SP2 не надо использовать текущую сессию, то можно запустить с use_current_session=FALSE без блокировки сессии, но тогда нельзя запустить SP2 параллельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 16:50 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
0FD[но тогда нельзя запустить SP2 параллельно. Параллельно с чем? с SP1? да мне это и не нужно. у меня SP1 примерно такого вида: Код: plsql 1. 2. 3. А what в джобе с id=1234 лопатит миллион записей. Мне параллель SP1 и SP2 нафиг ненужна.Мне нужно чтобы SP1 запустило джоб(джоб в свою очередь создал свою сессию) и вернул ответ типа - я молодец,я запустил джоб!А рез-т джоба мне ждать не надо,там своя обработка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 17:19 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjke, не получится запустить параллельно несколько SP2 так используй DBMS_SCHEDULER.RUN_JOB, зачем старый использовать dbms_job ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 17:34 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
0FDaltjke, не получится запустить параллельно несколько SP2 так используй DBMS_SCHEDULER.RUN_JOB, зачем старый использовать dbms_job На шедулер прав нету :( а так бы с радастью А SP2 не могут одновременно выполняться и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 17:57 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeИнтересуют конкретные примеры для данной задачи.А именно: вызов execute без ожидания ответа.Сталкивались с этим раннее?Может завалялось пару источников хороших. http://assenkolov.blogspot.ru/2012/06/performance-of-long-running-requests.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 20:37 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeПосле этого идет переход обратно на jsp с сообщением о том что выполнено. Эта часть интересна? Ведь Вы понимаете, что если сервлет отвечает не дождаясь окончания операции с БД, то еще как-то надо узнать этот результат. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 22:30 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевaltjkeПосле этого идет переход обратно на jsp с сообщением о том что выполнено. Эта часть интересна? Ведь Вы понимаете, что если сервлет отвечает не дождаясь окончания операции с БД, то еще как-то надо узнать этот результат. :) Интересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 09:38 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
altjkeИнтересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла. +1 JOB сам по себе асинхронный. И не требует над собой асинхронного сервлета. Иначе это просто хранимка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 09:49 |
|
||
|
tomcat+Servlet+JSP+StoredProc
|
|||
|---|---|---|---|
|
#18+
Petro123altjkeИнтересен ответ что JOB запустился,а рез-т работы joba обрабатывается на уровне оракла. +1 JOB сам по себе асинхронный. И не требует над собой асинхронного сервлета. Иначе это просто хранимка. Но сервлет почему то ждет пока процедура в JOBe отработает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 09:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38784352&tid=2126410]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 410ms |

| 0 / 0 |
