简体   繁体   中英

Event table delete operation exception in wso2 cep 3.1.0

I am learning to use event table in the cep , but there was a mistake.

from StreamInstance[action contains 'add']#window.length(1)
select *
insert into StreamInstanceTable;

from StreamInstance[action contains 'delete']
delete StreamInstanceTable
on StreamInstanceTable.streamName == StreamInstance.streamName;

when delete the data from StreamInstanceTable, If I take the conditions (on) will be wrong, if not with the condition is right.

[2014-10-23 17:40:28,674]  INFO - {RedisListener}  recving mesage:{"log": "StreamInstanceTemplateName","streamName": "stream1","moduleCount"
: "4","ip": "127.0.0.1","pid": "1001","from": "container","gid": "gid100","action":"delete"}
[2014-10-23 17:40:28,678] ERROR - {EventJunction}  Error while dispatching events
java.lang.ArrayIndexOutOfBoundsException: -1
        at org.wso2.siddhi.core.event.StateEvent.getStreamEvent(StateEvent.java:51)
        at org.wso2.siddhi.core.executor.expression.VariableExpressionExecutor.execute(VariableExpressionExecutor.java:151)
        at org.wso2.siddhi.core.executor.conditon.compare.CompareConditionExecutor.execute(CompareConditionExecutor.java:48)
        at org.wso2.siddhi.core.table.InMemoryEventTable.delete(InMemoryEventTable.java:82)
        at org.wso2.siddhi.core.query.output.callback.DeleteTableCallback.send(DeleteTableCallback.java:36)
        at org.wso2.siddhi.core.query.output.ratelimit.OutputRateManager.sendToCallBacks(OutputRateManager.java:38)
        at org.wso2.siddhi.core.query.output.ratelimit.PassThroughOutputRateManager.send(PassThroughOutputRateManager.java:26)
        at org.wso2.siddhi.core.query.selector.QuerySelector.process(QuerySelector.java:221)
        at org.wso2.siddhi.core.query.processor.handler.SimpleHandlerProcessor.processHandler(SimpleHandlerProcessor.java:149)
        at org.wso2.siddhi.core.query.processor.handler.SimpleHandlerProcessor.receive(SimpleHandlerProcessor.java:77)
        at org.wso2.siddhi.core.stream.StreamJunction.send(StreamJunction.java:45)
        at org.wso2.siddhi.core.stream.input.InputHandler.send(InputHandler.java:41)
        at org.wso2.carbon.event.processor.core.internal.listener.SiddhiInputEventDispatcher.sendEvent(SiddhiInputEventDispatcher.java:107)
        at org.wso2.carbon.event.processor.core.internal.listener.SiddhiInputEventDispatcher.consumeEventData(SiddhiInputEventDispatcher.jav
a:95)

Can you try the below query, there seems to be known issue (Don't use the stream definition name as prefix)

from StreamInstance[action contains 'delete'] delete StreamInstanceTable on StreamInstanceTable.streamName == streamName;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM