private String findServiceForDictionary(String dictionaryName)
    {
        for (Iterator<ServiceInfo> iter = _services.values().iterator(); iter.hasNext();)
        {
            ServiceInfo service = iter.next();

            // stop, if serviceState is DOWN (0) or not available
            Object oServiceState = service.get(RDMService.SvcState.ServiceState);
            if(oServiceState == null)
            	continue;
            int serviceState = Integer.parseInt((String) oServiceState);
            if( serviceState == 0 )
            	continue;
            
            // stop, if acceptRequests is false (0) or not available
            Object oAcceptingRequests = service.get(RDMService.SvcState.ServiceState);
            if(oAcceptingRequests == null)
            	continue;
            int acceptingRequests = Integer.parseInt((String) oAcceptingRequests);
            if( acceptingRequests == 0 )
            	continue;

            String[] dictionariesProvided = (String[])service
                    .get(RDMService.Info.DictionariesProvided);
            if (dictionariesProvided == null)
                continue;
            
            for (int i = 0; i < dictionariesProvided.length; i++)
            {
                if (dictionariesProvided[i].equals(dictionaryName))
                    return service.getServiceName();
            }
        }
        return null;
    }