Объединение безгражданства и подключения с сохранением состояния - PullRequest
2 голосов
/ 28 августа 2009

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

1 Ответ

0 голосов
/ 13 декабря 2009

который откроет соединение с состоянием?

Вы имеете в виду:

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

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

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

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

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

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

...