Launch the Application Server
Prerequisites
Before launching the Application Server, you should already have completed:
If the above are completed, you can start the JBoss-based ADempiere Application Server. For demonstrations, its fine to launch the server from a console. For production systems, its best to use a method that will keep the server running after the user has logged off.
Run the Server as a Stand-Alone Process
To run the ADempiere Server from a console, open up a console window and go to the ADEMPIERE_HOME/utils directory. Run the script RUN_Server2[.bat|.sh] . Then you will see the RUN_Server2 output, such as:
If the server started with no errors, you can move on to Launching the ADempiere Application.
As a Service on Windows Operating Systems
For windows operating systems, the ADempiere Application Server can be installed as a service and scripts are provided for this purpose. Open a DOS shell with Administrative Privileges, navigate to %ADEMPIERE_HOME%\utils\windows and run:
- Adempiere_Service_Install.bat for 32-bit systems; or
- Adempiere_Service_Install_64.bat for 64-bit systems (since 380LTS hotfix 2).
The install sets the start-up options as manual. You will need to open the Services Window (Control Panel→Administrative Tools→Services) to set the properties so the service starts automatically or manually as required for your implmentation.
(Since 380LTS hotfix 2) On 64-bit systems, the service will log the full console output to ADEMPIERE_HOME\jboss\bin\run.log. As a result, run.log may get large over time. To prevent this, comment out the CONSOLE appender-ref in the ADEMPIERE_HOME\jboss\server\adempiere\conf\jboss-log4j.xml file:
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
Once the Service is running, you can move on to Launching the ADempiere Application.
As a Service on Linux
ADempiere can be setup a service on Ubuntu using systemd. Create a file called "adempiere.service" under the /lib/systemd/system/ directory
[Unit] Description=Task that runs the ADempiere ERP Service After=network.target After=systemd-user-sessions.service After=network-online.target
[Service] Environment=ADEMPIERE_HOME=/opt/Adempiere Type=forking ExecStart=/opt/Adempiere/utils/RUN_Server2.sh ExecStop=/opt/Adempiere/utils/RUN_Server2Stop.sh TimeoutSec=30 Restart=on-failure RestartSec=30 StartLimitInterval=350 StartLimitBurst=10
[Install] WantedBy=multi-user.target
With the service defined, you can run the following commands to control it. You will need to run these as root or using sudo
Command | Description |
---|---|
systemctl daemon-reload | Reloads the systemctl daemon to load the new service. |
systemctl start adempiere | Starts the ADempiere service. |
service adempiere status | Shows the status of the ADempiere service. |
systemctl enable adempiere | Enables the ADempiere service to restart on the next reboot/restart event. |
systemctl stop adempiere | Stops the ADempiere service. |
systemctl disable adempiere | Turns off the ADempiere service at the next reboot/restart event. Prevents the ADempiere service from restarting. |
systemctl is-enabled adempiere | Use this to check if the service is currently configured to start or not on the next reboot. |
Note
The systemd script may fail if the memory runs out. When the heap is full for some reason, the stop script will fail. In that case, try kill -9 using the service PID, wait for a few seconds then start the service again. System Administrators should add a health check to handle this condition.
If the server started with no errors, you can move on to Launching the ADempiere Application.
(Thanks to @pmdw and Horacio Miranda @piracio for their contribution.)
Using nohup on Linux Systems
For other operating systems, check ADEMPIERE_HOME/utils/unix or use the Linux nohup command (no hangup) as follows:
nohup ./RUN_Server2.sh &
To see the output of the server, use
cat nohup.out | more
or
tail nohup.out
If the server started with no errors, you can move on to Launching the ADempiere Application.
Trouble Shooting
Check the logs for errors.
For JBoss, the logs are located at ADEMPIERE_HOME/jboss/server/adempiere/logs or ADEMPIERE_HOME/jboss/bin.
For Tomcat, you will find them in ADEMPIERE_HOME/tomcat/log/Catalina.out.
The most common problems are with ports that are already in use. Typical conflicting ports are:
HTTP: 80, 443, 8080, 8443
RMI : 1098, 1099
For Linux users, sometimes it helps to restart the workstation/server and execute RUN_Server2 as root.
Any port conflict when starting the Application Server must be resolved!
If you have errors related to the database, check that the database has been installed, ADempiere data imported and that the database server is running.