将Attunity Driver添加到JBoss服务器,以便可以创建数据源。
我认为下面的错误是由于驱动程序没有正确加载。由于网络问题,数据源的初始化可能会下降。我想确保驱动程序正确加载并可供JBoss使用。
如本问题末尾的“更新”部分所示,普通JDBC连接尝试收到Connection refused
错误。这是否会导致以下问题部分中的错误?
什么是Attunity? - Attunity是一个商业驱动程序,我们用它来创建与COBOL系统的JDBC连接。我们仅对创建的连接使用纯SQL ,而不是更多。 Attunity不支持hibernate ORM,但无论如何我们都不会使用它。
启动时发生以下错误:
13:21:11,535|ERROR|Controller Boot Thread|org.jboss.as.controller.management-operation|JBAS014612: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "attunity-ds")
]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [
"jboss.driver-demander.java:jboss/datasources/attunity-ds [jboss.jdbc-driver.com_attunity_jdbc] is missing",
"jboss.data-source.java:jboss/datasources/attunity-ds [jboss.jdbc-driver.com_attunity_jdbc] is missing"
]}
的persistence.xml
<persistence-unit name="attunity-unit" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/attunity-ds</jta-data-source>
<properties>
<!-- parameters for oracle -->
<property name="hibernate.connection.url" value="URL" />
<property name="hibernate.connection.driver_class" value="com.attunity.jdbc" />
<property name="hibernate.connection.username" value="USER" />
<property name="hibernate.connection.password" value="PASS" />
<property name="jboss.entity.manager.factory.jndi.name"
value="java:/entityManagerFactory/attunity" />
</properties>
</persistence-unit>
MY-ds.xml中
我不知道如何将其转换为jboss配置文件,我不知道在哪里可以找到结果(不在任何standalone.xml文件中)。但是我们证明了这里定义的数据源可以用其他驱动程序进行模拟。我们使用常规的Oracle驱动程序来测试是否可以访问数据源本身。
<datasource jndi-name="java:jboss/datasources/attunity-ds" pool-name="attunity-ds" enabled="true">
<connection-url>URL</connection-url>
<driver>com.attunity.jdbc</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>2</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>USER</user-name>
<password>PASS</password>
</security>
</datasource>
module.xml (EAP_HOME/modules/com/attunity/main
中的驱动程序)
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.attunity.jdbc">
<resources>
<resource-root path="nvjdbc-2.0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
我可以确认,纯粹的JDBC连接尝试被拒绝了。驱动程序正确加载。
代码的
private Connection createAttunityConnection() {
Connection connect = null;
try {
Class.forName(ATTUNITY_DATABASE_DRIVER);
String url = ATTUNITY_URL + ATTUNITYE_IP_ADDRESS + ":"
+ ATTUNITY_PORT + ":" + ATTUNITY_ENCRYPTION_PROTOCOL + ";"
+ ATTUNITY_ENCRYPTION_KEY;
connect = DriverManager.getConnection(url, ATTUNITY_USERNAME,
ATTUNITY_PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return connect;
}
输出
28.07.2016 10:37:37 ERROR AttunityConnector:56 - Method createAttunityConnection() - SQLException : java.sql.SQLException: Connection refused
这是否会导致上述问题部分中的错误消息?