de.bsvrz.dav.dav.main
Class ConnectionsManager

java.lang.Object
  extended by de.bsvrz.dav.dav.main.ConnectionsManager
All Implemented Interfaces:
ConnectionsManagerInterface, DistributionInterface

public class ConnectionsManager
extends Object
implements ConnectionsManagerInterface, DistributionInterface

Diese Komponente startet alle notwendigen Aktionen, um eine bestimmte Aufgabe zu erledigen durch den Aufruf einer ihrer Methoden. Die Aktionen werden natürlich nur durchgeführt, wenn der Initiator auch eine Berechtigung dafür hat. Die Berechtigung entnimmt man der Initiatorrolle. Wenn die Rolle nicht lokal vorhanden ist, wird sie aus der Konfiguration ausgelesen.

Author:
Kappich Systemberatung

Nested Class Summary
private static class ConnectionsManager.ApplicationConnection
           
(package private)  class ConnectionsManager.ApplicationConnectionsSubscriber
          Diese Subklasse startet einen Thread, der eine Application bei einem Datenverteiler anmeldet.
 class ConnectionsManager.ApplicationStatusUpdater
          Dieser Thread verschickt den Status(angemeldete Appliktionen, Telegrammlaufzeiten, durch Applikationen angemeldete Datenidentifikationen) aller angemeldeten Applikationen.
private  class ConnectionsManager.SourceApplicationUpdater
           
(package private)  class ConnectionsManager.TransmitterConnectionsMonitor
           
(package private)  class ConnectionsManager.TransmitterConnectionsSubscriber
          Diese Subklasse startet eine Thread, der eine DAV bei einem DAV anmeldet.
 
Field Summary
private  List<T_A_HighLevelCommunication> _applicationConnections
          Liste der Applikationsverbindungen
private  ConnectionsManager.ApplicationConnectionsSubscriber _applicationConnectionsSubscriber
          Interne Thread zur Kommunikation
private  ServerConnectionInterface _applicationsServerConnection
          Die Serverkommunikationskomponente der Datenverteiler, die Applikationsverbindungen akzeptiert.
private  ConnectionsManager.ApplicationStatusUpdater _applicationStatusUpdater
          Dieser Thread verschickt die Statusinformationen über angemeldete Applikationen.
private  AuthentificationComponent _authentificationComponent
          Der Authentifikationskomponente
private  ClientDavParameters _clientDavParameters
          Die Startparameters dieses Datenverteilers als Applikation
private  boolean _closing
          Interne Variable (Closing state)
private  boolean _configurationAvaillable
          Information ob die Konfigurationsverbindung erfolgreich ist.
private  long _configurationId
          Die ID des Konfigurationsverantwortlichen der Konfiguration.
private  ConnectionsManager.TransmitterConnectionsMonitor _connectionsMonitor
          Überwacht die Nachbarnverbindungen und leitet Ersatzverbindungen wenn nötig
private static Debug _debug
           
private  ArrayList _pendingSubscriptionToRedirect
          Liste der auf eine positive Quitung wartenden Anmeldungen, die über einen neuen weg umgeleitet werden müssen.
private  String _pidAngemeldeteApplikationen
          ATG, die benötigt wird um einen Datensatz zu verschicken, der alle angemeldeten Applikationen enthält.
private  String _pidAngemeldeteDatenidentifikationen
          ATG, die benötigt wird um einen Datensatz zu verschicken, der die angemeldeten Daten aller angemeldeten Applikationen enthält.
private  String _pidTelegrammLaufzeiten
          ATG, die benötigt wird um einen Datensatz zu verschicken, der die Telegrammlaufzeiten aller angemeldeten Applikationen enthält.
private  ServerDavParameters _serverDavParameters
          Die Startparameters dieses Datenverteilers
private  TransmitterConnectionInfo[] _transmitterConnectionInfos
          Die Netztopologie dieses Datenverteilers
private  List<T_T_HighLevelCommunication> _transmitterConnections
          Liste der Datenverteilerverbindungen
private  ConnectionsManager.TransmitterConnectionsSubscriber _transmitterConnectionsSubscriber
          Interne Thread zur Kommunikation
private  long _transmitterId
          Die Id des Datenverteilers
private  ServerConnectionInterface _transmittersServerConnection
          Die Serverkommunikationskomponente der Datenverteiler, die Datenverteilersverbindungen akzeptiert.
(package private)  AuthentificationManager authentificationManager
          Der Authentifikationsmanager
private  BestWayManager bestWayManager
          Der Bestwege-Manager
(package private)  CacheManager cacheManager
          Der Cache Manager
(package private)  DataModel dataModel
          Das DataModel zur Konfigurationsabfrage
private static short DEFAULT_WEIGHT
           
private  ListsManager listsManager
          Der Objekte-Attributesgruppen-Aspekte-Listen-Manager
private  Vector missedConnectionInfos
          Die Liste der nicht etablierten Verbindungen
(package private)  ClientDavConnection selfClientDavConnection
          Die eigene DAF-Verbindung
private  SubscriptionsManager subscriptionsManager
          Der Anmeldemanager
 
Constructor Summary
ConnectionsManager()
          Dieser Konstruktor wird für Tests benötigt.
ConnectionsManager(ServerDavParameters serverDavParameters)
          Erzeugt eine neue Verbindungsverwaltung für den Datenverteiler.
 
Method Summary
private  void cleanPendingSubscriptionToRedirect(InAndOutSubscription subscription)
          Aktualisiert die Liste der auf eine positive Quitung wartenden Anmeldungen, die über einen neuen weg umgeleitet werden müssen.
private  void cleanPendingSubscriptionToRedirect(InAndOutSubscription subscription, OutSubscriptionsHelper subscriptionHelper)
          Aktualisiert die Liste mit austehenden Anmeldungen TBD: noch nicht gut beschrieben
 void close(boolean error, String message)
          Diese Methode wird von der Datenverteilerapplikation aufgerufen wenn ein Datenverteiler heruntergefahren wird.
private  void connectToAlternativeTransmitters(TransmitterConnectionInfo transmitterConnectionInfo)
          Startet den Ersatzverbindungsaufbau zwischen zwei nicht direkt benachbarten Datenverteilern.
private  boolean connectToMainTransmitter(TransmitterConnectionInfo transmitterConnectionInfo)
          Startet den Verbindungsaufbau zwischen zwei direkt benachbarten Datenverteilern.
