Autoupdate: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
//
Durch das Autoupdate Konzept wird sichergestellt, dass auf jedem OrgaMon Arbeitsplatz immer die neueste Programmversion läuft. Dazu muss der Administrator Schreibrechte auf das lokale OrgaMon-Programm-Verzeichnis (C:\Programme\OrgaMon) gewären.
// todo
 
//
== Updaten auf die neueste OrgaMon Version ==
// * Wenn OrgaMon von aussen beendet wird: wait "OrgaMon" to be down! OrgaMon sollte
 
//  einen "InsideTRN" Flag pflegen, damit erkannt werden kann, ob gerade eine wichtige
Der Abruf der neuesten Version aus dem Internet kann eine Arbeitsstation initiieren. Dies erfolgt durch
//  längere Aktion vorliegt. Er muss gewartet werden bis zu Ende gebucht ist. So dass
 
//  das Beenden von aussen nicht "kritisch" ist. Zumindest das eCommerce-Modul sollte so
   Update->"neuestes Update im Internet" ausführen
//  etwas haben.
 
// * Der UpdateAdmin verursacht das Signal, dass alle OrgaMon sich beenden sollten.
== Version als "schlecht" markieren ==
//  Er wartet, bis die User-Anzahl der Datenbank auf "1" (er selbst) abgesunken
 
//  ist oder max 25 Sekunden. (Gibt es für den SYSDBA die Möglichkeit USER
Es kann vorkommen, dass sich neu implementierte Funktionen oder Verbesserungen an bisherigen Funktionen als fehlerhaft oder sogar schädlich für den gesamtzusammenhang erweisen. Dann bietet der OrgaMon eine Funktion an, um gewisse Release Nummern als "schlecht" zu markieren. Die Verwendung dieser Versionen wird dann automatisch umgangen. Es wird entweder eine Version vorher oder nach der "schlechten" verwendet. Eventuelle Datenbank Metadaten Änderungen bleiben jedoch bestehen (Stand 19.09.2005).
//  ja durch einen "shutdown" rauszuschmeissen!).
 
// * Jede Metadata Modifikation sollte kurz prüfen können, ob das Statement selbst
== Technische Details zum Update-Konzept ==
//  in der Datenbank schon realisiert wurde oder nicht - es wäre cool, wenn eine
 
