This is an old revision of the document!
HANA Proxy
Table of Contents
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:
<code bash>
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
</code>
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:
<code bash>
systemctl status hanaproxy
</code>
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
:
<code bash>
systemctl start hanaproxy
systemctl stop hanaproxy
systemctl restart hanaproxy
systemctl status hanaproxy
</code>
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:
<code bash>
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
</code>
===== 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 Nmap kannst du prüfen:
<code bash>
nmap 192.168.16.30 -p 30075
</code>
Unter Windows kannst du stattdessen Test-NetConnection
(alias tnc
) verwenden:
<code powershell>
tnc 192.168.16.30 -Port 30075
</code>
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.