private  void connectToNeighbours()
          Verbindet mit den Nachbarndatenverteiler
private  boolean connectToTransmitter(TransmitterInfo t_info, short weight, long time, String userName)
          Startet den Verbindungsaufbau zwischen zwei Datenverteilern.
private  void connectToTransmitter(TransmitterInfo t_info, short weight, String userName, String password)
          Etabliert Verbindung zwischen zwei Datenverteilern.
(package private)  T_A_HighLevelCommunication getApplicationConnection(long applicationId)
          Diese Methode wird von der Protokollsteuerung DaV-DAF, der Anmeldungsverwaltung und von dieser Komponente selber aufgerufen.
private  List getApplicationConnections(long userId)
          Erstellt eine Liste der DAV-DAF-Verbindungen für den entsprechenden Benutzer.
 long getApplicationId(String applicationTypePid, String applicationName)
          Gibt die ID der Applikation zurück
 long getConfigurationId(String configurationPid)
          Gibt die ID der Konfiguration mit der gegebenen Pid zurück
private  TransmitterConnectionInfo[] getInvolvedTransmitters(TransmitterInfo t_info)
          Erstellt ein Array, das die Informationen über die benachbarten Datenverteiler des übergebenen Datenverteilers enthält.
 long getLocaleModeConfigurationId()
          Gibt die configurationId des Lokalen Modus zurück.
 String getLocaleModeConfigurationPid()
          Gibt die configurationPid des Lokalen Modus zurück.
 String getPasswordForAuthentification(long connectedTransmitterId)
          Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll.
private  TransmitterConnectionInfo getRemoteTransmitterConnectionInfo(long connectedTransmitterId)
          Bestimmt die Verbindungsinformationen für eine Verbindung vom angegebenen Datenverteiler zu diesem Datenverteiler.
 ServerDavParameters getServerDavParameters()
          Bestimmt die Einstellungen des Datenverteilers, die über Aufrufargumente verändert werden können.
 T_T_HighLevelCommunication getTransmitterConnection(long communicationTransmitterId)
          Diese Methode ermittelt eine in der Verbindungsverwaltung registrierte Datenverteilerverbindung zu einem bestimmten anderen Datenverteiler. Diese Methode wird von der Protokollsteuerung DaV-DaV, der Anmeldungsverwaltung und von dieser Komponente selber aufgerufen.
private  TransmitterConnectionInfo getTransmitterConnectionInfo(long connectedTransmitterId)
          Bestimmt die Verbindungsinformationen für eine Verbindung von diesem Datenverteiler zum angegebenen Datenverteiler.
private  List getTransmitterConnections(long userId)
          Erstellt eine Liste der DAV-DAV-Verbindungen für den entsperchenden Benutzer.
 long getTransmitterId()
          Bestimmt die Objekt-ID des lokalen Datenverteilers.
 String getUserNameForAuthentification(long connectedTransmitterId)
          Bestimmt den Benutzername der zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll.
 short getWeight(long connectedTransmitterId)
          Diese Methode wird von der Protokollsteuerung aufgerufen, um einer Verbindung ein Gewicht zuzuweisen.
 void handleApplicationReceiveSubscription(T_A_HighLevelCommunication connection, ReceiveSubscriptionTelegram subscription)
          Leitet die Anmeldungen an den beteiligten Datenverteiler weiter.
 void handleApplicationReceiveUnsubscription(T_A_HighLevelCommunication connection, ReceiveUnsubscriptionTelegram unsubscription)
          Meldet die Daten ab und leitet die Abmeldungen, wenn nötig, an die beteiligten Datenverteiler weiter.
 void handleApplicationSendSubscription(T_A_HighLevelCommunication connection, SendSubscriptionTelegram subscription)
          Leitet die Anmeldungen an den beteiligten Datenverteiler weiter.
 void handleApplicationSendUnsubscription(T_A_HighLevelCommunication connection, SendUnsubscriptionTelegram unsubscription)
          Meldet die Daten ab und leitet die Abmeldungen, wenn nötig, an den beteiligten Datenverteiler.
private  void handleInvalidSubscription(InAndOutSubscription subscription, long mainTransmitterId)
          Hilfsmehode zu private final void handleNegativeReceip(...) Behandelt eine mehr als einmal positiv quittierte Anmeldung
 void handleListsDeliveryUnsubscription(T_T_HighLevelCommunicationInterface connection, TransmitterListsDeliveryUnsubscription transmitterListsDeliveryUnsubscription)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Kündigung einer Anmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist.
 void handleListsSubscription(T_T_HighLevelCommunicationInterface connection, TransmitterListsSubscription transmitterListsSubscription)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Anmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist.
 void handleListsUnsubscription(T_T_HighLevelCommunicationInterface connection, TransmitterListsUnsubscription transmitterListsUnsubscription)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Abmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist.
 void handleListsUpdate(T_T_HighLevelCommunicationInterface connection, TransmitterListsUpdate transmitterListsUpdate)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Aktualisierung der Zuliefererinformationen von einen Datenverteiler angekommen ist.
private  void handleNegativeReceip(InAndOutSubscription subscription)
          Hilfsmethode zu final void handleTransmitterSubscriptionReceip(InAndOutSubscription subscription, long targetId, BaseSubscriptionInfo info, long mainTransmitterId, long transmitterIds[],byte subscriptionState,byte receip).
private  void handlePositiveReceip(InAndOutSubscription subscription, byte receip, long mainTransmitterId)
          Hilfsmethode zur Behandelung einer positive Quittung einer Anmeldung.
 void handleTransmitterSubscription(T_T_HighLevelCommunicationInterface connection, TransmitterDataSubscription subscription)
          Leitet die Anmeldungen an den beteiligten Datenverteiler weiter.
(package private)  void handleTransmitterSubscriptionReceip(InAndOutSubscription subscription, long targetId, BaseSubscriptionInfo info, long mainTransmitterId, long[] transmitterIds, byte subscriptionState, byte receip)
          Hilfsmethode zu final synchronized void handleTransmitterSubscriptionReceip(T_T_HighLevelCommunication connection, TransmitterDataSubscriptionReceipt receipTelegram)
 void handleTransmitterSubscriptionReceip(T_T_HighLevelCommunicationInterface connection, TransmitterDataSubscriptionReceipt receiptTelegram)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, um eine anstehende Anmeldung zu quittieren.
 void handleTransmitterUnsubscription(T_T_HighLevelCommunicationInterface connection, TransmitterDataUnsubscription unsubscription)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, um ein Abmeldungstelegramm eines Datenverteilers zu bearbeiten.Der Eintrag mit den Abmeldungsinformationen wird aus der Verwaltungstabelle entfernt.
