public class Server extends WanCom implements PropertyQueryInterface
Klasse, die als OSI-2 Protokollmodul für den server-seitigen Teil einer WanCom-Verbindung eingesetzt werden kann. Zur Verwendung dieses Protokollmoduls als Primary ist an dem jeweiligen Anschlußpunkt in der Konfiguration in der Attributgruppe “atg.anschlussPunkt” im Attribut “ProtokollTyp” der Wert “de.bsvrz.kex.tls.osi2osi3.osi2.wancom.Server” einzutragen. Zur Verwendung dieses Protokollmoduls als Secondary ist an dem jeweiligen Anschlußpunkt-Kommunikationspartner in der Konfiguration in der Attributgruppe “atg.anschlussPunktKommunikationsPartner” im Attribut “ProtokollTyp” der Wert “de.bsvrz.kex.tls.osi2osi3.osi2.wancom.Server” einzutragen. Im Parameter “atg.protokollEinstellungenStandard” des Anschlußpunkts werden Defaultswerte für alle Verbindungen an diesem Anschlußpunkt eingestellt. Im Parameter “atg.protokollEinstellungenPrimary” bzw. “atg.protokollEinstellungenSecondary” der dem Anschlußpunkt zugeordneten AnschlußPunktKommunikationsPartner werden individuelle Werte für die Verbindung zum jeweiligen Kommunikationspartner eingestellt. Die Parameterdatensätze können mehrere Einträge enthalten die jeweils aus einem Namen und einem Wert bestehen. Folgende Tabelle enthält die Namen, Defaultwerte und eine Beschreibung der unterstützten Einträge:
Name | Defaultwert | Beschreibung |
---|---|---|
wancom.port | 7100 | Lokale TCP-Portnummer auf der Verbindungen entgegengenommen werden. |
wancom.version | 35 | Im WanCom-Header übertragene Version des eingesetzten Protokolls. |
wancom.keepAliveTime | 20 | Zeit in Sekunden zwischen dem Versand von 2 Keep-Alive Telegrammen. |
wancom.keepAliveTimeoutCount | 3 | Anzahl von in Folge vergangenen keepAliveTime-Intervallen ohne Empfang eines KeepAlive-Telegramms bevor die Verbindung abgebrochen wird. |
wancom.keepAliveType | 50 | WanCom-Type-Feld in KeepAlive-Telegrammen. |
wancom.tlsType | 600 | WanCom-Type-Feld in versendeten TLS-Telegrammen. |
wancom.tlsTypeReceive | WanCom-Type-Feld in empfangenen TLS-Telegrammen. Dieser Wert muss nur angegeben werden, wenn er sich vom WanCom-Typen zum Versand (wancom.tlsType) unterscheidet. Wenn dieser Wert nicht angegeben wurde, wird der Wert von wancom.tlsType auch zum Empfang verwendet. Wenn der Wert -1 angegeben wird, dann werden alle WanCom-Typ-Werte (außer dem Wert für KeepAlive-Telegramme wancom.keepAliveType) akzeptiert. | |
wancom.connectRetryDelay | 60 | Wartezeit in Sekunden, bevor ein fehlgeschlagener Verbindungsversuch wiederholt wird. |
wancom.localAddress | Lokale Adresse, die in Wan-Com-Header als Absender eingetragen werden soll. Ein leerer Text, wird automatisch durch die aktuelle lokale Adresse der Wan-Com-Verbindung ersetzt. |
Modifier and Type | Class and Description |
---|---|
static class |
Server.ActionType
Definiert die Aktionscodes, die von den API-Methoden zur Steuerung des Protokoll-Threads versendet werden
|
private static class |
Server.IllegalTelegramException
Signalisiert Fehler in empfangenen Telegrammen
|
private class |
Server.Link
Realisiert ein Verbindungsobjekt, das die Kommunikation mit einem einzelnen Kommunikationspartner verwaltet.
|
private static class |
Server.PriorizedByteArray
Dient zur Speicherung eines zu versendenden Telegramms mit einer zugeordneten Priorität
|
private class |
Server.Worker
Klasse die das Runnable-Interface implementiert, vom Protokollthread ausgeführt wird und den Protokollablauf steuert
|
Modifier and Type | Field and Description |
---|---|
private static Debug |
_debug
Logger für Debugausgaben
|
private java.util.List<Server.Link> |
_links
Verbindungen zu Kommunikationspartnern, die durch das Protokoll verwaltet werden
|
private java.lang.Object |
_protocolLock
Monitor Objekt, das zur Synchronisation des Protokoll-Threads und den API-Zugriffen von fremden Threads auf das Protokoll koordiniert
|
private ProtocolState |
_protocolState
Aktueller Zustand des Protokolls
|
(package private) Server.Worker |
_worker
Runnable Objekt, das vom Protokollthread ausgeführt wird und den Protokollablauf steuert
|
private java.lang.Thread |
_workThread
Thread des Protokolls
|
Constructor and Description |
---|
Server()
Default-Konstruktor, mit dem neue WanCom-Server Protokolle instanziiert werden können
|
Modifier and Type | Method and Description |
---|---|
void |
abort()
Bricht die Kommunikation auf allen Verbindungen des Protokolls sofort ab und beendet anschließend das Protokoll.
|
DataLinkLayer.Link |
createLink(int remoteAddress)
Erzeugt ein neues Verbindungsobjekt.
|
boolean |
isStarted()
Bestimmt, ob die Kommunikation dieses Protokolls bereits mit der Methode
start() aktiviert wurde. |
void |
setDavConnection(ClientDavInterface connection)
Nimmmt die Verbindung zum Datenverteiler entgegen.
|
void |
setProperties(java.util.Properties properties)
Setzt neue Protokollparameter.
|
void |
shutdown()
Terminiert alle Verbindungen des Protokolls und beendet anschließend das Protokoll.
|
void |
start()
Initialisiert das Protokoll und startet den Protokoll-Thread
|
java.lang.String |
toString() |
createKeepAliveTelegramBytes, getDefaultProperty, getMaximumDataSize
addEventListener, allowConnection, allowConnection, checkConnection, getLocalAddress, getProperty, notifyEvent, notifyEvent, removeEventListener, setLocalAddress
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getProperty
private static final Debug _debug
Logger für Debugausgaben
private final java.lang.Thread _workThread
Thread des Protokolls
final Server.Worker _worker
Runnable Objekt, das vom Protokollthread ausgeführt wird und den Protokollablauf steuert
private final java.lang.Object _protocolLock
Monitor Objekt, das zur Synchronisation des Protokoll-Threads und den API-Zugriffen von fremden Threads auf das Protokoll koordiniert
private ProtocolState _protocolState
Aktueller Zustand des Protokolls
private java.util.List<Server.Link> _links
Verbindungen zu Kommunikationspartnern, die durch das Protokoll verwaltet werden
public Server() throws java.io.IOException
Default-Konstruktor, mit dem neue WanCom-Server Protokolle instanziiert werden können
java.io.IOException
public java.lang.String toString()
toString
in class java.lang.Object
public void setDavConnection(ClientDavInterface connection)
Nimmmt die Verbindung zum Datenverteiler entgegen. Diese Methode wird vom OSI-3 Modul nach dem Erzeugen des OSI-2 Moduls durch den jeweiligen Konstruktor aufgerufen. Eine Implementierung eines Protokollmoduls kann sich bei Bedarf die übergebene Datenverteilerverbindung intern merken, um zu späteren Zeitpunkten auf die Datenverteiler-Applikationsfunktionen zuzugreifen.
setDavConnection
in interface DataLinkLayer
connection
- Verbindung zum Datenverteilerpublic boolean isStarted()
Bestimmt, ob die Kommunikation dieses Protokolls bereits mit der Methode start()
aktiviert wurde.
isStarted
in interface DataLinkLayer
true
, wenn die Kommunikation dieses Protokolls bereits aktiviert wurde, sonst false
.public void start()
Initialisiert das Protokoll und startet den Protokoll-Thread
start
in interface DataLinkLayer
public void shutdown()
Terminiert alle Verbindungen des Protokolls und beendet anschließend das Protokoll.
shutdown
in interface DataLinkLayer
public void abort()
Bricht die Kommunikation auf allen Verbindungen des Protokolls sofort ab und beendet anschließend das Protokoll.
abort
in interface DataLinkLayer
public void setProperties(java.util.Properties properties)
Setzt neue Protokollparameter. Alle Verbindungen werden mit den neuen Parametern reinitialisiert.
setProperties
in interface DataLinkLayer
setProperties
in class AbstractDataLinkLayer
properties
- Neue Protokoll und VerbindungsparameterDataLinkLayer.Link.getProperty(java.lang.String)
public DataLinkLayer.Link createLink(int remoteAddress)
Erzeugt ein neues Verbindungsobjekt.
createLink
in interface DataLinkLayer
remoteAddress
- OSI-2 Adresse des Kommunikationspartners