AW: [Allegro] Avanti Update & Zeichenkonvertierung
Fischer, Thomas
fischer at sub.uni-goettingen.de
Do Jun 10 11:28:49 CEST 2010
Hallo Herr Eversberg,
> > Zum zweiten hätte ich gerne andere Rückmeldungen vom Update-Prozess.
> > Derzeit kommen (wenn alles gut geht) Meldungen der Art
> > M: Satz 5316 gespeichert
> > M: Satz 5328 gespeichert
> > wobei die interne Satznummer angegeben wird, die aber nicht
> > mit der Nummer in der Ausgangsdatenbank übereinstimmen muss.
> > Gibt es eine Möglichkeit, an dieser Stelle eine andere
> > Anzeige zu erzeugen, z.B. des Primärschlüssels, der für die
> > Identifikation benutzt wird?
> Das ist Meldung 136 aus der UIFS, die nach erfolgreichem
> "put" erfolgt.
> Lassen Sie in Ihrem Job auf den "put"-Befehl noch einen
> beliebigen "write"-Befehl folgen, um an der Stelle genau das
> zu erfahren, was Sie wissen wollen.
Die Meldung lautet
136 "M: Satz %ld gespeichert" 10
und ich möchte gerne wissen, ob ich die Variable %ld hier durch eine für mich aussagekräftigere (wie z.B. den aktuellen Primärschlüssel) ersetzen kann. Offenbar sind die Variablen hier (leider) von den "internen Sondervariablen" der Flex-Sprache unterschieden.
Da ich die Daten alle mit einem
update <Dateipfad>
erneuere, gibt es keinen "put"-Befehl, nach dem ich etwas schreiben könnte.
Gibt es für das Flex/Avanti-Update irgend ein Analogon zu den Parametern
-eparam/outfile oder
-xproto
des alten update.exe?
> > Zur Frage der Zeichenkonvertierung finde ich die
> > Ausführungen zu set c0/c1/c2 in der Dokumentation
> > ziemlich unklar. Hat das überhaupt eine
> > Auswirkung bei Avanti?
> Setzen Sie "set coding 2", dann keine.
?? Ist "set coding 2" dasselbe wie "set c2", das doch bei avanti eigentlich nicht gilt?
Ansonsten kenne ich nur "switch coding".
Das Problem ist aufgefallen, als bei unserer Website Titel wie
ªTheª Electronic Journal of Combinatorics
auftraten, wo also das '¬' aus DOS nach ANSI umkodiert worden war.
Da die Daten nach dem Export korrekt waren, muss entweder
switch coding 1
oder
set c1
bei dem Aufruf
update <updatefile>
sich störend ausgewirkt haben.
Da ich mich bemüht habe, das schnellstmöglich wieder zu korrigieren, kann ich nicht genau sagen, welches da gewirkt hat. Jedenfalls waren auch andere Zeichen (etwa Umlaute) betroffen, wie ich der Log-Datei entnehmen kann.
Eine genaue Rekonstruktion scheitert derzeit an einem interessanten Phänomen:
Ich schicke mit einem Perl-Skript von einem Linux-Server den Avanti-Job
&
switch coding 0
find REV>20100608
find (NUM _0?)
write "Datensätze exportiert: "
write lastnum n
list internal
write n
@ DB=math ID=OPAC/opac
AVANTI:EOJ
an den Win-avanti (av-w v29.6) und meine Datenbank und - nichts passiert.
Der gleiche Job von einem analogen Skript auf dem Windows-Rechner oder von irgendwo per avadmin geschickt liefert die erwarteten Treffer und Daten.
Der Avanti-Server zeigt den Job korrekt an, tut dann aber nichts (acon 30.5):
[2010-06-10 10:40:30] (SLAVE) <conn 0> slave 2 starting 'C:\allegro\Avanti\bin\acon.exe'
[2010-06-10 10:40:37] (SLAVE) <conn 0> Directory for DB=math is F:\ssg-math
[2010-06-10 10:40:37] (SLAVE) <conn 0> Database : math ; User : opac ; Access : 0
[2010-06-10 10:40:37] (SLAVE) <conn 0>
[2010-06-10 10:40:37] (SLAVE) <conn 0> JOB done
[2010-06-10 10:40:37] (SLAVE) <conn 0> slave finished ok
[2010-06-10 10:40:37] (NOTE) <conn 0> closed
Hat jemand dafür eine Erklärung oder einen Hinweis, woran das Scheitern liegen könnte?
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro