AppD Archive

Blank Page on AppDynamics GUI on some tabs

CommunityUser
Splunk Employee
Splunk Employee

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,

0 Karma

Arun_Dasetty
Super Champion

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/glassfish/domains/domain1/applications/controller/controller-web_war/WEB-INF/flex/services-config.xml and modify the below xml

And edit this section

#FROM

<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
<connect-timeout-seconds>10</connect-timeout-seconds>
</properties>
</channel-definition>

--By setting "flex.messaging.endpoints.SecureAMFEndpoint" to "flex.messaging.endpoints.AMFEndpoint"

#TO
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
<connect-timeout-seconds>10</connect-timeout-seconds>
</properties>
</channel-definition>

- You would need to clear out any browser caches and restart glassfish.

Please refer to http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcconfig_5.html or http://flex4java.blogspot.in/2012/04/blazeds-lcds-and-flex-java-interaction.html for more details.

Regards,

Arun

0 Karma

CommunityUser
Splunk Employee
Splunk Employee
Hi,

I made the above change but now glassfish refuses to start:


org.apache.catalina.LifecycleException:
org.apache.catalina.LifecycleException: javax.servlet.UnavailableException:
Cannot create class of type
'flex.messaging.endpoints.AMFEndPoint'.
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:5389)
at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)


0 Karma

CommunityUser
Splunk Employee
Splunk Employee

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

0 Karma

Arun_Dasetty
Super Champion

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

0 Karma
Get Updates on the Splunk Community!

Fall Into Learning with New Splunk Education Courses

Every month, Splunk Education releases new courses to help you branch out, strengthen your data science roots, ...

Super Optimize your Splunk Stats Searches: Unlocking the Power of tstats, TERM, and ...

By Martin Hettervik, Senior Consultant and Team Leader at Accelerate at Iver, Splunk MVPThe stats command is ...

How Splunk Observability Cloud Prevented a Major Payment Crisis in Minutes

Your bank's payment processing system is humming along during a busy afternoon, handling millions in hourly ...