(package private)  void handleUserRightsChanged(long userId)
          Aktualisiert die Anmeldungen eines Datenverteiler oder einer Applikation bezüglich der neuen Rechte.
 long isValidUser(String userName, byte[] encriptedPassword, String authentificationText, AuthentificationProcess authentificationProcess, String typePid)
          Fragt die Konfiguration, ob der übergegebene User mit dem Passwort ein berechtigter Benutzer ist oder nicht.
private  void makeOutgoingRequests(InAndOutSubscription request)
          Erzeugt die notwendigen Informationen zu den Anmeldungen, die verschickt werden.
 void printSubscriptions()
          Diese Methode ruft subscriptionsManager.printSubscriptions auf, welche die Anmeldeinformationen in den OutputSream schreibt.
private  SystemObject removeApplicationConnection(long applicationId)
          Entfernt Verbindung zwischen DAV und DAF
private  void removeTransmitterConnection(long communicationTransmitterId)
          Entfernt Verbindung zwischen zwei DAV
 void setLocalConfigurationAvaillable()
          Setzt dass die Konfigurationsverbindung erfolgreich hergestellt ist
 void setLocaleModeParameter(String configurationPid, long configurationId)
          Setzt den Datenverteilersbetriebsmodus auf den Lokalen Modus.
 void unsubscribeConnection(T_A_HighLevelCommunicationInterface connection)
          Entfernt der gegebene Applikationsverbindung aus der Verbindungsverwaltung.
 void unsubscribeConnection(T_T_HighLevelCommunicationInterface connection)
          Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn ein Datenverteiler terminiert.
 void updateDestinationRoute(long _transmitterId, RoutingConnectionInterface oldConnection, RoutingConnectionInterface newConnection)
          Wird aufgerufen, wenn die Kommunikation zu einem anderen Datenverteiler über eine andere Verbindung erfolgen sollte.
(package private)  boolean updatePendingSubscription(BaseSubscriptionInfo info, long connectedTransmitterId, long dataIndex)
          Diese Methode wird von der Anmeldungsverwaltung aufgerufen, wenn ein neuer Datensatz angekommen ist.
private  void workInvolvedSubscription(InAndOutSubscription involvedSubscription, OutSubscriptionsHelper subscriptionHelper)
          Behandelt eine Anmeldung nach einer Abmeldeaktion...
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug

DEFAULT_WEIGHT

private static final short DEFAULT_WEIGHT
See Also:
Constant Field Values

_serverDavParameters

private final ServerDavParameters _serverDavParameters
Die Startparameters dieses Datenverteilers


_clientDavParameters

private final ClientDavParameters _clientDavParameters
Die Startparameters dieses Datenverteilers als Applikation


_applicationsServerConnection

private final ServerConnectionInterface _applicationsServerConnection
Die Serverkommunikationskomponente der Datenverteiler, die Applikationsverbindungen akzeptiert.


_transmittersServerConnection

private ServerConnectionInterface _transmittersServerConnection
Die Serverkommunikationskomponente der Datenverteiler, die Datenverteilersverbindungen akzeptiert.


_authentificationComponent

private final AuthentificationComponent _authentificationComponent
Der Authentifikationskomponente


_transmitterConnectionsSubscriber

private ConnectionsManager.TransmitterConnectionsSubscriber _transmitterConnectionsSubscriber
Interne Thread zur Kommunikation


_applicationConnectionsSubscriber

private ConnectionsManager.ApplicationConnectionsSubscriber _applicationConnectionsSubscriber
Interne Thread zur Kommunikation


_transmitterConnections

private List<T_T_HighLevelCommunication> _transmitterConnections
Liste der Datenverteilerverbindungen


_applicationConnections

private final List<T_A_HighLevelCommunication> _applicationConnections
Liste der Applikationsverbindungen


_applicationStatusUpdater

private ConnectionsManager.ApplicationStatusUpdater _applicationStatusUpdater
Dieser Thread verschickt die Statusinformationen über angemeldete Applikationen. Nur wenn alle benötigten ATG: _pidAngemeldeteApplikationen, _pidAngemeldeteDatenidentifikationen, _pidTelegrammLaufzeiten vorhanden sind, wird der Thread initialisiert und gestartet.

Ist die Variable null, so wurde der Thread nicht initialisiert(die genannten ATG´s fehlen) und der Mechanismus steht nicht zur Verfügung.


_pendingSubscriptionToRedirect

private ArrayList _pendingSubscriptionToRedirect
Liste der auf eine positive Quitung wartenden Anmeldungen, die über einen neuen weg umgeleitet werden müssen.


_configurationAvaillable

private boolean _configurationAvaillable
Information ob die Konfigurationsverbindung erfolgreich ist.


_transmitterId

private final long _transmitterId
Die Id des Datenverteilers


_transmitterConnectionInfos

private TransmitterConnectionInfo[] _transmitterConnectionInfos
Die Netztopologie dieses Datenverteilers


missedConnectionInfos

private Vector missedConnectionInfos
Die Liste der nicht etablierten Verbindungen


_connectionsMonitor

private ConnectionsManager.TransmitterConnectionsMonitor _connectionsMonitor
Überwacht die Nachbarnverbindungen und leitet Ersatzverbindungen wenn nötig


_closing

private volatile boolean _closing
Interne Variable (Closing state)


selfClientDavConnection

ClientDavConnection selfClientDavConnection
Die eigene DAF-Verbindung


dataModel

DataModel dataModel
Das DataModel zur Konfigurationsabfrage


subscriptionsManager

private final SubscriptionsManager subscriptionsManager
Der Anmeldemanager


listsManager

private final ListsManager listsManager
Der Objekte-Attributesgruppen-Aspekte-Listen-Manager


bestWayManager

private final BestWayManager bestWayManager
Der Bestwege-Manager


cacheManager

final CacheManager cacheManager
Der Cache Manager


authentificationManager

final AuthentificationManager authentificationManager
Der Authentifikationsmanager


_configurationId

private long _configurationId
Die ID des Konfigurationsverantwortlichen der Konfiguration.


_pidAngemeldeteApplikationen

