====== 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.