Пул подключений для распределенных веб-модулей, использующих Hibernate с C3P0 - PullRequest
2 голосов
/ 08 сентября 2011

У меня есть веб-служба (model-layer), которая взаимодействует с базой данных.Этот модуль отвечает за сохранение и получение данных и управление транзакцией.Также многие BL определены ею.Другие изолированные веб-модули используют этот сервис для сохранения и извлечения необходимых данных.

Сейчас model-layer становится узким местом.Мне нужно изменить архитектуру.

Я хочу переместить классы Hibernate Entity и BL в их уважаемые веб-модули.Таким образом, каждый веб-модуль будет взаимодействовать с одной и той же базой данных.Но я не хочу, чтобы распределенный пул соединений и транзакции поддерживались в каждом модуле.

Я знаю, что должен быть способ использовать единый пул соединений для всех распределенных веб-модулей.Но мне нужно профессиональное мнение о том, как мне это сделать.

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

Сейчас яя пытаюсь найти решение, сохранив сериализованный объект соединения на LDAP, и все модули будут использовать этот пул соединений.И сейчас я чешу голову, размышляя, не иду ли я в правильном направлении.

Пожалуйста, наведите меня на правильный путь.Если весна является единственным вариантом, пожалуйста, сообщите мне это тоже.Я постараюсь убедить мою компанию.

1 Ответ

0 голосов
/ 23 сентября 2011

Я думаю, что нашел ответ.

Я использовал общий источник данных (*-ds.xml) на одном сервере JBoss.

Файл источника данных выглядит следующим образом

<datasources>
  <local-tx-datasource>
    <jndi-name>jdbc/wc-mysql</jndi-name>
    <connection-url>jdbc:mysql://MyPC-IP:3306/DB</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>xUser</user-name>
    <password>xXxXx</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

    <use-java-context>false</use-java-context>

    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

Этот DS доступен для всех серверов JBoss, работающих в разных местах.

Одна вещь, чтобы убедиться, что <use-java-context>false</use-java-context> сделает DS общедоступным, так что вам нужно обеспечить безопасностьРукопожатие себя.

...