class GetTCP extends AbstractSessionFactoryProcessor {

    private void run(ProcessContext context) {
        String[] serverAddresses = this.originalServerAddressList.split(",");
        for (String hostPortPair : serverAddresses) {
            ReceivingClient client;
            if (!this.liveTcpClients.containsKey(hostPortPair)) {
                String[] hostAndPort = hostPortPair.split(":");
                InetSocketAddress address = new InetSocketAddress(hostAndPort[0], Integer.parseInt(hostAndPort[1]));
                client = new ReceivingClient(address, this.clientScheduler, this.receiveBufferSize, this.endOfMessageByte);
                client.setReconnectAttempts(this.connectionAttemptCount);
                client.setDelayMillisBeforeReconnect(this.reconnectInterval);
                client.setMessageHandler(this.delegatingMessageHandler);
                this.liveTcpClients.put(hostPortPair, client);
                this.startClient(client);
            } else {
                client = this.liveTcpClients.get(hostPortPair);
                if (!client.isRunning()) {
                    client.stop(); // primarily for cleanup in the event of abnormal termination
                    this.startClient(client);
                }
            }
        }
    }

}