Комбинирование подключения без сохранения состояния и подключения с отслеживанием состояния

В моем приложении есть EJB без сохранения состояния. И теперь мне нужно выполнить некоторую операцию с БД через Stateful. Может ли этот EJB без сохранения состояния получить доступ к служебной программе DB, которая будет открывать соединение с отслеживанием состояния? Приведет ли это к каким-либо проблемам с дизайном / производительностью?


person Community    schedule 28.08.2009    source источник
comment
Тот факт, что приложение обращается к БД, не означает, что вам нужен компонент с отслеживанием состояния.   -  person Ken Liu    schedule 22.02.2010


Ответы (1)


который откроет соединение с отслеживанием состояния?

Ты имеешь ввиду:

  1. Открыть соединение с отслеживанием состояния, которое будет оставаться открытым между обращениями к серверу и не будет автоматически фиксироваться при возврате к клиенту?
  2. Открыть соединение с использованием учетных данных безопасности, доступных из контекста сеанса, чтобы получить соединение с собственным пользователем базы данных пользователя / паролем?

В первом случае, хотя можно было бы использовать StatefulSessionBean (SFSB) перед StatelessSessionBean (SLSB), вероятно, есть гораздо лучшие подходы (например, использование шаблона команд для сбора взаимодействий между удаленными вызовами, пока вы не будете готовы к совершить).

Во втором случае может помочь DataSource.lookup (имя пользователя, пароль), хотя при поиске в DataSource, вероятно, необходимо последовательно предоставлять имя пользователя и пароль, чтобы гарантировать получение того же соединения.

Приведет ли это к каким-либо проблемам с дизайном / производительностью?

В обоих случаях вы должны быть очень осторожны, чтобы не допустить элементарных ошибок безопасности (таких как отправка паролей в виде обычного текста). Я никогда не использовал ни один из подходов и был бы склонен переделать решение, в которое они входили.

Я бы меньше беспокоился о проблемах с производительностью, чем о безопасности и других проблемах проектирования, таких как хрупкость при техническом обслуживании.

person richj    schedule 13.12.2009