private final String _pidAngemeldeteApplikationen
ATG, die benötigt wird um einen Datensatz zu verschicken, der alle angemeldeten Applikationen enthält. Ist diese ATG nicht vorhanden, so wird der Datenverteiler gestartet ohne diese Funktionalität zur Verfügung zu stellen.

See Also:
Constant Field Values

_pidAngemeldeteDatenidentifikationen

private final String _pidAngemeldeteDatenidentifikationen
ATG, die benötigt wird um einen Datensatz zu verschicken, der die angemeldeten Daten aller angemeldeten Applikationen enthält. Ist diese ATG nicht vorhanden, so wird der Datenverteiler gestartet ohne diese Funktionalität zur Verfügung zu stellen.

See Also:
Constant Field Values

_pidTelegrammLaufzeiten

private final String _pidTelegrammLaufzeiten
ATG, die benötigt wird um einen Datensatz zu verschicken, der die Telegrammlaufzeiten aller angemeldeten Applikationen enthält. Ist diese ATG nicht vorhanden, so wird der Datenverteiler gestartet ohne diese Funktionalität zur Verfügung zu stellen.

See Also:
Constant Field Values
Constructor Detail

ConnectionsManager

public ConnectionsManager()
Dieser Konstruktor wird für Tests benötigt.


ConnectionsManager

public ConnectionsManager(ServerDavParameters serverDavParameters)
                   throws CommunicationError,
                          MissingParameterException,
                          InconsistentLoginException,
                          ConnectionException
Erzeugt eine neue Verbindungsverwaltung für den Datenverteiler.

Parameters:
serverDavParameters - Die Parameter sind u. a. die Adressen und Subadressen der Kommunikationskanäle
Throws:
CommunicationError - wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind
MissingParameterException - wenn notwendige Verbindungsparameter nicht spezifiziert wurden
InconsistentLoginException - bei einem fehlgeschlagenen Authentifizierungsversuch
ConnectionException - wenn eine Verbindung nicht aufgebaut werden konnte
Method Detail

getTransmitterId

public final long getTransmitterId()
Description copied from interface: ConnectionsManagerInterface
Bestimmt die Objekt-ID des lokalen Datenverteilers.

Specified by:
getTransmitterId in interface ConnectionsManagerInterface
Returns:
Objekt-ID des lokalen Datenverteilers

connectToNeighbours

private void connectToNeighbours()
Verbindet mit den Nachbarndatenverteiler


connectToMainTransmitter

private boolean connectToMainTransmitter(TransmitterConnectionInfo transmitterConnectionInfo)
Startet den Verbindungsaufbau zwischen zwei direkt benachbarten Datenverteilern. Beim Verbindungsaufbau zwischen zwei DAV werden durch die Angabe der beiden Kommunikationspartner, die Wichtung der Verbindung, die Angabe, welche(r) Datenverteiler die Verbindung aufbaut und die Spezifikation von Ersatzverbindungen festgelegt, um welche Art von Verrbindung es sich handelt.

Parameters:
transmitterConnectionInfo - Enthält Informationen zu der Verbindungart zwischen zwei Datenverteilern.
Returns:
true: Verbindung hergestellt, false: Verbindung nicht hergestellt
See Also:
connectToTransmitter(de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,short,long,String)

connectToAlternativeTransmitters

private void connectToAlternativeTransmitters(TransmitterConnectionInfo transmitterConnectionInfo)
Startet den Ersatzverbindungsaufbau zwischen zwei nicht direkt benachbarten Datenverteilern. Beim Verbindungsaufbau zwischen zwei DAV werden durch die Angabe der beiden Kommunikationspartner, die Wichtung der Verbindung, die Angabe, welche(r) Datenverteiler die Verbindung aufbaut und die Spezifikation von Ersatzverbindungen festgelegt, um welche Art von Verrbindung es sich handelt. Ob Ersatzverbindungen automatisch etabliert werden sollen, wird durch das autoExchangeTransmitterDetection Flag festgelegt.

Parameters:
transmitterConnectionInfo - Enthält Informationen zu der Verbindungart zwischen zwei Datenverteilern.
See Also:
connectToTransmitter(de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,short,long,String)

connectToTransmitter

private boolean connectToTransmitter(TransmitterInfo t_info,
                                     short weight,
                                     long time,
                                     String userName)
Startet den Verbindungsaufbau zwischen zwei Datenverteilern. Falls keine Verbindung etabliert werden konnte, wird eine entsprechende Exception gefangen

Parameters:
t_info - Information zum Datenverteiler
weight - Die Information wird von der Wegverwaltung benutzt, wenn eine Verbindung bewertet wird.
time - Zeitspanne in der versucht werden soll eine Verbindung aufzubauen, in Millisekunden. Maximale Wartezeit eine Sekunde.
userName - Benutzername mit dem die Authentifizierung durchgeführt werden soll.
Returns:
true, wenn Verbindung hergestellt werden konnte; false, wenn Verbindung nicht hergestellt werden konnte.
See Also:
connectToTransmitter(de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,short,String,String)

connectToTransmitter

private void connectToTransmitter(TransmitterInfo t_info,
                                  short weight,
                                  String userName,
                                  String password)
                           throws ConnectionException,
                                  CommunicationError
Etabliert Verbindung zwischen zwei Datenverteilern. Falls keine Verbindung aufgebaut werden konnte, wird eine entsprechende Ausnahme geworfen.

Parameters:
t_info - Informationen zum Datenverteiler.
weight - Die Information wird von der Wegverwaltung benutzt, wenn eine Verbindung bewertet wird.
userName - Benutzername mit dem die Authentifizierung durchgeführt werden soll.
password - Passwort des Benutzers mit dem die Authentifizierung durchgeführt werden soll.
Throws:
ConnectionException - wenn eine Verbindung nicht aufgebaut werden konnte
CommunicationError - wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind

getInvolvedTransmitters

private TransmitterConnectionInfo[] getInvolvedTransmitters(TransmitterInfo t_info)
Erstellt ein Array, das die Informationen über die benachbarten Datenverteiler des übergebenen Datenverteilers enthält.

Parameters:
t_info - Information zum Datenverteiler
Returns:
Liste mit benachbarten Datenverteilern

getApplicationId

public long getApplicationId(String applicationTypePid,
                             String applicationName)
                      throws ConfigurationChangeException
Gibt die ID der Applikation zurück

Parameters:
applicationTypePid - die Pid des Applikationstyps
applicationName - der Applikationsname
Returns:
die Applikation ID
Throws:
ConfigurationChangeException - signalisiert Fehler bei Konfigurationsänderungen

