private void ensureSubscribedState() {
		try {
			if(_subscriptionState == NOT_SUBSCRIBED) {
				int communicationState = ((DafDataModel)_object.getDataModel()).getRequester().subscribeConfigurationCommunicationChanges(_object);
				switch(communicationState) {
					case -2: // Objekt weder lokal noch remote gefunden
						_subscriptionState = MANAGED_IN_UNKNOWN_CONFIGURATION;
						_configurationCommunicationActive = false;
						break;
					case -1: // Menge wird lokal verwaltet
						_subscriptionState = MANAGED_IN_LOCAL_CONFIGURATION;
						_configurationCommunicationActive = true;
						break;
					case 0: // Menge wird remote verwaltet und Kommunikation zwischen lokaler und Remote-Konfiguration funktioniert nicht
						_subscriptionState = SUBSCRIBED;
						_configurationCommunicationActive = false;
						break;
					case 1: // Menge wird remote verwaltet und Kommunikation zwischen lokaler und Remote-Konfiguration funktioniert
						_subscriptionState = SUBSCRIBED;
						_configurationCommunicationActive = true;
						break;
					default:
						_subscriptionState = NOT_SUBSCRIBED;
						_configurationCommunicationActive = false;
						_debug.error("Ungültige Antwort auf Anmeldung für Kommunikationsänderungen, communicationState", communicationState);
						break;
				}
			}
		}
		catch(RequestException e) {
			final String message =
					"Kommunikationsproblem bei Anmeldung auf Änderungen des Kommunikationsstatus für " + _object;
			_debug.error(message, e);
			try {
				((DafDataModel)_object.getDataModel()).getConnection().disconnect(true, message + " " + e.getMessage());
			}
			catch(Exception ignoredException) {
				// wird ignoriert
			}
			throw new RuntimeException(message, e);
		}
	}