home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / filesbbs / dos / uniswb07.arj / UNISWB07.ZIP / UNISCHED.DOK < prev    next >
Encoding:
Text File  |  1997-10-14  |  75.2 KB  |  1,675 lines

  1.  
  2.                 U N I S C H E D   -   The Universal Scheduler
  3.                 ---------------------------------------------
  4.                            Version 1.0 Wide Beta 07
  5.                           (C) 1996,97 by Tobias Ernst
  6.  
  7.                  --> DIES IST UNGETESTETE BETA-SOFTWARE.  <--
  8.                --> DIE BENUTZUNG ERFOLGT AUF EIGENE GEFAHR <--
  9.             --> ICH BITTE DARUM, MIR GEFUNDENE BUGS ZU MELDEN! <--
  10.  
  11.   (An English Documentation will be supplied with the 1.0 release of UniSched)
  12.  
  13.  
  14. INHALT
  15. ------
  16.  
  17. 1.     Was ist UniSched?
  18.  
  19. 2.     Wozu brauche ich Unisched?
  20.  
  21. 3.     UniSched Schritt für Schritt:
  22. 3.1    Vor der Installation
  23. 3.1.1  Die TZ-Umgebungsvariable
  24. 3.1.2  Richtig entpacken
  25. 3.2    Beschreibung der Konfigurationsdatei
  26. 3.3    Events und Actions
  27. 3.3.1  Events
  28. 3.3.2  Rekursionen
  29. 3.3.3  Aktionen
  30. 3.4    Aufruf und Bedienung
  31.  
  32. 4.     UniSched für Fortgeschrittene
  33. 4.1    Online-Tossing
  34. 4.2    Logausgaben fallweise unterdrücken
  35.  
  36.  
  37. 5.     Shareware
  38.  
  39. 6.     Verschiedenes
  40.  
  41.  
  42. 1. WAS IST UNISCHED?
  43. --------------------
  44.  
  45. UniSched ist ein Scheduler, der speziell auf die Bedürfnisse eines Nodesystems
  46. im Fidonet zugeschnitten ist.  Kurz gesagt:  UniSched reagiert auf  Ereignisse
  47. mit Aktionen.  Als Ereignisse kommen in Betracht:
  48.  
  49. - Termingesteuerte Ereignisse (z.B. täglich um 15:00, am 1. des Monats ab
  50.   10:00, alle 30 Minuten, ...)
  51. - Auftreten von Semaphore-Dateien (von anderen Programmen erstellt)
  52. - Maileingang im Mailer-Inbound
  53. - Drücken von Funktionstasten
  54.  
  55. Als Aktionen sind möglich:
  56.  
  57. - Ausführen externe Programme, Batches, Skripte
  58. - Sich mit Errorlevel beenden
  59. - Manipulationen im Binkley-Outbound (Poll generieren, Flavours ändern, ...)
  60. - Diverse (z.B. WAV-Files abspielen, Semaphoren erzeugen, Dateien löschen, ..)
  61.  
  62. UniSched  ist  an  sich ein sehr simples Programm, dabei aber gerade in seiner
  63. Einfachheit  sehr  mächtig.   Deshalb  lege  ich  es  jedem  nahe,  diese Doku
  64. sorgfältig zu lesen (zumindest aber Abschnitt 3.2), denn  nur,  wenn  man  das
  65. Prinzip von UniSched verstanden hat, kann man seine Genialität erkennen.  :-)
  66.  
  67. UniSched  existiert  als  DOS-Executable (getestet unter DOS, DESQview, Win95,
  68. Windows NT, OS/2  MDOS)  und  natürlich  als OS/2-Version (UNISCHE2.EXE).  Bei
  69. Verwendung  der  DOS-Version  ***MUSS***  Share.Exe  oder  ein  vergleichbarer
  70. Support für File-Locking geladen sein!
  71.  
  72.  
  73. 2. WOZU BRAUCHE ICH UNISCHED?
  74. -----------------------------
  75.  
  76. Die Einsatzgebiete von UniSched sind sicher  vielfältig.   Ich  habe  es  aber
  77. geschrieben  als Frontend für den Tossertask, eines Fido-Nodes und hier liegen
  78. seine Stärken.  Statt in  den  Mailer-Batches rumzufummeln, läuft mit UniSched
  79. ein separater Tossertask (sei das nun ein Task unter einem  Multitasker,  oder
  80. ein  extra Rechner in einem Netzwerk).  UniSched ist die ganze Zeit aktiv.  Zu
  81. bestimmten Uhrzeiten startet es den  Tosser,  um Mail zu exportieren.  Wenn im
  82. Mailer Mail empfangen wurde, legt der  Mailer  eine  Sempahore-Datei  an,  die
  83. UniSched  findet  und  daraufhin  den Tosser anweist, die Mail zu importieren.
  84. Wenn man von Hand Mail exportieren  will,  drückt man einfach in UniSched eine
  85. Funktionstaste.  Außerdem weist UniSched den Mailer zu gegebener Zeit an,  den
  86. Uplink  anzrufuen.   Und  morgens um sieben startet UniSched ein Weck-Programm
  87. ... und und und ...
  88.  
  89. Der Vorteil dieser Vorgehensweise ist  klar  ersichtlich:  Wenn man den Tosser
  90. aus der Mailer-Batch  heraus  startet,  besteht  die  Gefahr,  daß  bei  einem
  91. Multiline-System  beide  Mailer gleichzeitig tossen.  Um das zu umgehen, müßte
  92. man aufwendige Semaphore-Konstrukte bauen.   Und  selbst  wenn man diese Hürde
  93. umschifft hat, ist da immer noch ein Problem:  Nur, weil man z.B. um halb neun
  94. Mail exportiern möchte, muß man (wenn man UniSched nicht hat)  im  Mailer  ein
  95. Event  definieren,  was  unweigerlich  nach  sich zieht, daß um halb neun alle
  96. Online-User aus  der  Box  geschmissen  werden.   Und  so  fort.  Mit Unisched
  97. dagegen ist getrennt, was getrennt gehört:  Der Mailer bedient die Modems, und
  98. Unisched kümmert sich um den Rest.  Der Mailer hat dann i.d.R. nur  noch  zwei
  99. Events,  nämlich  ZMH  und  der  Rest, so daß er sich voll und ganz dem Mailen
  100. widmen kann.  ;-)
  101.  
  102.  
  103. 3. UNISCHED SCHRITT FUER SCHRITT
  104. --------------------------------
  105.  
  106.   3.1. VOR DER INSTALLATION
  107.   -------------------------
  108.  
  109.     3.1.1 Die TZ-Umgebungsvariable
  110.     ------------------------------
  111.  
  112.     UniSched  wertet  die  TZ-Umgebungsvariable  aus.   Es ist nicht unbedingt
  113.     notwendig, diese  zu  setzen,  verhindert  aber  unschöne  Effekte bei der
  114.     Umstellung Sommer->Winterzeit und umgekehrt.
  115.  
  116.     Um an dieser Stelle nicht zu langweilen:  Es ist nicht intuitiv  (intuitiv
  117.     würde  ich  für Deutschland GMT+1 setzen, aber das stimmt überhaupt nicht)
  118.     und für einen Nicht-Programmierer auch absolut nicht-trivial, wie sich die
  119.     TZ-Variable zusammensetzt.   Daher  gebe  ich  hier  einfach die richtigen
  120.     Werte an:
  121.  
  122.     Mitteleuropäische Winterzeit: SET TZ=MEZ-1
  123.     Mitteleuropäische Sommerzeit: SET TZ=MEZ-2MSZ
  124.  
  125.     Viele anderen Programe werten diese Variable ebenfalls  aus  (insbesondere
  126.     der  Tosser  beim  Erstellen  der  VIA-Zeilen), es ist also auf jeden Fall
  127.     ratsam, diese Werte so in  die  Autoexec.Bat  (bei OS/2 zusätzlich auch in
  128.     die Config.Sys, aber auch in die  Auotexec.Bat  im  Boot-Drive,  wenn  das
  129.     ganze auch für DOS-Sessions gelten soll!) zu übernehmen und erstmal neu zu
  130.     booten.
  131.  
  132.     Wenn  man  dann die Zeitumstellung (Uhr vor- oder zurückstellen) vornimmt,
  133.     sollte man erst Unisched  runterfahren,  dann  die TZ-Variable ändern, und
  134.     dann Unisched wieder hochfahren.  Anderenfalls werden  periodische  Events
  135.     mehrfach ausgeführt.  (Damit kann man natürlich auch leben, z.B., wenn man
  136.     eine Funkuhr hat ...).
  137.  
  138.  
  139.  
  140.     3.1.2 Richtig entpacken
  141.     -----------------------
  142.  
  143.     Das  originale  Distributionsarchiv  von  Unisched  ist  mit  ZIP  gepackt
  144.     OS/2-User  entpacken  die  Datei  bitte unbedingt mit der OS/2-Version von
  145.     INFOZIP oder  PKZIP.   UNISCHE2.EXE  enthält  nämlich erweiterte Attribute
  146.     (das Icon), die der DOS-PKUNZIP nicht korrekt umsetzen kann.
  147.  
  148.     (Wens interessiert, mit RAR habe ich abgeschlossen.  Ich  hatte  an  einer
  149.     Sammelregistration der DS teilgenommen und auf dem Formular angegeben, daß
  150.     ich  DOS-  und  OS/2-Versionen  benötige.  Statt daß man mich nun davon in
  151.     Kenntnis setze, daß ich für  den Sammelregistrierungspreis nur eine Lizenz
  152.     für ein BS erhalten kann und zu fragen, welches ich denn gern hätte,  habe
  153.     ich  schlicht  nur  die  DOS-Version erhalten.  Man war auch nicht bereit,
  154.     diesen Key gegen einen  OS/2-Key  umzutauschen.  Und nochmal Geld ausgeben
  155.     tue ich bei so einem "Service" sicher nicht.)
  156.  
  157.     Wenn Ihr eine umgepackte Version ohne erweiterte Attribute erhalten  habt,
  158.     müßt  Ihr  entweder  ohne das Icon leben, oder das korrekte Archiv bei mir
  159.     requesten, oder (für  Fortgeschrittene),  das  Icon per Ressourcenkompiler
  160.     selbst  wieder  an  die  EXE-Datei  linken  (es  ist  auch   separat   als
  161.     UNISCHED.ICO  beigefügt).   Am  Besten aber macht Ihr Euren Uplinks Dampf.
  162.     Umpackerei ist IMO eines der größten Übel in der Filenetz-Welt.
  163.  
  164.  
  165.  
  166.   3.2. BESCHREIBUNG DER KONFIGURATIONSDATEI
  167.   -----------------------------------------
  168.  
  169.   Vorab:   In  der  Regel  (...)  ist  Unisched   bei   der   Auswertung   der
  170.   Konfigurationsdatei nicht casesensitiv (d.h., Groß- oder Kleinschreibung ist
  171.   egal),  auch  bei  Aktionsnamen  nicht, aber es ist trotzdem eine gute Idee,
  172.   sich eine konsistente Schreibweise anzugewöhnen.
  173.  
  174.   Bevor wir uns nun dem eigentlichen Prinzip von EREIGNIS und AKTION zuwenden,
  175.   muß UNISCHED erst mal  vorkonfiguriert  werden  (Pfade  und der ganze Kram).
  176.   Deshalb folgt im Anschluß eine Beschreibung aller  gültigen  Schlüsselwörter
  177.   in  der  Datei  UNISCHED.CFG.   Falls  Du  zu  den Personen gehörst, die die
  178.   magische  Gabe  haben,  aus  kryptischen  Schlüsselwörtern  instantan  deren
  179.   Bedeutung zu erschließen, kannst Du diesen Abschnitt 3.2 überspringen.  Lies
  180.   aber ab 3.3 auf jedenfall wieder mit, da wirds wichtig.
  181.  
  182.   Genaugenommen  besteht  die  UNISCHED.CFG  aus  zwei  Teilen.   Zunächst die
  183.   allgemeinen Einstellungen, die im Anschluß beschrieben werden, und dann  die
  184.   Event-Action-Config,  die  in Kapitel 3.2 beschrieben wird.  Die Reihenfolge
  185.   der  zugehörigen  Kommandos  in   der  Config-Datei  ist  übrigens  beliebig
  186.   (Ausnahme:      SemaDir).      In     der     Konfigurationsdatei     können
  187.   %UMGEBUNGSVARIABLEN% verwendet werden.  Einzelne %-Zeichen  lassen  sich  im
  188.   Zweifelsfalle durch ein dooepltes %-Zeichen (also %%) erzwingen.
  189.  
  190.  
  191.    Alivetime = <minutes>
  192.    ---------------------
  193.  
  194.    UniSched legt beim Start eine Datei "UNISCHED.BSY" an (Busy-Semaphore), die
  195.    er  erst  bei  Beendigung  wieder  löscht.   Dieser Parameter gibt an, alle
  196.    wieviel Minuten  der  Timestamp  diese  Semaphore  auf  die  neuste Uhrzeit
  197.    gesetzt werden soll.  Wird diese Zeile gar nicht in der  Config  angegeben,
  198.    wird  die  Busy-Semaphore  nur  bei  Programmneustart  auf neuere Uhrzeiten
  199.    gesetzt.
  200.  
  201.  
  202.  
  203.    Autofail = On | Off
  204.    -------------------
  205.  
  206.    Dies  ist  wichtig  für   die   DOS-Version.    Es  wird  ein  Errorhandler
  207.    installiert,  der  die  Frage  "Retry,  Abort,  Fail?"  immer  mit   "Fail"
  208.    beantwortet.   In  der  DOS-Version  sollte das immer gesetzt sein, denn es
  209.    kann u.U. bei  den  Semaphoren  sonst  zu  Probleme kommen (Mailer erstellt
  210.    Sempahore, und Unisched will  sie  schon  löschen,  bevor  der  Mailer  sie
  211.    überhaupt  freigegeben  hat  -> Sharing Violation -> Die besagte Meldung ->
  212.    Tossertask steht bis man "F"  drückt  -  es sei denn, man hatte Autofail=On
  213.    gesetzt).
  214.  
  215.    Unter OS/2 ist dieser Schalter ohne Bedeutung.  Hier gibt es sowas  nämlich
  216.    schon für die Config.Sys (dort:  Autofail=Yes).
  217.  
  218.    Bsp:
  219.    Autofail = On
  220.  
  221.  
  222.  
  223.    Clock = On | Off
  224.    ----------------
  225.  
  226.    Gibt  an,  ob in der Titelzeile eine Uhr eingeblendet werden soll.  Default
  227.    ist On, aber Off spart ein kleines bißchen Rechenzeit ...
  228.  
  229.    Bsp.:
  230.    Clock = On
  231.  
  232.  
  233.  
  234.    DiskLog = <Loglevels>
  235.    ---------------------
  236.  
  237.    Gibt an, welche Arten  von  Meldungen  alle ins Log-File geschrieben werden
  238.    sollen.  Es existieren folgende Loglevel:
  239.  
  240.    !   Statusmeldungen ("starting", "shutting down", nicht abschaltbar)
  241.    ?   Fehlermeldungen und Warnungen (nicht abschaltbar)
  242.    *   Semaphore-Events           \
  243.    .   Funktionstasten-Events      \ Das sind alles Auslöser für Aktionen
  244.    ~   Periodische Events          / von Unisched
  245.    #   Statische Events           /
  246.    +   Aktionen (das, was von Events ausgelöst wird)
  247.    -   Ausgewählte Wide-Beta Debug-Meldungen
  248.    p   Meldungen des Parsers bei der Abarbeitung von Aktionsdefinitionen
  249.    _   Eine   Leerzeile   nach   einem    Event-Aktion-Block    (erhöht    die
  250.        Übersichtlichkeit,  wenn  man  sehr  viel Loggen läßt - ich empfehle, _
  251.        immer dann zu verwenden, wenn man auch p verwendet).
  252.  
  253.    Wenn man die Chance,  daß  ich  auf  Bugreports reagiere, drastisch erhöhen
  254.    will, sollte man  das  mir  übersandte  Logfile  MINDESTENS  mit  folgendem
  255.    DiskLogLevel erstellen:
  256.  
  257.    DiskLog = !?*.~#+-
  258.  
  259.    Während der Wide-Beta Phase sollte man generell nicht weniger nehmen.
  260.  
  261.  
  262.  
  263.    ExcessiveSlicing = <zahlenwert> | Yes | No
  264.    ------------------------------------------
  265.  
  266.    Dieser    Schalter    betrifft    die    Abgabe    von    Zeitscheiben   in
  267.    Multitaskingumgebungen.  Wird er auf einen Zahlenwert ungleich Null gesetzt
  268.    (Yes entspricht 5,  No  entspricht  0),  werden deutlich mehr Zeitschreiben
  269.    freigegeben.  Du mußt selbst ausprobieren, ob Du diesen Schalter  brauchst.
  270.    Generell  gilt:   Wenn  Dir  die Systemlast von Unisched zu hoch erscheint,
  271.    solltest Du ihn soweit hochsetzen, daß die Uhr rechts oben gerade noch jede
  272.    Sekunde einzeln auflöst (etwas ruckelig  darfs  sein, aber es sollten keine
  273.    Sekunden übersprungen werden).
  274.  
  275.    Hier ein paar Erfahrungswerte, mit denen Unisched akzeptabel arbeitet:
  276.  
  277.      OS/2 nativ:    0
  278.      OS/2 DOS-Box:  1 oder 0
  279.      Windows NT:    20
  280.      Windows 95:    Mit 0 läuft es akzeptabel, weitere Tests liegen nicht vor.
  281.  
  282.  
  283.  
  284.    IgnoreOldBusySem = <minutes>
  285.    ----------------------------
  286.  
  287.    Wenn UniSched beim Starten die  Datei UNISCHED.BSY vorfindet, geht er davon
  288.    aus, daß bereits ein  anderer  Unisched-Task  gestartet  ist,  und  startet
  289.    selbst  nicht.   Wird  "IgnoreOldBusySem" verwendet, so prüft Unisched aber
  290.    zuvor, wie alte die  Busy-Semaphore  ist,  und startet ggf. trotzdem, falls
  291.    sie nämlich älter ist als die angegebene Anzahl von Minuten.  (In dem  Fall
  292.    geht  er  davon  aus,  daß  die Busy-Semaphore von einem Systemabsturz o.ä.
  293.    übrig  geblieben  ist).   Wenn  man  IgnoreOldBusySem  verwendet,  muß  man
  294.    natürlich auch AliveTime (s.o.)  verwenden, sonst könnte die Busy-Semaphore
  295.    ein sehr altes Timestamp tragen, obwohl der zugehörige Task noch arbeitet.
  296.  
  297.    Die Anforderungen an die Zahlenwerte  für  AliveTime  und  IgnoreOldBusySem
  298.    hängen  von  der  Konfiguration von UniSched ab.  Wenn man (z.B. unter OS/2
  299.    mit EXEC START /C /MIN BLAHBLUBB.CMD) alle externen Programme, die Unisched
  300.    startet,  in  einem  separaten  Hintergrundtask  startet,  kann  man  davon
  301.    ausgehen, daß UniSched nie  lange  daran  gehindert wird, den Timestamp der
  302.    Busy-Semaphore zu aktualisieren, und man kann kleine Zahlenwerte nehmen:
  303.  
  304.    AliveTime = 1
  305.    IgnoreOldBusySem = 5
  306.  
  307.    In  dem  Fall  ist   eine   übriggebliebene   Busy-Semaphore   nach   einem
  308.    Systemneustart  vermutlich  schon  überaltert,  und  UniSched startet schon
  309.    wieder.
  310.  
  311.    Wenn  man   jedoch,   z.B.   um   Zugriffskonflikte   auf  der  Messagebase
  312.    auszuschließen, externe Aufgaben  wie  Tossen  im  UniSched-Fenster  selbst
  313.    ausführen  läßt  (EXEC  BLAHBLUBB.CMD), muß man damit rechnen, daß UniSched
  314.    für  längere  Zeitspannen  die   Busy-Semaphore  nicht  updaten  kann,  und
  315.    IgnoreOldBusySem  auf  einen   entsprechend   hohen   Wert   setzen.    Ein
  316.    Aufräumevent kann schon mal zwei Stunden dauern:
  317.  
  318.    AliveTime = 10
  319.    IgnoreOldBusySem = 180
  320.  
  321.    Egal  wie  man  es  löst  -  in  jedem  Fall sollte man auch unter OS/2, um
  322.    Tosserausfälle während Abwesenheit zu  verhindern, UniSched aus einer Batch
  323.    heraus starten, die, falls UniSched wegen BusySemaphore nicht  startet  (er
  324.    liefert  in  dem  Fall Errorlevel 255), den UniSched wieder erneut startet,
  325.    solange, bis die BusySemaphore veraltet ist:
  326.  
  327.    :start
  328.    unische2 /cunisched.cfg
  329.    if errorlevel 255 goto start
  330.  
  331.    UniSched  gibt  genug  Zeitschreiben  frei,  damit  diese  Konstellation im
  332.    Zweifelsfalle zumindest unter OS/2 NICHT zu 100% Systemlast führt).
  333.  
  334.  
  335.  
  336.    Include = <path+filename>
  337.    -------------------------
  338.  
  339.    Einbinden zusätzlicher Konfigurationsdateien.  Fügt die angegebene Datei an
  340.    genau dieser Stelle in die Konfiguration ein.  Bsp:
  341.  
  342.    Include = e:\configs\colors.cfg
  343.  
  344.  
  345.  
  346.    KeyColumns = <Spaltenzahl>
  347.    --------------------------
  348.  
  349.    Gibt an, in wieviel Spalten  die  Funktionstastenbeschreibungen  angeordnet
  350.    werden  sollen.   Default  ist 4, wenn man aber kleinere Fenstergrößen oder
  351.    längere Eventnamen wählt, können 3 Spalten besser lesbar sein.
  352.  
  353.    Bsp:
  354.    KeyColumns = 3
  355.  
  356.  
  357.  
  358.    Logfile = <path+filename>
  359.    -------------------------
  360.  
  361.    Hier gibst Du  das  UniSched-Logfile  an.   Dieses Schlüsselwort sollte als
  362.    allererste Zeile in der Unisched.Cfg stehen, da nur so Konfigurationsfehler
  363.    im weiteren Verlauf der Datei, die  zum  Programmabbruch  führen,  auch  im
  364.    Logfile festgehalten werden können.
  365.  
  366.    Bsp.:
  367.    Logfile = e:\box\log\unisched.log
  368.  
  369.    Wenn  Du mehrere Kopien von UniSched gleichzeitig laufen läßt (warum sollte
  370.    man das tun?), muß jede ein anderes Logfile haben.
  371.  
  372.  
  373.  
  374.    MTask = <multitasker>
  375.    ---------------------
  376.  
  377.    Diese Option existiert nur in der  DOS-Version.  Man kann hier angeben, für
  378.    welchen Multitasker  Unisched  Timeslices  freigeben  soll.   Normalerweise
  379.    erkennt  Unisched  den  Multitasker  automatisch,  aber  manche Multitasker
  380.    lassen  sich  nicht  erkennen  (z.B.  Topview),  und  manchmal  klappt  die
  381.    Erkennung  nicht  richtig  (z.B.  Windows  NT).   Für  <multitasker> können
  382.    folgende Strings eingesetzt werden:
  383.  
  384.      DESQview    Quarterdeck DESQview
  385.      PC-MOS      PC-MOS (von wem war das doch gleich?)
  386.      Windows     Windows 3.1, 95 und NT
  387.      DoubleDOS   DoubleDOS
  388.      OS/2        Warum nicht gleich UNISCHE2.EXE nehmen? ;-)
  389.      TopView     TopView
  390.      Multilink   Multilink
  391.      BIOS        Timeslicing über BIOS
  392.      Generic     Timeslicing über Multiplexerinterrupt
  393.      None        Timeslicing ganz ausschalten
  394.  
  395.    Beachte auch  die  zugehörige  Einstellung  von  "ExcessiveSlicing"  (siehe
  396.    oben).
  397.  
  398.  
  399.  
  400.    Outbound = <path>
  401.    -----------------
  402.  
  403.    Gibt  den  Basispfad  des statischen (Binkley-) Outbounds an.  Diese Angabe
  404.    wird für das Erzeugen von Polls beim Uplink benötigt und ist obligatorisch.
  405.    Auch wenn Du keinen  Binkley-Outbound  hast  und/oder die Poll-Funktion gar
  406.    nicht nutzen willst, mußt Du hier was angeben.  Nimm dann halt  irgend  ein
  407.    leeres Verzeichnis.
  408.  
  409.    Bsp.:
  410.    Outbound = e:\box\binkley\outbound
  411.  
  412.    Die  Outbound-Verzeichnisse  anderer  Zonen  (outbound.0f2  usw.) errechnet
  413.    UniSched selbst.  Wenn Du  allerdings  ein vollständiges Domain-Setup hast,
  414.    wo die Outbound-Pfad anders heißen (z.B.  Zone  456,  Domain  mediaserve.de
  415.    führt  zu  mediaser.1c8 statt outbound.1c8), mußt Du diese Verzeichnisse in
  416.    der Config wie folgt angeben:
  417.  
  418.  
  419.  
  420.    <Zonennummer> = <Outboundbasisname>
  421.    -----------------------------------
  422.  
  423.    Das Domain-Setup.   Braucht  man,  wenn  der  Outbound  für  Zone 456 nicht
  424.    Outbound.1c8, sondern Mediaser.1c8 heißt.  (Domainesetup bei  Binkley;  bei
  425.    McMail  verändert  sich  der  Outboundname  auch  bei eingetragenen Domains
  426.    nicht).   Wichtig:   Bei   Outboundbasisname  den  tatsächlichen  Pfadnamen
  427.    angeben, *nicht* den eigentlichen Domainnamen.  Die  Zonennummer  muß  aber
  428.    dezimal angegeben werden.  Beispiel:
  429.  
  430.    Zonennummer:    Domainname:     Outboundverzeichnisname:
  431.    1               fidonet         e:\inout\outbound.001
  432.    2               fidonet         e:\inout\outbound
  433.    ...
  434.    6               fidonet         e:\inout\outbound.006
  435.    9               virnet          e:\inout\virnet.009
  436.    242             fido.de         e:\inout\fidode.0f2
  437.  
  438.    Eine solche Outboundkonfiguration wird in Unisched eingetragen als:
  439.  
  440.    Zone = 2
  441.    Outbound=e:\inout\outbound
  442.    9   = Virnet
  443.    242 = FIDODE
  444.  
  445.    Man beachte: fidode, NICHT fido.de, aber 242, NICHT 0f2.
  446.  
  447.  
  448.  
  449.    Pipe = <pipename>
  450.    -----------------
  451.  
  452.    Schreibt  Unisched-Logmeldungen  in  eine  Named  Pipe,  aus  der  sie   mit
  453.    Snooper-Programmen  wie  PMPIPER,  PIPEMAN,  RXSNOOP  u.a. ausgelesen werden
  454.    können.  Nützlich, wenn  man  einen  auf  dem  Server laufenden Unisched von
  455.    einem anderen Rechner aus überwachen will.  Beispiel:
  456.  
  457.    Pipe = \\pipe\unisched
  458.  
  459.    Unisched unterstützt bei Pipes übrigens auch  Reconnects,  im  Gegensatz  zu
  460.    Binkley und anderen, die in dem Fall immer neu gestartet werden müssen.
  461.  
  462.    Eine  Pipe sollte nur konfiguriert werden, wenn sie auch tatsächlich benutzt
  463.    wird, da dies sonst den Start von Unisched unnötig verzögert.
  464.  
  465.  
  466.  
  467.    PipeLog = <Loglevels>
  468.    -----------------------
  469.  
  470.    Gibt an, welche Arten von Meldungen in die Named  Pipe  geschrieben  werden
  471.    sollen.    Syntax  und  verfügbare  Loglevels  ist  genau  gleich  wie  bei
  472.    "DiskLog".
  473.  
  474.  
  475.  
  476.    ResetDialCounters = Yes | No
  477.    ----------------------------
  478.  
  479.    Vor    einem   Poll   grundsätzlich   alle   Nodial-Marks,   Dial-Counters,
  480.    Overtry-Marks etc. des  betreffenden  Nodes  löschen.   Kann man alternativ
  481.    aber statt hier global auch nur für einzelne Polls über RDC bei der  Aktion
  482.    POLL definieren (siehe dort).
  483.  
  484.  
  485.  
  486.    RescanSema = <path+filename>
  487.    ----------------------------
  488.  
  489.    Name  der  Semaphore-Datei,  die Deinen Mailer dazu bewegt, einen Rescan zu
  490.    machen.   UniSched  muß  einen  solchen  z.B.  beim  Erzeugen  eines  Polls
  491.    auslösen.
  492.  
  493.    Bsp:
  494.    RescanSema = e:\box\sema\btrescan.flg
  495.    RescanSema = e:\box\sema\mcmscan.all
  496.  
  497.    UniSched kann auch nur auf der  Line, die konkret pollen soll, einen Rescan
  498.    auslösen.  Die Linenummer wird dann erst von  UniSched  in  den  Dateinamen
  499.    eingefügt.   Die  Stelle,  an  der die Nummer eingefügt wird, wird wie in C
  500.    üblich eingetragen:
  501.  
  502.    %d für dezimal
  503.    %03d für dezimal, aber immer drei Stellen, ggf. mit 0en auffüllen
  504.    %x für hexadezimal
  505.    %02x für hex, aber immer zwei Stellen, ggf. mit Nullen auffüllen
  506.    etc.
  507.  
  508.    Bsp.:
  509.    RescanSema = e:\box\sema\mcmscan.%d
  510.  
  511.    Dies führt dann  zu  mcmscan.1,  mcmscan.2  usw.,  je  nachdem, welche Line
  512.    gewünscht ist.
  513.  
  514.    Es können bis zu zehn verschiedene  "RescanSema"-Zeilen  angegeben  werden.
  515.    Dies  ist  dann  interessant,  wenn  man  im  Wechsel  verschiedene  Mailer
  516.    (Binkley,  McMail,  ...)  benutzt  und  immer  für  alle  gleichzeitig  die
  517.    richtigen Semaphoren erstellen möchte.
  518.  
  519.  
  520.  
  521.    Registername = <Name>
  522.    Registerkey = <Key>
  523.    ---------------------
  524.  
  525.    Überweis' mir zehn Mark,  und  ich  sage  Dir,  was Du hier eintragen mußt.
  526.    :-)))
  527.  
  528.  
  529.  
  530.    ScreenLog = <Loglevels>
  531.    -----------------------
  532.  
  533.    Gibt  an,  welche  Arten  von  Meldungen  im Log-Fenster auf dem Bildschirm
  534.    erscheinen sollen.  Syntax und  verfügbare  Loglevels  ist genau gleich wie
  535.    bei "DiskLog".
  536.  
  537.  
  538.  
  539.    SemaDir = <Pfadname>
  540.    --------------------
  541.  
  542.    Hier kannst Du Dein Semaphorenverzeichnis eintragen  (das  Verzeichnis,  in
  543.    dem  die Signaldateien mit Nullänge liegen, über die verschiedene Programme
  544.    untereinander kommunizieren).   Semaphoren  können  hinterher auch woanders
  545.    sein, dies ist nur das Default-Verzeichnis, das verwendet wird, wenn Du  in
  546.    der Event-Action-Config keinen expliziten Pfad für eine bestimmte Sempahore
  547.    angibst.   SemaDir  wirkt  sich  nur auf diejenigen Semaphoren-Definitionen
  548.    aus,  die  in  der  Konfigurationsdatei  UNTERHALB  des  SemaDir-Statements
  549.    stehen.  Deshalb schreibt man  SemaDir  am  Besten  GANZ  AN DEN ANFANG der
  550.    KONFIGURATIONSDATEI.
  551.  
  552.    Bsp.:
  553.    SemaDir = e:\box\sema
  554.  
  555.  
  556.  
  557.    SmallWindow = On | Off
  558.    ----------------------
  559.  
  560.    Mit SmallWindow = On benutzt UniSched statt 80x25 nur 66x18  Zeichen.   Das
  561.    macht unter DESQview Sinn, wenn man eine kleinere Fenstergröße einstellt.
  562.  
  563.    Unter  OS/2  wird  dieser  Parameter  von  zukünfitgen Versionen nicht mehr
  564.    unterstützt werden.  Unter OS/2 kann  man  vor  dem Start von UniSched über
  565.    Kommandozeile mittles MODE beliebige Fenstergrößen einstellen (zum Beispiel
  566.    MODE CO66,80), die UniSched automatisch erkennt und sich dann  entsprechend
  567.    anpaßt.
  568.  
  569.    Bsp.:
  570.    SmallWindow = Off
  571.  
  572.  
  573.  
  574.    SpawnInit = $Aktionsname
  575.    ------------------------
  576.  
  577.    Führt  die  angegebene  Aktion  einmalig bei Programmstart aus.  Was Du bei
  578.    $Aktionsname eintragen kannst, erfährst Du  in  Abschnitt 3.1.  Es sind bis
  579.    zu 16 SpawnInit-Angaben zulässig.
  580.  
  581.    Bsp:
  582.    SpawnInit = $Begrüßungslied
  583.  
  584.    Hinweis für OS/2-User:  Was NICHT funktioniert, ist sowas wie "SpawnInit  =
  585.    EXEC MODE CO150,80".  Wenn man die VIO-Fenstergröße verändern will, muß man
  586.    dies  echt vor dem Aufruf von Unisched machen (in einer CMD), weil UniSched
  587.    das sonst nicht merkt (liegt  an  Beschränkungen meines Compilers, nicht an
  588.    mir ...).
  589.  
  590.  
  591.  
  592.    Zone = <nr>
  593.    -----------
  594.  
  595.    Hier gibst Du Deine "Heimatzonennummer" an (Europa:  2,  USA:   1).   Diese
  596.    Angabe  ist obligatorisch, da sie für die korrekte Ermittlung der Namen der
  597.    Outbound-Verzeichnisse notwendig ist.  Wenn Du keinen Binkley-Outbound hast
  598.    und/oder die Pollfunktion nicht  nutzen  willst, gibst Du einfach irgendwas
  599.    an.
  600.  
  601.    Bsp.:
  602.    Zone = 2
  603.  
  604.  
  605.  
  606.    ColBorder          = <nr>
  607.    ColKeys            = <nr>
  608.    ColKeyDescriptions = <nr>
  609.    ColHeadLine        = <nr>
  610.    ColEvent           = <nr>
  611.    ColLog             = <nr>
  612.    -------------------------
  613.  
  614.    Farbnummern, falls die Defaults nicht gefallen, und zwar  wird  die  Nummer
  615.    berechnet über Vordergrundfarbe+16*Hintergrundfarbe aus folgender Tabelle:
  616.  
  617.                 │     │Hinter-│Vorder-                  │     │Hinter-│Vorder-
  618.    Farbe        │ Wert│grund? │grund?      Farbe        │ Wert│grund? │grund?
  619.    ═════════════╪═════╪═══════╪═══════    ══════════════╪═════╪═══════╪═══════
  620.    BLACK        │  0  │ Ja    │ Ja         DARKGRAY     │  8  │ Nein  │ Ja
  621.    BLUE         │  1  │ Ja    │ Ja         LIGHTBLUE    │  9  │ Nein  │ Ja
  622.    GREEN        │  2  │ Ja    │ Ja         LIGHTGREEN   │ 10  │ Nein  │ Ja
  623.    CYAN         │  3  │ Ja    │ Ja         LIGHTCYAN    │ 11  │ Nein  │ Ja
  624.    RED          │  4  │ Ja    │ Ja         LIGHTRED     │ 12  │ Nein  │ Ja
  625.    MAGENTA      │  5  │ Ja    │ Ja         LIGHTMAGENTA │ 13  │ Nein  │ Ja
  626.    BROWN        │  6  │ Ja    │ Ja         YELLOW       │ 14  │ Nein  │ Ja
  627.    LIGHTGRAY    │  7  │ Ja    │ Ja         WHITE        │ 15  │ Nein  │ Ja
  628.  
  629.    Beispiel: Roter Vordergrund, grüner Hintergrund = 4+16*2 = 36, also z.B.
  630.    ColKeys = 36
  631.  
  632.  
  633.  
  634.   3.3. Events und Actions
  635.   -----------------------
  636.  
  637.   3.3.1 ACTIONS
  638.   -------------
  639.  
  640.   Wie  bereits erwähnt:  UniSched reagiert auf Ereignisse (EVENT) mit Aktionen
  641.   (ACTION).   Bevor  wir  Events  festlegen,  müssen  wir  erst  die  Aktionen
  642.   definieren (*was* soll UniSched tun?).
  643.  
  644.   Eine  Definition einer Aktion beginnt immer mit einem $-Zeichen, gefolgt von
  645.   dem Name der  Aktion  (NUR  Buchstaben  und  der  Unterstrich!!!).  Dann ein
  646.   Gleichheitszeiten, und dahinter die eigentliche Aktion.
  647.  
  648.   Bsp.:
  649.   $HUB_ANRUFEN = POLL 2:2476/404 crash 2
  650.  
  651.   Im Folgenden wird nun die Syntax aller  Aktionen  erklärt,  die  hinter  dem
  652.   Gleichheitszeichen verwendet werden können:
  653.  
  654.  
  655.      BEEP [<Frequenz> [<Dauer>]]
  656.      ---------------------------
  657.  
  658.      Gibt einen Piepton aus.  Frequenz und Dauer können angegeben werden in
  659.      Hertz bzw.  Millisekunden; werden sie weggelassen, werden 1000 Hz und 100
  660.      ms angenomen (kurzer Piepser).
  661.  
  662.      Anwendungsgebiete:  Weck-Piepser, Stündliches Piepsen wie bei Armbanduhr,
  663.      ...
  664.  
  665.      Bsp.:
  666.      $LANG_UND_LAUT = BEEP 800 4000
  667.      $PIEPSIG = BEEP 1000 80
  668.  
  669.      Wer mehr machen will als nur einen Piepston ausgeben, der sollte sich die
  670.      Aktion "PLAY" in Verbindung mit MUS-Dateien ansehen.
  671.  
  672.  
  673.      EXEC <command>
  674.      --------------
  675.  
  676.      UniSched  führt  das  externe  Programm  <command>  aus und wartet dessen
  677.      Beendigung  ab.   <command>   wird   dabei  an  den  Kommando-Interpreter
  678.      (COMMAND.COM, CMD.EXE) übergeben, so daß neben  EXE-  und  COM-Programmen
  679.      auch BAT- und CMD-Dateien ausgeführt werden können ebenso wie Befehle des
  680.      Kommando-Interpreteres (z.B. COPY). Also nochmal:
  681.  
  682.      > Alles, was hinter EXEC kommt, wird genauso ausgeführt,  als  würde  man
  683.      > von  UniSched aus eine DOS/OS/2Shell gehen und dort genau diesen String
  684.      > eingeben.
  685.  
  686.      Bsp.:
  687.      $MAIL_Exportieren = EXEC e:\box\batch\export.bat
  688.  
  689.      Ein Tip für OS/2-User:  Wenn der Tosser in einem separaten Task gestartet
  690.      werden soll, so daß UniShed nicht das Tossen abwarten muß, sondern sofort
  691.      wieder aktiv wird, kann das START-Kommando von OS/2 verwendet werden:
  692.  
  693.      Bsp.:
  694.      $MAIL_Importieren = EXEC START /C /MIN e:\box\batch\import.cmd
  695.  
  696.      Der  Paramter  /C  bewirkt,  daß  das  Fenster  der IMPORT.CMD nach deren
  697.      Beendigung wieder geschlossen wird.
  698.  
  699.      Man muß sich bei  dem  Tossen  via  START  allerdings bewußt sein, daß es
  700.      passieren könnte, daß UniSched kurz hintereinander zweimal die IMPORT.CMD
  701.      startet, so daß wieder gleichzeitig von  zwei  Tasks  getosst  wird,  was
  702.      unweigerlich  zu  Datenmüll  führt.   Eine  entsprechende  Vorkehrung muß
  703.      deshalb in der IMPORT.CMD getroffen werden.
  704.  
  705.  
  706.  
  707.      EXIT <errorlevel>
  708.      -----------------
  709.  
  710.      Unisched beendet sich mit <errorlevel>.  Dies ist nützlich, wenn UniSched
  711.      selbst aus einer Batch heraus  aufgerufen wird.  Der Errorlevel kann dann
  712.      von der Batch ausgewertet werden, um das passende  Programm  zu  starten.
  713.      Gegenüber  dem  direkten  Starten  eines  Programmes  mit  EXEC hat diese
  714.      Methode den Vorteil, daß  UniSched  während der Ausführung des Programmes
  715.      sich nicht mehr im Speicher befindet, so daß ca.  60KB mehr zu  Verfügung
  716.      zu stehen.
  717.  
  718.      Bsp:
  719.      $TOSSER_UEBER_BATCH_STARTEN = EXIT 80
  720.  
  721.  
  722.  
  723.      IGNORE
  724.      ------
  725.  
  726.      Tut schlicht und ergreifend nichts.
  727.  
  728.  
  729.  
  730.      PLAY <filename.MUS>
  731.      -------------------
  732.  
  733.      Spielt   die    angegebene    MUS-Datei    ab.    MUS-Dateien   enthalten
  734.      Klartext-Kommandos, die in der Syntax ganz ähnlich sind wie BEEP:
  735.  
  736.         TONE <frequenz> <hundertstelsekunden>
  737.         WAIT <hundertstelsekunden>
  738.  
  739.      Man kann damit selbst komponieren, wenn man Lust hat.  Es handelt sich um
  740.      das Format, in dem auh die Proboard- und  Remote  Access  -  Musikdateien
  741.      (Pagesongs)  gehalten  sind.   Ein paar Beispiel-MUS-Dateien kann man bei
  742.      mir (2:2476/418) unter UAPS10.ARJ requesten.
  743.  
  744.      In der OS/2-Version werden die  Kunstwerke im Hintergrund abgespielt, die
  745.      Abarbeitung von Events wird also nicht aufgehalten.  Das  Abspielen  kann
  746.      mit der Aktion ABORTMUSIC abgebrochen werden.  Bsp:
  747.  
  748.      $Wecker = PLAY f:\box\pb\Wecker.MUS
  749.      $Jajajaistjagut = ABORTMUSIC
  750.  
  751.      In der DOS-Version muß man den Wecker bis zum Ende ertragen ...
  752.  
  753.  
  754.  
  755.      PLAY <filename.WAV|.MID>
  756.      ------------------------
  757.  
  758.      Spielt  die  angegebene WAV- oder MID-Datei ab.  Diese Aktion funktioniert
  759.      nur in der OS/2-Version und erfordert installierten MMPM/2.  Das Abspielen
  760.      erfolgt im Hintergrund.
  761.  
  762.      Bsp:
  763.      $Bigben = PLAY f:\sounds\gong.wav
  764.  
  765.  
  766.  
  767.      POLL <node> [<flavour>] [COND] [RDC] [LINE<linenr>]
  768.      ---------------------------------------------------
  769.  
  770.      Legt im Binkley-Outbound einen Poll für <nodenumber> an.  Die Reihenfolge
  771.      der Paramter ist wie obenstehend angegeben einzuhalten.
  772.  
  773.      <node>:        Nodenummer in 3D oder 4D
  774.      <flavour>:     Folgende   Flavours  können  angegeben  werden:   "crash",
  775.                     "immediate",  "direct",  "normal",  "hold"  (Unsinn, oder?
  776.                     ;-), "poll".   Man  beachte,  daß  "immediate"  nicht  bei
  777.                     BinkleyTerm  funktioniert,  und  daß "poll" ausschließlich
  778.                     bei McMail ab Gamma  5 implementiert ist.
  779.                     (Ebenfalls  möglich  sind die Flavours FL0 bis FL9.  Diese
  780.                     generieren FLO-Pakete der Art  0LO  bis  9LO.  Dies ist in
  781.                     einem Draft für  einen  erweiterten  Binkley-Outbound  vom
  782.                     BT-XE-Team  spezifiert,  aber  noch  nicht  konkret in die
  783.                     Praxis umgesetzt ... außer in Unisched ;-)
  784.      COND:          Wird diese Zeichenfolge angegeben, so wird  der  Poll  nur
  785.                     ausgeführt,  wenn  für  die  angegebene Nodenummer bereits
  786.                     irgendetwas da liegt.
  787.      RDC:           Abkürzung  für  "Reset  Dial  Counters".   Wenn angegeben,
  788.                     werden vor Anlegen des Polls alle Dial Counter, Busy Marks
  789.                     u.ä.  entfernt.   Dies  sind  die  Dateien <nodenetz>.$??,
  790.                     .&??, .#?? und .-??.  Ich  hoffe,  damit  alle  derartigen
  791.                     Flags  aller üblichen Mailer erschlagen zu haben ...  Wenn
  792.                     man das sowieso bei  jedem  Poll  machen lassen will, kann
  793.                     man, statt bei jedem einzelnen Poll RDC angeben zu müssen,
  794.                     auch global  "ResetDialCounters=Yes"  in  das  Config-File
  795.                     aufnehmen.
  796.      <line>:        Gibt die Nummer der Line  an, die den Poll ausführen soll.
  797.                     Falls bei "RescanSema" (s.o.)  die  %-Parameter  verwendet
  798.                     wurden,  sollte  die  Linenummer  immer  angegeben werden,
  799.                     damit UniSched auf der  richtigen Line den Rescan auslösen
  800.                     kann (so  daß  der  Mailer  von  dem  Poll  überhaupt  was
  801.                     mitkriegt).  Man beachte, daß zwar der Rescan dann nur für
  802.                     die  entsprechende  Line  angelegt  wird,  daß man so aber
  803.                     nicht verhindern kann,  daß  evtl.  nicht doch eine andere
  804.                     Line rauswählt.  Ausnahme:  Bei dem  Flavour  "Poll",  der
  805.                     nur  von  McMail  unterstützt  wird,  wird  ein spezieller
  806.                     Line-Poll angelegt, der bewirkt, daß definitv keine andere
  807.                     Line rauswählt.
  808.                     Es  ist  mehr  als  ein  LINEx-Statement  zulässig, jedoch
  809.                     werden  zusätzliche  LINEx-Statements  nur  zum  Erstellen
  810.                     zusätzlicher     Rescan-Semaphoren     verwednet.      Ein
  811.                     McMail-Taskpoll wird immer nur für  die  erste  angegebene
  812.                     Line erstellt.
  813.                     Die maximale Line-Nummer beträgt 32,  alles  darüber  gibt
  814.                     einen  Syntax-Error.   (Wer  mehr  als 32 Lines fährt, ist
  815.                     vermutlich neureich und kann  mir gern eine größere Spende
  816.                     zukommen lassen, in dem Fall erweitere ich die Anzahl  der
  817.                     möglichen Lines gerne <g>).
  818.  
  819.      Beispiele:
  820.      $POLL_Hub = Poll 2:2476/998 crash rdc line2 line 3
  821.        Pollt im Flavour "crash" bei 2:2476/998, rescannen sollen die Lines
  822.        2 und 3. Vorher Busy-Marks und Dialcounters löschen.
  823.      $Requeste_bei_Niels = Poll 2:2476/999 immediate cond line1
  824.        Falls was für 2:2476/999 da liegt  (z.B. Requests, die tagsüber mit dem
  825.        Flavour direct erstellt wurden), dort sofort mit Line 1 pollen.
  826.  
  827.  
  828.  
  829.      REFLAVOUR <node> [<oldflavour>] [<newflavour>] [RDC] [COND] [LINE<line#>]
  830.      -------------------------------------------------------------------------
  831.  
  832.      Setzt im Binkley-Outbound alle  Mails  für  den angegebenen Node, die mit
  833.      Flavour "oldflavour" im Outbound liegt, auf den Flavour "newflavour" um.
  834.  
  835.      <node>:        Nodenummer in 3D oder 4D
  836.      <oldflavour>:  Hier sind alle Flavours zulässig, die auch bei POLL (siehe
  837.      <newflavour>:  dort) zulässig sind.
  838.      [RDC] [LINE#]: Haben beide die gleiche Bedeutung wie bei POLL (denn auch
  839.                     REFLAVOUR läßt natürlich den Mailer hinterher rescannen).
  840.      [COND]:        Das "Reflavouring" wird nur durchgeführt, falls bereits
  841.                     Mail mit dem angegebenen neuen Flavour existiert.
  842.  
  843.      Man  beachte  dabei,  daß  UniSched ungepackte Mail (?UT-Pakete) nur dann
  844.      "reflavouren" kann, wenn NOCH KEINE  Mail mit dem angegebenen Zielflavour
  845.      vorhanden ist.  (Falls  doch,  wird  eine  Warnung  ausgegeben,  und  die
  846.      ungepackte  Mail  nicht  geändert  -  man muß also nicht Angst haben, daß
  847.      etwas  überschrieben  wird).   Bei  Arcmail/Files  (?LO-Pakete)  ist  das
  848.      dagegen kein Problem  -  Hier  wird  z.B.  Hold-Mail  auch dann auf Crash
  849.      geändert, wenn bereits CLO-Pakete existieren.
  850.  
  851.      Das ganze hat zwei wichtige Anwendungsgebiete.  Erstens  kann  man  damit
  852.      Polls  wieder  löschen.   Bsp:   Du pollst um 2 Uhr Deinen GFD-Uplink an.
  853.      Falls Du jedoch bis 4 Uhr  noch  nicht durchgekommen bist, möchtest Du an
  854.      dem Tag nich mehr pollen (Telefongebühren ...):
  855.  
  856.      $POLL_GFDnet   = POLL 2:2476/999 crash
  857.      $UNPOLL_GFDnet = REFLAVOUR 2:2476/999 crash normal
  858.      #001 02:00 03:59    = $POLL_GFDnet
  859.      #002 04:00 10:00    = $UNPOLL_GFDnet
  860.  
  861.      (Ich   weiß,   es    ist    blöd,    daß    dieses    Beispiel    bereits
  862.      Zeit-Event-Definitionen  enthält,  obwohl die erst unten behandelt werden
  863.      ...
  864.  
  865.      Ein  weiterer   möglicher   Anwendungsfall   ist   das,   was  ehemaligen
  866.      Frontdoor-Sysops als "UNHOLD" bekannt ist.  Wenn jemand z.B. sein  System
  867.      so  konfiguriert,  daß  es  während des Billigtarifs auch für Direct-Mail
  868.      rauswählt (z.B. eine  gute  Möglichkeit,  File-Requests  in  die Nacht zu
  869.      verlegen), muß er,  da  der  Mailer  nicht  zwischen  Normal  und  Direct
  870.      unterscheidet,  die Echomail auch für seinen Uplink HOLD packen, weil der
  871.      sonst auch in der fraglichen  Zeit  immer angerufen würde, sobald für ihn
  872.      etwas auf Hold liegt.  - Damit die  Mail  für  den  Uplink  nun  trotzdem
  873.      rausgeht,  wenn  man  "absichtlich" bei ihm anruft, muß man vor dem Anruf
  874.      diese wieder auf "Normal" setzen:
  875.  
  876.      $POLL_OLAF   = POLL 2:246/9999 crash
  877.      $UNHOLD_OLAF = REFLAVOUR 2:246/9999 hold normal
  878.      $Olaf_Anrufen = $UNHOLD_OLAF $POLL_OLAF
  879.  
  880.  
  881.  
  882.      REMOVE <filename>
  883.      -----------------
  884.  
  885.      Löscht die Datei  <filename>.   Sinn  dieses  Befehls  und Beispiele siehe
  886.      unter SEMAPHORE.  Wildcards sind (seit der Wide Beta  07)  erlaubt.   Wird
  887.      kein    Verzeichnispfad    angegeben,    wird    das    zuvor   definierte
  888.      Semaphoren-Verzeichnis verwendet.
  889.  
  890.  
  891.  
  892.      REQUEST <filename> [!<password>] <nodenumber> [<flavour>] [LINE<line#>]
  893.      -----------------------------------------------------------------------
  894.  
  895.      Requestet  beim  angegebenen  Node   die  angegebene  Datei.   Außer  dem
  896.      Filerequest selbst wird auch ein Poll  angelegt,  damit  der  Filerequest
  897.      auch  verschickt wird, daher sind die restlichen Parameter auch identisch
  898.      mit denen der Aktion POLL.
  899.  
  900.      Beispiel1:
  901.        $Request_Private_Filelist = REQUEST PVTFILES !GEHEIM 9:99/999 crash 2
  902.        $Request_BLAND_Files = REQUEST FILES 2:2476/418 crash 1
  903.  
  904.  
  905.  
  906.      SEND <filename> <nodenumber> [<flavour>] [kfs | tfs] [LINE<line#>]
  907.      ------------------------------------------------------------------
  908.  
  909.      Verschickt eine  Datei  an  den  angegebenen  Node.   Die  Parameter sind
  910.      identisch wie bei REQUEST.  Zusätzlich gibt es noch:
  911.  
  912.      kfs:  Steht für "kill file when sent":  Die Datei wird nach dem Versenden
  913.            gelöscht.
  914.      tfs:  Steht für "truncate file  when  sent":  Die  Datei  wird  nach  dem
  915.            Versand auf Nullänge gesetzt.
  916.  
  917.      Beispiel:
  918.        $Send_Hubdiff = SEND 24760900.UPD 2:2476/1 crash line2
  919.  
  920.  
  921.  
  922.      RESTART
  923.      -------
  924.  
  925.      Initialisiert  Unisched  neu.   Dabei  wird  auch  das  Config-File   neu
  926.      eingelesen.
  927.  
  928.  
  929.  
  930.      SEMAPHORE <filename>
  931.      REMOVE <filename>
  932.      --------------------
  933.  
  934.      Die  Aktion  SEMAPHORE  legt  die  Semaphorendatei  <filename>  an.  Eine
  935.      Semaphore-Datei ist  eine  Datei  mit  Nulllänge,  über  die  man anderen
  936.      Programmen bestimmte Dinge signalisieren kann.  Über bestimmte Semaphoren
  937.      kann man z.B.  das  Verhalten  des  Mailers  beeinflussen.   Entsprechend
  938.      löscht die Aktion REMOVE die angegebene Datei (Vorsicht:  Dies geht nicht
  939.      nur bei Semaphoren, sondern auch bei Dateien, die nicht Nullänge haben!).
  940.      REMOVE   nimmt   ebenso   wie  SEMAPHORE  das  Semaphore-Verzeichnis  als
  941.      Standardverzeichnis.
  942.  
  943.      So  könnte  z.B.  die  Sempahore   BTFREEZE.01  angelegt  werden,  um  zu
  944.      verhindern, daß der Binkley-Task Numero 1  weiterhin  abhebt  oder  sonst
  945.      irgendwas  tut.   Wenn  Binkley  wieder  aktiv  werden  darf, muß die von
  946.      Binkley nach dem freezing angelegte Datei BTFROZEN.01 gelöscht werden.
  947.  
  948.      (Hinweis:  Manchmal  kann  es  einfacher  sein,  Semaphoren  von  der die
  949.      eigentliche Aktion ausführenden Batch  aus  mit  ECHO>SEMAPHORE.SEM  bzw.
  950.      DEL SEMAPHORE.SEM erstellen und löschen zu lassen).
  951.  
  952.      Wird kein Pfadname angegeben, wird die Datei im zuvor in der Config
  953.      definierten Sempahoren-Verzeichnis angelegt.
  954.  
  955.      $Freeze_BT1 = SEMAPHORE BTFREEZE.01
  956.      $Unfreeze_BT1 = REMOVE e:\mailer\bt\flags\BTFROZEN.02
  957.  
  958.  
  959.   3.3.2 Rekursionen
  960.   -----------------
  961.  
  962.   Bei  der  Definition  von  ACTIONS  sind übrigens auch Rekursionen zulässig.
  963.   Beispiel:
  964.  
  965.   $Tobias_Pollflag = POLL 2:2476/418 crash
  966.   $Tobias_Unhold   = REFLAVOUR 2:2476/418 hold normal
  967.   $Tobias_Anrufen  = $Tobias_Unhold $Tobias_Pollflag
  968.  
  969.   Die Reihenfolge der Defintion im  Config-File ist beliebig, die letzte Zeile
  970.   im obigen Beispiel hätte also durchaus auch als erste dastehen können.
  971.  
  972.  
  973.   3.3.3 EVENTS
  974.   ------------
  975.  
  976.   So, jetzt haben wir bereits  Aktionen definiert, die UniSched u.U. ausführen
  977.   soll, und ihnen Namen gegeben.  Jetzt müssen wir nur noch festlegen,  *WANN*
  978.   UniSched diese Aktionen ausführen soll:
  979.  
  980.   Es  gibt vier mögliche Bedingungen (Ereignisse, EVENTS):  Semaphore-Dateien,
  981.   statische Zeit-Events, periodische Events und Funktionstasten.
  982.  
  983.  
  984.      Funktionstasten
  985.      ---------------
  986.  
  987.      Syntax: Key<key> = $<action name> [$<action2 name> .. $<actionn name>]
  988.  
  989.      Dies ist die einfachste Sorte  von  Event.   Sie dient dazu, daß man alle
  990.      von  UniSched  verwalteten   Funktionen   auch   von   Hand   über   eine
  991.      Funktionstaste starten kann.  Derzeit definiert sind folgende Tasten:
  992.  
  993.      KeyF1 .. KeyF10
  994.      KeySF1 .. KeySF10 (SF steht für Shift+Fkt.)
  995.      KeyAltA .. KeyAltZ (Ausnahme: Alt+X, damit wird nämlich UniSched beendet)
  996.      KeyAlt0 .. KeyAlt9
  997.      KeyS0 .. KeyS9 (Shift + 0 .. Shift + 9)
  998.      Key0 .. Key9
  999.      KeyESC
  1000.  
  1001.      Bsp.:
  1002.      KeyF3 = $Mail_Exportieren
  1003.      KeyAltI = $Mail_Importieren $WAV_Abspielen
  1004.  
  1005.  
  1006.      Semaphore-Dateien
  1007.      -----------------
  1008.  
  1009.      Es  gibt  seit  wb06  zwei  verschiedene Semaphore-Typen:  Flagfiles (die
  1010.      konventionellen Semapohoren) und Triggerfiles.
  1011.  
  1012.        Flagfiles ("normale Semaphoren")
  1013.        --------------------------------
  1014.  
  1015.        Syntax: *<path+filename> = $<action name> [$<action2 name> ... ]
  1016.  
  1017.        Wenn UniSched die Datei  <path+filename>  vorfindet,  löscht es sie und
  1018.        führt anschließend die angegebene Aktion aus.  Wenn der Pfadname  nicht
  1019.        mit  angegeben  wird,  wird  die  Datei  in  dem  durch  SemaDir (s.o.)
  1020.        bezeichneten Verzeichnis gesucht.
  1021.  
  1022.        Bsp.:
  1023.        *e:\box\sema\MAILIN.SEM = $MAIL_Importieren
  1024.  
  1025.        Hauptzweck der Semaphore-Funktion ist  es  wohl, den Tosser zu starten,
  1026.        wenn Mail eingegangen ist.  Dazu muß man den Mailer dazu überreden, bei
  1027.        Maileingang die besagte Semaphore-Datei anzulegen.  Schau' dazu in  die
  1028.        Doku  Deines  Mailers.   Bei  McMail und Binkley XE (nur XE!) heißt das
  1029.        zugehörige Schlüsselwort "MailFlag", wobei  man dann noch im Event-File
  1030.        den Errorlevel für Mail-Exits auf 0 setzen muß (McM) bzw.  den  Eintrag
  1031.        für  den Mail-Exit-Level ganz löschen muß (BTXE).  Bei Binkley XE heißt
  1032.        die  Datei  immer  BTMAIL.IN,  bei  McMail  kann  man  den  Namen  frei
  1033.        definieren).
  1034.  
  1035.        Bei  anderen  Mailern  muß  man  es,  findet  man  keine  entsprechende
  1036.        Funktion, notfalls über die Mailerbatch machen:  Jeder Mailer kann sich
  1037.        nach Maileingang mit einem  bestimmten  Errorlevel  beenden, und in der
  1038.        Batch kann man dann mit z.B. ECHO > MAILIN.SEM die Semaphore-Datei  von
  1039.        Hand anlegen.
  1040.  
  1041.  
  1042.  
  1043.        Triggerfiles ("daskannurunischedundsonstkeiner <g>")
  1044.        ----------------------------------------------------
  1045.  
  1046.        Syntax: ^<path+filename> = $<action name> [$<action2 name> ... ]
  1047.  
  1048.        Im  Gegensatz  zu  Flagfiles  werden  Triggerfiles  von  UniSched NICHT
  1049.        gelöscht, bevor die Aktion ausgeführt wird.  Bei Triggerfiles  muß  die
  1050.        aufgerufene  Aktion (normalerweise eine Batch) selbst dafür sorgen, daß
  1051.        die Datei gelöscht/woandershin verschoben wird.
  1052.  
  1053.        Ein typisches Anwendungsbeispiel:   Man  läßt durch ein zeitgesteuertes
  1054.        Event (s.u.) regelmäßig eine  Fileliste  requesten  und  möchte  diese,
  1055.        sobald  sie  eingetroffen ist, automatisch entpacken und in ein anderes
  1056.        Verzeichnis verschieben lassen:
  1057.  
  1058.        ^e:\mailer\inbound\24760999.zip = $Fileliste_von_999_Entpacken
  1059.  
  1060.        Es  ist  übrigens  problemlos  möglich,  daß die betreffende Aktion ein
  1061.        externes Programm in einer Hintergrundsitzung  startet und sich mit dem
  1062.        Löschen der Datei Zeit läßt.  UniSched ist nicht braindead  -  er  wird
  1063.        NIEMALS für die SELBE Trigger-Datei zweimal die gleiche Aktion starten.
  1064.        Nachdem  er erstmalig für eine Trigger-Datei eine Aktion gestartet hat,
  1065.        reagiert er zunächst nicht mehr  auf  Dateien diesen Namens im Inbound.
  1066.        Kriterium, damit UniSched auf das Auftreten einer Triggerdatei besagten
  1067.        Namens wieder reagiert, ist, daß die  Datei  zwischenzeitlich  entweder
  1068.        verschwunden  gewesen sein muß oder zumindest ihr Dateidatum/Dateilänge
  1069.        geändert hat.
  1070.  
  1071.        Ferner wird UniSched auch nie auf eine Trigger-Datei reagieren, solange
  1072.        diese nicht für Schreibzugriffe zugänglich ist.  Somit ist es - so Dein
  1073.        Mailer File-Sharing unterstützt, was heute die meisten tun - problemlos
  1074.        möglich,  als  Trigger-File   direkt   eine   Datei  im  Mailer-Inbound
  1075.        anzugeben; UniSched wird auf diese erst reagieren, wenn sie vollständig
  1076.        empfangen wurde.
  1077.  
  1078.        Und schließlich unterstützt  das  Triggerfiles-Feature  auch  Wildcards
  1079.        (Jokerzeichen).    Dabei   werden   alle   auf  das  Wildcard  passende
  1080.        Triggerfiles als Einheit betrachtet.   Will  heißen:  Wenn UniSched auf
  1081.        eine bestimmte Datei reagiert hat, reagiert es auf  beliebige  auf  das
  1082.        Wildcard  passende Dateien solange nichtmehr, bis die Datei, auf die er
  1083.        ursprünglich  reagiert  hatte,  gelöscht/wegverschoben  wird  oder  ihr
  1084.        Dateidatum ändert.
  1085.  
  1086.        Also  nochmal  deutlich:    Aktionen,   die   auf  das  Erscheinen  von
  1087.        Triggerfiles hin ausgeführt  werden,  müssen  grundsätzlich  IMMER  das
  1088.        Triggerfile löschen!
  1089.  
  1090.  
  1091.  
  1092.        invertierte Flagfiles ("invertierte normale Semaphoren")
  1093.        --------------------------------------------------------
  1094.  
  1095.        Syntax: !*<path+filename> = $<action name> [$<action2 name> ... ]
  1096.  
  1097.        Die genaue  Umkehrung  eines  Flagfiles.   Die  Aktion(en)  wird/werden
  1098.        ausgelöst,  wenn  die  Datei <path.filename> nicht existiert.  Unisched
  1099.        erstellt die Datei daraufhin sofort selbst wieder neu.
  1100.  
  1101.        Dieses Feature läßt sich  z.B.  um  von  einem  anderen Programm aus zu
  1102.        kontrollieren, ob Unisched noch "am Leben ist".  Hierzu wird nicht  mal
  1103.        eine spezielle Aktion benötigt.  Bsp.:
  1104.  
  1105.        !*e:\flags\unisched.alv = IGNORE
  1106.  
  1107.  
  1108.        invertierte Triggerfiles
  1109.        ------------------------
  1110.  
  1111.        Syntax: !^<path+filename> = $<action name> [$<action2 name> ... ]
  1112.  
  1113.        Hier wird wie folgt vorgegangen:  Die Aktion(en) wird/werden ausgelöst,
  1114.        wenn  die  angegebene  Datei  nicht  exisitert.   Anschließend wird die
  1115.        Aktion so lange  nicht  wieder  ausgelöst,  wie  die Datei verschwunden
  1116.        bleibt.  Unisched registriert intern, wenn die Datei erneut  erscheint,
  1117.        und  erst,  wenn  sie  nach einem erneuten Erscheinen anschließend dann
  1118.        wieder verschwindet, wird die Aktion wieder ausgelöst.
  1119.  
  1120.        Wildcards sind hier nicht zulässig.
  1121.  
  1122.        Praktisches Anwendungsbeispiel: Weiß jemand eines? ;)
  1123.  
  1124.  
  1125.  
  1126.      Statische Zeitgesteuerte Events
  1127.      -------------------------------
  1128.  
  1129.      Die Bezeichnung "statisch" dient der  Unterscheidung mit den weiter unten
  1130.      erläuterten periodischen Events.  Statische Events sind  am  ehesten  mit
  1131.      dem  vergleichbar,  was  man  auch  von den eingebauten Schedulern vieler
  1132.      Mailer her  kennt.   Allerdings  handhabt  UniSched  auch  die statischen
  1133.      Events   etwas   anders   (besser!    ;-)   als   die   meisten   Mailer.
  1134.      Erfahrungsgemäß verursacht dies zunächst leichte Verständnisprobleme  ...
  1135.      lies Dir bitte die Doku sorgfältig durch, bevor Du damit rumspielst.  ;-)
  1136.  
  1137.  
  1138.      Syntax:
  1139.      #<nr> <from> <to> [<weekday>] [<fromdate> <todate>] [even|odd] = $<action>
  1140.  
  1141.      <nr>:      Nummer des  Events,  UniSched  bestimmt,  ob  das  Event schon
  1142.                 ausgeführt wurde oder nicht.   Diese  Nummer  dient  lediglich
  1143.                 dazu,  das  Event  eindeutig  zu  identifizieren.  Die Nummern
  1144.                 müssen  nicht  aufeinanderfolgend  sein,  es  muß  auch  keine
  1145.                 Reihenfolge eingehalten werden  (ein  Event, das später kommt,
  1146.                 darf problemlos eine niedrigere Nummer haben) -  das  einzige,
  1147.                 was  man  beachten  muß,  ist,  daß  man nicht zwei Events die
  1148.                 gleiche Nummer geben darf (sollte ...)
  1149.  
  1150.                 Wenn man an der Config  was ändert, sollte man gleichbleibende
  1151.                 Events nicht umnumerieren, ansonsten werden sie nämlich an dem
  1152.                 Tag,  an  dem  man  an  der  Config  rumbastelt  u.U.  nochmal
  1153.                 ausgeführt.
  1154.  
  1155.      <from>,
  1156.      <to>:      Die  Start- und End-Uhrzeit des Events.  UniSched verhält sich
  1157.                 hier grundlegend anders  als  die  Braindead-Scheduler einiger
  1158.                 Mailer.  UniSched stellt sicher,  daß  die  angegebene  Aktion
  1159.                 innerhalb der angegebenen Zeitspanne *genau* einmal ausgeführt
  1160.                 wird.   Solche  Effekte,  daß der Tosser zwanzig Mal gestartet
  1161.                 wird,  weil  innerhalb  der  Zeitspanne,  innerhalb  derer  er
  1162.                 eigentlich  nur  einmal  gestartet  werden  soll,  was anderes
  1163.                 passierte, der Mailer runterfuhr, das Event dann neu  startete
  1164.                 und  damit auch den Tosser nochmal, etc, pp., - solche Effekte
  1165.                 gibt es mit UniSched  nicht.   Deshalb kann man die Zeitspanne
  1166.                 ruhig schön groß wählen.  Wenn z.B. um  05:00  eine  Statistik
  1167.                 generiert  werden  soll, und es von eminenter Wichtigkeit ist,
  1168.                 daß die Statistik auf jeden  Fall erstellt wird, wähle man als
  1169.                 Zeitspanne einfach 05:00 24:00 - dann wird die  Statistik  mit
  1170.                 großer  Wahrscheinlichkeit irgendwann erstellt werden, selbst,
  1171.                 wenn der um 04:30  gestartete  Tosser  mal  3 Stunden statt 30
  1172.                 Minuten brauchen sollte.
  1173.  
  1174.                 Um  darüber  auf  dem  Laufenden  zu  bleiben,   was   bereits
  1175.                 ausgeführt  wurde  und  was noch nicht, verwendet UniSched die
  1176.                 Datei UNISCHED.DAY, die  es  im  aktuellen Verzeichnis anlegt.
  1177.                 Es  ist  daher  keine  gute  Idee,  diese  Datei  zu  löschen.
  1178.                 (Ausnahme:  Du hast den Eindruck, daß UniSched überhaupt nicht
  1179.                 das tut, was Du  konfiguriert  hast  -  in  dem  Fall  ist  es
  1180.                 möglich,  daß  die  DAY-Datei  kaputt  ist,  und Du kannst mal
  1181.                 probieren, sie zu löschen, vielleicht hilfts).
  1182.  
  1183.                 Die  Zeitspanne  darf  auch  die  24:00-Grenze  überschreiten,
  1184.                 UniSched hat  damit  kein  Problem.   (Seit  der wb05 wirklich
  1185.                 nicht mehr ;-)))
  1186.  
  1187.      <weekday>: Defaultmäßig wird die Aktion an  jedem  Wochentag  ausgeführt.
  1188.                 Hier kann  man  aber  explizit  einen  oder  mehrere Wochentage
  1189.                 angeben, an denen  die  Aktion  ausgeführt  werden  soll  (wenn
  1190.                 mindestens  ein  Wochentag  angegeben  wird, wird die Aktion an
  1191.                 allen nicht  angegebenen  Tagen  nicht  ausgeführt).   Die Tage
  1192.                 werden      auf      Deutsch       oder       Englisch       in
  1193.                 Zwei-Buschstaben-Abkürzungen  angegeben:   Mo Di Mi Do Fr Sa So
  1194.                 oder  Mo  Tu  We  Th  Fr  Sa  Su.  Ebenfalls  möglich  sind die
  1195.                 Abkürzungen "Week" (für Mo-Fr) und "WkEnd"  (für  Sa+So).   Bei
  1196.                 Events,  die die 24:00-Grenze überschreiten, wird als Wochentag
  1197.                 der Wochentag *nach* 24:00 genommen!
  1198.  
  1199.      <fromdate>,
  1200.      <todate>:  Normalerweise  wird  die   Aktion   an   jedem  Tag  im  Monat
  1201.                 ausgeführt.  Hier kann man optional angeben,  daß  die  Aktion
  1202.                 nur  innerhalb  der Tagesnummern fromdate bis todate gestartet
  1203.                 werden soll.   Die  Tagesnummer  muß  dabei  *von  einem Punkt
  1204.                 gefolgt* angegeben werden.  Soll z.B. nur am 1.  jeden  Monats
  1205.                 eine  Statistik erstellt werden, verwende man "01. 01." , soll
  1206.                 der Uplink nur bis zum  20. jeden Monats angepollt werden (wer
  1207.                 macht sowas?  ;), verwende man "01. 20."
  1208.  
  1209.      even, odd: Wenn das Wörtchen "even" oder "odd" in der Eventdefintionszeile
  1210.                 erscheint, wird das Event nur  ausgeführt,  wenn  die  aktuelle
  1211.                 Wochennummer gerade (even) bzw. ungerade (odd).  Nützlich, wenn
  1212.                 man  z.B.  etwas im 14-Tage-Rhytmus tun will.  Für diesen Zweck
  1213.                 muß  zusätzlich  zu  "even"   oder  "odd"  natürlich  noch  ein
  1214.                 Wochentag angegeben werden, da sonst das Event an  *jedem*  Tag
  1215.                 in den geraden bzw. ungeraden Wochen ausgeführt würde.
  1216.  
  1217.      <action>:  Der Name der Aktion wie zuvor definiert.
  1218.  
  1219.      Beispiele:
  1220.      #010   00:00 24:00 01. 01. = $Statistik
  1221.      #020   00:00 04:00 = $Exportieren
  1222.      #030   04:05 04:15 Mo We Fr = $POLL_THOMAS
  1223.      #040   04:10 04:25 = $POLL_Hub
  1224.      #050   12:00 13:00 Mo even = $Preisliste_in_KOMMERZ_GER_Posten
  1225.  
  1226.  
  1227.      Periodische Events
  1228.      ------------------
  1229.  
  1230.      Periodische Events dienen dazu, bestimmte Aktionen regelmäßig durchführen
  1231.      zu lassen.  Beispielsweise  könnte  man  alle  15 Minuten ein REXX-Skript
  1232.      aufrufen lassen, das überprüft, ob noch alle Mailer-Tasks oben sind,  und
  1233.      falls  nicht,  diese  neu  startet  (oder den Rechner neu bootet, je nach
  1234.      Gesachmack).  Ein anderes  Anwendungsgebiet  wäre,  z.B.  alle xx Minuten
  1235.      automatisch Netmail exportieren zu lassen.
  1236.  
  1237.      Syntax:
  1238.       #<nr> ~<min> [+<sync> | -<sync>] [exact] [<from> <to>] [<weekday[s]>]
  1239.                           [<fromdate> <todate>] = $<action[s]>
  1240.  
  1241.      <nr>:     Wie oben eine Nummer, aufgrund derer  das  Event  identifiziert
  1242.                wird, nicht mehr und nicht weniger.
  1243.      <min>:    Nach  so  viel  Minuten  wird  die  Aktion  erneut  ausgeführt.
  1244.                ACHTUNG:  Wenn man die  Periodendauer eines bereits bestehenden
  1245.                Events  ändert,  sollte  man   wie   folgt   vorgehen:    Event
  1246.                auskommentieren,   Konfig   neu   einlesen,   Semikolon  wieder
  1247.                entfernen, neue  Periodendauer  einstezen,  Konfig  nochmal neu
  1248.                einlesen.  Ansonsten kann es passieren, daß  die  ersten  zwei,
  1249.                drei  Ausführungen des Events zu falschen Zeiten kommen.  Wenns
  1250.                doch passiert, zur Not das DAY-File löschen (s.u.).
  1251.      <+sync>:  Normalerweise   werden   periodische   Events   an   0:00   Uhr
  1252.      <-sync>:  synchronisiert,  d.h.,  die   projektierten   Ausführungszeiten
  1253.                liegen   dann   bei  0:00  Uhr  +  n  *  Periodendauer.   Diese
  1254.                Synchronisation kann  man  mit  "+<minutenzahl>"  nach "später"
  1255.                oder mit  "-<minutenzahl>"  nach  "früher"  verschieben.   Sinn
  1256.                macht  das,  wenn man viele Aufgaben regelmäßig ausführen läßt,
  1257.                und es  dann  z.B.  bei  60-minütigen  Periodendauern immer zur
  1258.                vollen Stunde zu einem regelrechten "Eventstau" kommt.
  1259.      exact:    Normalerweise holt UniSched  die  Ausführung  des  periodischen
  1260.                Events  nach,  wenn  er  sie  nicht  genau zur synchronisierten
  1261.                Ausführungszeit starten kann.  Dies  ist  in den meisten Fällen
  1262.                sinnvoll (z.B. ist es bei Mail-Export-Events nicht so  wichtig,
  1263.                wann  genau  sie  ausgeführt  werdne,  nur, DASS sie mindestens
  1264.                einmal pro xx Minuten ausgeführt werden), manchmal kann es aber
  1265.                nerven, z.B.,  wenn  man  zu  bestimmten  Uhrzeiten  einen Gong
  1266.                abspielen will o.ä.  Die Angabe der Zeichenfolge "exakt" in der
  1267.                Event-Definition  bewirkt,  daß  das  periodische  Event  NICHT
  1268.                nachgeholt wird, falls es nicht genau zur synchronisierten Zeit
  1269.                ausgeführt werden kann.
  1270.  
  1271.  
  1272.      Die übrigen Parameter haben genau die gleiche Syntax wie bei statischen
  1273.      Events.
  1274.  
  1275.      Bsp.:
  1276.      #510 ~60 -10 = $Exportieren
  1277.      ;Exportiert immer um 10 Minuten nach  der  vollen  Stunde  (oder  später,
  1278.      ;falls es geanu zu dem Zeitpunkt nicht klappt)
  1279.      #520 ~60 exact 08:00 20:00 Week = $Stundengong
  1280.      ;Ein "Kuckuck", aber nur, wenn es wirklich genau die volle Stunde ist.
  1281.      #530 ~60 +30 exact 08:00 20:00 Week = $Halbstundengong
  1282.      ;Ebenso, zur halben Stunde
  1283.  
  1284.  
  1285.      Wie  genau  behandelt  UniSched  nun periodische Events?  Zunächst einmal
  1286.      synchronisiert UniSched ein neu definiertes  Event mit 00:00h (oder einer
  1287.      entsprechend verschobenen Zeit, s.o.) des aktuellen Tages.  Wird also ein
  1288.      viertelstündliches Event definiert,  wird  dieses  auch  immer  genau  um
  1289.      xx:00h,  xx:15h, xx:30h und xx:45h ausgeführt.  Etwas wirr wird dies nur,
  1290.      wenn man eine Zeitspanne definiert,  die  kein  Teiler von 1440 (der Zahl
  1291.      der Minuten eines Tages) ist.  Z.B. 27 Minuten.  Dann sind von Tag zu Tag
  1292.      die Ausführzeiten unterschiedlich ...
  1293.  
  1294.      Kann UniSched zur synchronisierten Zeit das Event nicht  ausführen,  weil
  1295.      er  down  ist  oder  ein  Event  mit  höherer Priorität startet, wird das
  1296.      periodische Event nachgeholt - aber  nur solange, bis bereits die nächste
  1297.      Instanz dieses periodischen Events fällig wäre.  So wird  vermieden,  daß
  1298.      es  einen  Stau  von  Events gibt, wenn man ein Event definiert, das jede
  1299.      Minute ausgeführt werden soll, das aber 10 Minuten dauert ...
  1300.  
  1301.      Will man das Nachholen von periodischen Events ganz unterdrücken, muß man
  1302.      die Zeichenkette  "exact"  in  die  Definition  einfügen.   Dies ist aber
  1303.      wirklich NUR für Stunden-Gongs o.ä.  geeigenet  -  alles,  was  irgendwie
  1304.      wichtig ist, sollte man auf jeden Fall nachholen lassen.
  1305.  
  1306.      Die  Parameter  from,  to,  weekdays,  fromday  etc. pp. definieren einen
  1307.      Zeitrahmen, in dem das Event  ausgeführt  werden darf.  An der Behandlung
  1308.      und Synchronisation ändert sich dadurch gar nichts  -  Unisched  arbeitet
  1309.      das  alles  durch,  und  erst, wenn es so weit ist, das Event genau jetzt
  1310.      auszuführen,  wird  geprüft,  ob  die  aktuelle  Uhrzeitn  dem  erlaubten
  1311.      Zeitrahmen liegt oder nicht und evtl. die Ausführung unterlassen.
  1312.  
  1313.      Um diese etwas  theoretische  Ausführungen  zu verdeutlichen, einfach ein
  1314.      paar Beispiele.  Nehmen wir das folgende Viertelstündliche Event:
  1315.  
  1316.      #123 ~15 14:50 17:25 = $Tue_Was
  1317.  
  1318.      Dieses Event wird  erstmals  um  15:00h  ausgeführt.   Um  15:10  startet
  1319.      UniSched   ein  anderes  Event,  das  bis  15:20  dauert.   Die  nächsten
  1320.      Ausführzeiten des periodischen Events  123  sind  nun:  15:20 15:30 15:45
  1321.      etc.  Das Event um 15:15 hat sich also auf 15:20 verschoben.  - Um  15:50
  1322.      startet  UniSched  wieder  ein  anderes Event, das bis 16:47 dauert.  Die
  1323.      weiteren Ausführzeiten sind nun 16:47  17:00 17:15.  Die Events um 16:00,
  1324.      16:15 und 16:30 sind also unter den Tisch gefallen.  Das Event  um  16:45
  1325.      hat  sich  auf  16:47 verschoben.  Das Event um 17:30 liegt außerhalb des
  1326.      erlaubten Zeitrahmens.
  1327.  
  1328.  
  1329.   So, nun viel Spaß beim  Einrichten.   Falls  Du Probleme hast, die auch nach
  1330.   mehrmaligem Durchlesen der Doku sich nicht lösen, kannst Du Dich  gerne  bei
  1331.   mir melden.  Siehe dazu Kapitel 5.
  1332.  
  1333.  
  1334.   3.4 AUFRUF UND BEDIENUNG
  1335.   ------------------------
  1336.  
  1337.   UniSched wird einfach  durch  Aufruf  von  UNISCHE2.EXE  bzw.   UNISCHED.EXE
  1338.   gestartet.   Dabei wird dann die Datei UNISCHED.CFG (ausschließlich!) in dem
  1339.   Verzeichnis gesucht, in dem sich  die  .EXE-Datei befindet.  Ein anderer Ort
  1340.   oder  anderer  Namen  der  Konfigurationsdatei  kann   mit   dem   Parameter
  1341.   /c<filename> angegeben werden.
  1342.  
  1343.   In diesem Verzeichnis legt Unisched unter dem  Stammnamen  der  Config-Datei
  1344.   (also i.d.R. UNISCHED) noch ein paar weitere Dateien an:
  1345.  
  1346.      UNISCHED.DAY  Enthält  Informationen des Schedules darüber, welche Events
  1347.                    heute schon wann gestartet wurden.  Löscht man diese Datei,
  1348.                    während Unisched nicht läuft,  werden beim nächsten Startup
  1349.                    alle noch ausführbaren Events  nachgeholt.  - Manchmal kann
  1350.                    es nützlich sein, Unisched herunterzufahen, diese Datei  zu
  1351.                    löschen,  und  Unisched  wieder  zu  starten.  Insbesondere
  1352.                    dann, wenn Unisched  periodische  Events  zu anderen Zeiten
  1353.                    ausführt als gedacht.
  1354.  
  1355.      UNISCHED.ACT  Enthält  einen  Dump  des  Logfensters  und kann problemlos
  1356.                    gelöscht werden.
  1357.  
  1358.      UNISCHED.BSY  Semaphore-Datei, die anzeigt, daß Unisched bereits (mit der
  1359.                    dazugehörigen Config-Datei  UNISCHED.CFG)  läuft.  Unisched
  1360.                    startet dann bei einem erneuten Aufruf nicht.  Es ist somit
  1361.                    eine gute Idee, diese Datei während des Systemstartvorgangs
  1362.                    vorsorglich löschen  zu  lassen.   Falls  der  Rechner  mal
  1363.                    während Abwesenheit neu bootet oder so ...
  1364.  
  1365.   Bsp:    UNISCHED   /Ce:\configs\usched1.cfg
  1366.   Startet  Unisched  mit  der Konfigurationsdatei e:\configs\usched1.cfg.  Die
  1367.   restlichen Dateien nennt  Unisched  dann entsprechend e:\config\usched1.day,
  1368.   usched1.act und usched1.bsy.
  1369.  
  1370.   Wenn  sich ein grundlegender Fehler in der Config befindet, startet Unisched
  1371.   nicht, sondern gibt  (mittlerweile  <g>)  einen  sauberen  Log-Dump aus (die
  1372.   Fehlerursache steht meist fast ganz unten) und wartet 30 Sekunden auf  einen
  1373.   Tastendruck,  bevor es sich beendet.  Behebare Fehler während der Ausführung
  1374.   (Tippfehler in Event-Definitionen) werden  gelogged,  ohne daß sich Unisched
  1375.   beendet.
  1376.  
  1377.   Zur Bedienung von Unisched ist nicht viel zu sagen, die  einzige  vorbelegte
  1378.   Taste ist Alt+X zum Beenden.  Alle anderen Funktionen können bzw. müssen mit
  1379.   Hilfe der KeyXXX-Statements in der Config selbst erzeugt werden.
  1380.  
  1381.   Eine DOS-Shell  gefällig?
  1382.  
  1383.     KeyAltJ = EXEC COMMAND.COM  bzw.
  1384.     KeyAltJ = EXEC CMD.EXE
  1385.  
  1386.   Konfiguration aus Unisched heraus editieren?
  1387.  
  1388.     $EditConfig = EXEC c:\msdos\edit.exe e:\mailer\sys\unisched.cfg
  1389.     $ReadConfig = RESTART
  1390.     $Konfigurieren = $EditConfig $ReadConfig
  1391.     KeyAltC = $Konfigurieren
  1392.  
  1393.   Die Möglichkeiten sind unbegrenzt.
  1394.  
  1395.  
  1396.  
  1397. 4. UNISCHED FUER FORTGESCHRITTENE
  1398. ---------------------------------
  1399.  
  1400.   4.1 Online-Tossing
  1401.   ------------------
  1402.  
  1403.   4.1.1 - Was ist Online-Tossing?
  1404.  
  1405.     Normalerweise erhältst Du von Deinem Uplink z.B. zwei 2 MB-Pakete in einem
  1406.     Poll.  Erst wenn sämltiche Pakete  komplett empfangen sind und die Session
  1407.     beendet ist, wird Dein Tosser gestartet.  Die Zeit, bis die Mail  komplett
  1408.     für  Downlinks von Dir zur Verfügung steht, ist also die Zeit, die für den
  1409.     Transfer benötigt wird,  plus  die  Zeit,  die  fürs Tossen benötigt wird.
  1410.     Ruft Dein Downlink schon an, während Du noch die letzten 50 KB von  den  4
  1411.     MB transferierst, bekommt er - NICHTS.
  1412.  
  1413.     Mit Online-Tossing bittest  Du  Deinen  Uplink,  Dir mehrere kleine Pakete
  1414.     (z.B. 10 400K - Pakete) zu schicken.  Mit modernen Tossern  ist  das  kein
  1415.     Problem.   Unisched  überwacht kontinuierlich Deinen Inbound.  Sobald dort
  1416.     ein  Mailpaket  *komplett   empfangen*   bereitliegt,  startet  er  Deinen
  1417.     Tossertask.  Dieser kann nun das erste / die ersten Pakete schon eintossen
  1418.     und bereitlegen, während der Mailer die  restlichen  Pakete  transferiert.
  1419.     Solange  der  Tosser  dies tut, setzt Unisched die Inbound-Überprüfung aus
  1420.     (kann  aber   sonstige   Funktionen,   wie   Polls  generieren,  weiterhin
  1421.     ausführen).  Erst, wenn er von  dem  gestarteten  Tossertask  signalisiert
  1422.     bekommt,  daß  er  fertig ist, schaut er wieder in den Inbound und startet
  1423.     den Tosser ggf.  erneut.   Wenn  Dein  Uplink  nun  anruft, während Du die
  1424.     letzten 50 KB von den 4  MB  transferierst,  bekommt  er  bereits  3.6  MB
  1425.     mitgesendet.
  1426.  
  1427.   4.1.2 - Systemanforderungen für Online-Tossing.
  1428.  
  1429.     1. Du solltest Dich mit Unisched und Deinem System  schon  gut  auskennen.
  1430.        Begriffe wie Semaphore-Datei, Unprotected  Inbound, Maximum Pack Ratio,
  1431.        Badmail etc. sollten bei Dir keine Bauchschmerzen hervorrufen.
  1432.     2. Dein  Mailer  muß  File-Sharing  unterstützen, d.h.  Pakete während des
  1433.        Empfangs  mit  SH_DENYALL   öffnen.    Ansonsten  kann  Unisched  nicht
  1434.        erkennen, ob das Paket bereits empfangen ist, oder nicht.
  1435.     3. Dein System muß einwandfrei multitaskingtauglich sein.
  1436.     4. Der Tosser muß einwandfrei konfiguriert sein.
  1437.  
  1438.     Bemerkungen zu 2.:  Getestet  habe  ich  selbst  McMail  und  Binkley  XE.
  1439.     McMail  1.0g5  hatte kein Problem.  Binkley XE unterstützt File-Sharing in
  1440.     allen Versionen außer den  DOS-Versionen  XR1 und XR2.  Die OS/2-Versionen
  1441.     und  die  DOS-Versionen  ab  XR3  sind  kein  Problem.   Ob  Dein   Mailer
  1442.     Online-Tossing-tauglich  ist,  kannst Du wie folgt herausfinden:  Requeste
  1443.     Dir ein großes File,  das  ein  bißchen zur Übertragung braucht.  Versuche
  1444.     nun, bereits während der Übertragung dieses File mit TYPE anzuzeigen  oder
  1445.     sonstwie zu lesen.  Dabei mußt Du eine SHARING VIOLATION als Fehlermeldung
  1446.     erhalten.   Kriegst  Du das nicht, ist Dein Mailer / Dein Betriebssystem /
  1447.     Dein Netzwerk nicht geeignet.   Ich  bitte  hierbei um Rückmeldung, welche
  1448.     Mailersoftware hier außer der von mir getesteten problemlos ist.
  1449.  
  1450.     Bemerkungen zu 3.:  Heutzutage schimpft  sich ja fast jedes Betriebssystem
  1451.     und   vieles,    wo    "Betriebssystem"    auf    der    Packung    steht,
  1452.     multitaskingtauglich.  Es ist dann meist auch  kein  allzugroßes  Problem,
  1453.     eine  kleine  Zwei-Line-BBS zu fahren mit einem Background-Tossertask.  In
  1454.     den  meisten  Fällen  läuft  der  Tossertask  ja  eh  nicht  während eines
  1455.     Transfers, und wenn doch,  sind  kurzfristige  geringfüge Rückgänge in der
  1456.     cps-Rate ja nicht so  tragisch.   Mit  Online-Tossing  forcierst  Du  aber
  1457.     geradezu,  daß  praktisch  während  der  ganzen Transferzeit grundsätzlich
  1458.     immer der Tosser läuft.  Sagen wir, daß das einen Rückgang der cps-Rate um
  1459.     300 cps bedingt,  dann  verursachst  Du  durch  Einsatz des Online-Tossing
  1460.     Deinen Downlinks nicht von der Hand zu weisende Mehrkosten.
  1461.  
  1462.     Ideal geeignet für  den  Einsatz  von  Online-Tossing  ist  ein System mit
  1463.     folgenden Merkmalen:  80486dx2-66, SCSI, FIFOs, aktive ISDN-Adapter,  OS/2
  1464.     Warp  3 mit nativen OS/2-Mailern, einem nativen OS/2-Tosser und Ray Gwinns
  1465.     SIO als Schnittstellentreiber.   Eine  derartige  Konfiguration ist in der
  1466.     Lage, Online-Tossing auch im Multilinebetrieb ohne den geringsten  Einfluß
  1467.     auf  die  cps-Rate  durchzuführen.  Bei allen anderen Konfigurationen kann
  1468.     ich keinerlei Garantien abgeben.
  1469.  
  1470.     Bemerkungen zu 4:  Du mußt ABSOLUT sicherstellen,  daß  Dein  Tosser  ALLE
  1471.     PKTs  im  Inbound  und  im  Protected Inbound sowie ALLE Arcmail-Pakete im
  1472.     Protected Inbound ENTFERNT.  Wenn er  ein Archiv nicht entpacken will oder
  1473.     kann, muß er es umbennen oder sonstwohin verschieben.   Wenn  er  ein  PKT
  1474.     verweigert, muß er es in BAD umbenennen.  Ansonsten fängt sich Unisched in
  1475.     einer  ENDLOSSCHLEIFE,  weil der Tosser immer wieder für das gleiche Paket
  1476.     aufgerufen wird.
  1477.  
  1478.     Online-Tossing is not for the  weak  of  heart.   Unisched macht es Dir so
  1479.     einfach wie möglich, aber es ist trotzdem problemlos möglich,  damit  Dein
  1480.     System  lahmzulegen,  Downlinks  zu  vergraulen, etc. pp.  Sage nicht, ich
  1481.     hätte Dich nicht gewarnt.  Wenn  man  aber  sein System im Griff hat, kann
  1482.     Online-Tossing eine sehr feine Sache sein.
  1483.  
  1484.   4.1.3 - Jetzt aber ran ans Werk!
  1485.  
  1486.      Folgende (in Kapitel 3 nicht erwähnte) Konfigurationsstatements sind  für
  1487.      Online-Tossing relevant.  Lese Dir das *genau* und *sorgfältig* durch und
  1488.      aktiviere die Statements erst, wenn Dir alles klar ist.
  1489.  
  1490.  
  1491.      Inbound = <inbound directory>
  1492.      -----------------------------
  1493.  
  1494.      In   dem  angegebenen  Directory  sucht  Unisched  (ausschließlich)  nach
  1495.      .PKT-Dateien.  Das Keyword INBOUND  darf  in  der  Config mehr als einmal
  1496.      auftauchen, so daß es möglich ist, durch Wiederholung der  Zeile  mehrere
  1497.      Verzeichnisse  anzugeben,  z.B.  den  Unprotected  Inbound  und den Local
  1498.      Inbound.
  1499.  
  1500.      Bsp:
  1501.      Inbound=e:\bt\inound
  1502.      Inbound=e:\bt\local
  1503.  
  1504.  
  1505.      ProtIn = <directory>
  1506.      --------------------
  1507.  
  1508.      In dem  angegebenen  Directory  sucht  Unisched  nach  .PKT-Dateien *und*
  1509.      Arcmail-Paketen (*.MO?, *.TU?, ..., *.SU?).  Auch  hier  könnten  mehrere
  1510.      Verzeichnisse  angegeben  werden, mir ist aber gerade kein Anwendungsfall
  1511.      dafür bewußt.
  1512.  
  1513.      Bsp:
  1514.      ProtIn=e:\bt\secure
  1515.  
  1516.  
  1517.      TosserSema = <dateiname>
  1518.      ------------------------
  1519.  
  1520.      Diese Datei zeigt an, ob  gerade  der  Tosser  aktiv ist oder nicht.  Sie
  1521.      wird, wenn kein Pfadname angegeben ist, im SemaDir (siehe dort) abgelegt.
  1522.      Unisched legt diese Datei automatisch an, wenn es nach  einem  gefundenen
  1523.      Mailpaket  den  Tosser startet.  Umgekehrt wird der Tosser nur gestartet,
  1524.      wenn diese Datei noch  nicht  existiert.   Es  ist deshalb eine sehr gute
  1525.      Idee, diese Datei beim Systemstart vom Startup-Skript LOESCHEN zu lassen,
  1526.      sonst läuft der Tosser z.B. nach einem Stromausfall u.U. nicht mehr.
  1527.  
  1528.      Bsp:
  1529.      TosserSema = e:\sema\tossing.sem
  1530.  
  1531.  
  1532.      TosserAction = $<action1> [$<action2> ...]
  1533.      ------------------------------------------
  1534.  
  1535.      Die eigentliche Aktion, die nach einem  gefundenen  Mailpaket  ausgeführt
  1536.      werden  soll.  Beim Entwerfen der zugehörigen Batch sind einige besonders
  1537.      wichtigen Regeln zu beachten:
  1538.  
  1539.      - Ich betone  es  nochmal,  die  Batch  MUSS  MUSS  MUSS  UNBEDINGT  alle
  1540.        PKT-Dateien  und  ARC-Mail-Packets  aus  den  angegebenen  Inbound- und
  1541.        ProtIn-Verzeichnissen entfernen.  Wenn  das  durch die Arbeitsweise des
  1542.        Tossers nicht sichergestellt ist, sollte man dies  am  Ende  der  Batch
  1543.        durch RENAMEs von Hand sicherstellen.
  1544.      - Am Ende der Batch  MUSS  die unter TosserSema angegebene Datei gelöscht
  1545.        werden, um Unisched zu singnalisieren, daß es den Tosser gegebenenfalls
  1546.        erneut wieder starten kann.
  1547.      - Es ist nicht ratsam, in dieser Batch den Ticker anzuwerfen.  Man sollte
  1548.        nur  Echomail  und Netmail tossen.  Grund:  Der Ticker könnte anlaufen,
  1549.        wenn zwar schon ein  TIC-File,  aber  noch nicht die dazugehörige Datei
  1550.        angekommen sind.  Dann landet das schon mal  im  BAD-Verzeichnis.   Aus
  1551.        genau  diesem  Grund  reagiert  UniSched  auch gar nicht auf TIC-Files.
  1552.        (Das kann man mit CheckTIC  =  Yes  ändern, wird aber nicht empfohlen).
  1553.        Den Ticker solltest Du erst nach Session-Ende starten - dazu gibts  die
  1554.        Tosser-Semaphoren, siehe unten.
  1555.  
  1556.      Bsp:
  1557.      TosserAction = $Import_Mail_Only
  1558.  
  1559.  
  1560.      Tosser-Sempahore-Dateien
  1561.      ------------------------
  1562.  
  1563.      Syntax: +<path+filename> = $<action name> [$<action2 name> ... ]
  1564.  
  1565.      Auf die auf diese Art definierten  Semaphore-Dateien  funktionieren  wird
  1566.      genau  so  geprüft  wie  auf  normale  (mit  *  statt  mit + deklarierte)
  1567.      Semaphore-Dateien (siehe dort), mit  dem  einen Unterschied, daß hier nur
  1568.      reagiert  wird,  wenn  die  unter  TosserSema  angegebene   Datei   nicht
  1569.      existiert.
  1570.  
  1571.      Du  brauchst  das für folgenden Zweck:  Vermutlich wirst Du mit dem unter
  1572.      TosserAction angegebenen Skript/Batch  nicht die komplette Importprozedur
  1573.      durchlaufen.  Der Ticker z.B. *darf* gar  nicht  aufgerufen  werden,  und
  1574.      vielleicht  möchtest  Du  ja  auch noch andere Aufgaben trotzdem nur nach
  1575.      Sessionende ausführen.  Dann mußt  Du  weiterhin auf die MailIn-Sempahore
  1576.      Deines Tossers (BTMAIL.IN o.ä.) prüfen.  Würdest Du das  jetzt  weiterhin
  1577.      mit  der Methode mit * machen, dann könnte es passieren, daß die Aktionen
  1578.      nach Sessionende schon ausgeführt werden,  während noch getosst wird.  Um
  1579.      das zu verhindern, prüfst Du mit der + - Methode, dann  wird  die  Aktion
  1580.      erst ausgeführt, wenn alle Pakete getosst sind.
  1581.  
  1582.      Umgekehrt  wird bei der + - Methode auch vor Ausführen der Aktion die bei
  1583.      TosserSema  angegebene  Datei  angelegt,  so  daß  diese  Datei  von  der
  1584.      angegebennen Aktion GELOESCHT WERDEN MUSS.  Genau wie bei TosserAction.
  1585.  
  1586.      Bsp:
  1587.      +btmail.in = $ImportAbschluss
  1588.  
  1589.  
  1590.   4.1.4 - Viel Spass!
  1591.  
  1592.      Nachdem Du das jetzt alles konfiguriert  hast, lasse Dir erst nochmal die
  1593.      komplette Logik der Konfiguration  durch  den  Kopf  gehen.   Ich  möchte
  1594.      nochmals betonen, dass man hier im Zweifelsfall viel verbocken kann ...
  1595.  
  1596.  
  1597.   4.2 Logausgaben fallweise unterdrücken
  1598.   --------------------------------------
  1599.  
  1600.   In  manchen Fällen ist es sehr ärgrlich, daß sich ein bestimmtes Event immer
  1601.   wieder im Logfile meldet.  Hierzu  gehören  z.B. periodische Events mit sehr
  1602.   hoher Frequenz wie z.B. das Erstellen einer Alive-Semaphore o.ä.   Man  kann
  1603.   nun periodische Events gar nicht mehr anzeigen lassen, allerdings möchte man
  1604.   alle anderen außer dem einen bestimmten vielleicht doch sehen.
  1605.  
  1606.   Deshalb   gibt   es   neben   der  Möglichkeit,  die  Logausgaben  über  die
  1607.   Schlüsselworte  DiskLog,  ScreenLog  und   PipeLog   zu  steuern,  noch  die
  1608.   Möglichkeiten, einzelne Aktionen oder Events "zu  klammern".   Man  schließt
  1609.   hierzu   die   zugehörige   Zeile   in  der  Konfiguration,  das  kann  eine
  1610.   Aktionsdefinition oder eine  Eventdefinition  sein,  in eckige Klammern ein.
  1611.   Es wird dann alles, was mit dieser Aktion oder diesem  Event  zusammenhängt,
  1612.   *nicht*  geloggt,  weder  im  Disklog,  noch  im  Fenster, noch in der Pipe,
  1613.   unabhängig vom Loglevel. Beispiel:
  1614.  
  1615.   $Create_Alivesemaphore = SEMAPHORE e:\flags\unisched.alv
  1616.   #111 ~1 = $Create_Alivesemaphore
  1617.  
  1618.   Dies führt zu sehr häufigen  Einträgen  im Logfile.  Ändert man diese Zeilen
  1619.   nun entweder so:
  1620.  
  1621.   [ $Create_Alivesemaphore = SEMAPHORE e:\flags\unisched.alv ]
  1622.   #111 ~1 = $Create_Alivesemaphore
  1623.  
  1624.   oder so:
  1625.  
  1626.   $Create_Alivesemaphore = SEMAPHORE e:\flags\unisched.alv
  1627.   [ #111 ~1 = $Create_Alivesemaphore ]
  1628.  
  1629.   oder so:
  1630.  
  1631.   [ $Create_Alivesemaphore = SEMAPHORE e:\flags\unisched.alv ]
  1632.   [ #111 ~1 = $Create_Alivesemaphore ]
  1633.  
  1634.   ab, dann wird nichts, was mit  der  Alive-Semaphore  zu  tun  hat,  mehr  im
  1635.   Logfile erscheinen.
  1636.  
  1637.  
  1638.  
  1639. 5. SHAREWARE
  1640. ------------
  1641.  
  1642. UniSched  ist  (C)  1996,97 by Tobias Ernst.  Diese Software ist Shareware und
  1643. darf innerhalb einer Testphase von  30  Tagen kostenlos verwendet werden.  Die
  1644. Sharewareversion darf  beliebig  weitergegeben  werden,  sofern  das  Programm
  1645. vollständig  und  unmodifiziert weitergegeben wird.  Nach der Testphase von 30
  1646. Tagen muß man sich registrieren lassen.
  1647.  
  1648. Die Registrierung kostet während der  Betaphase  lediglich  DM  10.-.   Dieser
  1649. Preis  wird  auf  jeden  Fall noch bis 31.03.1998 zugesichert.  Ein erworbener
  1650. Beta-Key wird für  alle  zukünftigen  textorientierten  Versionen von UniSched
  1651. gültig sein.  Das Registrier-Formular findet sich in der Datei ORDER.FRM.  Die
  1652. Sharewareversion ist im Funktionsumfang nicht  eingeschränkt.   Eine  Garantie
  1653. für  Funktionstüchtigkeit  des  Programmes oder eine Verantwortung für aus der
  1654. Nutzung  entstehende  Folgeschäden  kann,  soweit  gesetzlich  zulässig, nicht
  1655. übernommen werden.
  1656.  
  1657. Wer die Sharewareversion länger als 30 Tage unregistriert verwendet, den  möge
  1658. der Blitz beim Sch...en treffen ;-))).
  1659.  
  1660.  
  1661.  
  1662. 6. VERSCHIEDENES
  1663. ----------------
  1664.  
  1665. Für Fragen und Bugreports bin ich zu erreichen unter
  1666.  
  1667. Tobias Ernst @ 2:2476/418.0
  1668. tobi@bland.fido.de
  1669.  
  1670. Die jeweils neuste Version von  UniSched  kann  mit dem Magic UNISCHED bei mir
  1671. requestet werden. (Mit S-C-H! ;-)
  1672.  
  1673. [EOF]
  1674. 
  1675.