getConfigurationId

public long getConfigurationId(String configurationPid)
                        throws ConfigurationException
Gibt die ID der Konfiguration mit der gegebenen Pid zurück

Parameters:
configurationPid - Die Pid der Konfiguration
Returns:
die Id der Konfiguration
Throws:
ConfigurationException - signalisiert Fehler bei Konfigurationsänderungen

isValidUser

public long isValidUser(String userName,
                        byte[] encriptedPassword,
                        String authentificationText,
                        AuthentificationProcess authentificationProcess,
                        String typePid)
                 throws ConfigurationException
Fragt die Konfiguration, ob der übergegebene User mit dem Passwort ein berechtigter Benutzer ist oder nicht.

Parameters:
userName - Benutzername
encriptedPassword - verschlüsseltes Passwort
authentificationText - Zufallstext
authentificationProcess - Namen des Authentifizierungsverfahrens
typePid - ID des Typs
Returns:
die Benutzerid wenn er berechtigt ist sonst -1
Throws:
ConfigurationException - Fehler bei Konfigurationsänderungen

setLocalConfigurationAvaillable

public final void setLocalConfigurationAvaillable()
Setzt dass die Konfigurationsverbindung erfolgreich hergestellt ist


handleUserRightsChanged

final void handleUserRightsChanged(long userId)
Aktualisiert die Anmeldungen eines Datenverteiler oder einer Applikation bezüglich der neuen Rechte.

Parameters:
userId - Identität des Benutzers

handleTransmitterSubscription

public final void handleTransmitterSubscription(T_T_HighLevelCommunicationInterface connection,
                                                TransmitterDataSubscription subscription)
Leitet die Anmeldungen an den beteiligten Datenverteiler weiter.

Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen um ein Anmeldungstelegramm eines Datenverteilers abzuarbeiten. Ein Eintrag mit der Anmeldungsinformationen wird erstellt und in eine Verwaltungstabelle aufgenommen.

Parameters:
connection - Schnittstelle "Datenverteiler-Datenverteiler"
subscription - Anmeldung von Daten des DAV für Empfänger oder Sender

handleTransmitterUnsubscription

public final void handleTransmitterUnsubscription(T_T_HighLevelCommunicationInterface connection,
                                                  TransmitterDataUnsubscription unsubscription)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, um ein Abmeldungstelegramm eines Datenverteilers zu bearbeiten.Der Eintrag mit den Abmeldungsinformationen wird aus der Verwaltungstabelle entfernt. Wenn ein anderer Eintrag mit den gleichen Anmeldeinformationen vorhanden ist, werden diesem die Anmeldeinformationen des abzumeldenden Eintrags u?bertragen. Diese Informationen geben unter anderem Aufschluss daru?ber, zu welchem anderen Datenverteiler eine Folgeanmeldung gesendet wurde. Auch wenn eine Umleitung für den abzumeldenden Ein-trag besteht, muss diese durch den neuen Eintrag ersetzt werden.

Parameters:
connection - Schnittstelle "Datenverteiler-Datenverteiler"
unsubscription - Abmeldung von Daten des DAV für Empfänger oder Sender

handleTransmitterSubscriptionReceip

public final void handleTransmitterSubscriptionReceip(T_T_HighLevelCommunicationInterface connection,
                                                      TransmitterDataSubscriptionReceipt receiptTelegram)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, um eine anstehende Anmeldung zu quittieren.

Parameters:
connection - Schnittstelle "Datenverteiler-Datenverteiler"
receiptTelegram - Quittung des DAV für eine an ihn gerichtete Datenanmeldung.

handleTransmitterSubscriptionReceip

final void handleTransmitterSubscriptionReceip(InAndOutSubscription subscription,
                                               long targetId,
                                               BaseSubscriptionInfo info,
                                               long mainTransmitterId,
                                               long[] transmitterIds,
                                               byte subscriptionState,
                                               byte receip)
Hilfsmethode zu final synchronized void handleTransmitterSubscriptionReceip(T_T_HighLevelCommunication connection, TransmitterDataSubscriptionReceipt receipTelegram)

Parameters:
subscription - Anmeldung TBD weitere Beschreibung, da InAndOutSubscription noch nicht kommentiert
targetId - Id des Kommunikationpartners
info - Datenidentifikation
mainTransmitterId - Identität des Haupt-DAV
transmitterIds - Liste von erreichbaren transmittern
subscriptionState - Status der Anmeldung
receip - Status der Quittung
See Also:
handleTransmitterSubscriptionReceip(de.bsvrz.dav.dav.communication.davProtocol.T_T_HighLevelCommunicationInterface, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterDataSubscriptionReceipt)

handleNegativeReceip

private final void handleNegativeReceip(InAndOutSubscription subscription)
Hilfsmethode zu final void handleTransmitterSubscriptionReceip(InAndOutSubscription subscription, long targetId, BaseSubscriptionInfo info, long mainTransmitterId, long transmitterIds[],byte subscriptionState,byte receip). Behandelt eine negative Quittung einer Anmeldung.

Parameters:
subscription - Anmeldung TBD weitere Beschreibung
See Also:
handleTransmitterSubscriptionReceip(InAndOutSubscription,long,de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,long,long[],byte,byte)

handleInvalidSubscription

private void handleInvalidSubscription(InAndOutSubscription subscription,
                                       long mainTransmitterId)
Hilfsmehode zu private final void handleNegativeReceip(...) Behandelt eine mehr als einmal positiv quittierte Anmeldung

Parameters:
subscription - Anmeldung TBD weitere Beschreibung, da InAndOutSubscription noch nicht kommentiert
mainTransmitterId - ID des Zulieferer-Datenverteiler
See Also:
handleTransmitterSubscriptionReceip(InAndOutSubscription,long,de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,long,long[],byte,byte)

handlePositiveReceip

private void handlePositiveReceip(InAndOutSubscription subscription,
                                  byte receip,
                                  long mainTransmitterId)
Hilfsmethode zur Behandelung einer positive Quittung einer Anmeldung.

Parameters:
subscription - Anmeldung TBD weitere Beschreibung, da InAndOutSubscription noch nicht kommentiert
receip - Status der Quittung
mainTransmitterId - ID des Zulieferer-Datenverteiler
See Also:
handleTransmitterSubscriptionReceip(InAndOutSubscription,long,de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,long,long[],byte,byte)

handleApplicationReceiveSubscription

