FTP/FTPS/SFTP (Eingangsagent Cron)

Lobster Integration kontaktiert einen FTP-Server und durchsucht ein Verzeichnis nach Dateien, die dem Suchmuster (Dateimuster) entsprechen. Es wird nur das angegebene Verzeichnis, keine Unterverzeichnisse durchsucht. Die Dateien werden in der Reihenfolge abgearbeitet, in der sie vom FTP-Server geliefert werden. Eine Sortierung auf Client-Seite wird nicht vorgenommen.

Einstellungen


(1) Kommunikationsprotokoll: Es kann zwischen den Protokollen FTP, SFTP und FTPS gewählt werden. Siehe auch (3).

(2) Via DMZ: Daten über den DMZ-Server empfangen. Falls kein DMZ konfiguriert ist, wird diese Checkbox nicht angezeigt. Dabei wird der DMZ-Rechner kontaktiert, dieser führt die FTP-Kommandos aus, empfängt die Dateien und speichert sie lokal ab. Danach werden diese Dateien vom DMZ-Rechner über einen internen Systemkommunikationspartner per FTP geholt und verarbeitet. Diese Option steht nur zur Verfügung, wenn in (3) ein Kanal konfiguriert ist. Achtung: Der interne Kommunikationspartner DMZ Internal wird automatisch angelegt, darf aber nicht geändert werden.

(3) Kanal-Auswahl: Hier kann ein Kanal des Typs FTP (für Protokolle FTP und FTPS) oder SSH (für Protokoll SFTP) ausgewählt werden. Hinweis: Wenn möglich, sollten immer Kanäle verwendet werden, damit Verbindungsparameter zentral verwaltet werden können. Neben der erhöhten Übersichtlichkeit erleichtert das auch die Pflege. Ändern sich die Verbindungsparameter, müssen Sie nur an einer Stelle nachpflegen und vergessen zudem auch kein Profil. Hinweis: Siehe auch Abschnitt FTP, FTPS, SSH, SCP, SFTP.

(4) FTP Server, Port: DNS-Name oder IP-Adresse und der Port des zu erreichenden FTP-Servers. Wird für den Port der Wert 0 angegeben, dann wird entweder der Standardport (./etc/ftp.xml) verwendet (wenn kein Kanal ausgewählt ist) oder der Port, der im Kanal angegeben ist, verwendet (wenn ein Kanal ausgewählt ist). Wird ein Port > 0 angegeben, dann wird dieser verwendet. Beispiel: "ftp.example.com".

(5) GXS Konto: Benutzer und Kennwort für das Zielsystem. Es ist darauf zu achten, dass der eingetragene Benutzer für das angegebene Verzeichnis auch Zugriffsrechte besitzt. Wenn die Verbindung zu einem Value Added Network (VAN) erfolgt, ist eventuell zusätzlich zum Benutzer die Angabe des GXS-Kontos notwendig.

(6) Übertragungsart: Im passiven Modus baut der Client die Kontroll- und die Datenverbindung auf. Normalerweise (im aktiven Fall) baut der Server die Datenverbindung auf, aber es kann sein, dass der dafür nötige Port von der dortigen Firewall blockiert wird. Im ASCII-Transfer-Modus werden plattformabhängige Textformate (Sonderzeichen) umgewandelt.

(7) Verzeichnis: Verzeichnis, in dem die Dateien gesucht werden. Hier ist auch die Verwendung von MSG_CALL_-Variablen (andere Variablen werden erst in Phase 3 initialisiert) und Platzhaltern für Zeitangaben zulässig. Beispiel: "./ftp/@MSG_CALL_VAR_DATA@".

(8) Schnellen Listenmodus verwenden: Als Kommando zur Erstellung der Dateiliste wird das FTP-Kommando NLST statt des FTP-Kommandos LIST verwendet. Die Erstellung der Dateiliste ist damit schneller, aber es werden nur die Namen der Dateien und keine anderen Informationen (z. B. ob es sich um ein Verzeichnis handelt) geliefert. Da die Antwort des Kommandos LIST nicht genormt ist, kann es beim Einlesen der empfangenen Daten Probleme geben. Die Verwendung des schnellen Listenmodus schafft Abhilfe bei Fehlern dieser Art.

