public static void main(String[] args) throws NumberFormatException,
			IOException, InterruptedException, ExecutionException {
		System.out.println("Args length :"+args.length);
		if (args.length < 4) {
			System.err.println("Invalid number of Argument..!!");
			System.err
					.println("Usage : \n 1.) Number Of Records \n 2.) HostName \n 3.) Port 4.) Number Of threads 5.) Is update Required");
			return;
		}

		if (!MissingBlockedByIdentifier.validateUserOptions(args[0], args[2])) {
			return;
		}

		Integer noOfThreads = null;

		try {
			noOfThreads = Integer.parseInt(args[4]);
			if (noOfThreads < 1) {
				throw new NumberFormatException("Invalid number");
			}
		} catch (NumberFormatException ex) {
			System.err
					.println("Invalid value for Number Of threads. Please provide a valid number greater than 0");
			return;
		}

		System.out.println("start time -->" + new Date());

		ExecutorService threadPool = Executors.newFixedThreadPool(noOfThreads);
		Future<?> future = threadPool.submit(new MissingBlockedByIdentifier(
				"ALL".equalsIgnoreCase(args[0]) ? null : Integer
				.parseInt(args[0]), args[1], Integer.parseInt(args[2]),
				"blocksDB","true".equalsIgnoreCase(args[4])?true:false));

		if (future.get() == null) {
			threadPool.shutdown();
			threadPool.awaitTermination(1, TimeUnit.SECONDS);
		}

		System.out.println("end time -->" + new Date());

	}