This content has been marked as final. Show 2 replies
According to the documentation there are CQL restriction when using HA with type 1 applications - ”requires the new secondary to generate exactly the same sequence of output events as existing secondaries”. One of them is sliding window: “Oracle CQL queries should not use sliding windows if new nodes that join the multi-server domain are expected to generate exactly the same output events as existing nodes”. The questions:
a. Is this because the “starting point” of the server rejoining the cluster is not the same as the primary’s?
b. If yes, is there a way around it for example pausing inbound JMS->restating all the CEP severs in the cluster so the secondary don’t rejoin the cluster but just join the cluster->resume JMS?In theory the way to achieve this is to use the warm-up window length. This is designed to prevent secondaries from being used before the warm-up period has expired allowing the window to fill up. Whether this works for you is very dependent on your queries and your application.
c. Or maybe just publishing the applications again (force publish)?If you are going to do this why not just use a single server and automatically restart it when it fails? Seems like the effect should be the same.
d. Maybe another workaround?
e. What if I have only 1 secondary so it does not need to meet the condition of having the same state as the other secondaries?This may work with the same caveats above
The scenario we are concerned with is as follow:
We have a sliding window of 3 minutes. During that time the window aggregates events of type X and when the window ends it publish 1 boolean event saying if there was at least 1 event of type X or zero events of type X (we are not concerend with the number of events just with the fact it is greater then zero).
If a failed server is rejoining the cluster and it starts processing events at a point in time that the time window on the primary server is 1 minute old (the window started a minute ago) will the warm up time helps? Will the 2 servers time window will be synchronized after 2 minute (after the primary server window will reach 3 minutes)? Will thye primary resets the window on the secondary to restart from time zero?