A key part of the APM Spectrum integration is the access to APM web services.
It is used to discover agents from the Introscope Model in Spectrum.
The scenario we are dealing with here is where the connection cannot be made even when the credentials are correct.
Also when you try to access the APM web services on
http://<MOM host>:<MOM web server port>/introscope-web-services/services/AlertPollingService?wsdl
and enter a valid Introscope login, you receive an HTTP 401 Unauthorized error.
In this particular case, the MOM and collector were both running on the same machine and there was a port conflict of the embedded Jetty web server.
The Enterprise Manager has two listening ports, a socket port on 5001 and the embedded web server, that serves the web services, running on port 8081.
In more recent versions of APM it is possible to have the EM running even if the web server port is already in use.
There is a property in IntroscopeEnterpriseManager.properties which prevents EM startup if the web server port (8081) is already in use:
# The property to keep the EM from starting if the web server port is already in use
The default value is true, but if it is set to false, you may not realize there is a port conflict. The socket port for agent and workstation connections will still be available.
This is a sample of the error you will see when there is a port conflict:
[ERROR] [main] [Manager.EMWebServer] EM Web Server did not start. Port already in use: 8081 To change the Web
Server port, modify the EM property: introscope.enterprisemanager.webserver.port
java.net.BindException: Address already in use
Each EM on the same machine should have a unique port as governed by this property in IntroscopeEnterpriseManager.properties
Changes to ports require a restart and once there is no port conflict, it will be possible to discover agents from Spectrum.