Starting GemFire XD Servers with the FabricServer Interface
The FabricServer interface provides an easy way to start an embedded GemFire XD server process in an existing Java application.
You generally use the FabricServer interface when you want to provide thin client connectivity to the embedded GemFire XD member. The FabricServer interface enables you to start multiple network services to listen for clients on different address and port combinations. Using the FabricServer interface also enables you to initialize resources in the GemFire XD server member before you start network services and make the member available to client connections.
- Use the
FabricServiceManager factory class to obtain the
singleton instance of FabricServer. For example:
FabricServer server = FabricServiceManager.getFabricServerInstance();
Create a Java Properties object and add all of the boot property definitions that you want to configure when starting the server. For example:
Properties bootProps = new Properties(); bootProps.setProperty("mcast-port", "12444");
As an alternative, you can define properties as system properties (pass with the -D option to the JVM), configure them in a properties file, or rely on default property values. Configuration Properties provides more information.
- Use the FabricServer.start() method
with start the server using your Properties object:
server.start(p);Note: GemFire XD supports only a single FabricServer instance in a JVM at any given time. If you invoke start() multiple times using the same Properties, then no action is taken during subsequent calls. If you invoke start() multiple times using different properties, then by default the existing FabricServer instance is first stopped and then restarted with the new properties. You can optionally use the start(Properties bootProperties, boolean ignoreIfStarted) method with a "true" boolean value to reuse a previous instance instead of restarting it. See the FabricServer JavaDoc for more information.
- To support client connections, start a
network service on a unique client and port combination using the
startNetworkServer() method. You can specify the host and port number as
arguments to the method. You can specify additional network server properties in
a Properties object that you pass with the method. For example, to specify only
the address and port with no additional properties:
server.startNetworkServer("localhost", 1528, null);Note: The GemFire XD network server supports the Apache Derby network properties documented in the Derby Server and Administration Guide.
- Start additional network services as needed to listen on different address and port combinations.
Deciding When to Use Embedded Peer-to-Peer provides more examples of using the FabricServer interface to embed GemFire XD members.