public void collectPerformanceData(JavNag javNag) throws Exception
	{
		performanceDataSemaphore.acquireUninterruptibly();
		try
		{
			for(Host currentHost : javNag.getListOfHosts())
			{
				String hostPerformanceData = currentHost.getParameter("performance_data");
				String lastHostCheck = currentHost.getParameter("last_check");
				if (hostPerformanceData != null && hostPerformanceData.trim().equals("") == false)
					performanceData.add(currentHost.getHostName(), hostPerformanceData, lastHostCheck);

				for(Service currentService : currentHost.getServices())
				{
					String servicePerformanceData = currentService.getParameter("performance_data");
					String lastServiceCheck = currentService.getParameter("last_check");
					if (servicePerformanceData != null && servicePerformanceData.trim().equals("") == false)
						performanceData.add(currentHost.getHostName() + " | " + currentService.getServiceName(), servicePerformanceData, lastServiceCheck);
				}
			}
		}
		finally
		{
			performanceDataSemaphore.release();
		}

		if ((System.currentTimeMillis() - lastPerformanceDump)  > 1800000)
		{
			dumpPerformanceData();

			lastPerformanceDump = System.currentTimeMillis();
		}
	}