Как установить источник данных по умолчанию в среде с несколькими базами данных? - PullRequest
0 голосов
/ 03 июля 2019

Я переношу свой проект из JBoss EAP 6.4 в JBoss EAP 7.2.

Итак, я получаю такую ​​ошибку,

   15:45:50,571 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "my.war")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.DefaultDataSource"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.dummy.env.myDS is missing [jboss.naming.context.java.module..DefaultDataSource]"]
}

Я узнал, что эта ошибка возникает из-за источник данных по умолчанию не определен в standalone.xml .В предыдущих версиях JBoss EAP удаление DefaultDataSource не давало этой проблемы.В этой версии определение DefaultDataSource является обязательным, даже если эти приложения не нуждаются в этом источнике данных по умолчанию.

Поэтому я попытался указать источник данных по умолчанию в качестве уже существующего источника данных.В таком выражении:

<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/jdbc/existing" /> 

И это сработало нормально.

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

Мы хотим, чтобы приложение использовало свои конкретные источники данных, а не стандартные.

Но JBoss EAP 7 заставляет нас указывать источник данных по умолчанию.

То есть мы можем определить фиктивный источник данных по умолчанию?или есть другой альтернативный способ?

1 Ответ

0 голосов
/ 03 июля 2019

Применимо как к JBoss EAP 7.2, так и к Wildfly:

Измените эту часть standalone.xml, чтобы установить источник данных по умолчанию :

<?xml version="1.0" encoding="UTF-8"?>
<subsystem xmlns="urn:jboss:domain:datasources:3.0">
   <datasources>
      <datasource jta="true" jndi-name="java:jboss/datasources/default" pool-name="default" enabled="true" use-java-context="true" use-ccm="true" statistics-enabled="true">
         <connection-url>jdbc:mysql://localhost:3306/default?autoReconnect=true&amp;useSSL=false</connection-url>
         <driver>mysql</driver>
         <security>
            <user-name>user</user-name>
            <password>password</password>
         </security>
      </datasource>
      <drivers>
         <driver name="mysql" module="com.mysql">
            <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
         </driver>
      </drivers>
   </datasources>
</subsystem>

JBoss / Wildfly выберет это как источник данных по умолчанию.

Надеюсь, это поможет вам:)

...