首页 > 解决方案 > WSO2 流处理器,将数据库与 Oracle DB 集成,它不起作用

问题描述

我尝试配置 Oracle 连接,但无法使其正常工作。

我在 WSO 网站上找到了如何从以前的 WSO 服务器(数据分析服务器)配置 Oracle 连接的信息

https://docs.wso2.com/display/DAS3xx/Setting+up+Oracle#SettingupOracle-SettinguptheJDBCdriver

但我没有找到流处理器。我只找到了可以连接到 Mysql DB 的人。 https://docs.wso2.com/display/SP410/Integrating+Datastores我用 Mysql DB 尝试过并且可以工作。

但我尝试使用这两个信息来尝试配置 Oracle db 。

1)我下载ojdbc jar驱动程序 https://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html

2) 将所有 jar 文件复制到 /lib。

3)尝试配置/conf/editor/deployment.yaml

wso2.datasources:数据源:

名称:Test_DB
描述:Oracle 数据源
定义:
类型:RDBMS
配置:
jdbcUrl:'jdbc:oracle:thin:@server_name:1521/instance_name'
用户名:用户
密码:密码
driverClassName:oracle.jdbc.driver.OracleDriver
maxPoolSize:50
idleTimeout :60000
连接测试查询:选择 1
验证超时:30000
isAutoCommit:假

启动 editor.sh 时显示连接错误。

[XXXX-XX-XX XX:XX:XXX] 错误 {org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager} - 调用组件 carbon-datasource-service java.lang.RuntimeException 的 onAllRequiredCapabilitiesAvailable 时发生运行时异常:无法在 com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:88) 在 com.zaxxer.hikari.pool.PoolElf.initializeDataSource(PoolElf) 获取 jdbcUrl=jdbc:oracle:thin:@server_name:1521/instance_name 的驱动程序实例.java:157) 在 com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:113) 在 com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:73) 在 org.wso2.carbon.datasource.rdbms。 hikari.HikariRDBMSDataSource.getDataSource(HikariRDBMSDataSource.java:56) 在 org.wso2.carbon.datasource.rdbms.hikari.HikariDataSourceReader。createDataSource(HikariDataSourceReader.java:74) at org.wso2.carbon.datasource.core.DataSourceBuilder.buildDataSourceObject(DataSourceBuilder.java:79) at org.wso2.carbon.datasource.core.DataSourceBuilder.buildDataSourceObject(DataSourceBuilder.java:60)在 org.wso2.carbon.datasource.core.DataSourceBuilder.buildCarbonDataSource(DataSourceBuilder.java:44) 在 org.wso2.carbon.datasource.core.DataSourceManager.initDataSources(DataSourceManager.java:153) 在 org.wso2.carbon.datasource .core.internal.DataSourceListenerComponent.onAllRequiredCapabilitiesAvailable(DataSourceListenerComponent.java:125) at org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager.lambda$notifySatisfiableComponents$7(StartupComponentManager.java:266) at java.util.ArrayList.forEach( ArrayList.java:第1257章) java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) 原因:java.sql.SQLException: java.sql.DriverManager.getDriver( DriverManager.java:315) 在 com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:81)204) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) 原因:java.sql.SQLException:java.sql.DriverManager 中没有合适的驱动程序.getDriver(DriverManager.java:315) 在 com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:81)204) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) 原因:java.sql.SQLException:java.sql.DriverManager 中没有合适的驱动程序.getDriver(DriverManager.java:315) 在 com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:81)

服务器正常工作我有远程和本地连接。

有人知道我可以如何配置它。

谢谢 !

标签: wso2

解决方案


您能否检查一下 Oracle 数据库的以下配置?

name: WSO2_TEST_DB
description: The datasource used for dashboard feature
jndiConfig:
  name: jdbc/WSO2_TEST_DB
  useJndiReference: true
definition:
  type: RDBMS
  configuration:
    jdbcUrl: 'jdbc:oracle:thin:@localhost:1521:XE'
    username: WSO2_TEST_DB
    password: root
    driverClassName: oracle.jdbc.driver.OracleDriver
    maxPoolSize: 50
    idleTimeout: 60000
    connectionTestQuery: SELECT 1
    validationTimeout: 30000
    isAutoCommit: false

重要笔记:

  • 有两种设置方法。如果您有 SID,请使用此(旧)格式:

    jdbc:oracle:thin:@[HOST][:PORT]:SID

  • 如果您有 Oracle 服务名称,请使用以下(较新)格式:

    jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

  • 在放入 SP_HOME/lib 目录之前,需要将 Oracle 驱动程序转换为 OSGI(使用 jartobundle.sh):

    例如 sh SP_HOME/bin/jartobundle.sh ojdbc6.jar lib/


推荐阅读