public void handleApplicationReceiveSubscription(T_A_HighLevelCommunication connection,
                                                 ReceiveSubscriptionTelegram subscription)
Leitet die Anmeldungen an den beteiligten Datenverteiler weiter. Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn sich eine Applikation als Empfänger oder Senke anmmelden möchte. Ist keine andere Quelle oder Senke im System feststellbar, werden die Sendeanmeldungen bearbeitet, die an diesem Datenverteiler vorliegen.

Parameters:
connection - Schnittstelle zwischen DAV und DAF
subscription - Anmeldung als Emfänger oder Senke

handleApplicationReceiveUnsubscription

public void handleApplicationReceiveUnsubscription(T_A_HighLevelCommunication connection,
                                                   ReceiveUnsubscriptionTelegram unsubscription)
Meldet die Daten ab und leitet die Abmeldungen, wenn nötig, an die beteiligten Datenverteiler weiter. Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn sich eine Applikation als Empfänger oder Senke abmelden möchte. Im Falle einer Senkenabmeldung wird die Basisanmeldeinformation aus der Zuliefererdatenverwaltung entfernt, so dass dieser Datenverteiler nicht mehr der Zentraldatenverteiler der spezifizierten Daten ist. Danach werden alle von dieser gelöschten Anmeldung abhängigen Anmeldungen bearbeitet. Im Falle einer Empfängerabmeldug existieren zwei Möglichkeiten: Bei einer lokalen Quelle wird die Quelle aufgefordert das Senden der Daten einzustellen. Wenn die Quell- oder die Sendeapplikation bei einem anderen Datenverteiler angemeldet ist, dann wird zuerst überprüft, ob bei diesem Datenverteiler eine andere Empfangsanmeldung auf diese Daten vorhanden ist. Wenn keine Anmeldung für die spezifizierten Daten existiert, dann wird der aktuelle Datensatz aus dem Datenbestand entfernt.

Parameters:
connection - Schnittstelle zwischen DAV und DAF
unsubscription - Abmeldetelegram der Applikation

handleApplicationSendSubscription

public void handleApplicationSendSubscription(T_A_HighLevelCommunication connection,
                                              SendSubscriptionTelegram subscription)
Leitet die Anmeldungen an den beteiligten Datenverteiler weiter. Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn sich eine Applikation als Quelle oder Sender anmelden möchte. Wenn sich die Applikation als Quelle anmelden möchte, dann wird zuerst geprüft, ob an diesem Datenverteiler bereits eine andere Applikation als Quelle oder Senke für das gleiche Datum angemeldet ist. Wenn durch die Empfangsanmeldung Folgeanmeldungen bei anderen Datenverteiler vorhanden waren, dann werden diese abgemeldet. Stammt diese Empfangsanmeldung von einem anderen Datenverteiler, so wird eine positive Quittung an diesen Datenverteiler gesendet.

Parameters:
connection - Schnittstelle zwischen DAV und DAF
subscription - Anmeldetelegramm der Applikation

handleApplicationSendUnsubscription

public void handleApplicationSendUnsubscription(T_A_HighLevelCommunication connection,
                                                SendUnsubscriptionTelegram unsubscription)
Meldet die Daten ab und leitet die Abmeldungen, wenn nötig, an den beteiligten Datenverteiler. Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn sich eine Applikation als Quelle oder Sender abmelden möchte. Im Falle einer Quellenabmeldung wird die Basisanmeldeinformation aus der Zuliefererdatenverwaltung entfernt, so dass dieser Datenverteiler nicht mehr der Zentraldatenverteiler der spezifizierten Daten ist. Danach werden alle von dieser gelöschten Anmeldung abhängigen Anmeldungen bearbeitet. Im Falle einer Senderabmeldung existieren zwei Möglichkeiten: Bei einer lokalen Senke wird die Senke benachrichtigt, dass kein Sender mer vorhanden ist. Wenn die Senken- oder die Empfangsapplikation bei einem anderen Datenverteiler angemeldet ist, dann wird zuerst ü?berpru? ob bei diesem Datenverteiler eine andere Sendeanmeldung auf diese Daten vorhanden ist. Wenn keine Anmeldung für die spezifizierten Daten existiert, dann wird der aktuelle Datensatz aus dem bestand entfernt.

Parameters:
connection - Schnittstelle zwischen DAV und DAF
unsubscription - Abmeldetelegram der Applikation

cleanPendingSubscriptionToRedirect

private void cleanPendingSubscriptionToRedirect(InAndOutSubscription subscription)
Aktualisiert die Liste der auf eine positive Quitung wartenden Anmeldungen, die über einen neuen weg umgeleitet werden müssen.

Parameters:
subscription - Eintrag mit den Anmeldungsinformationen

cleanPendingSubscriptionToRedirect

private void cleanPendingSubscriptionToRedirect(InAndOutSubscription subscription,
                                                OutSubscriptionsHelper subscriptionHelper)
Aktualisiert die Liste mit austehenden Anmeldungen TBD: noch nicht gut beschrieben

Parameters:
subscription - Eintrag mit den Anmeldungsinformationen
subscriptionHelper -

workInvolvedSubscription

private void workInvolvedSubscription(InAndOutSubscription involvedSubscription,
                                      OutSubscriptionsHelper subscriptionHelper)
Behandelt eine Anmeldung nach einer Abmeldeaktion...

Parameters:
involvedSubscription - Eintrag mit den Anmeldungsinformationen
subscriptionHelper -

makeOutgoingRequests

private void makeOutgoingRequests(InAndOutSubscription request)
Erzeugt die notwendigen Informationen zu den Anmeldungen, die verschickt werden.

Es wird eine Liste angelegt, mit allen potentiellen Zulieferdaentenverteiler eines bestimmten Datums. Wenn es sich um eine DAV-DAV Verbindung handelt, wird die komplette Liste mit Ausnahme der eigenen Adresse(transmitterId) in die Liste der potentiellen DAVs kopiert. Handelt es sich nicht um eine Transmitterverbindung, so wird die Liste der erreichbaren Transmitter über listsManager.getPotentialTransmitters() geholt. Anscließend wird die Routine bestWayManager aufgerufen, um die besten Wege von DAV zu DAV zu finden. Anscjhließend werden die von einem DAV erreichbaren DAVs in die Liste outSubscription gespeichert.

Parameters:
request - Anmeldungsinformationen

unsubscribeConnection

