RMsis fails to start after configuration - possible causes and solutions
Introduction
- We start with an explanation of how RMsis and JIRA co-exist from RMsis versions 1.3.0 onwards.
- Explain the sequence of installation process at a high level
- Identify some common problems and propose solutions / corrective actions
We hope that this information will be useful in finding a quick solutions to the User's problems.
Background Information
- RMsis has two parts
- A RMsis Plugin for JIRA, which integrates with JIRA.
- RMsis application, which runs on it's own instance of Tomcat.
- JIRA and RMsis use the URL's of each other for communication between the two applications. So, in order to communicate, it is essential that:
- JIRA Application / RMsis Plugin for JIRA is able to access RMsis URL
- RMsis Application is able to access JIRA URL
Sequence of Operations for New Installation
- UPM installs the RMsis plugin (rmsis-x.x.jar). An error occurring during this process comes in the category of "System Function".
- RMsis setup process starts with the first click on RMsis Option of JIRA Menu Bar.
- RMsis plugin sets up RMsis Home in JIRA_HOME/rmsis directory. The next steps are
- DB Configuration : RMsis plugin saves the database configuration in a file (jdbc.properties) under the RMSIS_HOME.
- Mail Configuration : RMsis plugin saves the mail configuration in a file (mail.properties) under the RMSIS_HOME.
- RMsis Server Configuration : RMsis plugin saves the server configuration in a file (server.properties) under the RMSIS_HOME
- Deploy : RMsis plugin deploys the rmsis application in embedded tomcat server.
- Now, to check, whether RMsis has been successfully deployed or not, RMsis plugin checks the URL RMSIS_BASE_URL/rm/jira/getRMsisConfiguration.json
- If the response status is 200 then it notifies the end user "RMsis server started successfully. Now click on finish to complete."
- else it shows the message "An error has occurred.". The error occurred during this process comes in the category of "Network Configuration".
- After clicking on "Finish" button, RMsis application starts and populates the RMsis database with tables and predefined data automatically.
- Finally it redirects end user to the license page.
Sequence of Operations for Upgrade
- UPM installs the RMsis plugin (rmsis-x.x.jar). The error occurring during this process comes in the category of "System Function".
- In this process, RMsis plugin also stops the previously running RMsis server
- RMsis plugin notifies the user to take a backup of RMsis database.
- In the next step, RMsis plugin deploys the latest RMsis instance in embedded tomcat server
- Now, to check, whether it has been successfully deployed or not, RMsis plugin checks the URL RMSIS_BASE_URL/rm/jira/getRMsisConfiguration.json
- If the response status is 200 then it notifies the end user "RMsis server started successfully. Now click on finish to complete."
- else it shows the message "An error has occurred.". The error occurred during this process comes in the category of "Network Configuration".
- After clicking on "Finish" button, RMsis application checks for license:
- In the case of valid license (having valid support time), the application upgrade (migration) process starts.
- Then it redirects end user to RMsis Home page.
- In the case of invalid / expired license, application redirects the end user to the license page.
Built in Diagnostics
In case of installation failure, RMsis installer will present an option to the user to run diagnostics, and captures the result in log files as well as displays on the screen. In case of issues encountered during installation, the following screen is presented to the user
Here the user will have an option to run diagnosis.
Possible Causes and Solutions
# | Category | Cause / Issue | Symptoms | Possible Solution(s) | Included in Diagnostics ? |
---|---|---|---|---|---|
 | System Function | Application does not have the permissions to create JIRA_HOME/rmsis |
| Provide adequate permissions to the user. | Yes |
 | System Function | JRE is not accessible to RMsis Plugin |
| Include JRE location in path. | Yes |
 | System Function | Insufficient memory to run JAVA / Tomcat / RMsis |
| User needs to check available memory and increase the available memory, if necessary | No |
 | System Function | Database is not accessible |
| Reconfigure RMsis regarding the Database | Yes |
 | System Function | Plugin is unable to stop instance of RMsis (and Tomcat) |
|
| Yes |
 | Network Configuration | Firewall is blocking RMsis / JIRA ports. |
| Enable access to RMsis URL and ports | Yes |
 | Network Configuration | A network Element / Proxy is directing all traffic to the Gateway, ignoring traffic meant for the server hosting RMsis and JIRA. |
| Exclude JIRA / RMsis server from the proxy settings | Yes |
 | Network Configuration | Reverse Proxy prohibits communication between two applications. |
| Reconfigure reverse proxy to enable communication between two processes. | Yes |
 | Network Configuration | RMsis cannot connect with JIRA over HTTP. Network configuration problem. |
 | Test connection while configuring JIRA Internal URL. | Yes |
 | Network Configuration | RMsis cannot connect with JIRA over HTTPS even though other users can access JIRA. Client side certificate not installed. |
|
| Yes |
 | Network Configuration | JIRA is unable to access RMsis URL using HTTP. Network configuration problem. |
|
| Yes |
 | Network Configuration | JIRA is unable to access RMsis URL using HTTPS. Invalid certificate OR incorrect certificate installation. |
|
| Yes |
Problem is still unresolved ?
Contact support@optimizory.com with RMsis Logs generated through RMsis > Send Log Files option in JIRA Menu Bar.
A typical Reverse Proxy Configuration
Here is an example of a typical reverse Proxy Configuration with both JIRA and RMsis running on HTTP. Key points to note for this configuration to work correctly
- Reverse proxy should not be blocking access from
- JIRA to RMsis
- RMsis to JIRA
A corresponding (network) configuration in RMsis would be:
- RMsis URL : http://10.1.1.1:3060/rm
- JIRA internal URL : http://10.1.1.1:8080/jira
- Keystore Type : PKCS12Â [TBD- Need to removed]
- Reverse Proxy URL : https://124.55.55.1:8000/
Reverse Proxy Configuration for Apache : Sample 1
If JIRA is running under the context "/jira", then the sample reverse proxy configuration for both servers would be:
NameVirtualHost *:443 <VirtualHost *:443> ServerName example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /home/user/ssl/server.crt SSLCertificateKeyFile /home/user/ssl/server.key SSLCertificateChainFile /home/user/ssl/cabundle.crt  #for JIRA Server ProxyPass /jira http://localhost:8080/jira ProxyPassReverse /jira http://localhost:8080/jira  #for RMsis Server ProxyPass /rm http://localhost:3060/rm ProxyPassReverse /rm http://localhost:3060/rm <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
Â
Reverse Proxy Configuration for Apache : Sample 2
If JIRA is running under the root context "/",then
the sample reverse proxy configuration for JIRA server would be:
NameVirtualHost *:443 <VirtualHost *:443> ServerName jira.example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /home/user/ssl/server.crt SSLCertificateKeyFile /home/user/ssl/server.key SSLCertificateChainFile /home/user/ssl/cabundle.crt  #for JIRA Server ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/  <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
the sample reverse proxy configuration for RMsis server would be:
ÂNameVirtualHost *:443 <VirtualHost *:443> ServerName rm.example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /home/user/ssl/server.crt SSLCertificateKeyFile /home/user/ssl/server.key SSLCertificateChainFile /home/user/ssl/cabundle.crt  #for RMsis Server ProxyPass /rm http://localhost:3060/rm ProxyPassReverse /rm http://localhost:3060/rm <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
Â
Â