Update: After testing with several different clientTimeoutMS values, it seems that the errors start appearing after 60mins, irrespective of the clientTimeoutMS.
Regards, Chamila de Alwis Software Engineer | WSO2 | +94772207163 Blog: code.chamiladealwis.com On Mon, Oct 27, 2014 at 2:44 AM, Chamila De Alwis <chami...@wso2.com> wrote: > Hi, > > I'm using a Python thrift publisher that publishes to CEP repeatedly with > an interval. > > After 30 minutes a ThriftSessionExpiredException is thrown. I'm catching > this and reconnecting to continue publishing events. > > The clientTimeoutMS value in > repository/conf/data-bridge/data-bridge-config.xml is set to 60000. After > the second reconnect, which is at 60 minutes, the data bridge receiver on > the CEP throws EventConversionException saying the event is wrongly > formatted. Note that this doesn't happen in the first reconnect at 30 mins. > > [2014-10-27 01:43:49,217] ERROR > {org.wso2.carbon.databridge.core.internal.queue.QueueWorker} - Wrongly > formatted event sent for carbon.super > org.wso2.carbon.databridge.core.exception.EventConversionException: Error > when converting cartridge_agent_health_stats:1.0.0 of event bundle with > events 480 > at > org.wso2.carbon.databridge.receiver.thrift.converter.ThriftEventConverter.createEventList(ThriftEventConverter.java:126) > at > org.wso2.carbon.databridge.receiver.thrift.converter.ThriftEventConverter.toEventList(ThriftEventConverter.java:88) > at > org.wso2.carbon.databridge.core.internal.queue.QueueWorker.run(QueueWorker.java:72) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.lang.IndexOutOfBoundsException: Index: 2874, Size: 2874 > at java.util.ArrayList.rangeCheck(ArrayList.java:604) > at java.util.ArrayList.get(ArrayList.java:382) > at > org.wso2.carbon.databridge.receiver.thrift.converter.ThriftEventConverter.createEventList(ThriftEventConverter.java:104) > ... 8 more > > I'm not sure why this is happening as what I do to reconnect is to call > the connect method and define the stream definition. > > 1) Does the client need to redefine the stream definition at reconnection? > > 2) Should any data from the old connection, such as the stream ID or the > session ID should be passed to the new connection to resemble continuation? > > Regards, > Chamila de Alwis > Software Engineer | WSO2 | +94772207163 > Blog: code.chamiladealwis.com > > >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev