WSO2 流处理器,将数据库与 Oracle DB 集成,它不起作用
Posted
技术标签:
【中文标题】WSO2 流处理器,将数据库与 Oracle DB 集成,它不起作用【英文标题】:WSO2 Stream Processor , Integrating Database with Oracle DB , It does not work 【发布时间】:2018-08-17 13:41:59 【问题描述】:我尝试配置 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 Drivers https://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html
2) 将所有jar文件复制到/lib。
3) 尝试配置/conf/editor/deployment.yaml
wso2.datasources:数据源:
名称:Test_DB 描述:Oracle 数据源 定义: 类型:关系型数据库 配置: jdbcUrl: 'jdbc:oracle:thin:@server_name:1521/instance_name' 用户名:用户 密码:密码 driverClassName:oracle.jdbc.driver.OracleDriver 最大池大小:50 空闲超时:60000 连接测试查询:选择 1 验证超时:30000 isAutoCommit: 假
当启动 editor.sh 时显示连接错误。
[XXXX-XX-XX XX:XX:XXX] 错误 org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager - 调用组件的 onAllRequiredCapabilitiesAvailable 时发生运行时异常 carbon-datasource-service java.lang.RuntimeException:无法获取 驱动程序实例 jdbcUrl=jdbc:oracle:thin:@server_name:1521/instance_name 在 com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:88) 在 com.zaxxer.hikari.pool.PoolElf.initializeDataSource(PoolElf.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) 在 org.wso2.carbon.datasource.core.DataSourceBuilder.buildDataSourceObject(DataSourceBuilder.java:79) 在 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) 在 org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager.lambda$notifySatisfiableComponents$7(StartupComponentManager.java:266) 在 java.util.ArrayList.forEach(ArrayList.java:1257) 在 org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager.notifySatisfiableComponents(StartupComponentManager.java:252) 在 org.wso2.carbon.kernel.internal.startupresolver.StartupOrderResolver$1.run(StartupOrderResolver.java:204) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 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)
服务器正常工作我有远程和本地连接。
有人知道我可以如何配置它。
谢谢!
【问题讨论】:
【参考方案1】:您能检查一下 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
Oracle驱动需要转换成OSGI(使用jartobundle.sh)才能放入SP_HOME/lib目录:
例如 sh SP_HOME/bin/jartobundle.sh ojdbc6.jar lib/
【讨论】:
我错过了向 OSGI 的转换...谢谢!以上是关于WSO2 流处理器,将数据库与 Oracle DB 集成,它不起作用的主要内容,如果未能解决你的问题,请参考以下文章
CDC 与 WSO2 Streaming Integrator 和 Postgres DB
带有 Analytics 的 WSO2 API 管理器:stats-datasources.xml' - 系统数据源 WSO2AM_STATS_DB 无法更新