User Tools

Site Tools


cobi.wms:hana_proxy

This is an old revision of the document!


HANA Proxy

The HANA Proxy is needed if you want the app to make direct database connections to HANA. For example, if you use HANA on-premises or in a private cloud and you want the app to connect to the Management Database that you created on the HANA server.

WARNING: The communication between the Android App and HANA Proxy is NOT encrypted. You should only be using it within an internal network, or through a VPN tunnel that encrypts all traffic.

The Proxy is a very small Java program with an accompanying systemd service unit to allow for easy installation as a service on a GNU/Linux distribution. Typically it is installed on the same server as HANA.

Download & Install

Open a console to the HANA server and log in as the root user. (If you cannot log in as root directly, you can use the commands su - or sudo -i to switch to the root user before entering the commands below.)

Then download and unpack the hanaproxy tarball within the /root directory, create a symlink to the unpacked version, and install the systemd service:

version=1.6.0  # Don't forget to set this variable! It's used in the following commands.
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

The systemctl enable command makes sure that the service will be started on a reboot, and the systemctl start command starts it right now. You can check its status with the following command to make sure it started properly:

systemctl status hanaproxy

The output should say active (running) in green text.

Control / Monitor

You can start/stop/restart the service or check its current status with systemctl:

systemctl start hanaproxy
systemctl stop hanaproxy
systemctl restart hanaproxy
systemctl status hanaproxy

Refer to the documentation of systemd/systemctl for more details.

Update

To update, unpack the newest version, update the symlink, and restart the proxy.

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

Troubleshoot

If you suspect that HANA Proxy may not be working properly even though it is running, you can test a few things.

First of all see if it's reachable from another machine. Let's say the IP Address of the HANA server is 192.168.16.30. The port used by HANA Proxy is 30075. Using Nmap, we can try:

nmap 192.168.16.30 -p 30075

On MS Windows you could also use Test-NetConnection aka tnc instead of Nmap:

tnc 192.168.16.30 -Port 30075

If the port doesn't seem open, a firewall could be blocking the connection.

Once you've made sure that the port itself is reachable, you can test if HANA Proxy can execute queries. This can be done with a netcat utility. If you have Nmap installed, you should have the ncat command which can do this, otherwise if you're on a GNU/Linux distro you should also have a simple nc tool that is capable enough.

First copy the following HANA Proxy command into a text file, let's say hptest.json, with the correct password in place of “secret”:

{ "host": "localhost"
, "port": "30015"
, "user": "SYSTEM"
, "password": "secret"
, "schema": "SBOCOMMON"
, "query": "select * from srgc"
}

The host can be “localhost” when the HANA Proxy is running on the same server as the HANA database; otherwise, it will have to be the IP address or hostname of the HANA server. Port 30015 is default for HANA. The SYSTEM user should have permissions to query any database. Note that this example queries SBOCOMMON for testing purposes, but COBI.wms never actually queries the SBOCOMMON database.

Now you can send the command to HANA Proxy with the following command:

ncat localhost 30075 < hptest.json

The example assumes that you're running this command on the same server as HANA Proxy, which is why it uses localhost. If you're running this command from a different machine, make sure to use the IP address or hostname of the server on which you've installed HANA Proxy.

When you execute the command, the results of the query (or at least an error message) should be returned in JSON format. If you're not receiving any JSON response at all, make sure that HANA Proxy is running, that the IP address or hostname you've used is correct, and that port 30075 is open and not blocked by any firewall.

cobi.wms/hana_proxy.1691591208.txt.gz · Last modified: 2023/08/09 16:26 by tkammer

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki