Oracle XE und Enterprise MAnager

Nachdem man einen neuen Oracle Server installiert hat, z.B. die neue Version von Oracle XE 18C, egal ob als Vollinstallation unter Linux oder Windows oder als Docker-Container, muss man den Zugriff auf die Enterprise-Console der Enterprise Managers noch extra freischalten.

Dazu muss man sich als sysdba am Server anmelden:

./sqlplus sys/*****@localhost:1521/xe as sysdba
SQL>exec dbms_xdb_config.SetGlobalPortEnabled(TRUE);
SQL>exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
SQL>exec DBMS_XDB_CONFIG.SETHTTPPORT(5510);

Anschliessend ist dann der Zugriff über https://localhost:5500/em

für den User sys mit dem bei der Installation festgelegten Passwort möglich:

Um User in der PDB xepdb1 zu aktivieren, meldet man sich per sqlplus an und aktiviert den user mit

./sqlplus sys/****@localhost:1521/xepdb1 as sysdba
SQL> alter user hr identified by **** account unlock;

Bash, tee und $?: Der korrekte Umgang mit $?

Beim Ausführen von Unix-Scripten muss man oft auf den Rückgabecode $? von Anwendungen reagieren. Also fragt man diesen mit if ab.

Oft benötigt man dann noch ein Log von der Ausgabe des Kommandos. Also wird die Ausgabe umgelenkt in eine Datei. Möchte man diese Ausgabe dann auch noch sofort sehen, verwendet man den Befehl tee.

Und genau hier beginnt nun das Problem:

Wenn man mit $? den Returncode abfragt, erhält man nicht den Returncode des ausgeführten Programmes sondern den Returncode von tee!

Lösung:

Setzen der pipefail-Option im jeweiligen Shell-Skript

set -o pipefail

bevor die gewünschte Anwendung gestartet wird.

Quelle: Stackoverflow

Dinge mit eigenen Augen sehen ist was anderes, als Bilder zu sehen

Am 27.07.2018 abends war eine Mondfinsternis. Ich war etwas ratlos unterwegs, da ich nicht wusste, wo bzw. wann der Mond zu sehen ist.

Ich war nicht der einzige, der den Mond beobachten wollte. Ich Traf einen Amateur-Astronom, der mit einem recht grossen, transportablen Teleskop unterwegs war.

Leider hat sich der Mond erstmal hinter Wolken bzw. einem Berg versteckt.

Ich fragte, ob er wüsste, was für ein Stern an einer bestimmten Stelle am Himmel zu sehen sei. Das ist der Saturn, war die Antwort und er richtete das Teleskop auf diesen Punkt. Ich durfte dann durch das Teleskop auf diesen winzigen Lichtpunkt schauen. Ich konnte mit eigenen Augen den Saturn mit seinen Ringen durch das Teleskop sehen. Das hat mich sehr beeindruckt. Ich kenne viele Bilder vom Saturn – Cassini sei Dank – aber mit eigenen Augen die Ringe zu sehen hat mich vom Sockel gehauen.

Swagger 2.0

Swagger ist ein Opensource-Framework zur Unterstützung bei Design, Entwickelung, Test und Dokumentation von RESTful APIs.

Mit der Version 2.0 werden dazu die Module

  • Swagger Editor zum Design,
  • Swagger Build zum Generieren von Clients und Servern,
  • Swagger UI um Dokumentieren von Schnittstellen

angeboten.

Entwicklung der Service-Dokumentation mit swagger-editor

In meinem Fall lag das RESTful API auf Serverseite schon vor. Ich wollte dieses API für Konsumenten der Schnittstelle dokumentieren. Dazu bietet sich das Javascript-basierte Module swagger-editor an.  Die Installation erfolgt einfach:

Von github.io wird das Projekt https://github.com/swagger-api/swagger-editor heruntergeladen, anschließend werden die notwendigen rpm-module mittels

$> npm install

installiert. Durch Aufruf von

$> npm start

wird dann der webbasierte Editor aufgerufen.

Darin wird die Beschreibung des RESTful-API entweder in einer JSON-Struktur oder in der YAML-Schreibweise festgelegt. Die API-Definitionen können dort interaktiv getestet werden – einfach großartig, wie schnell man dort einen Überblick über sein API bekommt.

Ist die Definition der Schnittstelle – hier einen Clients – abgeschlossen, wird diese als JSON- oder als YAML-Datei auf einem Web-Server bereitgestellt.

Bereitstellen der Service-Dokumentation in Swagger-UI

swagger-editor ist ein Editor zum Entwickeln der Service-Beschreibung. Diese Modul ist nicht geeignet, um den eigenen Service für andere zu dokumentieren – in diesem Fall sollte die Service-Schnittstelle nicht mehr veränderbar sein.

Genau diese Zweck erfüllt das Modul swagger-ui, welches man ebenfalls von github.io herunterladen kann.

Hat man dieses Modul heruntergeladen, so muss man noch den Verweis auf die zu testenden Schnittstelle eintragen.

Dazu ändert man in dist/index.html den Verweis auf die weiter ob bereitgestellte eigene swagger.json -Datei.

Anschliessend lädt man den ganzen swagger-ui-Ordner auf den gewünschten Web-Server.