Konfiguration des SOA-Service
Konfiguration des SOA-Service Einrichten des SOA-Service und der Tasks
In diesem Abschnitt wird sowohl die Konfiguration des SOA-Service, als auch die Konfiguration der Tasks des Service beschrieben. Die Konfiguration des Service wird in der Datei c16_soa.cfg im Datenverzeichnis gespeichert. Hier werden alle Tasks eingetragen. Im gleichen Verzeichnis werden auch die Konfigurationsdateien der Tasks abgelegt. Die Dateinamen bestehen aus dem Namen des Tasks mit der Dateierweiterung .cfg.
Bei der Angabe von Zeiten in einem Eintrag, müssen ganze Zahlen mit einer Zeiteinheit angegeben werden. Als Einheiten stehen Tage ( d ), Stunden ( h ), Minuten ( m ), Sekunden ( s ) und Millisekunden ( ms ) zur Verfügung. Dabei muss jeweils die höchste Einheit angegeben werden, die den Zeitraum abdeckt (z. B. 1m statt 60s). Die Einheiten können auch miteinander kombiniert werden, zum Beispiel 1h30m .
Konfiguration des Dienstes
In der Datei c16_soa.cfg können mehrere Anwendungstasks definiert werden. Jeder Task wird mit seinem Namen in eckigen Klammern eingeleitet. Der Name kann maximal 128 Zeichen lang sein. Danach folgen die Konfigurationsparameter des Tasks. Die Konfiguration der Task kann auch im Control-Center durchgeführt werden. Für den Systemdienst selbst existieren keine einstellbaren Parameter.
-
; (Semikolon): Kommentar
-
mode: Betriebsart des Tasks
-
autostart: Automatischer Start
-
autorestart_time: Automatischer Start nach Zeitspanne
-
autorevive: Automatischer Neustart bei Absturz
-
64bit: 64-bit Task
-
start_delay: Start-Verzögerung
-
description: Beschreibung
-
; (Semikolon) - Kommentar Mit dem Zeichen ";" wird eine Kommentarzeile eingeleitet. Die gesamte restliche Zeile wird nicht mehr ausgewertet.
-
mode - Betriebsart Über diesen Parameter wird die Betriebsart des Tasks bestimmt. Es sind die Betriebsarten
TIME,SOCKETundDRIVEverfügbar. -
autostart - Automatischer Start Mit diesem optionalen Parameter kann bestimmt werden, ob nach dem Start des Dienstes der Task ebenfalls automatisch gestartet wird (
autostart = Y) oder nicht (autostart = N). -
autorestart_time - Automatischer Neustart nach Zeitspanne Mit diesem optionalen Parameter kann bestimmt werden, nach welcher Zeitspanne der betreffende Task erneut gestartet werden soll. (
autorestart_time = 1d) oder nicht (autorestart_time = 0). Die Option ist nur freigeschaltet für die BetriebsartSOCKETundTIME. Zulässig sind Werte im Bereich von 30 Sekunden bis 7 Tage (30s bis 7d). -
autorevive - Automatischer Neustart bei Absturz Mit diesem optionalen Parameter kann bestimmt werden, ob ein Task automatisch neu gestartet werden soll, wenn er abgestürzt ist (
autorevive = Y) oder nicht (autorevive = N). Das Startintervall beträgt 10 Sekunden. Der Standardwert istN. -
64bit - 64-bit Task starten Mit diesem optionalen Parameter kann bestimmt werden, ob der 32-bit (
64bit = N) oder 64-bit (64bit = Y) Task gestartet werden soll. -
start_delay - Startverzögerung Falls der Parameter
autostart = Ydefiniert ist, kann mit diesem optionalen Parameter die Zeitverzögerung festgelegt werden, die zwischen Start des Systemdienstes und dem Start des Tasks stattfinden soll. Die Zeitspanne kann im Bereich von 0 bis 5 Minuten liegen. Bei einem Wert von 0 versucht der Task unter Umständen sofort eine Verbindung mit dem CONZEPT 16-Server aufzunehmen. Da die Reihenfolge, in der die Dienste gestartet werden, nicht garantiert werden kann, kann es zu einem Fehler kommen, wenn der lokale CONZEPT 16-Server noch nicht gestartet ist. Durch den Eintrag einer Verzögerung wartet der Systemdienst die hier angegebene Zeit, um dem Betriebssystem Zeit zu geben, den Server zu starten. -
description - Beschreibung Durch diesen optionalen Parameter kann ein Beschreibungstext für den Task abgelegt werden. Die Beschreibung kann bis zu 500 Zeichen lang sein.
Beispiel:
[Abfragen]
mode = SOCKET
autostart = Y
autorevive = Y
start_delay = 5s
description = 'Abfragedienst über Port 5050'
Konfiguration eines Tasks
Im selben Verzeichnis wie c16_soa.cfg befindet sich pro Task eine eigene Konfigurationsdatei mit dem Namen <task>.cfg. In dieser Datei können die folgenden Parameter definiert werden:
- c16_server
- c16_database
- c16_user
- c16_password
- c16_procedure
- c16_proc_cache_kb
- c16_proc_library
- c16_connection_max
- c16_connection_shared
- c16_connection_timeout
- c16_proc_extended
- request_delay_min
- request_delay_max
- session_max
- session_timeout_max
- session_timeout_min
- alert_mail_server
- alert_mail_port
- alert_mail_user
- alert_mail_password
- alert_mail_from
- alert_mail_to
- alert_mail_to_sms
- alert_mail_proxy
- alert_mail_tls
- alert_mail_oauth_tenentid
- alert_mail_oauth_clientid
- alert_mail_oauth_cachepath
- alert_lines
- alert_interval
- alert_test
- applogoptions
- applogpath
- time_delay_default
- time_delay_error
- socket_port
- socket_ip
- socket_timeout
- socket_keepalive
- ip_connection_limit
- tls_certificate_file
- tls_private_key_file
- tls_private_key_password
- tls_security_level
Alle Parameter, die in der Datei angegeben werden müssen, sind mit einem * gekennzeichnet. Die Aufstellung der Parameter unterteilt sich in folgende Abschnitte:
- Einstellungen der Datenbankverbindung
- Session-Management
- Automatischer Mailversand
- Minidump-Generierung
- Betriebsart TIME
- Betriebsart SOCKET
- Verschlüsselte Kommunikation über SOCKET-basierte Tasks
- Betriebsart DRIVE
Einstellungen der Datenbankverbindung
- **c16_server *** In diesem Eintrag wird der CONZEPT 16-Server eingetragen. Der Eintrag erfolgt in Form der IP-Adresse oder des IP-Namens des Serverrechners. Zur Verbindung wird immer das Protokoll TCP/IP verwendet. Bei Verwendung der Hot-Standby-Option werden der Primär- und der Sekundärserver mit einem
+getrennt angegeben.
c16_server = dbprimserv+dbsekserv
- **c16_database *** In diesem Eintrag wird die Datenbank eingetragen. Der Eintrag entspricht dem Namen der Datenbank, wie sie beim CONZEPT 16-Server eingetragen ist. Wurde kein symbolischer Name vergeben kann auch der Pfad und der Name der Datenbank angegeben werden.
c16_database = codelibrary
- **c16_user und c16_password *** Die Anmeldung an die Datenbank erfolgt mit den hier angegebenen Benutzer und Kennwort. Hat der Benutzer kein Kennwort muss
""angegeben werden. Enthält die Konfigurationsdatei eines SOA-Tasks ein unverschlüsseltes Kennwort das nicht leer ist, wird die Konfigurationsdatei automatisch mit dem verschlüsseltem Kennwort aktualisiert. Kennwörter sind dadurch nicht im Klartext enthalten.
c16_user = service
c16_password =
Das Passwort darf nicht von Anführungszeichen ( " ) eingeschlossen werden.
- **c16_procedure *** Dies ist der Name der Ereignis-Funktion in der Datenbank, die durch die Applikation gestartet wird. Die Angabe erfolgt in der Form "Prozedurname:Subfunktion". Der Funktion werden der Deskriptor des Service-Objekts und der Ereignistyp übergeben. Soll die
main-Funktion einer Prozedur aufgerufen werden, muss lediglich der Name der Prozedur angegeben werden.
c16_procedure = SvcMain:EvtConnect
- c16_proc_cache_kb In diesem Eintrag kann für die Verarbeitung der Prozedur-Cache eingetragen werden. Die Angabe erfolgt in KB und muss im Bereich von 256 bis 65536 (64 MB) liegen.
c16_proc_cache_kb = 2048
- c16_proc_library In diesem Eintrag kann der Name einer zu ladenden DLL bzw. Shared Library angegeben werden. Der Befehl
DllLoad ()bezieht sich auf die zuvor geladene Bibliothek, wenn eine leere Zeichenkette als Name für die Bibliothek übergeben wird. Der SOA-Task loggt die Meldung Procedure library load failed , falls das Laden der Bibliothek nicht erfolgreich durchgeführt wurde.
c16_proc_library = MyLibrary.dll
- c16_connection_max In dieser Eigenschaft wird die maximale Anzahl von Verbindungen zur Datenbank angegeben. Eine Verbindung wird nur solange genutzt, bis die Ereignisfunktion beendet ist. In Abhängigkeit von
c16_connection_sharedwird die Verbindung danach entweder getrennt oder sie steht danach für das nächste Ereignis zur Verfügung. Der Eintrag kann zwischen 1 und 1000 gewählt werden. Der hier eingetragene Wert entspricht der Anzahl von Ereignissen, die gleichzeitig bearbeitet werden können. Der Standardwert ist 500.
c16_connection_max = 10
- **c16_connection_shared *** Dieser Parameter bestimmt, ob eine Datenbankverbindung nach der Durchführung der Ereignisfunktion beendet wird (
c16_connection_shared = N) oder ob sie für weitere Ereignisse weiter zur Verfügung steht (c16_connection_shared = Y). In der Testphase ist es durchaus sinnvoll das Benutzer-Sharing abzuschalten, da zusammen mit dem Beenden der Verbindung auch der Inhalt des Prozedurcaches geleert wird. Im produktiven Einsatz kann das Benutzer-Sharing sowohl die Anzahl der benötigten Verbindungen reduzieren (siehe request_delay_min und request_delay_max ) und die Verarbeitungsgeschwindigkeit erhöhen.
c16_connection_shared = Y
- c16_connection_timeout (Dieser Wert ist nur bei
c16_connection_shared = Yvon Bedeutung) Wird eine Datenbankverbindung länger als die hier eingestellte Zeit nicht benutzt, wird sie automatisch beendet, d. h. der Datenbankbenutzer wird abgemeldet. Es können Werte von 10 Sekunden bis zu einer Stunde eingetragen werden. Ist dieser Wert nicht gesetzt, erfolgt der Timeout nach 5 Minuten.
c16_connection_timeout = 5m
- c16_proc_extended Über diesen Eintrag wird gesteuert, ob der Task die Verwendung von Oberflächen-bzw. Druck-Objekten unterstützt (
c16_proc_extended = Y) oder nicht (c16_proc_extended = N).
Diese Option wird ignoriert, wenn der Eintrag 64bit der c16_soa.cfg gesetzt ist.
Damit ein Dienstprogramm mit dem Benutzer interagieren kann, muss dies bei den Einstellungen des Dienstes erlaubt werden. Standardmäßig wird die Verwendung von Oberflächen- und Druck-Objekten unterstützt.
c16_proc_extended = Y
Ist dieser Eintrag auf N gesetzt, können alle Befehle ausgeführt werden, die in der Dokumentation mit dem Symbol versehen sind. Ist der Eintrag auf
Y gesetzt, können zusätzlich dazu die Befehle mit dem Symbol verwendet werden.
- request_delay_min (Dieser Wert ist nur bei
c16_connection_shared = Yvon Bedeutung) Wenn bei Eintritt eines neuen Ereignisses alle bestehenden Datenbankverbindungen der Applikation bereits mit der Bearbeitung von Ereignissen beschäftigt sind, wird nach Ablauf der hier eingetragenen Zeit eine neue Datenbankverbindung aufgebaut. Wird in diesem Zeitraum eine Datenbankverbindung frei, wird diese zur Bearbeitung des Ereignisses verwendet. Die Zeitspanne kann im Bereich von 0 bis 3 Sekunden liegen. Bei 0 wird sofort eine neue Verbindung eingerichtet. Ist der Wert nicht gesetzt, erfolgt Aufbau einer weiteren Datenbankverbindung nach 50 Millisekunden.
request_delay_min = 50ms
- request_delay_max (Dieser Wert ist nur bei
c16_connection_shared = Yvon Bedeutung) Kann keine weitere Datenbankverbindung eingerichtet werden ( c16_connection_max ist erreicht), wird maximal die hier eingestellte Zeit gewartet. Wird eine Datenbankverbindung in diesem Zeitraum frei, wird diese für das Ereignis verwendet. Kann auch nach dieser Zeit keine Verbindung benutzt werden, wird die Socket-Verbindung getrennt und der Fehler protokolliert. Es können Werte zwischen 100 Millisekunden und 10 Sekunden eingetragen werden.
request_delay_max = 3s
Session-Management
In diesen Eintragungen werden die Einstellungen für das Sessionmanagement vorgenommen. Die Eintragungen sind nur dann relevant, wenn mit einer oder mehreren Sessions (siehe SvcSessionControl ()) gearbeitet wird.
session_max
Dies ist die maximal zulässige Anzahl von Sessions für diesen Task. Der Vorgabewert ist 0 (keine Beschränkung), zulässige Werte liegen im Bereich von 0 bis 100000. Beim Überschreiten des Limits liefert SvcSessionControl ( _SvcSessionCreate ) das Resultat _ErrLimitExceeded.
session_max = 0
session_timeout_max
Nach dieser Zeitspanne wird eine nicht mehr verwendete Session durch den Task gelöscht. Der Vorgabewert ist 20 Minuten (20m), zulässige Werte liegen im Bereich von 5 Sekunden (5s) bis 4 Stunden (4h).
session_timeout_max = 20m
session_timeout_min
(Dieser Wert ist nur bei
session_max
ungleich 0 von Bedeutung)
Dies ist die minimale Zeitspanne, die eine Session nach dem Prozedurende erhalten bleibt. Sie ist nur relevant, wenn session_max ungleich Null ist. In diesem Fall werden beim Erreichen des Limits zunächst Sessions gelöscht, die länger als session_timeout_min nicht mehr verwendet wurden.
Der Vorgabewert ist 5 Minuten (5m), zulässige Werte liegen im Bereich von 5 Sekunden (5s) bis 1 Stunde (1h).
session_timeout_min = 5m
Automatischer Mailversand
Erfolgt aufgrund einer Fehlermeldung ein Eintrag in der Log-Datei des SOA-Service, kann automatisch eine E-Mail an eine bestimmte Adresse versendet werden. In der Mail wird die Log-Datei mit versendet. Es werden maximal 64 KB verschickt. Einträge der Klassen Initialisieren (s) und Information (i) führen nicht zum Versenden einer E-Mail.
Zusätzlich können eine oder mehrere Mails nur mit der letzten Zeile der Log-Datei im "Betreff" versendet werden. Diese Mails enthalten keinen Mail-Text und sind für eine Übermittlung als SMS (via E-Mail-Gateway) besonders geeignet.
Die notwendigen Angaben zum Versenden der E-Mail werden in den folgenden Einträgen vorgenommen:
- alert_mail_server In diesem Eintrag wird der Name oder die IP-Adresse des Mail-Servers eingetragen. Der Mail-Server muss über das Protokoll SMTP auf dem, mit
alert_mail_portdefinierten Port erreichbar sein.
alert_mail_server = 192.168.0.12
- alert_mail_port In diesem Eintrag wird der Port des Mail-Servers eingetragen. Der Mail-Server muss über das Protokoll SMTP auf diesem Port erreichbar sein. Ist diese Einstellung nicht angegeben, wird Port 25 verwendet.
alert_mail_port = 25
- alert_mail_user und alert_mail_password Sofern der verwendete Mailserver eine Authentifizierung erfordert, kann in diesen Einträgen der Benutzername (meist in der Form name@domain.tld) und das Kennwort angegeben werden. Der Mailserver muss das SMTP-Kommando "AUTH" in Verbindung mit einer der Methoden "PLAIN", "LOGIN" oder "CRAM-MD5" unterstützen. Sofern der Mailserver mehrere Methoden unterstützt, wird bevorzugt CRAM-MD5 verwendet, gefolgt von LOGIN.
alert_mail_user = name@vectorsoft.de
alert_mail_password = 2dhwC1GHNtM7
- alert_mail_from In diesem Eintrag wird die Absender-Adresse eingetragen. Die Mailadresse muss vom Mailserver akzeptiert werden. Aufgrund des Absenders muss es möglich sein, den Task, der den Fehler protokolliert hat, zu identifizieren. Sinnvollerweise können hier Rechnername, Firmenname oder ähnliches verwendet werden.
alert_mail_from = AppQueryr1@vectorsoft.de
- alert_mail_to Hier können ein oder mehrere Empfänger angegeben werden. Die einzelnen Empfänger-Adressen müssen durch Semikolon getrennt sein.
alert_mail_to = DbAdmin@vectorsoft.de;support@vectorsoft.de
- alert_mail_to_sms Hier können ein oder mehrere Empfänger angegeben werden. Die einzelnen Empfänger-Adressen müssen durch Semikolon getrennt sein. Die Empfänger erhalten eine E-Mail ohne Text, in der die letzte Zeile der Log-Datei im "Betreff" der Mail eingetragen ist. Diese E-Mails können zum Beispiel über einen SMS-Gateway in das Funknetz übermittelt werden. Sofern
alert_mail_to_smsdefiniert ist, kann aufalert_mail_toverzichtet werden.
alert_mail_to_sms='0172556611@d2-message.de'
- alert_mail_proxy Hier wird der Proxy angegeben, über den der Mailserver erreichbar ist. Die Angabe kann entfallen, wenn kein Proxy benötigt wird. Der Proxy wird in der Form
<Proxy-Typ>:<IP-Adress/Hostname>:<Portnummer>angegeben.<Proxy-Typ>gibt die Version des Proxies an. Es werden die Typen SOCKS Version 4 (SOCKSv4), 4a (SOCKSv4a) und 5 (SOCKSv5) unterstützt. Die Portnummer muss nur angegeben werden, wenn sie vom Standard (1080) abweicht.
alert_mail_proxy = SOCKSv4a:proxy.kunden.de:1080
- alert_mail_tls Dieser Parameter definiert, ob nach dem Verbindungsaufbau zum Mailserver eine verschlüsselte Verbindung (
alert_mail_tls = Y) oder eine unverschlüsselte Verbindung (alert_mail_tls = N) verwendet werden soll. Unterstützt der Mailserver keine verschlüsselten Verbindungen, wird trotzalert_mail_tls = Yeine unverschlüsselte Verbindung hergestellt.
alert_mail_tls = Y
- alert_mail_oauth_tenantid , alert_mail_oauth_clientid und alert_mail_oauth_cachepath Dies sind Angaben für den Versand von Alert-Mails, wenn das Anmeldeprotokoll OAuth 2.0 verwendet werden soll. Die VerzeichnisId (tenantid) und die AnwendungsId (clientid) werden bei der Einrichtung des Protokolls vorgegeben. In dem angegebenen Verzeichnis werden Verbindungstoken gespeichert. Allgemeine Informationen über das Authentifizierungsverfahren befinden sich im Abschnitt Microsoft Modern Authentication .
alert_mail_oauth_tenantid = '...'
alert_mail_oauth_clientid = '...'
alert_mail_oauth_cachepath = 'C:\ProgramData\SOA\OAuthTokenCache'
Wird eine Authentifizierung abgelehnt, wird ein Eintrag "OAuth DeviceFlow ..." in der Protokolldatei des SOA-Task geschrieben. Die Anmeldung kann durch einen Doppelklick auf den Eintrag im Log-Viewer manuell gestartet werden.
- alert_lines Die Größe der zu versendenden E-Mail kann über die maximale Anzahl der Zeilen beschränkt werden. Die Angabe der maximalen Zeilen ist optional. Wird der Eintrag nicht gesetzt oder der Wert 0 angegeben, werden bis zu 999 Zeilen aus der Log-Datei gesendet.
alert_lines = 20
- alert_interval Nachdem eine E-Mail-Benachrichtigung gesendet wurde, wird die hier angegebene Zeitspanne gewartet, bis ein erneutes Senden einer Benachrichtigung möglich ist. Dadurch wird die Anzahl generierter Mails bei fortwährenden neuen Fehlereinträgen reduziert. Der Eintrag ist optional. Wird er nicht gesetzt, wird frühestens nach einer Stunde die LOG-Datei erneut gesendet. Es können Werte zwischen 5 Minuten (5m) und einem Tag (1d) angegeben werden.
alert_interval = 4h
- alert_test Befindet sich in der Konfigurationsdatei der Eintrag
alert_test = 1, wird nach dem Starten des SOA-Service der Eintrag "Alert mail test" in die Protokolldatei geschrieben. Dieser Eintrag löst das Versenden der E-Mail aus. Auf diese Weise kann das Versenden der Mail getestet werden. Dieser Eintrag sollte nach einem erfolgreichen Test wieder entfernt werden, da sonst bei jedem Starten des Service-Clients eine Mail generiert wird.
alert_test = 1
Minidump-Generierung
Die folgenden Eintragungen sind für SOA-Tasks mit graphischer Erweiterung (c16_proc_extended) verfügbar, um im Fall eines Absturzes ein Minidump zu generieren. Bei SOA-Tasks ohne graphische Erweiterung werden die Optionen ignoriert, da bereits Minidump-Dateien generiert werden.
applogoptions
Mit dieser Option kann das Anwendungsprotokoll für den erweiterten SOA-Task aktiviert werden. Dies ist notwendig, damit bei Abstürzen Minidump-Dateien erzeugt werden. Zum Aktivieren muss der Wert auf 4 gesetzt werden. Zum Deaktivieren, muss 0 eingetragen, oder die Option entfernt werden.
applogoptions = 4
applogpath
Mit der Option wird der Pfad für das Anwendungsprotokoll festgelegt, sofern applogoptions gesetzt ist. Wird applogpath nicht definiert, wird das Anwendungsprotokoll im Verzeichnis der Konfigurationsdatei angelegt, bzw. geöffnet. Der Dateiname des Anwendungsprotokolles ist der Name des SOA-Task um _dbg.lgb erweitert. Heisst der SOA-Task z. B. MyTask, dann ist der Name des Anwendungslogs MyTask_dbg.lgb.
applogpath = C:\CONZEPT 16\Logs\
Betriebsart TIME
Die folgenden Eintragungen sind nur für Services der Betriebsart TIME (siehe mode ) notwendig.
time_delay_default
Dies ist die standardmäßige Zeitspanne die nach dem Aufruf der Ereignisprozedur vergeht, bevor das Ereignis erneut aufgerufen wird. Der Maximalwert beträgt 24 Stunden (1d), der Standardwert ist fünf Minuten. Die Zeit wird ab dem Beenden der Prozedur gemessen. Die Zeitspanne kann innerhalb der Ereignisprozedur über die Eigenschaft SvcCallDelay verändert werden.
time_delay_default = 5m
time_delay_error
Falls bei der Durchführung eines Ereignisses ein Fehler entsteht (keine Verbindung zur Datenbank, Laufzeitfehler oder ähnliches) ist dies die Zeitspanne, nach der erneut ein Ereignis ausgelöst wird. Es können Werte zwischen einer Minute (1m) und zwölf Stunden (12h) angegeben werden, der Standardwert ist eine Stunde.
time_delay_error = 1h
Betriebsart SOCKET
Die folgenden Eintragungen sind nur für Services der Betriebsart SOCKET (siehe mode ) notwendig.
- **socket_port *** Dies ist der TCP/IP-Port, auf dem der Dienst auf eingehende Verbindungen wartet. Der Port kann im Bereich von 1 bis 65535 angegeben werden. Die Portnummer darf auf dem System nicht bereits verwendet werden.
socket_port = 5601
- socket_ip Wenn der TCP/IP-Port nur auf bestimmten IP-Adressen verfügbar sein soll, können diese in diesem Parameter angegeben werden. Ohne Angabe dieser Einstellung ist der Port auf allen IP-Adressen des Rechners aktiv. Eine Beschränkung auf lokale Verbindungen kann beispielsweise mit der Angabe der Loopback-Adresse 127.0.0.1 erreicht werden. Mehrere IP-Adressen werden durch Semikolon getrennt angegeben.
socket_ip = 127.0.0.1;10.1.3.1
Der Dienst kann auch nur für bestimmte Ports zur Verfügung gestellt werden. Der entsprechende Port kann durch einen Doppelpunkt getrennt nach der IP-Adresse angegeben werden. Ist kein Port angegeben, wird der Port in socket_port verwendet.
socket_ip = 127.0.0.1:5050;10.1.3.1:443
- socket_timeout Dieser Wert bestimmt die Zeitspanne für einen Timeout-Fehler beim Lesen oder Schreiben von Daten auf dem Socket. Der Wert kann auch in der Ereignisprozedur mit
SckInfo ()abgefragt oder verändert werden. Die zulässigen Werte liegen im Bereich von 3 Sekunden (3s) bis 30 Minuten (30m), der Standardwert ist 10 Sekunden. Bei Anwendungen im Internet sind höhere Werte (zum Beispiel 1 Minute) als im lokalen Netz (10 Sekunden) sinnvoll.
socket_timeout = 1m
- socket_keepalive Beim Einsatz von Verbindungen, die auch nach der Ereignisprozedur noch offen bleiben (beispielsweise bei HTTP 1.1) muss eine maximale Zeitspanne eingestellt werden, in der neue Daten empfangen werden können (siehe Verarbeitungshinweise ). Der Wert kann innerhalb einer Ereignisprozedur mit
SckInfo ()verändert werden. Die zulässigen Werte liegen im Bereich von 3 Sekunden (3s) bis 10 Minuten (10m), der Standardwert ist 20 Sekunden. Der Wert ist unabhängig von socket_timeout .
socket_keepalive = 20s
- ip_connection_limit Diese Einstellung beschränkt die Anzahl von gleichzeitigen Verbindungen, die von einer einzelnen Quell-IP-Adresse aufgebaut werden können. Dies dient hauptsächlich dem Schutz vor einem Überlauf der Verbindungen durch Anwendungs- oder Programmfehler der Gegenstelle. Standardmäßig ist keine Beschränkung aktiv, zulässige Werte liegen im Bereich von 0 bis 1000.
ip_connection_limit = 5
Verschlüsselte Kommunikation über SOCKET -basierte Tasks
Ein socket-basierter SOA-Service kann optional mit Verschlüsselung unter Verwendung der Transport Layer Security betrieben werden. Dafür ist ein entsprechendes SSL/TLS-Zertifikat notwendig.
Für die Verschlüsselung sind vier zusätzliche Einträge in der Konfigurationsdatei des Tasks notwendig:
tls_certificate_file
Hier wird der vollständige Pfad- und Dateiname des Zertifikatsdatei angegeben. Die Datei muss im PEM-Format vorliegen.
tls_certificate_file = "c:\certificate\soa\soacertificate.pem"
In der Datei muss das Zertifikat Base64-kodiert gespeichert und von -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- eingeschlossen sein. In der Datei können mehrere Zertifikate einer Zertifikatskette vorhanden sein. Die Zertifikate müssen in der Reihenfolge <mein Zertifikat><Zertifikat des Ausstellers>...<Root-Zertifikat> angegeben werden.
tls_private_key_file
Hier wird der vollständige Pfad- und Dateiname der Datei angegeben, die den zum Zertifikat passenden privaten Schlüssel enthält. Die Datei muss im PEM-Format vorliegen und einen RSA-Schlüssel enthalten. Falls der private Schlüssel in der Zertifikatsdatei enthalten ist, wird hier der gleiche Dateiname wie bei tls_certificate_file eingetragen. Es spielt dabei keine Rolle, ob der Schlüssel am Anfang oder am Ende der Datei ist.
tls_private_key_file = "c:\certificate\soa\soaprivatekey.pem"
tls_private_key_password
Dies ist das Zugangskennwort des privaten Schlüssels.
tls_private_key_password = rosebud
Das Passwort darf nicht von Anführungszeichen ( " ) eingeschlossen werden.
tls_security_level
Dies ist der Mindestsicherheitslevel von aufgebauten Verbindungen. Folgende Werte können angegeben werden: Med / 1, Hi / 2 und Max / 3. Ist keine Option angegeben, wird Med verwendet. Die Mindestsicherheitslevel entsprechen den Konstanten _SckTlsMed, _SckTlsHigh und _SckTlsMax für SckConnect ().
tls_security_level = Med
Betriebsart DRIVE
Die folgenden Eintragungen sind nur für Services der Betriebsart DRIVE (siehe mode ) notwendig.
- **c16_server *** In diesem Eintrag wird der CONZEPT 16-Server eingetragen. Der Eintrag erfolgt in Form der IP-Adresse oder des IP-Namens des Serverrechners. Zur Verbindung wird immer das Protokoll TCP/IP verwendet. Bei Verwendung der Hot-Standby-Option wird nur der Primärserver angegeben.
c16_server = dbprimserv
- c16_database In diesem Eintrag wird die Datenbank eingetragen. Der Eintrag entspricht dem Namen der Datenbank, wie sie beim CONZEPT 16-Server eingetragen ist. Dieser Eintrag wird in der Betriebsart
DRIVEnur im Hot-Standby-Betrieb benötigt.
c16_database = codelibrary
- **socket_port *** Dies ist der TCP/IP-Port, an den der Laufwerkstreiber seine Datenpakete sendet. Der Port kann im Bereich von 1 bis 65535 angegeben werden. Die Portnummer darf auf dem System nicht bereits verwendet werden. Die Applikation, die die Datenpakete verarbeitet, muss eine Verbindung auf diesen Port erwarten.
socket_port = 50001
- socket_timeout Dieser Wert bestimmt die Zeitspanne für einen Timeout-Fehler beim Lesen oder Schreiben von Daten auf dem Socket. Die zulässigen Werte liegen im Bereich von 5 Sekunden (5s) bis 30 Minuten (30m), der Standardwert ist 1 Minute.
socket_timeout = 1m
Der Laufwerkstreiber arbeitet immer mit einem SOA-Task vom Typ SOCKET zusammen. Dieser Task muss auf den gleichen Port eingestellt sein, wie der Laufwerkstreiber. Der Task sollte die Verwendung von Oberflächenobjekten ( c16_proc_extended = N ) nicht unterstützen.