Sample Questions Flashcards

1
Q

True or false: you should expect a Java servlet container to support EJBs.

A

False. EJBs are supported by J2EE-compliant application servers, but typically not by servlet containers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

True or False: BT response times only measure the response time for a single thread, not an entire asynchronous BT

A

true (use E2E latency for the entire async BT)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why are some lines between Tiers solid and some dashed on the app flow map?

A

the dashed lines indicate asynchronous behavior, whereas the solid ones indicate synchronous behavior.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Do you support Spray with Scala?

A

Yes, but Spray is not supported as a first-class Web framework by AppD, meaning that BT detection will not be automatic, E2E detection will have to be configured, and there is a good chance some custom correlation might be needed. IOW, this is a complicated environment.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

The customer informs you that their application is using some fancy classloader logic, and they want to detect BTs from classes in one specific class loader, even though the same class name is used in other class loaders. Is this possible?

A

Not without further information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Show how to configure a rule from an inner class that is an interface

A

Must know it’s doable!
Class name syntax
Proper selection of “implements an interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

You have discovered that the customer’s environment uses an OSGi container. What is your next step?

A

https://docs.appdynamics.com/display/PRO42/OSGi+Infrastructure+Configuration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

As of October, 2016, what must you do to configure the Java agent to work with modules?

A

Modules have not appeared in any JDK shipping as of 2016, so there is nothing to do – you won’t see them until at least Java 9.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

rue or False: Java supports more than one type of classloading scheme

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

In AppD 4.2 what are the two NoSQL databases we support?

A

Cassandra and MongoDB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How many of these databases are relational databases?

PostgreSQL
OrientDB
Cassandra
MongoDB
Oracle
A

PostgreSQL and Oracle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What does AppD Support OOTB?

A

