2016-09-21 5 views
0

У меня есть веб-приложение с использованием JSF + CDI + JPA и сервера Wildfly. до этого момента Wildfly управляет транзакциями, защитой auth, службой электронной почты ... Поэтому моя проблема в том, что мне нужна моя система для доступа к базам данных с множественными значениями. Чтобы клиент входил в систему, он вводил свой логин и пароль, а также выбирал базу данных.JSF + Wildfly подключается во многих базах данных динамически

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

Некоторые советы или идеи о том, как решить эту проблему?

+0

JTA-транзакции могут охватывать несколько ресурсов (таким образом, базы данных). – Tiny

+0

Я использую транзакции JTA, но я не могу понять, как я могу это сделать, не создавая единицы устойчивости для каждой базы данных. В моем случае каждая клиентская организация будет иметь базу данных. И я не хочу генерировать .war-файл каждый раз, когда у меня есть новый клиент ... (Все базы данных имеют одинаковую структуру) – Eduardo

ответ

0

Отъезд Hibernate multitenancy с DATABASE режима. Это хорошо работает в WildFly 10.

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

Это должно решить вашу проблему на уровне базы данных. Вам все равно нужно выяснить, как определить правильную базу данных для текущего запроса, например. выписывая его из URI текущего HTTP-запроса и сохраняя его в компоненте @RequestScoped.

Смежные вопросы