public static void main(String[] args) {
		String self_ipAddrs = null;
		int self_port = Integer.valueOf(args[0]);
		String discovery_ipAddrs = null;
		try {
			self_ipAddrs = InetAddress.getLocalHost().getHostAddress();
			discovery_ipAddrs = InetAddress.getByName(args[1]).getHostAddress();
		} catch (UnknownHostException e) {
			logger.debug(e.getMessage(), e);
		}
		int discovery_port = Integer.valueOf(args[2]);
		DataServer ds = new DataServer(self_ipAddrs, self_port,
				discovery_ipAddrs, discovery_port);
		ds.registerForDiscovery();
		if (ds.dataServerRole == DataServerRole.SECONDARY) {
			// Acquire current data from primary server
			ds.acquireData();
			// Detect primary alive every 2 second
			Timer timer = new Timer();
			timer.scheduleAtFixedRate(ds.new DetectThread(), 0, 2000);
		}
		new Thread(ds).start();
	}