private void sendDetection() {

			JSONArray currentBackEndsArray = discoveryData.getBackEndsArray();

			if (currentBackEndsArray.size() == 0) {
				logger.info("No data server running now!");
			} else {
				int currentPrimaryID = Integer.valueOf(discoveryData
						.getCurrentPrimary().get("dataserverID").toString());
				for (int i = 0; i < currentBackEndsArray.size(); i++) {
					JSONObject eachBackEnd = (JSONObject) currentBackEndsArray
							.get(i);
					int dateserverID = Integer.valueOf(eachBackEnd.get(
							"dataserverID").toString());
					String eachBackEnd_ipAddrs = eachBackEnd.get("ipAddrs")
							.toString();
					int eachBackEnd_portNum = Integer.valueOf(eachBackEnd.get(
							"portNum").toString());
					try {
						Socket detectSocket = new Socket(eachBackEnd_ipAddrs,
								eachBackEnd_portNum);

						BufferedWriter wr = new BufferedWriter(
								new OutputStreamWriter(
										detectSocket.getOutputStream()));

						String path = "/detection";
						wr.write("GET " + path + " HTTP/1.1\r\n");
						wr.write("\r\n");
						wr.flush();
						wr.close();

						detectSocket.close();
					} catch (IOException e) {
						logger.debug(e.getMessage(), e);
						if (dateserverID == currentPrimaryID) {
							logger.info("Primary dataserver is down, waiting for new primary!");
						}
						discoveryData.removeBackEnd(eachBackEnd);
					}
				}
			}
		}