Udo,

I verified that the approach you recommended works. Thanks. Meanwhile, I also 
discovered that registering a single CQ with multiple listeners also works.

Wes

On Sep 5, 2016, at 1:03 AM, Udo Kohlmeyer 
<[email protected]<mailto:[email protected]>> wrote:


Hi there Wes,

The distribution of the same event to multiple registered listeners is not 
supported.
If you want both listeners to get the same events you will have to register 
multiple CQ's with different names.

--Udo

On 5/09/2016 12:40 PM, Real Wes wrote:
I found out the hard way that if I create 2 CQ’s on the same region with the 
same query string, each with a different listener, that the 2nd one will 
overwrite the first one. However, what I need is that when I write a single 
event into a region that multiple listeners fire.

Question: if I have an existing CQ and I want to add another listener to it, do 
I need to destroy the first listener and recreate a new CQ with 2 listeners?  
Would be nice to be able to just add a listener.

private CqQuery addListenerToExistingCq(QueryService queryService, CqQuery 
cqQuery, DomainEventListener aListener) {

CqAttributes cqa = cqQuery.getCqAttributes();

// Add new listener to existing query
CqAttributesFactory cqAf = new CqAttributesFactory(cqa);
cqAf.addCqListener(aListener);
cqa = cqAf.create();

String cqName = cqQuery.getName();
String query = cqQuery.getQueryString();
try {
if (cqQuery != null) {
if (cqQuery.isRunning()) {
cqQuery.stop();
cqQuery.close();
}
}
cqQuery = queryService.newCq(cqName, query, cqa);
SelectResults sResults = cqQuery.executeWithInitialResults();
Thanks,
Wes Williams


Reply via email to