on 2020 Jun 02 4:18 PM
Hello all,
I wonder if anybody has tried to install CCOM in a Linux OS?
Since the two main prerequisites are a DB system and a Tomcat Server, that should be theoretically possible, unless there are some windows/dll dependencies somewhere...
Best regards,
Joerg.
Request clarification before answering.
Hello joerg.ceo,
This is now officially supported from release 2.0 FP09. Many of our customers use SAP Customer Checkout manager on linux.
This came a bit later hence it was not mentioned in our Whats New presentation and youtube videos.
https://www.youtube.com/watch?v=VyLRWZaKWLA
Detailed Documentation
https://help.sap.com/viewer/8f711df7d2aa4f1aa29f88c86cef2081/2.0.9/en-US/fa5d957a0dd6444a9992b78758f...
SAP PAM screenshot

If your question in answered correctly, kindly select the answer as "Right Answer". This helps others to follow and easily locate answers.
Regards,
Bikash Bansal
Product Owner - SAP Customer Checkout
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you Bikash.
I checked the Guide_CCO_Server_EN.pdf delivered with 2.0 FP09 PL04 and the system requirements there still mention Windows only. So you may want to include a review of that documentation in the next update, although the PAM is actually referenced.
Thanks and all the best!
Joerg.
Dear joerg.ceo
we use manual installation of tomcat. I know the downsides are, you have to update manually etc. But on the other hand, you have more control over the path structure, where tomcat is running and furthermore it is an ease to have multiple ccoms running on the same metal. So e.g. having a test/staging ccom running on port 9090 and a prod ccom on 8080.
So these are the steps we used:
cd ~
wget http://www.us.apache.org/dist/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz (check if the link still works)
After that determine which id has the "nobody" group:
cat /etc/group | grep nobodyNext we add a user for the tomcat with the home directory and we also forbid that this user can logon into the shell for security reasons.
useradd -g 65533 -s /sbin/nologin -d /home/tomcat tomcatNow we extract the tomcat package into a prod and dev folder and change the owner of these directories recursively to the tomcat user.
tar -zxvf apache-tomcat-8.5.38.tar.gz -C /home/tomcat
mv /home/tomcat/apache-tomcat-8.5.38/ /home/tomcat/tomcat-dev
tar -zxvf apache-tomcat-8.5.38.tar.gz -C /home/tomcat
mv /home/tomcat/apache-tomcat-8.5.38/ /home/tomcat/tomcat-prod
chown -R tomcat:nobody /home/tomcat/
You should now have to folders /home/tomcat/tomcat-dev and /home/tomcat/tomcat-prod.
Configure the test tomcat to listen on port 9090
vi /home/tomcat/tomcat-dev/conf/server.xmlChange Ports 8005 -> 9005, 8080 -> 9090, 8009 -> 9009
<Server port="8005" shutdown="SHUTDOWN">
...
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />Exiting vi is the tricky part. 😉
Adding the tomcats to the systemd so that suse starts both tomcats while startup.
vi /usr/lib/systemd/system/tomcat-prod.service
vi /usr/lib/systemd/system/tomcat-dev.servicetomcat-prod.service (change paths according to your installation -> Java_Home etc):
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
# Root folder of Tomcat prod
WorkingDirectory=/home/tomcat/tomcat-prod/
Environment=JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/
Environment=CATALINA_PID=/home/tomcat-prod/temp/tomcat.pid
Environment=CATALINA_HOME=/home/tomcat/tomcat-prod/
Environment=CATALINE_BASE=/home/tomcat/tomcat-prod/
Environment='CATALINE_OPTS=-Xms128M -Xmx4096M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.haedless=true -Djava.security.egd=file:/dev/./urandom -DCONFIG_FILE_PATH=/home/tomcat/tomcat-prod/ccom-prod -DFILE_STORAGE_PATH=/home/tomcat/tomcat-prod/ccom-prod Dapp.home=/home/tomcat/tomcat-prod/ccom-prod/cco'
ExecStart=/home/tomcat/tomcat-prod/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=nobody
[Install]
WantedBy=multi-user.target
tomcat-dev.service (change paths accordingly)
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
# Root folder of tomcat dev
WorkingDirectory=/home/tomcat/tomcat-dev/
Environment=JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/
Environment=CATALINA_PID=/home/tomcat-dev/temp/tomcat.pid
Environment=CATALINA_HOME=/home/tomcat/tomcat-dev/
Environment=CATALINE_BASE=/home/tomcat/tomcat-dev/
Environment='CATALINE_OPTS=-Xms128M -Xmx4096M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.haedless=true -Djava.security.egd=file:/dev/./urandom -DCONFIG_FILE_PATH=/home/tomcat/tomcat-dev/ccom-dev -DFILE_STORAGE_PATH=/home/tomcat/tomcat-dev/ccom-dev -Dapp.home=/home/tomcat/tomcat-dev/ccom-dev/cco'
ExecStart=/home/tomcat/tomcat-dev/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=nobody
[Install]
WantedBy=multi-user.target
In the JAVA_OPTS we defined the config folder where ccom should store it's config files etc. so we need to create them:
mkdir /home/tomcat/tomcat-dev/ccom-dev
mkdir /home/tomcat/tomcat-prod/ccom-prod
chown -R tomcat:nobody /home/tomcat/tomcat-dev/ccom-dev
chown -R tomcat:nobody /home/tomcat/tomcat-prod/ccom-prod
Now enable the systemd scripts:
systemctl enable tomcat-prod.service
systemctl enable tomcat-dev.service
Now you should be able to start both tomcat instances up and check for their status:
systemctl start tomcat-prod.service
systemctl start tomcat-dev.servicesystemctl status tomcat-prod.service
systemctl status tomcat-dev.service
After all this you can deploy your ccom war file into the webapp folder of both tomcats and after some short minutes you can access your ccom via http://[ip-of-your-linux-beast]:8080/ccos or ttp://[ip-of-your-linux-beast]:9090/ccos.
# Assuming your ccos.war is in ~/Downloads
cp ~/Downloads/ccos.war /home/tomcat/tomcat-prod/webapps/
hth
Robert
P.S.: It is even possible to have this setup running on a raspberry pi. 😉
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Extremely detailed, thanks! It confirms what I thought regarding the tomcat version, but it kind of contradicts the instructions published on the help site, since you won't get tomcat 8.5 using YaST.
Before removing Tomcat 9 though, I will check for different configurations and see if I can get it to work. Since we can now use multi-tenant functionality, I may not need different instances at all.
What database have you used to run CCOM on Linux so far? HANA, SQL, Derby? All of them?
Thanks and best regards,
Joerg.
Hi joerg.ceo ,
we also had one installation with tomcat 9 but this was just a presentation/prototype installation so no experience with prod use so far.
Just use another link with the wget command to download tomcat 9, the rest of hte instructions also applies to this version. We had no issues so far. Maybe the tomcat logs can make it more clear what the problem with your system is.
Mostly HANA running on the same machine.
Regards
Robert
Hi joerg.ceo ,
I did some installations on linux machines. Drop me a line if you need any help.
Regards
Robert
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Robert!
Here are the steps I took so far using a clean (azure-optimized) SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit) image:
sudo su -
cd /home/cco
wget --http-user=S001683**** --http-password='****' --output-document=/usr/bin/SAPCAR 'https://origin.softwaredownloads.sap.com/tokengen/?file=0020000000662062020'
wget --http-user=S00168**** --http-password='****' --output-document=/home/cco/SAPJVM8_63-80000202.SAR 'https://softwaredownloads.sap.com/file/0020000000636562020'
wget --http-user=S00168**** --http-password='****' --output-document=/home/cco/SAPCUSCHKSVR09_4-70001339.ZIP 'https://origin.softwaredownloads.sap.com/tokengen/?file=0020000000821372020'
chmod +x /usr/bin/SAPCAR
SAPCAR -xvf SAPJVM8_63-80000202.SAR
mkdir /usr/lib64/jvm/
mv sapjvm_8 /usr/lib64/jvm/
zypper in tomcat
vi /usr/share/tomcat/conf/tomcat.conf
# uncomment and define:
# JAVA_HOME="/usr/lib64/jvm/sapjvm_8"
unzip SAPCUSCHKSVR09_4-70001339.ZIP
cp ccos.war /srv/tomcat/webapps/
chown tomcat:tomcat /srv/tomcat/webapps/ccos.war
mkdir /SAP
chown tomcat:tomcat /SAP
service tomcat start
After those, when opening http://servername:8080/ccos/ I get the following response:

I will do some digging into the log files today, since yesterday the time before curfew ran out, but my suspicion is that the culprit is the Tomcat version here. The version installed by zypper is 9.0.35-4.30.2, and I know that this should be 8.5+, but Yast/zypper only offer the latest version which is 9.0. Am I right in that assumption? What version of Tomcat did you use?
Thanks in advance!
Joerg.
Hello,
The documentation will be updated with PL05 of FP09.
Best Regards,
Bikash
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.