WildFly 中的 Apache Ignite 数据源
Apache Ignite datasource in WildFly
我正在尝试使用 WildFly 10.1.0 设置 Apache Ignite Cluster,因此我可以将 JPA 与 Ignite 一起使用。我在配置 JDBC 驱动程序时遇到问题。
到目前为止我做了什么:
独立-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>
稍后在同一个文件中我设置了驱动程序
<driver name="ignite" module="org.ignite.jdbc">
<driver-class>org.apache.ignite.IgniteJdbcThinDriver</driver-class>
</driver>
点燃模块
在 {WILDFLY_HOME}/modules 我创建了以下结构
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>
不幸的是,我在启动服务器时在 WildFly 日志中收到以下错误
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]"
]
}
非常感谢您的帮助
可能不是根本原因,但您的 "module.xml" 文件的命名空间不正确(urn 应该是 WF 10 的 1.3 版本):
<module xmlns="urn:jboss:module:1.3" name="org.ignite.jdbc">
这可能会阻止加载模块?
注意你有 2 种或驱动程序,常规的一种 (driver-class),或 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>
我有时看到 conf,其中驱动程序 class 名称是...在数据源声明中重复(但不要问我为什么 ;-)):
<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>
- 最后,尝试使用 jta="false"(在数据源级别)以防它产生一些差异(我怀疑但是)
问题出在我在 {WILDFLY_HOME}/modules 中使用的文件夹结构中。
我的路径是 org/ignite/main 这意味着 module.xml 中的名称应该从 name="org.ignite.jdbc" 更改为 name="org.ignite"
相同的更改适用于独立的驱动程序标签-full.xml
我正在尝试使用 WildFly 10.1.0 设置 Apache Ignite Cluster,因此我可以将 JPA 与 Ignite 一起使用。我在配置 JDBC 驱动程序时遇到问题。
到目前为止我做了什么:
独立-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>
稍后在同一个文件中我设置了驱动程序
<driver name="ignite" module="org.ignite.jdbc">
<driver-class>org.apache.ignite.IgniteJdbcThinDriver</driver-class>
</driver>
点燃模块
在 {WILDFLY_HOME}/modules 我创建了以下结构
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>
不幸的是,我在启动服务器时在 WildFly 日志中收到以下错误
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]"
]
}
非常感谢您的帮助
可能不是根本原因,但您的 "module.xml" 文件的命名空间不正确(urn 应该是 WF 10 的 1.3 版本):
<module xmlns="urn:jboss:module:1.3" name="org.ignite.jdbc">
这可能会阻止加载模块?
注意你有 2 种或驱动程序,常规的一种 (driver-class),或 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>
我有时看到 conf,其中驱动程序 class 名称是...在数据源声明中重复(但不要问我为什么 ;-)):
<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>
- 最后,尝试使用 jta="false"(在数据源级别)以防它产生一些差异(我怀疑但是)
问题出在我在 {WILDFLY_HOME}/modules 中使用的文件夹结构中。 我的路径是 org/ignite/main 这意味着 module.xml 中的名称应该从 name="org.ignite.jdbc" 更改为 name="org.ignite"
相同的更改适用于独立的驱动程序标签-full.xml