public void unsubscribeConnection(T_A_HighLevelCommunicationInterface connection)
Entfernt der gegebene Applikationsverbindung aus der Verbindungsverwaltung.

Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn eine Applikation terminiert. Der Repräsentant der Applikationsverbindung wird aus der Verbindungsverwaltung entfernt. Handelt es sich bei der Applikation um die lokale Konfiguration, dann wird dieser Datenverteiler terminiert. Die close-Methode wird aufgerufen. Ansonsten werden zuerst alle von der Applikation stammenden Anmeldungen aus der Anmeldungsverwaltung entfernt und einzelnen bearbeitet. Wenn eine Anmeldung eine Quell - oder Senderanmeldung ist, dann werden die Aktionen durchgeführt, die unter handleApplicationSendUnsubscription beschrieben sind. Handelt es sich um eine Senken- oder Empfangsanmeldung, dann werden die Aktionen durchgeführt, die unter handleApplicationReceiveUnsubscription beschrieben sind.

Parameters:
connection - die zu entfernende Verbindung zwischen DAV und Application

unsubscribeConnection

public final void unsubscribeConnection(T_T_HighLevelCommunicationInterface connection)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn ein Datenverteiler terminiert. Der Repräsentant der Datenverteilerverbindung wird aus der Verbindungsverwaltung entfernt. Danach werden alle von der spezifizierten Datenverteiler stammenden Anmeldungen ermittelt und einzeln bearbeitet. Es werden für jede einzelne diese Anmeldungen alle abhängigen Anmeldungen ermittelt und jede einzelne von ihnen wird wie folgt bearbeitet: Bei einer Empfangsanmeldung wird ein spezieller Datensatz generiert, aus dem hervorgeht, dass keine Quelle mehr vorhanden ist und zum Initiator weitergeleitet. Wenn diese Verbindung eine Hauptverbindung, also keine Ersatzverbindung, ist, dann wird ihr Repräsentant zur Verbindungsverwaltung hinzugefügt. Ein Thread im Hintergrund startet dann bei Bedarf die Ersatzverbindungen und überwacht, ob diese Hauptverbindung später wieder verfügbar ist. Dann werden die Ersatzverbindungen automatisch wieder abgebaut

Parameters:
connection - die zu entfernende Verbindung zwischen DAV und DAV

getTransmitterConnection

public T_T_HighLevelCommunication getTransmitterConnection(long communicationTransmitterId)
Diese Methode ermittelt eine in der Verbindungsverwaltung registrierte Datenverteilerverbindung zu einem bestimmten anderen Datenverteiler. Diese Methode wird von der Protokollsteuerung DaV-DaV, der Anmeldungsverwaltung und von dieser Komponente selber aufgerufen. Sie dient als Hilfsfunktion, um eine in der Verbindungsverwaltung registrierte Datenverteilerverbindung ausfindig zu machen.

Specified by:
getTransmitterConnection in interface ConnectionsManagerInterface
Parameters:
communicationTransmitterId - Objekt-ID des Datenverteilers der über die gesuchte Verbindung erreicht werden kann.
Returns:
Verbindung zum gewünschten Datenverteiler oder null, wenn keine direkte Verbindung zum angegebenen Datenverteiler vorhanden ist.

getApplicationConnection

final T_A_HighLevelCommunication getApplicationConnection(long applicationId)
Diese Methode wird von der Protokollsteuerung DaV-DAF, der Anmeldungsverwaltung und von dieser Komponente selber aufgerufen. Sie dient als Hilfsfunktion, um eine in der Verbindungsverwaltung registrierte Applikationsverbindung ausfindig zu machen.

Parameters:
applicationId - die Id der verbundenen Applikation
Returns:
registrierte Applikationsverbindung

handleListsSubscription

public final void handleListsSubscription(T_T_HighLevelCommunicationInterface connection,
                                          TransmitterListsSubscription transmitterListsSubscription)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Anmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist. Sie ruft die Methode subscribe der Zuliefererdatenverwaltung auf.

Parameters:
connection - Verbindung zwischen DAV und DAV
transmitterListsSubscription - AnmeldungsListe des Nachbardatenverteilers

handleListsUnsubscription

public final void handleListsUnsubscription(T_T_HighLevelCommunicationInterface connection,
                                            TransmitterListsUnsubscription transmitterListsUnsubscription)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Abmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist. Sie ruft die Methode unsubscribe der Zuliefererdatenverwaltung auf.

Parameters:
connection - Verbindung zwischen DAV und DAV
transmitterListsUnsubscription - AbmeldungsListe des Nachbardatenverteilers

handleListsDeliveryUnsubscription

public final void handleListsDeliveryUnsubscription(T_T_HighLevelCommunicationInterface connection,
                                                    TransmitterListsDeliveryUnsubscription transmitterListsDeliveryUnsubscription)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Kündigung einer Anmeldung einer Zuliefererinformation eines Datenverteilers angekommen ist. Sie ruft die Methode unsubscribeDeliverer der Anmeldelistenverwaltung auf.

Parameters:
connection - Verbindung zwischen DAV und DAV
transmitterListsDeliveryUnsubscription - Aufforderung zur Abmeldung der Zulieferdaten

handleListsUpdate

public final void handleListsUpdate(T_T_HighLevelCommunicationInterface connection,
                                    TransmitterListsUpdate transmitterListsUpdate)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn eine Aktualisierung der Zuliefererinformationen von einen Datenverteiler angekommen ist. Zuerst wird die Methode updateEntry der Zuliefererverwaltung aufgerufen. Als Rückgabewert liefert diese Methode Listen der neu hinzugekommenen Objekte und Attributgruppen- und Aspektkombinationen. Dann werden alle nicht positiv quittierten Anmeldungen ermittelt, deren Basisanmeldeinformation mit den neuen registrierten Objekten und Kombinationen Gemeinsamkeiten hat. Für jede einzelne Anmeldung werden dann die potentiellen Zentraldatenverteiler ermittelt. Hat sich die Liste der Zentraldatenverteiler verändert, dann werden die Folgeanmeldungen bei den nicht mehr relevanten Zentraldatenverteilern abgemeldet und bei den neu ermittelten angemeldet.

Parameters:
connection - Verbindung zwischen DAV und DAV
transmitterListsUpdate - Aufforderung zur Aktualisierung der Zulieferinformaion

updatePendingSubscription

final boolean updatePendingSubscription(BaseSubscriptionInfo info,
                                        long connectedTransmitterId,
                                        long dataIndex)
