/** * Add ChannelInterceptors. The order of the interceptors that are added will depend on the * membership management scheme */ private void addInterceptors() { if (log.isDebugEnabled()) { log.debug("Adding Interceptors..."); } TcpPingInterceptor tcpPingInterceptor = new TcpPingInterceptor(); tcpPingInterceptor.setInterval(10000); channel.addInterceptor(tcpPingInterceptor); if (log.isDebugEnabled()) { log.debug("Added TCP Ping Interceptor"); } // Add a reliable failure detector TcpFailureDetector tcpFailureDetector = new TcpFailureDetector(); // tcpFailureDetector.setPrevious(dfi); //TODO: check this tcpFailureDetector.setReadTestTimeout(120000); tcpFailureDetector.setConnectTimeout(180000); channel.addInterceptor(tcpFailureDetector); if (log.isDebugEnabled()) { log.debug("Added TCP Failure Detector"); } // Add the NonBlockingCoordinator. // channel.addInterceptor(new Axis2Coordinator(membershipListener)); staticMembershipInterceptor = new StaticMembershipInterceptor(); staticMembershipInterceptor.setLocalMember(primaryMembershipManager.getLocalMember()); primaryMembershipManager.setupStaticMembershipManagement(staticMembershipInterceptor); channel.addInterceptor(staticMembershipInterceptor); if (log.isDebugEnabled()) { log.debug("Added Static Membership Interceptor"); } channel.getMembershipService().setDomain(localDomain); mode.addInterceptors(channel); if (atmostOnceMessageSemantics) { // Add a AtMostOnceInterceptor to support at-most-once message processing semantics AtMostOnceInterceptor atMostOnceInterceptor = new AtMostOnceInterceptor(); atMostOnceInterceptor.setOptionFlag(TribesConstants.AT_MOST_ONCE_OPTION); channel.addInterceptor(atMostOnceInterceptor); if (log.isDebugEnabled()) { log.debug("Added At-most-once Interceptor"); } } if (preserverMsgOrder) { // Add the OrderInterceptor to preserve sender ordering OrderInterceptor orderInterceptor = new OrderInterceptor(); orderInterceptor.setOptionFlag(TribesConstants.MSG_ORDER_OPTION); channel.addInterceptor(orderInterceptor); if (log.isDebugEnabled()) { log.debug("Added Message Order Interceptor"); } } }
public void setupStaticMembershipManagement(StaticMembershipInterceptor staticMembershipInterceptor) { this.staticMembershipInterceptor = staticMembershipInterceptor; ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); scheduler.scheduleWithFixedDelay(new MemberListSenderTask(), 5, 5, TimeUnit.SECONDS); }