powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / нужна ли для EJB СУБД с транзакциями
17 сообщений из 17, страница 1 из 1
нужна ли для EJB СУБД с транзакциями
    #33472979
Любопытка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы услышать мнение высокоуважаемого сообщества:
Нужно ли для приложения выполняемого в среде EJB-контейнера использовать непременно СУБД с поддержкой транзакций или, если пользуешься транзакциями EJB, для хранения данных(персистенции) EJB будет достаточно какого-то быстрого движка, например
MyISAM-MySQL?
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33473090
Maxel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не обязательно, но могут возникнуть проблемы с целостностью данных, когда возникнет какая-нибудь ошибка в процессе работы с базой.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33473419
Любопытка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это какая такая ошибка?
Например?
Если целостность данных будет отслеживаться на уровне контейнера.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33473441
Foxi-Voxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да конечно, достаточно одного уровня транзакций.

Однако, например, при выполнении операций каким-либо иным средством (тулзы для администрирования, или подконнектишься чем-нибудь еще) запросто можно запороть целостность данных.

А так, конечно - пока все хорошо - то все хорошо.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33473728
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, уровни изоляции транзакций в EJB задаются средствами JDBC, т. е. БД должна быть транзакционной
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33474539
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) MySQL, насколько я знаю, поддерживает транзакции тынц
2) Если СУБД не поддерживает транзакции, их не будет :)
3) наверное лучше "уровни изоляции транзакций" называть "уровни изолированности транзакций"
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33474826
Exppp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
См. 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 изоляция - ??? не знаю
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33474892
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что поддержка транзакций - это возможность делать commit/rollback/savepoint. Если они есть - значит поддержка транзакций в наличии... в hsqldb они есть...
по поводу терминологии. никогда не задумывался, но почему то вдолбилось в голову именно "уровень изолированности" :-) наверно из-за того, что "изолированность" - это свойство (без вариантов), а "изоляция" - возможно или свойство, или объект.
в РДТЕХе говорят изоляция :)
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475394
Exppp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EJB Как правило используются Container Managment Transaction
вызываете любой Session Bean метод - контейнер начинает транзакцию
метод заканчивается, он всё пишет в СУБД. exception - данные херятся
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475699
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExpppEJB Как правило используются Container Managment Transaction
вызываете любой Session Bean метод - контейнер начинает транзакцию
метод заканчивается, он всё пишет в СУБД. exception - данные херятся
ошибка - не "любой метод", а метод для которого указан нужный атрибут для транзакционного компонента в дескрипторе развертывания: Required, RequiresNew, etc... Тем более спецификация рекомендует использовать только 3.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475730
Любопытка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timm1) MySQL, насколько я знаю, поддерживает транзакции тынц

Любопытка
...
например
MyISAM -MySQL?
Timm
2) Если СУБД не поддерживает транзакции, их не будет :)

Любопытка
...
транзакциями EJB
...
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475763
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакции в терминах апп. сервера в конечном счете используют простые вызовы jdbc типа conn.commit();
апп. сервер - это ведь не субд :-)
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475785
Любопытка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TimmТранзакции в терминах апп. сервера в конечном счете используют простые вызовы jdbc типа conn.commit();
Неа. Вызовы типа insert, update, delete и всё
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33475922
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от конкретной реализации контейнера
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33476305
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При создании пула соединений с БД MySQL в Sun AS задается настройка:
Transaction Isolation
- read-uncommitted
- read-committed
- repeatable-read
- serializable
Аналогично и для других БД.
Суть этой настройки - задание уровня изоляции транзакций , очевидно реализуемой посредством JDBC-драйвера и СУБД, а не сервером приложений.

В BMP-компонентах Вы вполне можете самостоятельно задавать уровни изоляции для полученного JDBC-соединения:
Код: plaintext
connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
используя при этом возможности JDBC-драйвера.

Осюда вывод - для получения возможности задавать уровни изоляции транзакций (и тем самым влиять на производительность) СУБД должна быть транзакционной.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33476371
Любопытка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KachalovПри создании пула соединений с БД MySQL в Sun AS задается настройка:
Transaction Isolation
- read-uncommitted
- read-committed
- repeatable-read
- serializable
Аналогично и для других БД.
Суть этой настройки - задание уровня изоляции транзакций , очевидно реализуемой посредством JDBC-драйвера и СУБД, а не сервером приложений.

В BMP-компонентах Вы вполне можете самостоятельно задавать уровни изоляции для полученного JDBC-соединения:
Код: plaintext
connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
используя при этом возможности JDBC-драйвера.

Осюда вывод - для получения возможности задавать уровни изоляции транзакций (и тем самым влиять на производительность) СУБД должна быть транзакционной.

Чудесно работает на MySQL MyISAM БЕЗ ВСЯКИХ ТРАНЗАКЦИЙ .
Причём если откатываешь EJB-транзакцию, то контейнер(например кстати SJSAS8.2) генерирует нужные SQL-команды и приводит данные в соответствующее состояние.
Отсюда вопрос:
А нужен ли этот ещё один уровень транзакций в СУБД?
Он наверняка утяжеляет операции персистенции.
Или контейнер, при наличии у СУБД поддержки транзацкий, начинает пользоваться ими?
В последнем утверждении я что-то совсем не уверен.
...
Рейтинг: 0 / 0
нужна ли для EJB СУБД с транзакциями
    #33476544
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакция - это не только COMMIT и ROLLBACK!
В этом смысле транзакции действительно (для большинства AS) реализуются самим AS (хотя это не факт - в спецификации J2EE не сказано как AS будет реализовывать транзакции: сам или через транзакционный механизм связанной с ним СУБД).
Теперь представь себе, что кроме AS, который начал транзакцию, с твоей таблицей параллельно работает еще один клиент, который правит данные в таблице, реализуя собственную транзакцию, что именно считывают компоненты в AS? Данные до начала правки или данные после правки? Это зависит от уровня изоляции транзакций.
По умолчанию в JDBC-драйвере к MySQL Connector/J стоит уровень TRANSACTION_READ_COMMITTED.
В этом случае возможно НЕПОВТОРЯЮЩЕЕСЯ и ФАНТОМНОЕ ЧТЕНИЕ.

Что бы явно управлять этим вопросом лучше использовать транзакционную СУБД!

С точки зрения производительности, мне кажется, проблем не будет, так как сам AS представляет собой что-то вроде объектного кэша к БД и вопросы производительности будут решены на уровне AS.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / нужна ли для EJB СУБД с транзакциями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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