Diese Methode wird von der Anmeldungsverwaltung aufgerufen, wenn ein neuer Datensatz angekommen ist. Hier wird überprüft, ob ein Umleitungsantrag auf dem spezifizierten Datenverteiler connectedTransmitterId basiert, d. h., dass entweder der alte oder der neue Weg über diesen Datenverteiler läuft. Der Antrag wird dann mit dem Index des Datensatzes dataIndex aktualisiert. Wenn der Datensatzindex über den neuen Weg gleich oder um eins höher als der Datensatzindex über den alten Weg ist, dann wird die Umleitung als erfolgreich aufgebaut angesehen. Die Folgeanmeldungen über den alten Weg werden abgemeldet, und der Umleitungsantrag wird aus der Umleitungsverwaltung entfernt.

Parameters:
info - Datenidentifikation
connectedTransmitterId - ID des DAV
dataIndex - Datensatzindex
Returns:
true wenn Datensatzindex gleich oder um eins höher als der Datensatzindex über den alten Weg ist, sonst false.

getWeight

public final short getWeight(long connectedTransmitterId)
Diese Methode wird von der Protokollsteuerung aufgerufen, um einer Verbindung ein Gewicht zuzuweisen. Die Information wird von der Wegverwaltung benutzt, wenn eine Verbindung bewertet wird.

Parameters:
connectedTransmitterId - ID des DAV
Returns:
Gewichtung der Verbindung

getTransmitterConnectionInfo

private final TransmitterConnectionInfo getTransmitterConnectionInfo(long connectedTransmitterId)
Bestimmt die Verbindungsinformationen für eine Verbindung von diesem Datenverteiler zum angegebenen Datenverteiler.

Parameters:
connectedTransmitterId - ID des DAV
Returns:
Verbindungsinformationen

getRemoteTransmitterConnectionInfo

private final TransmitterConnectionInfo getRemoteTransmitterConnectionInfo(long connectedTransmitterId)
Bestimmt die Verbindungsinformationen für eine Verbindung vom angegebenen Datenverteiler zu diesem Datenverteiler.

Parameters:
connectedTransmitterId - ID des DAV
Returns:
Verbindungsinformationen

getUserNameForAuthentification

public String getUserNameForAuthentification(long connectedTransmitterId)
Bestimmt den Benutzername der zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll. Wenn der Benutzername in der Topologie nicht vorgegeben ist, dann wird der Standardbenutzername des Datenverteilers benutzt.

Parameters:
connectedTransmitterId - Objekt-ID des anderen Datenverteilers.
Returns:
Benutzername für die Authentifizierung beim anderen Datenverteiler.

getPasswordForAuthentification

public String getPasswordForAuthentification(long connectedTransmitterId)
Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll. Wenn der Benutzername in der Topologie nicht vorgegeben ist, dann wird das Passwort des Standardbenutzers des Datenverteilers zurückgegeben.

Parameters:
connectedTransmitterId - Objekt-ID des anderen Datenverteilers.
Returns:
Passwort für die Authentifizierung beim anderen Datenverteiler.

updateDestinationRoute

public final void updateDestinationRoute(long _transmitterId,
                                         RoutingConnectionInterface oldConnection,
                                         RoutingConnectionInterface newConnection)
Description copied from interface: DistributionInterface
Wird aufgerufen, wenn die Kommunikation zu einem anderen Datenverteiler über eine andere Verbindung erfolgen sollte.

Specified by:
updateDestinationRoute in interface DistributionInterface
Parameters:
_transmitterId - ID des betroffenen Datenverteilers.
oldConnection - Verbindung über die bisher mit dem betroffenen Datenverteiler kommuniziert wurde.
newConnection - Verbindung über die in Zukunft mit dem betroffenen Datenverteiler kommuniziert werden soll.

close

public final void close(boolean error,
                        String message)
Diese Methode wird von der Datenverteilerapplikation aufgerufen wenn ein Datenverteiler heruntergefahren wird. Zuerst werden die Threads terminiert, die für das Erstellen der Kommunikationskanäle zwischen Applikation bzw. Datenverteiler und diesem Datenverteiler zuständig sind. Danach werden alle bereits vorhandenen Verbindungen zu anderen Applikationen und Datenverteilern terminiert, so dass diese auch informiert werden, dass dieser Datenverteiler nicht mehr zur Verfügung steht.

Parameters:
error - True: ein Fehler ist aufgetreten
message - genauere Beschreibung des Fehlers

getTransmitterConnections

private List getTransmitterConnections(long userId)
Erstellt eine Liste der DAV-DAV-Verbindungen für den entsperchenden Benutzer.

Parameters:
userId - ID des Benutzers
Returns:
Liste der Verbindungen

getApplicationConnections

private final List getApplicationConnections(long userId)
Erstellt eine Liste der DAV-DAF-Verbindungen für den entsprechenden Benutzer.

Parameters:
userId - ID des Benutzers
Returns:
Liste der Applikationsverbindungen

removeTransmitterConnection

private void removeTransmitterConnection(long communicationTransmitterId)
Entfernt Verbindung zwischen zwei DAV

Parameters:
communicationTransmitterId - Id des verbundenen Datenverteilers

removeApplicationConnection

private final SystemObject removeApplicationConnection(long applicationId)
Entfernt Verbindung zwischen DAV und DAF

Parameters:
applicationId - Id der verbundenen Applikation
Returns:
Applikationsobjekt, das der angegebenen Applikation zugeordnet ist.

printSubscriptions

public void printSubscriptions()
Diese Methode ruft subscriptionsManager.printSubscriptions auf, welche die Anmeldeinformationen in den OutputSream schreibt.


setLocaleModeParameter

public void setLocaleModeParameter(String configurationPid,
                                   long configurationId)
Setzt den Datenverteilersbetriebsmodus auf den Lokalen Modus.

Parameters:
configurationPid - Pid der Konfigurationsapplikation
configurationId - Id der Konfigurationsapplikation

getLocaleModeConfigurationPid

public String getLocaleModeConfigurationPid()
Gibt die configurationPid des Lokalen Modus zurück.

Returns:
configurationPid

getLocaleModeConfigurationId

public long getLocaleModeConfigurationId()
Gibt die configurationId des Lokalen Modus zurück.

Returns:
configurationId

getServerDavParameters

public ServerDavParameters getServerDavParameters()
Bestimmt die Einstellungen des Datenverteilers, die über Aufrufargumente verändert werden können.

Returns:
Einstellungen des Datenverteilers.