public void execute()
{
try
	{
	while( !terminated )
		{
		final List commandList = getCommandList();
		final Map resultMap = getCommandResult( commandList );
		List[] lists = getCommandResultAsLists( commandList, resultMap );

		info( lists[ 0 ].size() + "/" + ipList.size() + " servers alive." );
		info( lists[ 1 ].size() + "/" + ipList.size() + " servers dead." );

		try
			{
			checkDNS( MDozensHA.getInstance().getRecordMap(), lists[ 0 ], lists[ 1 ] );
			//dozensErrorCount = 0; //reset error count
			}
		catch( Exception e )
			{
			//++dozensErrorCount;
			warn( e.getClass() );
			warn( e );
			}

		
		if( state == STATE_OK )
			{
			MSystemUtil.sleep( failover_interval * 1000 );			
			}
		else
			{
			MSystemUtil.sleep( failback_interval * 1000 );
			}
		}
	}
catch( Exception e )
	{
	warn( e );
	}
}