I've changed from 

        dispatcher.sendMessage(message, RequestOptions.ASYNC());

to

        dispatcher.sendMessage(message, RequestOptions.SYNC());

got this now, which might explain why nothing was received before?

23:33:39,725 WARN  [com.arjuna.ats.jta] (http-/192.168.1.101:8080-2) 
ARJUNA016029: SynchronizationImple.afterCompletion - failed for 
org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization@15a0b2f
 with exception: org.hibernate.search.SearchException: HSEARCH000123: Unable to 
send Lucene update work via JGroups cluster
        at 
org.hibernate.search.backend.impl.jgroups.JGroupsBackendQueueTask.sendLuceneWorkList(JGroupsBackendQueueTask.java:97)
        at 
org.hibernate.search.backend.impl.jgroups.JGroupsBackendQueueProcessor.applyWork(JGroupsBackendQueueProcessor.java:122)
        at 
org.hibernate.search.indexes.impl.DirectoryBasedIndexManager.performOperations(DirectoryBasedIndexManager.java:127)
        at 
org.hibernate.search.backend.impl.WorkQueuePerIndexSplitter.commitOperations(WorkQueuePerIndexSplitter.java:61)
        at 
org.hibernate.search.backend.impl.BatchedQueueingProcessor.performWorks(BatchedQueueingProcessor.java:96)
        at 
org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization.afterCompletion(PostTransactionWorkQueueSynchronization.java:99)
        at 
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:96)
        at 
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:402)
        at 
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:103)
        at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164)
        at 
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)
        at 
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117)
        at 
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
        at 
org.jboss.capedwarf.datastore.JBossTransaction.commit(JBossTransaction.java:149)
 [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.jboss.capedwarf.datastore.JBossDatastoreService.put(JBossDatastoreService.java:106)
 [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.jboss.capedwarf.datastore.JBossDatastoreService.put(JBossDatastoreService.java:80)
 [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.jboss.capedwarf.datastore.JBossDatastoreService.put(JBossDatastoreService.java:76)
 [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.jboss.capedwarf.log.JBossLogService.requestStarted(JBossLogService.java:212)
 [capedwarf-log-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.jboss.capedwarf.appidentity.GAEListener.requestInitialized(GAEListener.java:91)
 [capedwarf-appidentity-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) 
[jbossweb-7.0.16.Final.jar:]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
[jbossweb-7.0.16.Final.jar:]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 [jbossweb-7.0.16.Final.jar:]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 
[jbossweb-7.0.16.Final.jar:]
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
[jbossweb-7.0.16.Final.jar:]
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679)
 [jbossweb-7.0.16.Final.jar:]
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931) 
[jbossweb-7.0.16.Final.jar:]
        at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_31]
Caused by: org.jgroups.TimeoutException: timeout sending message to 
node-b/capedwarf
        at 
org.jgroups.blocks.MessageDispatcher.sendMessage(MessageDispatcher.java:360)
        at 
org.hibernate.search.backend.impl.jgroups.DispatcherMessageSender.send(DispatcherMessageSender.java:45)
        at 
org.hibernate.search.backend.impl.jgroups.JGroupsBackendQueueTask.sendLuceneWorkList(JGroupsBackendQueueTask.java:91)
        ... 26 more

How to track down timeout cause?

Although from diff stack-trace, I see this:

        at 
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:202)
        at 
org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:456) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at 
org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:363) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at 
org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:238) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at 
org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:543)
 [jgroups-3.0.9.Final.jar:3.0.9.Final]
        at org.jgroups.blocks.mux.MuxUpHandler.up(MuxUpHandler.java:130) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at org.jgroups.JChannel.up(JChannel.java:716) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1026) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]
        at org.jgroups.protocols.RSVP.up(RSVP.java:179) 
[jgroups-3.0.9.Final.jar:3.0.9.Final]

        public Object up(Event evt) {
            if(corr != null) {
                if(!corr.receive(evt)) {
                    try {
                        return handleUpEvent(evt);

Meaning msg listener only get's hit if corr::receive returns false.
Is this the case ever - with Ispans handles in place - here?

-Ales

On May 14, 2012, at 11:26 PM, Ales Justin wrote:

> Could be that I don't fully understand how this mux stuff should work. :-)
> As we've been busting heads since Friday ... 
> 
> This is the code (see below) that sets up dispatcher, and sets the listener.
> 
> As you can see I add the msg listener to dispatcher.
> And I use dispatcher's ::getProtocolAdapter to setup UpHandler for mux_id.
> 
> I then expect the following:
> * slave tries sending the msg to master
> * this dispatcher adds mux_id / scopeId to the msg
> * on master, dispatcher's msg listener should pick up this msg
> 
> The problem is that our msg listener is never hit,
> meaning no slave msgs are ever received.
> 
> Any idea what we're doing wrong or what's missing?
> 
> -Ales
> 
> ---
> 
>        UpHandler handler = channel.getUpHandler();
>        if (handler instanceof Muxer) {
>            Short n = (Short) props.get(MUX_ID);
>            if (n == null) {
>                throw new IllegalArgumentException("Missing mux id!");
>            }
>            @SuppressWarnings("unchecked")
>            Muxer<UpHandler> muxer = (Muxer<UpHandler>) handler;
>            if (muxer.get(n) != null) {
>                throw new IllegalArgumentException("Muxer with id " + n + " 
> already used!");
>            }
> 
>            muxId = n;
>            ClassLoader cl = (ClassLoader) props.get(CLASSLOADER);
>            MessageListener wrapper = (cl != null) ? new 
> ClassloaderMessageListener(listener, cl) : listener;
>            MessageDispatcher dispatcher = new MuxMessageDispatcher(muxId, 
> channel, wrapper, listener, null);
>            muxer.add(muxId, dispatcher.getProtocolAdapter());
>            sender = new DispatcherMessageSender(dispatcher);
> 


_______________________________________________
infinispan-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to