1.0

Table Of Contents
Description
You can start servers that can host data (data stores) or those that do not host data (accessors) with the sqlf
utility, but either kind of member can service all SQL statements by routing them to appropriate data stores and
aggregating the results. Even for a member hosting data for a table, it is not necessary that all data be available
in the same member, for example, for DMLs that reference partitioned tables (PARTITION BY Clause). So
routing to other stores may be required. In addition it is possible for a member to be a data store but still not host
any data for a table due to no common SERVER GROUPS Clause.
Starting a server generates output similar to the following (XXX is the path of current working directory):
Starting SQLFire Server using multicast for peer discovery:
239.192.81.1[10334]
Starting network server for SQLFire Server at address
localhost/127.0.0.1[1527]
SQLFire Server pid: 2015 status: running
Logs generated in <XXX>/sqlfserver.log
This will start the server process locally and use the current working directory to store logs, statistics and the
data dictionary, and use multicast for peer discovery (address 239.192.81.1, port 10334). Any persistent tables
created using the default disk store will also use this directory to manage the data les.
The data dictionary is managed in a subdirectory called 'datadictionary' and persisted by default. This subdirectory
contains the persistent metadata of all the DDLs executed in the distributed system from any clients or peers,
and is necessary for a SQLFire server or locator member to start up and function properly.
As the output above indicates, a network server is also started by default that binds to localhost on port 1527.
This service allows thin clients to connect to the server and execute SQL commands using the DRDA protocol.
Always start a SQLFire server as a background process. If the server you are starting was not the last server in
the cluster to stop, it may require other cluster members to boot before it can conrm that its data is consistent
with those members' data. Even with no persistent or overow tables, each server locally persists a copy of the
data dictionary and may have to wait for other servers to come back online to ensure that it has all the latest
updates to the data dictionary.
If another server is now started to join the cluster using the same multicast port (default port as for the rst server
above), the startup message shows the other members in the distributed system:
sqlf server start -dir=server2
-client-port=1528
Starting SQLFire Server using multicast for
peer discovery: 239.192.81.1[10334]
Starting network server for SQLFire Server at
address localhost/127.0.0.1[1528]
Distributed system now has 2 members.
Other members: serv1(2015:data store)<v0>:32013/48225
SQLFire Server pid: 2032 status: running
Logs generated in <XXX>/sqlfserver.log
The italicized lines indicate the output regarding the IDs of other members in the distributed system.
The startup script maintains the running status of the server in a le .sqlfserver.ser.
Example: Multiple Servers Using Default Multicast Port for Peer Discovery
-- start a server using default mcast-port (10334) for
discovery,
-- with current directory as the working directory, and
network server
- running on default localhost:1527
sqlf server start
- start a second server talking to the first with dir2 as
363
sqlf Launcher Commands