Oracle
DB2
Sybase
PostgreSQL (aka “Postgres”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How do I get the bind variables to show in queries?

A

capture-raw-sql node property

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

I’m using a just-released JDBC driver for MySQL. Will you work with my driver?

A

yes, but we’d likely have to set one or all of these properties in app-agent-config.xml:

jdbc-statements

jdbc-connections

jdbc-prepared-statements
jdbc-callable-statements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How can you find the call chain of a method that does not appear in snapshots?

A

set the node property debug-interceptors on the class and method

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

show the syntax for simultaneously setting debug-interceptors on com.foobar.MyClass, method get() and also on the constructor of com.foobar.MyOtherClass

A

com.foobar.MyClass/get,com.foobar.MyOtherClass/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What tool is available and when should decompiling be used?

A

Tool: GUI-based tool is called JD-GUI

When: done with consent of the customer. Try to avoid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is “Spring” ?

A

Spring may be used to mean an alternative to EJBs (Spring Beans) or any combination of the Spring projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Can application use both Spring Beans and EJBs?

A

Yes (but it is unlikely you’d actually see an application like that)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Show me an example of Spring support *in a demo

A

The easiest way to do this is to show Spring Bean transaction detection

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Customer asks if AppDynamics support the Spring framework.

A

Yes! However, no credit will be given unless you get this question clarified. Which specific Spring projects?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

From the options, what supports ESB like semantics but isn’t an ESB?

Apache Camel
Apache ServiceMix
Fuse ESB
Mule ESB
Netty 
Apache NiFi
A

Netty

Apache NiFi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Will AppDynamics work with Mule ESB OOTB?

A

Typically the answer is no, not OOTB. ESBs almost always require some advanced configuration. Exact versions of the ESB and any sub-packages is always needed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

In a BT log how can you distinguish find-entry-points output from regular BT logging output?

A

“Discovery stack” vs. “Logging request stack”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Show how to set node properties

A

Tiers & Nodes → (specific node) → Configure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

which Java releases use PermGen vs. Metaspace?

A

PermGen is Java 7 and Metaspace is Java 8. WHY? Because it directly affects the metrics that can be set for threshold alerts, which can be a forewarning of an upcoming JVM crash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

How do you turn on Java Garbage collection and turn it of via the CLI?

A

-xx to turn on and -XX to turn off

28
Q

My application uses a 4 GB heap. Which garbage collector is likely best?

A

G1

29
Q

Where can I see when garbage collection is happening

A

on the Memory tab in a Node page

30
Q

Your customer used to have constant problems hitting the dreaded “OutOfMemoryError: PermGen space” problem, but now claims that they have “fixed” the problem by moving to Java 8. From that information, you conclude you should put a health rule on what?

A

Metaspace usage.

31
Q

EJB classes are commonly seen in War files

A

False. EJBs are part of the full J2EE specification and are typically found in Ear files, not War files.

32
Q

Your customer is using a standard J2EE application server. Before AppDynamics gets configured or starts up, and assuming the customer allows you to see files on the filesystem, how can you know in advance what business transactions you should expect to see?

A

Look at the web.xml deployment descriptors in the app server directories.

33
Q

Would you expect to find the interface for a JMS message in a J2SE environment?

A

No

34
Q

Would you expect to find the interface for a JMS message in a J2EE environment?

A

Yes

35
Q

AppDynamics can automatically discover EJB methods as business transactions. In which Java environment is this most likely to be useful (J2SE or J2EE)?

A

J2EE

36
Q

It is possible to use JMS messaging in a J2SE environment, with no app server or servlet container. What must be configured in the environment to do this?

A

the code for the JMS functionality must somehow be provided to the environment. Specifically, the classpath or OSGi environment must be configured to know where to find implementation classes for JMS, as well as the base interface specifications for JMS.

37
Q

how many of these languages can AppDynamics monitor?

Java
Scala
Groovy
Clojure
Gosu
Erlang
A

5 (all but Erlang)

38
Q

My app uses Play framework, not servlets. Will my Play BTs be discovered automatically?

A

yes

39
Q

Can you instrument Guidewire?

A

Guidewire is an application, the language it uses is Gosu. We have had success instrumenting Guidewire, but since changes to the underlying Gosu language are not published regularly we don’t know what custom configuration (if any) might be needed for your particular app.

40
Q

Do we support Java version 5 and below?

A

No

41
Q

If you’re using JRockit and it’s errors, what should you do?

A

Kill the process and restart it.

42
Q

What is a limitation of Websphere and Java?

A

You have to use the java version bundled.

43
Q

What Java version should you avoid?

A

Java 6, has a bug.

44
Q

In a TDD. What should you get from your customer regarding Java?

A

get the Java vendor and version number for each tier. Validate on the controller UI for each agent started.

45
Q

What are the two ways to diagnose memory problems?

A

ALD (Automatic Leak Detection) and Object Instance Tracking (OIT)

46
Q

A Java class that has a leak whereby objects are held in array objects can be detected by

A

OIT (and NOT ALD!)

47
Q

What library MUST be present in order to use Object Instance Tracking?

A

tools.jar, which is included in the JDK bundle but not in the JRE bundle.

48
Q

Show how to set node properties

A

Tiers & Nodes → (specific node) → Configure.

49
Q

ustomer is impressed by your description of realtime business metrics, and wants to configure some in their application. The customer tells you that a value of interest is part of a specific POJO-based business transaction, but has no specifics and cannot show you source code. What can you do in AppDynamics to find more information needed to configure the info point?s

A

set the node property print-class-info on the class used for BT detection.

50
Q

What questions should you ask in a TDD about Messaging frameworks?

A

Determine if the messaging package is one of the ones supported OOTB. If so, most or all of the work is already done. Expect all JMS implementations, as well as RabbitMQ, to have OOTB support.
Try to determine if there are any receive() loops, which will require some configuration.
If the messaging package is not supported OOTB get the specific product and version information for the implementation. Finding a download or vendor link is helpful in case you need to engage support or other team members.
Also try to get a code sample if a framework is not one that is supported OOTB.

51
Q

Does AppDynamics support Akka?

A

Yes

52
Q

You realize that you may need to use the threadprofiler service at a customer visit later in the week. What do you need to do to prepare?

A

validate the exact agent version; check for a matching build on the threadprofiler wiki site; request a build for your agent if there is not one already

53
Q

What is the most commonly downstream tiers in BTs, and so do not require any naming configuration.

A

web services

54
Q

When do you need to watch for microservice web services,

A

When the Heap is less than 1Gb

55
Q

a node maps 1:1 with what?

A

a JVM instance

56
Q

hat node property can be used to understand the API structure of a Java class?

A

print-class-info

57
Q

A customer uses a brand-new open-source asynchronous HTTP framework you have never heard of. Should you expect OOTB BT detection?

A

No. That doesn’t mean it won’t happen, but expect that you will have to do some configuration

58
Q

You find out in a TDD that your customer is using a brand-new open-source asynchronous HTTP framework you have never heard of. What should you do before starting a POV?

A

Since the framework is open-source, you should thoroughly review the APIs of the framework, to understand what code is involved when HTTP requests are made. If possible, confirm with your customer ahead of time that your findings agree with the way they built their app. Also, in any new software, it is common for significant changes between minor releases, so make sure you are working with the correct version of the code.

59
Q

App-agent-config.xml contains what four main points?

A
  1. configuration-properties
  2. sensitive-data-filters
  3. agent-services
  4. service-configuration-properties
60
Q

What is commonly edited on fork-config?

A

job elements define the classes to be instrumented. The methods instrumented will be the constructor and the method in the filter-value attribute of the method-name element.
exclude and excludes elements are exceptions to the job configuration, to avoid over-instrumentation.
include elements are exceptions to any excluding, so you can exclude a package structure but then create an include exception for a specific class.

61
Q

Can I change the configuration of the JMX collection interval in controller-info.xml?

A

No, that configuration is in app-agent-config.xml

62
Q

Can I limit the JMX metrics gathered?

A

es, by default (i.e. OOTB) only a small number of JMX metrics are gathered, you must explicitly configure others to show up in the metric tree (and thus to be used in health rules).

63
Q

You are in a competitive POV with a QA group that involves all three of the big APM competitors. Which competitor should you be most concerned with?

A

Dynatrace

64
Q

Dynatrace says they capture PurePaths for 100% of the user transactions, and you’re saying you only capture some snapshots. Why shouldn’t I go with Dynatrace, since they give me all of the information and you don’t?

A

Dynatrace does not give “all of the information.” They manage the overhead of gathering all PurePaths by reducing the visibility of the code in each PurePath, so that when load increases you see less and less information in each and every PurePath. AppDynamics always gives you full call graph resolution in the Snapshots we collect, because we are the only APM vendor that will intelligently gather the Snapshots you need to see.

65
Q

What is the main requirement that would rule out New Relic?

A

If SaaS is not an option, then New Relic is not an option.

66
Q

If a customer looking at an on-premises comments that they have OpEx budget, but not CapEx, is that good or bad for us?

A

Good vs. Dynatrace, because they require more hardware for on-premises deployments.