Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ordner per Batch auf neue, nicht abgeholte Dateien überwachen

Tipp Microsoft Windows Server

Mitglied: kugelschreiber

kugelschreiber (Level 1) - Jetzt verbinden

23.08.2010, aktualisiert 14:47 Uhr, 16865 Aufrufe

Vielleicht hilft es ja dem einen oder anderen in einer anderen oder ähnlichen Situation

Hallo Ihr Lieben,

Folgendes Szenario:

Wir haben einen BizTalk Server 2006 auf Windows 2003 32bit, der per Windows Service einen Eingangsordner (Receive Folder) auf neue Dateien überwacht (vorläufig XML Dateien) und dann entgegen nimmt. Dabei verschiebt (also löscht) der BizTalk Server die Datei aus dem Eingangsordner zur weiteren Verarbeitung (Orchestrierung usw.).
Nun haben wir mehrfach festgestellt, dass dies manchmal länger als 2 Minuten dauert. Im Normalfall sollte die Datei nicht länger als 1-2 Sekunden im Eingangsordner verweilen, bevor der Server sie abgreift.

Das Problem

Wie bekomme ich nun mit, wann ein sogenannter "Hänger im System" vorherrscht?

Die Lösung

Dazu habe ich mir ein Batch gebaut, welche im Abstand von 1 Minute per Windows Tasksplaner aufgerufen wird und mir im Falle, dass eine Datei länger als 1 Minute im Eingangsordner liegt, eine Email mit dem Dateinamen im Betreff schickt. Ich verwende dabei eigentlich drei Batchdateien:

  1. eingangs_ordner_pruefen.bat
  2. dateien_kopieren.bat
  3. email.bat

Wobei die eingangs_ordner_pruefen.bat die anderen beiden per call in zwei beinhaltenden Schleifen aufruft.
Als Programm zum Verschicken einer Email verwende ich blat, welches Ihr Euch alternativ hier besorgen könnt. Eine klitzekleine Anleitung zu blat findet Ihr hier

Aber nun zu den einzelnen Batch-Dateien.

Die Hauptdatei eingangs_ordner_pruefen.bat

@ECHO OFF 
REM VARIABLEN 
set server=mail.domain.de 
set empfaenger=xxx@domain.de 
set sender=yyy@domain.de 
set projectpfad="C:\test" 
set ordner1="C:\test\ordner1" 
set ordner2="C:\test\ordner2" 
 
REM Prüfen, ob im ordner1 noch daten drin sind, die bereits schon in ordner1 drin sind (Dann hat BizTalk versagt -> Email an xxx@) 
CD %ordner2% 
FOR %%A IN ("*.*") DO ( 
	if exist %ordner1%\%%A call C:\test\email.bat "%%A" 
 
REM Prüfen, ob im ordner1 Dateien enthalten sind, die noch nicht im ordner2 enthalten sind (also neue Dateien -> kopieren in ordner2) 
CD %ordner1% 
FOR %%B IN ("*.*") DO ( 
	if not exist "%ordner2%"\"%%B" call C:\test\dateien_kopieren.bat "%%B" 
 
REM Prüfen, ob im ordner2 Dateien enthalten sind, die nicht mehr in ordner1 enthalten sind (BizTalk hat funktioniert -> also alte Dateien -> löschen in ordner2) 
CD %ordner2% 
FOR %%C IN ("*.*") DO ( 
	if not exist "%ordner1%"\"%%C" del "%ordner2%"\"%%C" 
)
Die Datei dateien_kopieren.bat

@echo off 
REM Kopiert alle Dateien von ordner1 in ordner2 
copy %ordner1%\%1 %ordner2%\%1
Die Datei email.bat

cd %projektordner% 
blat.exe c:\Test\body.txt -server %server% -to %empfaenger% -f %sender% -s %1
Projekt Testen

Zum Testen des Projektes führt bitte folgende Schritte durch

  1. Legt Euch einen Ordner namens "test" auf "C:\" an
  2. Erstellt im Ordner "C:\test" einen Ordner namens "ordner1" und einen weiteren Ordner namens "ordner2"
  3. Erstellt nun die Batchdateien wie oben beschrieben (Diese sollten dann auch unter "C:\test" liegen)
  4. Kopiert Euch die "blat.exe" von der oben angegebenen Webseite ebenfalls ins Verzeichnis "C:\test"
  5. Erstellt Euch eine Datei namens "body.txt" und schreibt einen beliebigen Inhalt hinein (Das ist dann Euer Inhalt in der Email)
  6. Passt die Hauptdatei eingangs_ordner_pruefen.bat an Eure Einstellungen an (Emailserver und Adressen)
  7. Gehe nun in den "ordner1" und erstelle dort eine beliebige Testdatei (zum Beispiel ein leeres Textdokument namens "test.txt")
  8. Doppelklicke nun auf die Hauptdatei eingangs_ordner_pruefen.bat unter "c:\test" (Deine Testdatei "test.txt" in "ordner1" sollte im Anschluss nun in "ordner2" kopiert worden sein)
  9. Doppelklicke wieder auf die Hauptdatei eingangs_ordner_pruefen.bat unter "c:\test" (Nun liegt die Datei immer noch in "ordner1" -> also wirst Du per Email benachrichtigt, das eine Datei (Dateiname steht im Betreff der Email) schon länger im "ordner1" liegt. (Der Biztalkserver hat Sie also noch nicht abgeholt)
  10. Lösche nun die Datei aus "ordner1" (Simulation als ob der Biztalkserver die Datei schon abgeholt hat)
  11. Doppelklicke wieder auf die Hauptdatei eingangs_ordner_pruefen.bat unter "c:\test" (Nun wird die Testdatei "test.txt" aus ordner2 gelöscht, da Sie sich nicht mehr im "ordner1" befindet (Der BizTalk Server hat sie also schon abgeholt)

NACHTRAG

Dies ist keine Lösung des Problems, aber wir haben rausgefunden wann es aufgetren ist und haben festgesetllt, dass andere Prozesse zu dieser Zeit eine enorm hohe Auslastung hatten und somit der BizTalk Service die Dateien nicht entgegennehmen konnte.

Wer das o.g. Beispiel als Dateien haben möchte, kann mir eine private Nachricht mit seiner Emailadresse schicken, ich bemühe mich die Daten so schnell wie möglich zu versenden.

Wahrscheinlich entgegen jeder Regel, bitte ich Euch mir Verbesserungen, Anregungen oder gar Kritik per privater Nachricht zu schicken, damit ich es in diesem Artikel ver/ausbessern kann. Ihr werdet namentlich erwähnt, wenn dies gewünscht ist.
Somit bekommt der interessierte Leser nur einen Artikel und muss sich am Ende nicht durch 20 Anpassungen/Beiträgen den gesamten Code selber zusammensuchen.

Vielen Dank für Euer Verständnis

Gruß Kuli

PS: Vielen Dank an Johannes Dobler, der mich dabei unterstützt hat
Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit Batch entpacken (9)

Frage von SirNoob zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (15)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (14)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Rechtliche Fragen
Hotspot rechtssicher betreiben? (14)

Frage von xSiggix zum Thema Rechtliche Fragen ...