alcarta: Indexaufruf

Thomas Berger ThB.com at t-online.de
Di Sep 26 16:56:07 CEST 2000


Lieber Herr Manecke,


> > > Bei meinen weiteren Versuchen entstand noch folgendes Problem:
> ...
> > > Zum Recherchieren übergebe ich den Suchbegriff und das Register in
> > > einer Environment-Variable. Alles klappt hervorragend, nur ist mir
> > > keine Bedingunsprüfung eingefallen, mit der ich herausfinde, ob "flex
> > > start" erfolgreich war, also eine offene Sitzung vorhanden war. Ich
> > > habe es mit Umbesetzen der Environment-Variable in start.flx
> > > versucht, aber das scheiterte, weil das aufrufende alcarta dies
> > > offensichtlich nicht erkennt. Hat jemand eine Idee?
> >
> > zurueckflexen? Von der Logik her schwierig...
> Habe ich versucht, ging aber mittels Environment-Variable auch nicht.

Bei ExFlexen wird ja an (alle) laufenden Anwendungen
ein Signal geschickt, mit Environment ist da garnichts
zu machen.

> > oder auf eine andere Reaktion des zweiten Alcarta reagieren:
> > Setzen Sie ein sleep 1000 und schauen anschliessend nach,
> > ob die Datei mit dem uebergebenen Suchbegriff (die brauchen
> > Sie doch ohnehin, oder?) weggenommen worden ist.
> > Wenn nicht, muessen Sie den zweiten Prozess starten
> > (mit allen damit verbundenen Problemen, s.o.)
> Das war der entscheidende Hinweis. Ich übergeb / übernehme nicht mehr
> per Environment-Variable, sondern per Datei.
> Mit einer Datei bin ich aber nicht ausgekommen. Ich lege in einer
> Datei den jeweiligen Suchbegriff ab und lasse die alcartas beim
> Starten dort nachschauen. In einer anderen Datei hinterläßt jedes
> alcarta beim Starten eine Botschaft "ich bin wach" und löscht diese
> wieder beim schließen. Wenn gesprungen werden soll, wird in der
> ersten Datei der Suchbegriff aktualisiert und in der zweiten
> nachgeschaut, ob die gewünschte Zieldatenbank geöffnet ist.
> Funktioniert prima! Danke!

Ich hatte mir vorgestellt, dass das zweite Alcarta
die Datei mit dem Suchbegriff nach dem Auslesen loescht 
und das erste darauf dann reagiert. Beide Loesungen halte
ich fuer gleich unappetitlich.

 
> Aber leider dürfte die ganze Botschafterrei nur funktionieren, wenn
> nicht mehr als zwei alcarta-Prozesse geöffnet sind, denn mit
>         if %birk% flex start
> kann ich ja nicht sagen, welches alcarta angeflext werden soll. Oder?

Nur indirekt: Genau ein Alcarta kennt einen start.flx,
die anderen kennen start_a, start_b etc.
Hier ist es uebrinens wirklich wichtig, dass die
flex-Dateinamen nur 8 Buchstaben (plus Extension)
haben, lange Dateinamen hin oder her: Der Name
des Flexes wird in das Signal hineincodiert, das
den anderen Prozessen im System geschickt wird. 
Dafuer stehen nur 2 Worte a vier Bytes zur
Verfuegung.

viele Gruesse
Thomas Berger





Mehr Informationen über die Mailingliste Allegro