(9) Dateimuster: Muster für den Dateinamen. Die Dateien können für die Verarbeitung sortiert werden nach Dateiname in absteigender oder aufsteigender Reihenfolge oder wie sie vom Betriebssystem geliefert werden. Beispiel: ".txt|.asc".

(10) Dateibehandlung: Die gelesene Datei kann auf die folgenden Arten behandelt werden.

  • nicht löschen. Veranlasst Lobster Integration, die gelesene Datei nicht zu löschen. Eine gegebenenfalls vorhandene Kontrolldatei wird ebenfalls nicht gelöscht.

  • löschen. Veranlasst Lobster Integration, die gelesene Datei und eine gegebenenfalls vorhandene Kontrolldatei zu löschen.

  • umbenennen. Veranlasst Lobster Integration, die gelesene Datei umzubenennen. Der neue Dateiname kann im zugehörigen Eingabefeld angegeben werden. Eine gegebenenfalls vorhandene Kontrolldatei wird weder gelöscht noch umbenannt. Mit den folgenden Platzhaltern kann auf den Namen der verarbeiteten Datei Bezug genommen werden.

    • <file> ist der vollständige Name der verarbeiteten Datei.

    • <file-prefix> ist der Name der verarbeiteten Datei ohne Dateierweiterung.

(11) Kontrolldatei verwenden: Veranlasst Lobster Integration, eine Datei erst zu lesen, wenn eine zugehörige Kontrolldatei vorhanden ist. Kontrolldateien werden bei Wert nicht löschen in (10) ebenfalls nicht gelöscht. Siehe auch Beispiel in (12). Siehe auch System-Variable VAR_SYS_CTRL_FILE.

(12) Master Kontrolldatei: Dateiendung bzw. -beginn der Kontrolldatei. Beispiel: Wird der Suffix .ctrl in das Feld eingetragen, dann wird bei der Datei name1.txt nach der Kontrolldatei name1.txt.ctrl gesucht. Bitte beachten Sie, dass der Punkt im Suffix .ctrl explizit angegeben werden muss.

(13) Master Kontrolldatei verarbeiten: Mit dieser Option wird nicht pro Datei eine eigene Kontrolldatei erwartet, sondern eine Kontrolldatei für ein Verzeichnis. Der Job wird dann gestartet, wenn diese Datei im Quellverzeichnis existiert.

(14) Parallelverarbeitung aktivieren: Ist diese Checkbox gesetzt, wird erreicht, dass mehrere Instanzen dieses Profils parallel arbeiten können. Die Checkbox Profil darf nur in einer Instanz laufen darf für dieses Profil nicht gesetzt werden.

(15) Leere Dateien löschen: Leere Dateien werden auf dem entfernten System immer gelöscht, unabhängig von der Einstellung in (10).

(16) Leere Dateien nicht überspringen: Auch bei leeren Dateien entstehen Jobs für das Profil, wenn diese Option aktiviert ist. Hinweis: In einer DMZ-Umgebung kann der DMZ-Rechner mit folgender Startoption in der Konfigurationsdatei ./etc/startup.xml gestartet werden, um das Verhalten zu steuern.

<!-- Defines how to handle empty FTP, SSH and OFTP files (0=skip, 1=delete, 2=transfer) -->
<Set name="handleEmptyFiles">0</Set>
  • skip: (Default) Leere Datei bleibt auf dem DMZ-Server liegen. Logeintrag in DmzEvents.

  • delete: Leere Datei wird auf dem DMZ-Server gelöscht.

  • transfer: Leere Datei wird an das Profil übertragen und Option (8) wirkt.

(17) AS400 Hauptdatei löschen oder umbenennen: Gibt an, ob die Hauptdatei nach der Abholung der Dateien gelöscht werden soll. Achtung: Falls Dateien innerhalb der Hauptdatei stehen, die nicht dem Dateimuster (9) entsprechen, wird die Hauptdatei trotzdem gelöscht.

