WSO2 MySQL适配器语法错误

时间:2014-07-18 09:43:21

标签: mysql wso2

我正在尝试在WSO2中为MySql创建一个事件格式化程序但是遇到了问题。它似乎与“复合键列”的使用有关。我得到的错误是:

  

错误 - {MysqlEventAdaptorType}
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'Window = '15''附近使用正确的语法

只有在格式化程序中使用两个或更多键时才会发生这种情况:

<eventFormatter name="GenericAccountSQLFormatter" statistics="enable"
  trace="enable" xmlns="http://wso2.org/carbon/eventformatter">
  <from streamName="GenericAccountMeasureStream" version="1.0.0"/>
  <mapping customMapping="disable" type="map"/>
  <to eventAdaptorName="APCSQLOut" eventAdaptorType="mysql">
    <property name="table.name">AccountStats</property>
    <property name="update.keys">AccountId,Window</property>
    <property name="execution.mode">insert-or-update</property>
  </to>
</eventFormatter>

删除其中一个键(AccountId,Window),然后格式化程序将数据发送到MySQL。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是一个错误,当现有事件发送到具有复合键的MySQL适配器时会发生。创建了一个jira来跟踪这个,源补丁也可以在那里找到。

如果您不想创建/应用补丁,那么现在作为快速解决方法 - 您可以通过连接这两个属性从CEP查询输出复合键,并将其用作格式化程序中的键。

<强>更新

现在,jira here中提供了包含修复和构建说明的源补丁。构建完成后,您需要将其作为补丁应用于CEP。要将其作为补丁应用,请在<CEP>/repository/components/patches中创建名为patch0xyz的目录(xyz是patch0135中的数字,也使xyz> 100),然后将jar放入其中。然后,您需要将jar重命名为org.wso2.carbon.event.output.adaptor.mysql_1.0.1.jar。然后重新启动服务器。