//  Wissensdatenbank 'Quell-Satements' automatisiert in Ziel-Statements umwandeln
//  Verwirklichtes Konzept:
//   könnte.
//
// * Noch cooler, neben dem check auf ein Undo - also ein "extern" rollback
// * Ist es ein metadata relevantes Update, so wird in der Tabelle Revision ein '9999'
//  "one single step" <do it statement>:
//  eingetragen. Dieses bleibt solange bestehen, bis der Updatevorgang abgeschlossen
//    ->  check-statement:boolean; true: "schon erledigt", false "muss ich noch machen"
//  oder fehlgeschlagen ist. Connects sollten in dieser Zeit unterbleiben!
//    -> do-it-statement:boolean; wie gehabt
// * Frisch connectierte OrgaMon sollten im Update-Check geparkt werden, bis
//    -> undo-it-statement:boolean;
//  das db-update abgeschlossen ist. Es wird dabei im Sekundentakt immer wieder
// * ./Updates Verzeichnis leeren!
//  nach dem Wert 9999 gesehen!
// * No-MetaDatachange (neues Feld in der Revisionstabelle): Soll anzeigen ob der aktuelle
// * Sieht die Datenbank beim insert den Wert '9999' so feuert sie den event
//  Release-Sprung ohne Meta-Data Änderung möglich war? Dann gelten "ältere" Releases
//  post_event 'PLEASE_DISCONNECT';
//  als "auch lauffähig" da sie zumindest in der Datenbank keinen Schaden anrichten.
// * auch einen event 'PLEASE_DOWN' schaffen, der den Applikationen signalisiert,
// * Released: Ein Flag das gesetzt wird, wenn es diese Version aus einem der Standard
//  das in wenigen Minuten heruntergefahren werden muss. z.B. Könnte so ein XMLRPC
//  Release-Medien stammt. (Developer releases setzen dieses Flag nicht)
//  Server keine neuen Verbindungen mehr annehmen! '9998'
// * Problem: Der Entwickler hat in die Rev-Tabelle schon eine neuere Rev Nummer eingetragen
// * OrgaMon sollte dem Benutzer die Aufforderung zum Beenden anzeigen
//  diese aber noch nicht released, in so einem Fall sollte sich baseupdate mit einer
// * Update-Prozess von Orgamon: OrgaMon schreibt Batch, ruft den batch auf, beendet
//  Release drunter begnügen oder: Der entwickler muss eine release machen, damit andere
//  sich selbst. Der batch ruft sleep, um sicherzustellen das OrgaMon beendet ist.
//  weiterarbeiten können.
//  Danach das Setup, dieses überschreibt die exe, ruft diese im Anschluss auf!
//
// * Eine neue ftp/web-"Update?" Aktion sollte nachsehen können, ob Updates vorliegen!
//  Verwirklichtes Konzept:
//  spätestens bei Tagesabschluss sollte das gemacht werden!
//
// * Ein Updateadmin sollte das downgeloadete Update für alle freischalten können.
// * In es ein metadata relevantes Update, so wird in der Tabelle Revision ein '9999'
// * Szenario: Wenn der Updateadmin ein "mörderisches" Update wieder
//  eingetragen. Dieses bleibt solange bestehen, bis der Updatevorgang abgeschlossen
//  entfernen will, er will sicherstellen dass alle wieder auf die alte Version
//  oder fehlgeschlagen ist. Connects sollten in dieser Zeit unterbleiben!
//  zurückstufen, das autoupdate verhindern! OrgaMon darf nicht mehr "nerfen" das
// * Frisch connectierte OrgaMon sollten im Update-Check geparkt werden, bis
//  eine neue Version vorliegt. Der Admin soll einfach "unstable" Revisions
//  das db-update abgeschlossen ist. Es wird dabei im Sekundentakt immer wieder
//  markieren können. Beim Start sollten "zu neue" Orgamons eine Warnmeldung ausgeben
//  nach dem Wert 9999 gesehen!
//  bzw. gleich die richtige Version drüber installieren (Programmversion>Datenbank-
// * Sieht die Datenbank beim insert den Wert '9999' so feuert sie den event
//  Version/empfohlene Version)
//  post_event 'PLEASE_DISCONNECT';
// * Ein Updateadmin sollte das fertig downgeloadete Update signalisiert bekommen
// * auch einen event 'PLEASE_DOWN' schaffen, der den Applikationen signalisiert,
//  er gibt diese Version frei oder nicht.
//  das in wenigen Minuten heruntergefahren werden muss. z.B. Könnte so ein XMLRPC
// * Während das Datenbank-Update noch lädt, muss verhindert werden dass sich
//  Server keine neuen Verbindungen mehr annehmen! '9998'
//  Clients mit der Datenbank verbinden. Dies könnte einfach durch eine vorhandene
// * OrgaMon sollte dem Benutzer die Aufforderung zum Beenden anzeigen
//  "Sperr"-Datei im Anwendungsverzeichnis erfolgen. Es wird ein Warte-Dialog aus-
// * Update-Prozess von Orgamon: OrgaMon schreibt Batch, ruft den batch auf, beendet
//  geführt, bis das Update abgeschlossen ist.
//  sich selbst. Der batch ruft sleep, um sicherzustellen das OrgaMon beendet ist.
// * In einer zukünftigen Version könnte das DB-Update einfach mal versucht werden,
//  Danach das Setup, dieses überschreibt den exe, ruft diesem im Anschluss auf!
//  dabei müsste aufgezeichnet werden, welche Update-Schritte durchliefen, und bei
// * Eine neue ftp/web-"Update?" Aktion sollte nachsehen können, ob Updates vorliegen!
//  welchen es zur DB-Fehlermeldung "Object in use" kam. Kam es erstmalig zu diesem
//  spätestens bei Tagesabschluss sollte das gemacht werden!
//  Fehler, muss der down der anderen Clients erzwungen werden. (dadurch wird es
// * Ein Updateadmin sollte das downgeloadete Update für alle freischalten können.
//  zum kritischen Update!). Ab der ersten exception kann ja nun wieder angesetzt
// * Szenario überlegen: Wie kann der Updateadmin ein "mörderisches" Update wieder
//  werden!
//  entfernen will, er will sicherstellen dass alle wieder auf die alte Version
// * Die SQL-Scripts, die von Release zu Relase die Datenbank Struktur
//  zurückgehen, das autoupdate verhindern! OrgaMon darf nicht mehr "nerfen" das
//  hochziehen, nach aussen transparenter machen (in der !*_Info.html!), da doch das
//  eine neue Version vorliegt. Der Admin soll einfach "unstable" Revisions
//  Interesse an der Datenbank-Struktur bei Siemens da zu sein scheint.
//  markieren können. Beim Start sollten "zu neue" Orgamons eine Warnmeldung ausgeben
//  die Datei befindet sich im Verzeichnis "MyApplicationPath". format:
//  bzw. gleich die richtige Version drüberinstallieren (Programmversion>Datenbank-
// * Nach manchen SQL-Script Befehlen wird "reconnect" notwendig, dies kann im
//  Version/empfohlene Version)
//  Ev. mal einen Test-Case daraus machen!
// * Ein Updateadmin sollte das fertig downgeloadete Update signalisiert bekommen
// * Der UpdateAdmin verursacht das Signal, dass alle OrgaMon sich beenden sollten.
//  er gibt diese Version frei oder nicht.
//  Er wartet, bis die User-Anzahl der Datenbank auf "1" (er selbst) abgesunken
// * Während das Datenbank-Update noch läuft, muss verhindert werden dass sich
//  ist oder max 25 Sekunden. (Es gibt ja für SYSDBA die Möglichkeit USER
//  Clients mit der Datenbank verbinden. Dies könnte einfach durch eine vorhandene
//  durch einen "shutdown" rauszuschmeissen!).
//  "Sperr"-Datei im Anwendungsverzeichnis erfolgen. Es wird ein Warte-Dialog aus-
//  geführt, bis das Update abgeschlossen ist.
// * In einer zukünftigen Version könnte das DB-Update einfach mal versucht werden,
//  dabei müsste aufgezeichnet werden, welche Update-Schritte durchliefen, und bei
//  welchen es zur DB-Fehlermeldung "Object in use" kam. Kam es erstmalig zu diesem
//  Fehler, muss der down der anderen Clients erzwungen werden. (dadurch wird es
//  zum kritischen Update!). Ab der ersten exception kann ja nun wieder angesetzt
//  werden!
// * Die SQL-Scripts, die von Release zu Relase die Datenbank Struktur
//  hochziehen, nach aussen transparenter machen (in der !*_Info.html!), da doch das
//  Interesse an der Datenbank-Struktur bei siemens da zu sein scheint.
//  die Datei befindet sich im Verzeichnis "MyApplicationPath". format:
// * Nach manchen SQL-Script Befehlen wird "reconnect" notwendig, dies kann im
//  hebu - Projekt nachgewiesen werden. Ev. mal einen Test-Case daraus machen!
// *

