Search in sources :

Example 31 with Member

use of org.apache.catalina.tribes.Member in project tomcat by apache.

the class StaticMembershipProvider method stopMembership.

protected void stopMembership(Member[] members) {
    if (members.length == 0) {
        return;
    }
    Member localmember = service.getLocalMember(false);
    localmember.setCommand(Member.SHUTDOWN_PAYLOAD);
    MemberMessage msg = new MemberMessage(membershipId, MemberMessage.MSG_STOP, localmember);
    try {
        channel.send(members, msg, sendOptions);
    } catch (ChannelException e) {
        log.error(sm.getString("staticMembershipProvider.stopMembership.sendFailed"), e);
    }
}
Also used : FaultyMember(org.apache.catalina.tribes.ChannelException.FaultyMember) Member(org.apache.catalina.tribes.Member) ChannelException(org.apache.catalina.tribes.ChannelException)

Example 32 with Member

use of org.apache.catalina.tribes.Member in project tomcat by apache.

the class StaticMembershipProvider method ping.

protected void ping() throws ChannelException {
    // send ping
    Member[] members = getAliveMembers(staticMembers.toArray(new Member[0]));
    if (members.length > 0) {
        try {
            MemberMessage msg = new MemberMessage(membershipId, MemberMessage.MSG_PING, service.getLocalMember(true));
            Response[] resp = rpcChannel.send(members, msg, RpcChannel.ALL_REPLY, sendOptions, rpcTimeout);
            for (Response response : resp) {
                messageReceived(response.getMessage(), response.getSource());
            }
        } catch (ChannelException ce) {
            // Handle known failed members
            FaultyMember[] faultyMembers = ce.getFaultyMembers();
            for (FaultyMember faultyMember : faultyMembers) {
                memberDisappeared(faultyMember.getMember());
            }
            throw ce;
        }
    }
    // expire
    checkExpired();
}
Also used : Response(org.apache.catalina.tribes.group.Response) FaultyMember(org.apache.catalina.tribes.ChannelException.FaultyMember) Member(org.apache.catalina.tribes.Member) FaultyMember(org.apache.catalina.tribes.ChannelException.FaultyMember) ChannelException(org.apache.catalina.tribes.ChannelException)

Example 33 with Member

use of org.apache.catalina.tribes.Member in project tomcat by apache.

the class StaticMembershipProvider method getAliveMembers.

private Member[] getAliveMembers(Member[] members) {
    List<Member> aliveMembers = new ArrayList<>();
    for (Member member : members) {
        try (Socket socket = new Socket()) {
            InetAddress ia = InetAddress.getByAddress(member.getHost());
            InetSocketAddress addr = new InetSocketAddress(ia, member.getPort());
            socket.connect(addr, connectTimeout);
            aliveMembers.add(member);
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
        // Otherwise ignore
        }
    }
    return aliveMembers.toArray(new Member[0]);
}
Also used : InetSocketAddress(java.net.InetSocketAddress) ArrayList(java.util.ArrayList) FaultyMember(org.apache.catalina.tribes.ChannelException.FaultyMember) Member(org.apache.catalina.tribes.Member) InetAddress(java.net.InetAddress) Socket(java.net.Socket)

Example 34 with Member

use of org.apache.catalina.tribes.Member in project tomcat by apache.

the class ParallelNioSender method close.

private synchronized void close() throws ChannelException {
    ChannelException x = null;
    Iterator<Map.Entry<Member, NioSender>> iter = state.nioSenders.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry<Member, NioSender> entry = iter.next();
        try {
            entry.getValue().disconnect();
        } catch (Exception e) {
            if (x == null) {
                x = new ChannelException(e);
            }
            x.addFaultyMember(entry.getKey(), e);
        }
        iter.remove();
    }
    if (x != null) {
        throw x;
    }
}
Also used : Entry(java.util.Map.Entry) HashMap(java.util.HashMap) Map(java.util.Map) Member(org.apache.catalina.tribes.Member) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) ChannelException(org.apache.catalina.tribes.ChannelException) ChannelException(org.apache.catalina.tribes.ChannelException)

Example 35 with Member

use of org.apache.catalina.tribes.Member in project tomcat by apache.

the class Arrays method merge.

public static Member[] merge(Member[] m1, Member[] m2) {
    AbsoluteOrder.absoluteOrder(m1);
    AbsoluteOrder.absoluteOrder(m2);
    ArrayList<Member> list = new ArrayList<>(java.util.Arrays.asList(m1));
    for (Member member : m2) {
        if (!list.contains(member)) {
            list.add(member);
        }
    }
    Member[] result = new Member[list.size()];
    list.toArray(result);
    AbsoluteOrder.absoluteOrder(result);
    return result;
}
Also used : ArrayList(java.util.ArrayList) Member(org.apache.catalina.tribes.Member)

Aggregations

Member (org.apache.catalina.tribes.Member)93 ChannelException (org.apache.catalina.tribes.ChannelException)28 FaultyMember (org.apache.catalina.tribes.ChannelException.FaultyMember)17 Test (org.junit.Test)17 IOException (java.io.IOException)16 MemberImpl (org.apache.catalina.tribes.membership.MemberImpl)15 ReceiverBase (org.apache.catalina.tribes.transport.ReceiverBase)11 ArrayList (java.util.ArrayList)10 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)10 UniqueId (org.apache.catalina.tribes.UniqueId)9 Serializable (java.io.Serializable)6 BigDecimal (java.math.BigDecimal)6 DecimalFormat (java.text.DecimalFormat)6 Response (org.apache.catalina.tribes.group.Response)6 ChannelData (org.apache.catalina.tribes.io.ChannelData)6 XByteBuffer (org.apache.catalina.tribes.io.XByteBuffer)6 SelectionKey (java.nio.channels.SelectionKey)4 Selector (java.nio.channels.Selector)4 Membership (org.apache.catalina.tribes.membership.Membership)4 StaticMember (org.apache.catalina.tribes.membership.StaticMember)4