|
|
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Хотелось бы услышать мнение высокоуважаемого сообщества: Нужно ли для приложения выполняемого в среде EJB-контейнера использовать непременно СУБД с поддержкой транзакций или, если пользуешься транзакциями EJB, для хранения данных(персистенции) EJB будет достаточно какого-то быстрого движка, например MyISAM-MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2006, 20:23 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
не обязательно, но могут возникнуть проблемы с целостностью данных, когда возникнет какая-нибудь ошибка в процессе работы с базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2006, 23:14 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Это какая такая ошибка? Например? Если целостность данных будет отслеживаться на уровне контейнера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 09:42 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Да конечно, достаточно одного уровня транзакций. Однако, например, при выполнении операций каким-либо иным средством (тулзы для администрирования, или подконнектишься чем-нибудь еще) запросто можно запороть целостность данных. А так, конечно - пока все хорошо - то все хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 09:52 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, уровни изоляции транзакций в EJB задаются средствами JDBC, т. е. БД должна быть транзакционной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 11:47 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
1) MySQL, насколько я знаю, поддерживает транзакции тынц 2) Если СУБД не поддерживает транзакции, их не будет :) 3) наверное лучше "уровни изоляции транзакций" называть "уровни изолированности транзакций" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 15:35 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
См. EJB CMP commit mode (A, B, C) контейнер пишет в СУБД только успешную транзакцию СУБД может быть без них. смотрим Hypersonic что с Jboss chapter 2 HSQLDB supports transactions at the READ_UNCOMMITTED level, also known as level 0 transaction isolation. This means that during the lifetime of a transaction, other connections to the database can see the changes made to the data. это как правило и называется без транзакций, как в MySql не знаю. JDBC боюсь не причём level 0 transaction isolation - уровень 0 изоляции транзакции изолированность vs изоляция - ??? не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:05 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Я думаю, что поддержка транзакций - это возможность делать commit/rollback/savepoint. Если они есть - значит поддержка транзакций в наличии... в hsqldb они есть... по поводу терминологии. никогда не задумывался, но почему то вдолбилось в голову именно "уровень изолированности" :-) наверно из-за того, что "изолированность" - это свойство (без вариантов), а "изоляция" - возможно или свойство, или объект. в РДТЕХе говорят изоляция :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:37 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
EJB Как правило используются Container Managment Transaction вызываете любой Session Bean метод - контейнер начинает транзакцию метод заканчивается, он всё пишет в СУБД. exception - данные херятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 05:53 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
ExpppEJB Как правило используются Container Managment Transaction вызываете любой Session Bean метод - контейнер начинает транзакцию метод заканчивается, он всё пишет в СУБД. exception - данные херятся ошибка - не "любой метод", а метод для которого указан нужный атрибут для транзакционного компонента в дескрипторе развертывания: Required, RequiresNew, etc... Тем более спецификация рекомендует использовать только 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 10:17 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Timm1) MySQL, насколько я знаю, поддерживает транзакции тынц Любопытка ... например MyISAM -MySQL? Timm 2) Если СУБД не поддерживает транзакции, их не будет :) Любопытка ... транзакциями EJB ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 10:28 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Транзакции в терминах апп. сервера в конечном счете используют простые вызовы jdbc типа conn.commit(); апп. сервер - это ведь не субд :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 10:39 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
TimmТранзакции в терминах апп. сервера в конечном счете используют простые вызовы jdbc типа conn.commit(); Неа. Вызовы типа insert, update, delete и всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 10:47 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Зависит от конкретной реализации контейнера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 11:21 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
При создании пула соединений с БД MySQL в Sun AS задается настройка: Transaction Isolation - read-uncommitted - read-committed - repeatable-read - serializable Аналогично и для других БД. Суть этой настройки - задание уровня изоляции транзакций , очевидно реализуемой посредством JDBC-драйвера и СУБД, а не сервером приложений. В BMP-компонентах Вы вполне можете самостоятельно задавать уровни изоляции для полученного JDBC-соединения: Код: plaintext Осюда вывод - для получения возможности задавать уровни изоляции транзакций (и тем самым влиять на производительность) СУБД должна быть транзакционной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 12:58 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
KachalovПри создании пула соединений с БД MySQL в Sun AS задается настройка: Transaction Isolation - read-uncommitted - read-committed - repeatable-read - serializable Аналогично и для других БД. Суть этой настройки - задание уровня изоляции транзакций , очевидно реализуемой посредством JDBC-драйвера и СУБД, а не сервером приложений. В BMP-компонентах Вы вполне можете самостоятельно задавать уровни изоляции для полученного JDBC-соединения: Код: plaintext Осюда вывод - для получения возможности задавать уровни изоляции транзакций (и тем самым влиять на производительность) СУБД должна быть транзакционной. Чудесно работает на MySQL MyISAM БЕЗ ВСЯКИХ ТРАНЗАКЦИЙ . Причём если откатываешь EJB-транзакцию, то контейнер(например кстати SJSAS8.2) генерирует нужные SQL-команды и приводит данные в соответствующее состояние. Отсюда вопрос: А нужен ли этот ещё один уровень транзакций в СУБД? Он наверняка утяжеляет операции персистенции. Или контейнер, при наличии у СУБД поддержки транзацкий, начинает пользоваться ими? В последнем утверждении я что-то совсем не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:24 |
|
||
|
нужна ли для EJB СУБД с транзакциями
|
|||
|---|---|---|---|
|
#18+
Транзакция - это не только COMMIT и ROLLBACK! В этом смысле транзакции действительно (для большинства AS) реализуются самим AS (хотя это не факт - в спецификации J2EE не сказано как AS будет реализовывать транзакции: сам или через транзакционный механизм связанной с ним СУБД). Теперь представь себе, что кроме AS, который начал транзакцию, с твоей таблицей параллельно работает еще один клиент, который правит данные в таблице, реализуя собственную транзакцию, что именно считывают компоненты в AS? Данные до начала правки или данные после правки? Это зависит от уровня изоляции транзакций. По умолчанию в JDBC-драйвере к MySQL Connector/J стоит уровень TRANSACTION_READ_COMMITTED. В этом случае возможно НЕПОВТОРЯЮЩЕЕСЯ и ФАНТОМНОЕ ЧТЕНИЕ. Что бы явно управлять этим вопросом лучше использовать транзакционную СУБД! С точки зрения производительности, мне кажется, проблем не будет, так как сам AS представляет собой что-то вроде объектного кэша к БД и вопросы производительности будут решены на уровне AS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33473441&tid=2150505]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 464ms |

| 0 / 0 |
