====== HANA Proxy ======
Der HANA Proxy wird benötigt, wenn die App eine direkte Datenbankverbindung zu einer HANA-Datenbank herstellen soll.
Dies ist z. B. der Fall, wenn du HANA On-Premises oder in einer Private Cloud nutzt und möchtest, dass die App sich mit der [[Management Database]] verbindet, die du auf dem HANA-Server erstellt hast.
**WARNUNG: Die Kommunikation zwischen der Android-App und dem HANA Proxy ist nicht verschlüsselt. Verwende ihn daher ausschließlich innerhalb eines internen Netzwerks oder über einen VPN-Tunnel, der den gesamten Datenverkehr verschlüsselt.**
Der Proxy ist ein sehr kleines Java-Programm mit einer zugehörigen systemd-Service-Unit, die eine einfache Installation als Dienst auf einer GNU/Linux-Distribution ermöglicht.
In der Regel wird der Proxy auf demselben Server wie HANA installiert.
===== Download & Installation =====
Öffne eine Konsole auf dem HANA-Server und melde dich als Benutzer ''root'' an.
(Falls du dich nicht direkt als root anmelden kannst, nutze ''su -'' oder ''sudo -i'', um vor Ausführung der folgenden Befehle zu root zu wechseln.)
Lade anschließend das hanaproxy-Tar-Archiv herunter, entpacke es im Verzeichnis ''/root'', erstelle eine symbolische Verknüpfung zur entpackten Version und installiere den systemd-Dienst:
version=1.7.0 # Diese Variable unbedingt setzen! Sie wird in den folgenden Befehlen verwendet.
cd /root
wget https://docs.cobisoft.de/wiki/_media/cobi.wms/hanaproxy-$version.tar
tar -xf hanaproxy-$version.tar
ln -s hanaproxy-$version hanaproxy
systemctl enable /root/hanaproxy/hanaproxy.service
systemctl start hanaproxy
Der Befehl ''systemctl enable'' sorgt dafür, dass der Dienst beim Systemstart automatisch aktiviert wird.
Mit ''systemctl start'' wird der Dienst sofort gestartet.
Überprüfe anschließend den Status mit:
systemctl status hanaproxy
Die Ausgabe sollte ''active (running)'' in grüner Schrift anzeigen.
===== Steuerung / Überwachung =====
Du kannst den Dienst starten, stoppen, neu starten oder den aktuellen Status prüfen – alles mit ''systemctl'':
systemctl start hanaproxy
systemctl stop hanaproxy
systemctl restart hanaproxy
systemctl status hanaproxy
Weitere Details findest du in der Dokumentation zu systemd / systemctl.
===== Update =====
Zum Aktualisieren entpackst du die neueste Version, aktualisierst die symbolische Verknüpfung und startest den Proxy neu:
version=1.7.0
cd /root
wget https://docs.cobisoft.de/wiki/_media/cobi.wms/hanaproxy-$version.tar
tar -xf hanaproxy-$version.tar
rm hanaproxy
ln -s hanaproxy-$version hanaproxy
systemctl daemon-reload
systemctl restart hanaproxy
===== Fehlerbehebung (Troubleshooting) =====
Wenn du vermutest, dass der HANA Proxy nicht richtig funktioniert, obwohl der Dienst läuft, kannst du die folgenden Tests durchführen.
Einige dieser Schritte sind technisch und erfordern IT-Kenntnisse.
==== TCP-Port-Prüfung ====
Zuerst sollte geprüft werden, ob der HANA Proxy von einem anderen Rechner aus erreichbar ist.
Angenommen, die IP-Adresse des HANA-Servers lautet ''192.168.16.30'', und der Standardport des HANA Proxy ist ''30075''.
Mit [[https://nmap.org/|Nmap]] kannst du prüfen:
nmap 192.168.16.30 -p 30075
Unter Windows kannst du stattdessen ''Test-NetConnection'' (alias ''tnc'') verwenden:
tnc 192.168.16.30 -Port 30075
Wenn der Port nicht offen ist, blockiert möglicherweise eine Firewall die Verbindung.
==== Testabfrage ====
Wenn der Port erreichbar ist, kannst du testen, ob der HANA Proxy Abfragen korrekt ausführt.
Dazu verwendest du ein Programm wie ''netcat''. Wenn Nmap installiert ist, steht dir der Befehl ''ncat'' zur Verfügung.
Alternativ gibt es auf den meisten GNU/Linux-Systemen den Befehl ''nc''.
**Hinweis:** Die verwendete ''netcat''-Variante muss am Ende der Übertragung ein TCP-Shutdown senden. Auf SuSE Linux Enterprise Server (SLES) tut dies die Standardversion von ''nc'' nur, wenn du den Parameter ''-N'' verwendest.
Erstelle zunächst eine Textdatei z. B. ''hptest.json'' mit folgendem Inhalt (ersetze "secret" durch das korrekte Passwort):
{ "host": "localhost"
, "port": "30015"
, "user": "SYSTEM"
, "password": "secret"
, "schema": "SBOCOMMON"
, "query": "select * from srgc"
}
Der Wert für host kann "localhost" sein, wenn der Proxy auf demselben Server wie die HANA-Datenbank läuft. Andernfalls trage hier die IP-Adresse oder den Hostnamen des HANA-Servers ein. Der Standardport für HANA ist ''30015''.
Dieses Beispiel führt eine Testabfrage auf ''SBOCOMMON'' aus; COBI.wms greift in der Praxis nie auf diese Datenbank zu.
Sende nun die Testabfrage an den HANA Proxy (Beispiel: Server-IP ''192.168.16.30''):
ncat 192.168.16.30 30075 < hptest.json
Oder, wenn du direkt auf dem SLES/HANA-Server arbeitest und das dortige Standard-''nc'' verwendest:
nc -N localhost 30075 < hptest.json
Nach Ausführung des Befehls sollten die Abfrageergebnisse (oder zumindest eine Fehlermeldung) im JSON-Format zurückgegeben werden.