(18) Zusätzliche FTP-Befehle: Hier können zusätzliche FTP-SITE-Befehle und Standard-FTP-Befehle angegeben werden (entsprechend RFC 959). Welche SITE-Befehle hier angegeben werden können, hängt davon ab, welche Befehle der jeweilige FTP-Server unterstützt (mit SITE HELP liefert der FTP-Server manchmal eine Liste seiner spezifischen SITE-Befehle). Geben Sie den zusätzlichen FTP-Befehl somecommand an, dann wird intern der FTP-Befehl SITE somecommand versendet. Möchten Sie Standard-FTP-Befehle verschicken, dann verwenden Sie bitte das Präfix rfc:. Geben Sie also den zusätzlichen FTP-Befehl rfc:CDUP an, dann wird intern der FTP-Befehl CDUP versendet. Wenn vor dem Befehl ein Präfix before: steht, wird er vor der Dateiübertragung gesendet, sonst danach. Um also das Kommando CDUP vor der Dateiübertragung zu senden, muss before:rfc:CDUP verwendet werden. Hinweis: Beim Senden von Kommandos wird der Return-Code vom Server geprüft und dabei werden alle Werte 2xx außer 202 akzeptiert. Bei anderen Werten erzeugt das Profil einen Fehler. Hinweis: Auch Variablen aus dem Profil können in der Form @MSG_CALL_VARNAME@ verwendet werden, um die zusätzlichen Befehle anzugeben. Hinweis: Zusätzliche FTP-Befehle können nicht mit SFTP (1) genutzt werden. Hinweis: Die erfolgreiche Ausführung der SITE-Befehle an sich wird nicht überprüft, d. h. Lobster Integration erzeugt keinen Fehler, wenn ein SITE-Befehl fehlschlägt (außer bei einer IO-Exception).

Weitere Hinweise


  • Manche FTP-Server liefern auch Unterverzeichnisse, ohne diese kenntlich zu machen. Damit wird versucht Jobs auf nicht vorhandene Dateien auszuführen. Um dies zu verhindern, kann bei diesen FTP-Servern die lange Dateiliste angefordert werden.

  • Ist für die Dateibehandlung nicht löschen eingestellt, muss aufseiten des FTP-Servers nach erfolgreichem Lesen einer Datei, diese Datei und eine gegebenenfalls vorhandene Kontrolldatei
    gelöscht/umbenannt werden, da sie sonst beim nächsten Durchlauf des Profils erneut abgearbeitet werden.

  • Wenn das Löschen oder Umbenennen der zu verarbeitenden Datei fehlschlägt, weil z. B. beim Umbenennen bereits eine Datei gleichen Namens existiert, wird kein Job gestartet. Ist für den Eingangsagenten CronJob gilt als fehlerhaft, wenn keine Daten ermittelt werden eingestellt, so führt dies zu einem Fehler, auch wenn eine zu verarbeitende Datei vorhanden ist.

  • Bei diesem Eingangsagenten kann eine Überprüfung auf eine Maximalgröße der Eingangsdateien erfolgen. Siehe Abschnitt Maximalgröße für Messages und Dateien.

  • Dateien, die keinem Profil zugeordnet werden können, werden im Bereich Unresolved abgelegt. Siehe zudem Abschnitt Warnung für nicht zuordenbare Eingangsdaten.

  • FTP-Site-Kommandos können wie im Antwortweg FTP verwendet werden.

Maßnahmen bei Timeout durch extrem große Dateien


Beim Übertragen extrem großer Dateien via DMZ kann es in der Kommunikation zwischen Lobster Integration und DMZ zu einem Timeout kommen. Folgend eine Lösung, von der wir dennoch abraten, da es zu Performance-Verlusten kommen kann.

Der Default-Timeout beträgt 30 Minuten. So lange wartet Lobster Integration auf eine Rückmeldung vom DMZ-Server. Falls bis zu diesem Zeitpunkt die Datei noch nicht zwischen DMZ und dem Partner vollständig übertragen ist, gibt Lobster Integration mit einer Fehlermeldung auf. Um eine längere Zeit zu warten, muss man den Integration Server mit einer zusätzlichen System-Property starten.

-Dhub.datawizard.remote.waitTime=<Wartezeit in ms>


Möglicherweise kommt eine Kommunikation zwischen Lobster Integration und dem DMZ-Server auch deshalb nicht zustande, weil der FTP-Service des DMZ-Servers nicht den Standard-Port 21 konfiguriert hat, oder weil eine Firewall die Verbindung im passiven Modus nicht zulässt. Über zusätzliche System-Properties zur Startzeit des Integration Servers können diese beiden Einstellungen konfiguriert werden.

-Dhub.datawizard.remoteFtp.port=<Portnummer>
-Dhub.datawizard.remoteFtp.passive=true|false