Aktuelle Version vom 27. März 2019, 16:11 Uhr

Durch das Autoupdate Konzept wird sichergestellt, dass auf jedem OrgaMon Arbeitsplatz immer die neueste Programmversion läuft. Dazu muss der Administrator Schreibrechte auf das lokale OrgaMon-Programm-Verzeichnis (C:\Programme\OrgaMon) gewären.

Updaten auf die neueste OrgaMon Version

Der Abruf der neuesten Version aus dem Internet kann eine Arbeitsstation initiieren. Dies erfolgt durch

 Update->"neuestes Update im Internet" ausführen

Version als "schlecht" markieren

Es kann vorkommen, dass sich neu implementierte Funktionen oder Verbesserungen an bisherigen Funktionen als fehlerhaft oder sogar schädlich für den gesamtzusammenhang erweisen. Dann bietet der OrgaMon eine Funktion an, um gewisse Release Nummern als "schlecht" zu markieren. Die Verwendung dieser Versionen wird dann automatisch umgangen. Es wird entweder eine Version vorher oder nach der "schlechten" verwendet. Eventuelle Datenbank Metadaten Änderungen bleiben jedoch bestehen (Stand 19.09.2005).

Technische Details zum Update-Konzept

//  Verwirklichtes Konzept:
//
// * Ist es ein metadata relevantes Update, so wird in der Tabelle Revision ein '9999'
//   eingetragen. Dieses bleibt solange bestehen, bis der Updatevorgang abgeschlossen
//   oder fehlgeschlagen ist. Connects sollten in dieser Zeit unterbleiben!
// * Frisch connectierte OrgaMon sollten im Update-Check geparkt werden, bis
//   das db-update abgeschlossen ist. Es wird dabei im Sekundentakt immer wieder
//   nach dem Wert 9999 gesehen!
// * Sieht die Datenbank beim insert den Wert '9999' so feuert sie den event
//   post_event 'PLEASE_DISCONNECT';
// * auch einen event 'PLEASE_DOWN' schaffen, der den Applikationen signalisiert,
//   das in wenigen Minuten heruntergefahren werden muss. z.B. Könnte so ein XMLRPC
//   Server keine neuen Verbindungen mehr annehmen! '9998'
// * OrgaMon sollte dem Benutzer die Aufforderung zum Beenden anzeigen
// * Update-Prozess von Orgamon: OrgaMon schreibt Batch, ruft den batch auf, beendet
//   sich selbst. Der batch ruft sleep, um sicherzustellen das OrgaMon beendet ist.
//   Danach das Setup, dieses überschreibt die exe, ruft diese im Anschluss auf!
// * Eine neue ftp/web-"Update?" Aktion sollte nachsehen können, ob Updates vorliegen!
//   spätestens bei Tagesabschluss sollte das gemacht werden!
// * Ein Updateadmin sollte das downgeloadete Update für alle freischalten können.
// * Szenario: Wenn der Updateadmin ein "mörderisches" Update wieder
//   entfernen will, er will sicherstellen dass alle wieder auf die alte Version
//   zurückstufen, das autoupdate verhindern! OrgaMon darf nicht mehr "nerfen" das
//   eine neue Version vorliegt. Der Admin soll einfach "unstable" Revisions
//   markieren können. Beim Start sollten "zu neue" Orgamons eine Warnmeldung ausgeben
//   bzw. gleich die richtige Version drüber installieren (Programmversion>Datenbank-
//   Version/empfohlene Version)
// * Ein Updateadmin sollte das fertig downgeloadete Update signalisiert bekommen
//   er gibt diese Version frei oder nicht.
// * Während das Datenbank-Update noch lädt, muss verhindert werden dass sich
//   Clients mit der Datenbank verbinden. Dies könnte einfach durch eine vorhandene
//   "Sperr"-Datei im Anwendungsverzeichnis erfolgen. Es wird ein Warte-Dialog aus-
//   geführt, bis das Update abgeschlossen ist.
// * In einer zukünftigen Version könnte das DB-Update einfach mal versucht werden,
//   dabei müsste aufgezeichnet werden, welche Update-Schritte durchliefen, und bei
//   welchen es zur DB-Fehlermeldung "Object in use" kam. Kam es erstmalig zu diesem
//   Fehler, muss der down der anderen Clients erzwungen werden. (dadurch wird es
//   zum kritischen Update!). Ab der ersten exception kann ja nun wieder angesetzt
//   werden!
// * Die SQL-Scripts, die von Release zu Relase die Datenbank Struktur
//   hochziehen, nach aussen transparenter machen (in der !*_Info.html!), da doch das
//   Interesse an der Datenbank-Struktur bei Siemens da zu sein scheint.
//   die Datei befindet sich im Verzeichnis "MyApplicationPath". format:
// * Nach manchen SQL-Script Befehlen wird "reconnect" notwendig, dies kann im
//   Ev. mal einen Test-Case daraus machen!
// * Der UpdateAdmin verursacht das Signal, dass alle OrgaMon sich beenden sollten.
//   Er wartet, bis die User-Anzahl der Datenbank auf "1" (er selbst) abgesunken
//   ist oder max 25 Sekunden. (Es gibt ja für SYSDBA die Möglichkeit USER
//   durch einen "shutdown" rauszuschmeissen!).