我正在尝试将WSO2 DAS数据源从H2更改为postgres。
我已经在master-datasource.xml、user-mgt.xml和registry.xml 中配置了所有数据库更改
创建事件表时引发以下异常
Caused by: java.lang.NullPointerException
at org.wso2.siddhi.extension.eventtable.rdbms.DBHandler.initializeDatabaseExecutionInfo(DBHandler.java:392)
at org.wso2.siddhi.extension.eventtable.rdbms.DBHandler.<init>(DBHandler.java:73)
at org.wso2.siddhi.extension.eventtable.RDBMSEventTable.init(RDBMSEventTable.java:112)
at org.wso2.siddhi.core.util.parser.helper.DefinitionParserHelper.addEventTable(DefinitionParserHelper.java:99)
at org.wso2.siddhi.core.util.ExecutionPlanRuntimeBuilder.defineTable(ExecutionPlanRuntimeBuilder.java:74)
at org.wso2.siddhi.core.util.parser.ExecutionPlanParser.defineTableDefinitions(ExecutionPlanParser.java:162)
at org.wso2.siddhi.core.util.parser.ExecutionPlanParser.parse(ExecutionPlanParser.java:115)
at org.wso2.siddhi.core.SiddhiManager.validateExecutionPlan(SiddhiManager.java:68)
at org.wso2.siddhi.core.SiddhiManager.validateExecutionPlan(SiddhiManager.java:74)
at org.wso2.carbon.event.processor.core.internal.util.helper.EventProcessorHelper.validateExecutionPlan(EventProcessorHelper.java:191)
我尝试使用这个代码:
@From(eventtable='rdbms', jdbc.url='jdbc:postgresql://localhost:5432/pruebabg', username='postgres', password='postgres', driver.name='org.postgresql.Driver', table.name='pharming')
define table pharming (phi_id_pharming_incident long, phi_id_license int, phi_machine_user_id string, phi_date string, phi_machine_user_date string, phi_protected_site string, phi_pharming_glp string,
phi_user_ip string, phi_dsb_version string, phi_os string, phi_os_version string, user_id int);
我也尝试使用这个代码:
@From(eventtable='rdbms', datasource.name='WSO2_CARBON_DB', table.name='pharming_incident')
define table pharming_incident (phi_id_pharming_incident long, phi_id_license int, phi_machine_user_id string, phi_date string, phi_machine_user_date string, phi_protected_site string, phi_pharming_glp string,
phi_user_ip string, phi_dsb_version string, phi_os string, phi_os_version string, user_id int);
我该如何解决这个问题?
首先检查以下内容。
- 请确保已运行位于的相关数据库脚本/针对数据库的dbscripts/postgresql.sql
- 确保将相关数据库驱动程序放置在/repository/components/lib文件夹
我怀疑你的master-datasources.xml中有一些不正确的配置。如果你能在master-ddatasources.xml共享你的配置,那么追踪确切的问题会更容易。请在此链接[1]中找到有关如何使用WSO2 DAS设置PostgreSQL数据库的说明(适用于DAS 3.0.0)。希望您觉得这些信息有帮助。
[1]https://docs.wso2.com/display/DAS300/Setting+up+PostgreSQL
感谢您的answear。
事件表仅使用一些数据库进行测试:
https://docs.wso2.com/display/DAS301/Siddhi+查询+语言#SiddhiQueryLanguage RDBMS事件表
"RDBMS事件表已使用以下数据库进行了测试:MySQLH2Oracle"
无论如何,我尝试更新rdbms-table-config.xml,它位于/repository/components/plugins/siddhi-extension-event-table_3.x.x.jar中,具体如下:https://github.com/wso2/siddhi/blob/master/modules/siddhi-extensions/event-table/src/main/resources/rdbms-table-config.xml。
</mapping>
<mapping db='postgresql'>
<elements>
<element key="bool">SMALLINT</element>
<element key="integer">INTEGER</element>
</elements>
</mapping>