PowerLAN in real life

I bought a PowerLan adaptor to be able to connect to my private “server” (aka Raspberry PI) from the other side of the house via WLAN. Connecting the RP via WiFi wasn’t an option: two far away from the signal, I’d need to install at least one additional repeater and then two RP are without wireless adaptor. The PowerLan adaptor supports up to 1.200 MB/s and let’s me connect 3 devices directly. I won’t even need to buy an additional switch. And 1.200 MB/s. In theory, this is FAST. In reality the setup is complicated. The two adaptors are in the opposite location of a not-so-small house, the electrical stuff and cables were installed some 40 years ago. Some things you can only test after investing, and when thinking about how to connect to my servers, PowerLan was the only viable choice.

The setup was easy: one PoweLan adaptor connects to the Internet router, the other connects the RPs. Both find them and establish a secure connection. The connection signal is green, indicating a good connection. Connection tests showed that it is working: ping, ssh, all fine. It was time to check the speed. The RP isn’t the fastes when it comes to file server duties, but back in Rio I had 11 MB/s for copying files in Windows. That was fast enough. How will it be now? Laptop connected to WiFi (that is already not so good, given the layout of the rooms) and PowerLan that needs to communicate through several meters. It’s a worst case setup. I do not expect much.

A way to measure the speed is using netcat, or nc. Available in Linux and Mac. Basically the idea is to send data from the laptop to the RP and measure how long it does take to send 1MB, 10MB or more. The RP will serve as the receiving part, the laptop will send the data.

RP / Linux

Start nc, let it listen on port 2222 and send all incoming data to /dev/null

nc -v -l 2222 > /dev/null

Laptop

Read data from /dev/null, pipe it to nc and let it send to the nc instance running on the RP

dd if=/dev/zero bs=1024k count=512 | nc -v 192.168.2.112 2222

bs tells dd how much to read (1MB here) and count how many times. In the above example 512 MB will be send. To send 1 MB only, use count=1, for 10MB use count=10.

Results

1 MB

dd if=/dev/zero bs=1024k count=1 | nc -v 192.168.2.112 2222
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
 outif en0
 src 192.168.2.108 port 55619
 dst 192.168.2.112 port 2222
 rank info not available
 TCP aux info available
Connection to 192.168.2.112 port 2222 [tcp/rockwell-csp2] succeeded!
1+0 records in
1+0 records out
1048576 bytes transferred in 1.423923 secs (736399 bytes/sec)

Result: 736399 bytes/sec => 0.7 MB/sec.

10 MB

dd if=/dev/zero bs=1024k count=10 | nc -v 192.168.2.112 2222
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
 outif en0
 src 192.168.2.108 port 55624
 dst 192.168.2.112 port 2222
 rank info not available TCP aux info available
Connection to 192.168.2.112 port 2222 [tcp/rockwell-csp2] succeeded!
10+0 records in
10+0 records out
10485760 bytes transferred in 9.997975 secs (1048788 bytes/sec)

 Result: 1048788 bytes/sec => 1 MB/sec.

100 MB

dd if=/dev/zero bs=1024k count=100 | nc -v 192.168.2.112 2222
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
 outif en0
 src 192.168.2.108 port 55781
 dst 192.168.2.112 port 2222
 rank info not available
 TCP aux info available
Connection to 192.168.2.112 port 2222 [tcp/rockwell-csp2] succeeded!
100+0 records in
100+0 records out
104857600 bytes transferred in 103.159005 secs (1016466 bytes/sec)

Result: 1016466 bytes/sec => 1 MB/sec

 

Overall, the result is slower than the 11 MB/sec what I had before in Rio, but both connected  to the same WLAN. Now, with and unfortunate setup, PowerLAN gives me 1MB, and a working connection. It’s fast enough for storing documents. For copying a 100GB VM image it’s too slow.

UUIDD problem when running SAP NW ABAP inside Docker

UUID is a good old problem when it comes to running SAP NetWeaver on Linux / SuSE. You have a problem when you log in to your SAP system and get an error message. The error message shows the root cause and solution: “The UUID daemon (uuidd) is not active (code 59999). Check SAP note 1391070.”

Solution

SAP NetWeaver isn’t meant to run in Docker. When the software was designed, Docker or event containerization wasn’t around (maybe SUN). NetWeaver assumes that it is executed inside a real Linux. And the Docker version of OpenSuSE isn’t 100% a real Linux. A lot of services you get “automatically” when installing OpenSuSE are not available. One of those is that the init.d system is not starting services. Because of this, there is no UUID daemon running.

Make sure that the UUIDD service is running. For a normal Linux distribution, I blogged about this at a previous blog of mine. In case you are using Docker with OpenSuSE, make sure that uuidd is installed and executed during the image creation:

Installation

RUN zypper --non-interactive install --replacefiles  uuidd

Execution

RUN mkdir /run/uuidd && chown uuidd /var/run/uuidd && /usr/sbin/uuidd

Result

With the UUIDD running, the logon to SAP NetWEeaver ABAP is working. No restart of NetWeaver is needed.

Connect to NetWeaver ABAP instance running inside Docker

This blog will help you to connect to your SAP NetWeaver ABAP instance running inside a Docker container. For how to get NetWeaver running inside a Docker container, please see my blog Docker for SAP NetWeaver ABAP 7.5x Developer Edition.

SAPGui

Open SAPGui and create a new connection.

Give a name for the connection and click on tab Advanced. I use NPL Docker. Activate expert mode and give the correct connection String. Check to which port the message server port is mapped to by Docker. Inside the container, the port is 3200, and in my case, the external port is 32771. Therefore, the connection String is:

Connection String: conn=/H/localhost/S/32771

Note: the port information is specified when you start the container. As an alternative, you can use Kitematic to see the port mapping.

Save and connect to NetWeaver.

The users and passwords can be found in the readme.html of the extracted SAP NW ABAP 751 download. Standard users are SAP* and Developer.

HTTP Access

You can test if access to your new SAP system is working via HTTP by calling the ping service: http://localhost:32769/sap/public/ping

For this to work, first activate the ping service in SICF.

When you get the response “Server reached.” you can start using the HTTP access.

SAP WebGui

For general WebGui activation, you can see my previous blog “Activation of SAP WebGui”. Here is a short version of this guide. As in the previous HTTP service access, the same procedure must be followed to have access to NPL via WebGui.

Activate the service webgui

To activate the SAP WebGui service, activate the node:

/sap/bc/gui/sap/its/webgui

Activation of public resources

You also need to activate the public service that contains the HTML files (JS, etc):

/sap/public/bc/its

Note

It is not sufficient to only activate the webgui node. The app is using additional resources that are available under /sap/public/bc/its. If this node is not activated, you’ll get an error message when logging in to webgui.

Therefore, for SAP WebGui to load the node /sap/public/bc/its must be activated too.

Activate the node its and its subnodes. Select Activate Service.

Activate with all sub nodes nodes (second Yes).

Result

After activating these two nodes, access to WebGui should work. To test this, call the URL http://localhost:32769/sap/bc/gui/sap/its/webgui After logging in, you should see the SAP Menu.