Data Access API (EDAA) service not starting as SAM tomcat blocked required port.
search cancel

Data Access API (EDAA) service not starting as SAM tomcat blocked required port.

book

Article ID: 331721

calendar_today

Updated On:

Products

VMware Smart Assurance

Issue/Introduction

  • Data Access API (EDAA) service not starting; Ports 8080, 8005 and 8009 already in use by Business Dashboard; How to change EDAA ports?

  • Default ports when configuring tomcat are 8080, 8005 and 8009. However, if Business Dashboard is running tomcat on these ports as per default installation, trying to set up a service like EDAA on same server causes port conflict as default ports for this version of tomcat are also 8080, 8005 and 8009. 

Environment

SMARTS - 10.1.x

Cause

When Business Dashboard and EDAA are running on same server, they require 2 versions of tomcat to run - one is installed with the Console for the Dashboard service and the other for the SAM server services that require it such as EDAA.

Resolution

  • Find a list of ports that are not being used on the server as 
    netstat -anptl
  • On the server where EDAA is installed, go to the tomcat directory of the SAM installation <SAM_BASE>/smarts/tomcat/conf and save a copy of server.xml to server.xml.ORIG as
    cp server.xml server.xml.ORIG
  • Edit the server.xml file and change the ports 8080, 8005 and 8009 to ports that are not being used (in this example 8015, 8181 and 8019): 
    <Server port="8015" shutdown="SHUTDOWN">
      <!-- Security listener. Documentation at /docs/config/listeners.html
      <Listener className="org.apache.catalina.security.SecurityListener" />
      -->
      <!--APR library loader. Documentation at /docs/apr.html -->
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
      <Listener className="org.apache.catalina.core.JasperListener" />
      <!-- Prevent memory leaks due to use of particular java/javax APIs-->
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
     
      <!-- Global JNDI resources
           Documentation at /docs/jndi-resources-howto.html
      -->
      <GlobalNamingResources>
        <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users
        -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
     
      <Service name="Catalina">
     
        <!--The connectors can use a shared executor, you can define one or more named thread pools-->
        <!--
        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
            maxThreads="150" minSpareThreads="4"/>
        -->
    
     
        <Connector port="8181" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    
     
        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />


  • Set  the SM_TOMCAT_SERVER to the replacement port for 8080 (line with: protocol="HTTP/1.1") in the runcmd_env.sh file:
    From:
    SM_TOMCAT_SERVER=http://<HOSTNAME>:8080
    To 
    SM_TOMCAT_SERVER=http://<HOSTNAME>:8181
  • Restart the tomcat service

    • sm_service stop smarts-tomcat
    • sm_service start smarts-tomcat