Example usage for javax.resource.spi.work WorkManager IMMEDIATE

List of usage examples for javax.resource.spi.work WorkManager IMMEDIATE

Introduction

In this page you can find the example usage for javax.resource.spi.work WorkManager IMMEDIATE.

Prototype

long IMMEDIATE

To view the source code for javax.resource.spi.work WorkManager IMMEDIATE.

Click Source Link

Document

A constant to indicate timeout duration.

Usage

From source file:com.mirth.connect.connectors.tcp.TcpMessageReceiver.java

public void run() {
    while (!disposing.get()) {
        if (connector.isStarted() && !disposing.get()) {
            Socket socket = null;
            try {
                socket = serverSocket.accept();
                logger.trace("Server socket Accepted on: " + serverSocket.getLocalPort());
            } catch (java.io.InterruptedIOException iie) {
                logger.debug("Interupted IO doing serverSocket.accept: " + iie.getMessage());
            } catch (Exception e) {
                if (!connector.isDisposed() && !disposing.get()) {
                    logger.warn("Accept failed on socket: " + e, e);
                    handleException(new ConnectException(e, this));
                }/*  w  w  w .j  a v  a2s  . c o  m*/
            }
            if (socket != null) {
                try {
                    monitoringController.updateStatus(connector, connectorType, Event.CONNECTED, socket);
                    work = (TcpWorker) createWork(socket);
                    try {
                        getWorkManager().scheduleWork(work, WorkManager.IMMEDIATE, null, null);
                    } catch (WorkException e) {
                        logger.error("Tcp Server receiver Work was not processed: " + e.getMessage(), e);
                    }
                } catch (SocketException e) {
                    alertController.sendAlerts(((TcpConnector) connector).getChannelId(), Constants.ERROR_411,
                            null, e);
                    monitoringController.updateStatus(connector, connectorType, Event.DISCONNECTED, socket);
                    handleException(e);
                }

            }
        }
    }
}

From source file:com.mirth.connect.connectors.mllp.MllpMessageReceiver.java

public void run() {
    while (!disposing.get()) {
        if (connector.isStarted() && !disposing.get()) {
            Socket socket = null;

            if (connector.isServerMode()) {
                try {

                    socket = serverSocket.accept();
                    logger.trace("Server socket Accepted on: " + serverSocket.getLocalPort());
                } catch (java.io.InterruptedIOException iie) {
                    logger.debug("Interupted IO doing serverSocket.accept: " + iie.getMessage());
                } catch (Exception e) {
                    if (!connector.isDisposed() && !disposing.get()) {
                        logger.warn("Accept failed on socket: " + e, e);
                        handleException(new ConnectException(e, this));
                    }/*from   w w  w . j a v  a 2  s . co  m*/
                }
            } else {
                // Create the client socket. If it can't create the
                // client socket, sleep through the reconnect interval and
                // try again.
                URI uri = endpoint.getEndpointURI().getUri();
                try {
                    clientSocket = createClientSocket(uri);
                    socket = clientSocket;
                    logger.trace("Server socket Accepted on: " + clientSocket.getLocalPort());
                } catch (Exception e) {
                    try {
                        logger.debug("Socket connection to " + uri.getHost() + ":" + uri.getPort()
                                + " failed, waiting " + connector.getReconnectInterval() + "ms.");
                        Thread.sleep(connector.getReconnectInterval());
                    } catch (Exception ex) {
                    }
                }
            }

            if (socket != null) {
                try {
                    monitoringController.updateStatus(connector, connectorType, Event.CONNECTED, socket);
                    work = (TcpWorker) createWork(socket);
                    if (connector.isServerMode()) {
                        try {
                            getWorkManager().scheduleWork(work, WorkManager.IMMEDIATE, null, null);
                        } catch (WorkException e) {
                            logger.error("Tcp Server receiver Work was not processed: " + e.getMessage(), e);
                        }
                    } else {
                        work.run();
                    }
                } catch (SocketException e) {
                    alertController.sendAlerts(((MllpConnector) connector).getChannelId(), Constants.ERROR_408,
                            null, e);
                    monitoringController.updateStatus(connector, connectorType, Event.DISCONNECTED, socket);
                    handleException(e);
                }

            }
        }
    }
}