Настройка разных физических БД для одного и того же источника данных в двух приложениях JBoss - PullRequest
0 голосов
/ 26 сентября 2011

Я хочу развернуть одно и то же корпоративное приложение Java EE дважды (под двумя разными именами) в экземпляре сервера JBoss 6.0.Оба этих приложения используют один и тот же логический источник данных, который настроен на сервере.Пока проблем нет.

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

Возможно ли это как-то с JBoss 6.0 (без использования двух разных экземпляров сервера или изменения приложения перед развертыванием или упаковки различных файлов * ds.xml в каждом приложении?)

1 Ответ

0 голосов
/ 15 октября 2011

(без использования двух разных экземпляров сервера или изменения приложение перед развертыванием или упаковкой различных файлов * ds.xml в каждое приложение?)

Два разных источника данных в одном файле * -ds.xml:

<local-tx-datasource>
    <jndi-name>DS1</jndi-name>
    <connection-url>jdbc:mysql://db.server/db?</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>username</user-name>
    <password>pass</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
    <type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
<local-tx-datasource>
    <jndi-name>DS2</jndi-name>
    <connection-url>jdbc:mysql://com.db/db2?</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>username</user-name>
    <password>pass</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
   <type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>

Единственным недостатком является то, что вы должны настроить свой код, если вы используете аннотацию @Resource:

@Resource(mappedName="DS2")
private DataSource ds;

Не пробовали следующее, но вы могли бы сделать явный поиск JNDI через InitialContext и указать ресурс, который нужно искать в файле свойств (DS1 / DS2)? Если вы используете Maven (сейчас я делаю несколько предположений :)), вы можете отфильтровать файл свойств и предоставить правильное имя источника данных БД через профили во время сборки.

...