Hi,
I have installed an on-premise version of AppDynamics on my server and currently I'm trying to monitor a web application. The problem is, after logging into the controller, I see a red banner that says "Network Communication Error" which disappears after a while.
I am using nginx to route the UI controller requests to my server. So its like "https://mydomain.com/controller" which then goes to one of my servers which has the controller.
Now, I can see information in some of the tabs- Business Transactions, Dashboard homepage, but when I try to go "Transaction Analysis" or "Transaction Snapshots" the right part of the screen goes blank and UI below the Appdynamics Logo/Branding freezes.
In my browser console, I get following errors:
GET https://corpsite.appdynamics-static.com/sites/default/files/banner_ad_600x34.png 403 (Forbidden)
/controller/messagebroker/amfsecure:1 POST https://mydomain.com/controller/messagebroker/amfsecure 500 (Internal Server Error)
js-lib-body-concat.js?20150416-172620:10906 8:40:50 AM | ERROR | GLOBAL_LOGGER | Network communication errorjs-lib-body-concat.js?20150416-172620:10906 (anonymous function)SharedModuleCode.js?20150416-172620:112 ADAngularLogger.errorSharedModuleCode.js?20150416-172620:112 ADLoggerService.errorSharedModuleCode.js?20150416-172620:112 ADLoggerService.errorMainAppModuleCode.js?20150416-172620:620 FlashService.displayProblemMessageVM3475:1 (anonymous function)
In the glassfish server logs:
#|2015-04-27T18:00:37.021+0530|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web._vs.server|_ThreadID=167;_ThreadName=Thread-34;|StandardWrapperValve[MessageBrokerServlet]: PWC1406: Servlet.service() for servlet MessageBrokerServlet threw exception
flex.messaging.security.SecurityException: Secure endpoint '/messagebroker/amfsecure' must be contacted via a secure protocol.
at flex.messaging.endpoints.AbstractEndpoint.validateRequestProtocol(AbstractEndpoint.java:1124)
at flex.messaging.endpoints.AbstractEndpoint.service(AbstractEndpoint.java:794)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:258)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at com.singularity.ee.controller.servlet.CsrfFilter.doFilter(CsrfFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:121)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:554)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
Kindly suggest. I am using AppDynamics ver 4.0.4
With Regards,
Hi,
Can you please let us know how it goes after making following changes in corresponding files, please make sure you take backup files that we suggested to modify before update:
Edit the file <Controller_install_dir>/appserver/
And edit this section
#FROM
<channel-definition id="my-secure-amf" class="mx.messaging.channels.
<endpoint url="https://{server.name}:{
<properties>
<add-no-cache-headers>false</
<connect-timeout-seconds>10</
</properties>
</channel-definition>
--By setting "flex.messaging.endpoints.
#TO
<channel-definition id="my-secure-amf" class="mx.messaging.channels.
<endpoint url="https://{server.name}:{
<properties>
<add-no-cache-headers>false</
<connect-timeout-seconds>10</
</properties>
</channel-definition>
- You would need to clear out any browser caches and restart glassfish.
Please refer to http://livedocs.adobe.com/
Regards,
Arun
Hi,
It works now. Earlier I made a mistake putting the class file name -AMFEndpoint vs AMFEndPoint!
Anyway, is there is any impact on data security with this change?
With Regards,
Aman
Hi,
Glad to hear that news from you, we do not expect any impact with the changes suggested, let us know if you see any issues
Regards,
Arun