use of org.apache.ignite.internal.util.ipc.loopback.IpcServerTcpEndpoint in project ignite by apache.
the class IgfsServer method createEndpoint.
/**
* Create server IPC endpoint.
*
* @param endpointCfg Endpoint configuration.
* @param mgmt Management flag.
* @return Server endpoint.
* @throws IgniteCheckedException If failed.
*/
private IpcServerEndpoint createEndpoint(IgfsIpcEndpointConfiguration endpointCfg, boolean mgmt) throws IgniteCheckedException {
A.notNull(endpointCfg, "endpointCfg");
IgfsIpcEndpointType typ = endpointCfg.getType();
if (typ == null)
throw new IgniteCheckedException("Failed to create server endpoint (type is not specified)");
switch(typ) {
case SHMEM:
{
IpcSharedMemoryServerEndpoint endpoint = new IpcSharedMemoryServerEndpoint(igfsCtx.kernalContext().config().getWorkDirectory());
endpoint.setPort(endpointCfg.getPort());
endpoint.setSize(endpointCfg.getMemorySize());
endpoint.setTokenDirectoryPath(endpointCfg.getTokenDirectoryPath());
return endpoint;
}
case TCP:
{
IpcServerTcpEndpoint endpoint = new IpcServerTcpEndpoint();
endpoint.setHost(endpointCfg.getHost());
endpoint.setPort(endpointCfg.getPort());
endpoint.setManagement(mgmt);
return endpoint;
}
default:
throw new IgniteCheckedException("Failed to create server endpoint (type is unknown): " + typ);
}
}
use of org.apache.ignite.internal.util.ipc.loopback.IpcServerTcpEndpoint in project ignite by apache.
the class IgfsServer method start.
/**
* Starts this server.
*
* @throws IgniteCheckedException If failed.
*/
public void start() throws IgniteCheckedException {
srvEndpoint = createEndpoint(endpointCfg, mgmt);
if (U.isWindows() && srvEndpoint instanceof IpcSharedMemoryServerEndpoint)
throw new IgniteCheckedException(IpcSharedMemoryServerEndpoint.class.getSimpleName() + " should not be configured on Windows (configure " + IpcServerTcpEndpoint.class.getSimpleName() + ")");
if (srvEndpoint instanceof IpcServerTcpEndpoint) {
IpcServerTcpEndpoint srvEndpoint0 = (IpcServerTcpEndpoint) srvEndpoint;
srvEndpoint0.setManagement(mgmt);
if (srvEndpoint0.getHost() == null) {
if (mgmt) {
String locHostName = igfsCtx.kernalContext().config().getLocalHost();
try {
srvEndpoint0.setHost(U.resolveLocalHost(locHostName).getHostAddress());
} catch (IOException e) {
throw new IgniteCheckedException("Failed to resolve local host: " + locHostName, e);
}
} else
// Bind non-management endpoint to 127.0.0.1 by default.
srvEndpoint0.setHost("127.0.0.1");
}
}
igfsCtx.kernalContext().resource().injectGeneric(srvEndpoint);
srvEndpoint.start();
// IpcServerEndpoint.getPort contract states return -1 if there is no port to be registered.
if (srvEndpoint.getPort() >= 0)
igfsCtx.kernalContext().ports().registerPort(srvEndpoint.getPort(), TCP, srvEndpoint.getClass());
hnd = new IgfsIpcHandler(igfsCtx, endpointCfg, mgmt);
// Start client accept worker.
acceptWorker = new AcceptWorker();
}
Aggregations