Getting ABAP Platform Trial to run under M1
Install MacOS Sonoma, start sapinit, HDB and application server instances manually one after another.
A lot of people working in IT field use Apple products running under MacOS nowadays.
While it was no problem to run the ABAP Platform Trial on my Intel based iMac using Docker Desktop, trying to run it on my M1 MacBook Pro unfortunately did not lead to success.
While starting the container itself works, the start of the database hangs indefinitely.
There are workarounds using UTM but i did not want to have this overhead and additional level and so also source of problems.
So i tried to analyse it a little further and found out that when i tried to start the database manually, it fails with the error “assertion failed [metadata->shmid == kInvalidShmID]: splitting a shared memory entry not supported”.
I am not a linux kernel expert, but i assumed, that this was a feature not (yet) implemented by Apples Rosetta 2 Framework.
When i installed MacOS Sonoma, i checked the change log and found “Fixed: Intel applications might quit unexpectedly on launch under Rosetta. (110021755)”. Not knowing what it was in detail, I just thought i might give the whole another try.
Still just running the Container did not work. But when i tried to start the HDB manually, i could see that the error message was gone.
So i tried to start the separate components manually one after another. And it worked. So here is what I did.
Step1: Start sapinit as root
You are already logged on as root when you switch to the “Exec” tab of your container in Docker Desktop.
sh-4.4# /usr/sap/hostctrl/exe/sapinit start
Step 2: Start HANA database as hdbadm
sh-4.4# su hdbadm sh-4.4# source /usr/sap/HDB/HDB02/hdbenv.sh sh-4.4# source /usr/sap/HDB/HDB02/HDBsettings.sh sh-4.4# /usr/sap/HDB/HDB02/exe/sapstart pf=/usr/sap/HDB/SYS/profile/HDB_HDB02_vhcala4hci
This will take some seconds.
Step 3: Start application server instances as a4hadm
sh-4.4# #when still logged on as hdbadm exit to root to be able to su to a4hadm sh-4.4# exit sh-4.4# su a4hadm sh-4.4# /usr/sap/A4H/D00/exe/sapstartsrv pf=/usr/sap/A4H/SYS/profile/A4H_D00_vhcala4hci -D -u a4hadm sh-4.4# /usr/sap/A4H/D00/exe/sapstartsrv pf=/usr/sap/A4H/SYS/profile/A4H_ASCS01_vhcala4hci -D -u a4hadm sh-4.4# sapcontrol -nr 0 -function Start sh-4.4# sapcontrol -nr 1 -function Start
Step 4: Check that everything is running
sh-4.4# su a4hadm vhcala4hci:a4hadm 1017> sapcontrol -nr 0 -function GetProcessList 26.10.2023 12:17:12 GetProcessList OK name, description, dispstatus, textstatus, starttime, elapsedtime, pid disp+work, Dispatcher, GREEN, Running, 2023 10 26 12:06:36, 0:10:36, 1662 igswd_mt, IGS Watchdog, GREEN, Running, 2023 10 26 12:06:36, 0:10:36, 1663 gwrd, Gateway, GREEN, Running, 2023 10 26 12:06:37, 0:10:35, 1683 icman, ICM, GREEN, Running, 2023 10 26 12:06:37, 0:10:35, 1684 vhcala4hci:a4hadm 1018> sapcontrol -nr 1 -function GetProcessList 26.10.2023 12:17:15 GetProcessList OK name, description, dispstatus, textstatus, starttime, elapsedtime, pid enq_server, Enqueue Server 2, GREEN, Running, 2023 10 26 12:06:47, 0:10:28, 1839 msg_server, MessageServer, GREEN, Running, 2023 10 26 12:06:47, 0:10:28, 1840 vhcala4hci:a4hadm 1019> sapcontrol -nr 2 -function GetProcessList 26.10.2023 12:17:26 GetProcessList OK name, description, dispstatus, textstatus, starttime, elapsedtime, pid hdbdaemon, HDB Daemon, GREEN, Running, 2023 10 26 12:02:20, 0:15:06, 480 hdbcompileserver, HDB Compileserver, GREEN, Running, 2023 10 26 12:02:31, 0:14:55, 729 hdbdiserver, HDB Deployment Infrastructure Server-HDB, GREEN, Running, 2023 10 26 12:03:08, 0:14:18, 1130 hdbindexserver, HDB Indexserver-HDB, GREEN, Running, 2023 10 26 12:02:32, 0:14:54, 782 hdbnameserver, HDB Nameserver, GREEN, Running, 2023 10 26 12:02:21, 0:15:05, 498 hdbpreprocessor, HDB Preprocessor, GREEN, Running, 2023 10 26 12:02:31, 0:14:55, 732 hdbwebdispatcher, HDB Web Dispatcher, GREEN, Running, 2023 10 26 12:03:08, 0:14:18, 1133 hdbxsengine, HDB XSEngine-HDB, GREEN, Running, 2023 10 26 12:02:32, 0:14:54, 785 vhcala4hci:a4hadm 1020>
Step 5: Success 🙂