|
|
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Данная задача реализована ниже, с использованием Оптимистической блокировки и @Version (в Entity поле Integer mgr ), где транзакция контролируется BMT (bean-managed transaction) и ВСЯ транзакция ( Открывается Тр. –> Запрос –> Обновление данных -> Commit -> Закрывается Тр.) происходит в одном методе через javax.transaction.UserTransaction. Вопросы : 1) Как Запрос данных, Обновление данных и Commit поместить в одну транзакцию, с использованием WEB, тогда как Запрос и обновление будут разделены в отдельных методах (или Bean-ах) ? 2) Может есть какое-то стандартное решение данной задачи ? 3) Какую технологию Web лучше использовать совместно с EJB, для более гибкого контроля транзакциями? Листинг 1. EJB Session Bean ============================================================================== Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ============================================================================== Листинг 2. EJB Entity bean “Emp.java” ============================================================================== Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ============================================================================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 12:36 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Zufar Вопросы : 1) Как Запрос данных, Обновление данных и Commit поместить в одну транзакцию, с использованием WEB, тогда как Запрос и обновление будут разделены в отдельных методах (или Bean-ах) ? === почти никак, т.к. в веб парадигма другая (минимальное время транзакции, чтобы исключить\минимизировать блокировки) 2) Может есть какое-то стандартное решение данной задачи ? === лень искать ссылку - пересмотри постановку задачи 3) Какую технологию Web лучше использовать совместно с EJB, для более гибкого контроля транзакциями? === есть распределённые транзакции, но это дорого и оверхед Сколько времени между работой1 и работой 3? Т.к. тебе нужны длинные транзакции, что в вебе не приветствуется. ЗЫ. Что будем делать, если вечером будет Job который всем товарам делает наценку. Zufar Код: plaintext ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 15:52 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Время между работой1 и работой3, 1 - 3 минуты. Появилась идея, Возможно ли связать сессию EJB Stateful bean-а (добавив к нему как @Resource UserTransaction) с HttpSession ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 23:04 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
ZufarВремя между работой1 и работой3, 1 - 3 минуты.офигеть - перечитай все переменные заново, перед тем как updat'тить их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 23:12 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
ZufarВозможно ли связать сессию связать и написать можно что угодно. Нужна Цель сей писанины. Например, какой ВИ ваших 2-х пользователей при редактировании одной СУЩНОСТИ одновременно. Т.е. какой тип приложения и транзакционной стратегии вы пишите. http://www.k-press.ru/cs/2009/1/ts/ts.asp авторТранзакции на платформе Java весьма дороги. В зависимости от используемой СУБД, они могут вызывать блокировки в БД, занимать ресурсы, замедлять работу приложения и даже, в некоторых случаях, приводить к взаимоблокировкам Транзакционная стратегия, управляемая клиентом (Client Orchestration). Транзакционная стратегия API Layer. Транзакционная стратегия высокого параллелизма. Транзакционная стратегия высокоскоростной обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 23:26 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Zufar, один из вариантов БЛ по транзакциям Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 23:50 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Petro123ZufarВремя между работой1 и работой3, 1 - 3 минуты.офигеть - перечитай все переменные заново, перед тем как updat'тить их Попробую именно так, только при втором считывании буду брать поле @Version и сравнивать со значением первого считывания. А значение первого считывания передам в качестве параметра через HttpSession. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 11:26 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Вопрос закрыт положительным результатом :-) Через повторный запрос и сравнением версии этих двух запросов. Petro123, Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 15:29 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Zufar, вообще такое делается через select...for update в шаге номер один. но как это сделать в JPA я честно говоря не знаю. там наверняка можно только поднять уровень изоляции транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 19:32 |
|
||
|
Как сохранить(сберечь) транзакцию БД при взаимдествии EJB Session Bean-a c WebClient-ом.?
|
|||
|---|---|---|---|
|
#18+
Zufar, вообще такое делается через select...for update в шаге номер один. но как это сделать в JPA я честно говоря не знаю. там наверняка можно только поднять уровень изоляции транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 21:00 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38688686&tid=2126938]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 389ms |

| 0 / 0 |
