3 votes

Source de données Apache Ignite dans WildFly

J'essaie de configurer Apache Ignite Cluster avec WildFly 10.1.0, afin de pouvoir utiliser JPA avec Ignite. J'ai des difficultés à configurer le pilote JDBC.

Ce que j'ai fait jusqu'à présent :

standalone-full.xml

<datasource jta="false" jndi-name="java:jboss/datasources/IgniteDS" pool-name="IgniteDS" enabled="true">
   <connection-url>jdbc:ignite:thin://172.X.X.146,172.X.X.147,172.X.X.148</connection-url>
   <driver>ignite</driver>
</datasource>

Plus tard, dans le même fichier, je configure le pilote

<driver name="ignite" module="org.ignite.jdbc">
    <driver-class>org.apache.ignite.IgniteJdbcThinDriver</driver-class>
</driver>

Module Ignite

Dans {WILDFLY_HOME}/modules j'ai créé la structure suivante enter image description here

module.xml

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="org.ignite.jdbc">
    <resources>
        <resource-root path="ignite-core-2.6.0.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

Malheureusement, j'obtiens l'erreur suivante dans le journal WildFly lorsque je démarre le serveur

11:43:31,253 ERROR [org.jboss.as.controller.management-operation] 
(Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: 
([
    ("subsystem" => "datasources"),
    ("data-source" => "IgniteDS")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => 
["jboss.jdbc-driver.ignite"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.driver-demander.java:jboss/datasources/IgniteDS is missing [jboss.jdbc-driver.ignite]",
        "org.wildfly.data-source.IgniteDS is missing [jboss.jdbc-driver.ignite]"
    ]
}
11:43:31,263 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: 
([
    ("subsystem" => "datasources"),
    ("data-source" => "IgniteDS")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.jdbc-driver.ignite",
        "jboss.jdbc-driver.ignite"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.driver-demander.java:jboss/datasources/IgniteDS is missing [jboss.jdbc-driver.ignite]",
        "org.wildfly.data-source.IgniteDS is missing [jboss.jdbc-driver.ignite]",
        "org.wildfly.data-source.IgniteDS is missing [jboss.jdbc-driver.ignite]"
    ]
}

Votre aide est très appréciée

1voto

TacheDeChoco Points 1510
  1. Attention, il y a deux types de pilotes, le pilote normal (driver-class), ou le pilote XA (xa-datasource) :

      <driver name="h2" module="com.h2database.h2">
          <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
      </driver>
      <driver name="postgresql" module="org.postgresql">
          <driver-class>org.postgresql.Driver</driver-class>
      </driver>
  2. J'ai parfois vu des confusions où le nom de la classe du pilote est... répété dans la déclaration de la source de données (mais ne me demandez pas pourquoi ;-)) :

    <datasource jta="false" jndi-name="java:jboss/datasources/sqlDataSource" pool-name="sqlDataSource" enabled="true" use-ccm="false"> <connection-url>... </connection-url> <driver-class>com.sybase.jdbc4.jdbc.SybDriver</driver-class> <driver>sybase</driver>

  3. En fin de compte, essayez avec jta="false" (au niveau de la source de données) au cas où cela ferait des différences (j'en doute mais)

0voto

TacheDeChoco Points 1510

Ce n'est peut-être pas la cause première, mais l'espace de noms de votre fichier "module.xml" n'est pas correct (l'urne doit être de la version 1.3 pour WF 10) :

<module xmlns="urn:jboss:module:1.3" name="org.ignite.jdbc"> 

Cela peut empêcher le chargement du module ?

0voto

filip_j Points 37

Le problème vient de la structure du dossier que j'ai utilisé dans {WILDFLY_HOME}/modules. Mon chemin est org/ignite/main, ce qui signifie que le nom dans module.xml doit être changé de name="org.ignite.jdbc" à name="org.ignite".

Le même changement s'applique à la balise driver dans standalone-full.xml.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X