Spring Extension

Spring Extension is a solution from CA APM to monitor the Spring Framework. The spring extension monitors the spring components like WEBMVC, PORTLET, ASPECTS, CORE CONTAINER, web services. The spring extension is bundled in CA APM and enabled by default. You do not have to install the extension separately.
apmdevops106
Spring Extension is a solution from CA APM to monitor the Spring Framework. The spring extension monitors the spring components like WEBMVC, PORTLET, ASPECTS, CORE CONTAINER, web services. The spring extension is bundled in CA APM and enabled by default. You do not have to install the extension separately.
2
2
Supported Third-Party Versions
Spring Framework 3.x, 4.x
Spring Coverage
The Spring Framework consists of features that are organized into about 20 modules. These modules are grouped into Core Container, Data Access/Integration, web MVC, and AOP (Aspect Oriented Programming),
Core Container Component
The Core Container in the Spring framework consists of the Core, Beans, Context, and Expression Language modules.
This spring extension covers the components from CA APM perspective. The Component is a generic stereotype for any Spring-managed component. Repository, Service, and Controller are specializations of a Component for more specific use cases. For example, in the persistence, service, and presentation layers, respectively. Repository, Service, or Controller are suited for processing by tools or associating with aspects. Service defines traditionally the Service layer of a Spring application. The Repository is already supported as a marker for automatic exception translation in the persistence layer.
Data Access/Integration
The Data Access/Integration layer consists of the JDBC, ORM, OXM, and Transaction modules.
JDBC
The spring extension does not explicitly provide a monitoring add-on for the JDBC layer. However the completeness of this document, the Introscope Agent covers automatically the JDBC layer.
Correlation
The spring extension supports the correlation using the JMS Header injection.
Frontend / Inbound Queues
The inbound queues are visualized by the spring extension that is identical to the core product as Frontends under the Spring-JMS node.
The URL node shows the multiple queues by name. The
Frontends/Apps/…
The structure of the URL is used to have all Introscope TypeViews in sync and usable.
Back-end / Outbound Queues
The outbound queues are visualized by the spring extension that is identical to the core product as Backends under the Spring-JMS node. The JMS spring extension fully supports the Introscope Boundary Blame concept.
Transactions
The transaction module supports programmatic and declarative transaction management for classes that implement special interfaces and for all POJOs (plain old Java objects).
Introscope visualizes commit and rollback transactions under the Spring|Transaction Management node.
Web MVC
Spring web services
The spring extension supports the spring web service implementations. The spring extension follows the metric scheme in Introscope identical to all out of the box supported Web Services. You can view the web service metrics on the following tab:
  • Backends|WebServices
  • WebServices|Client
  • WebServices|Server
All Web Service implementations support transaction trace correlation with inbound and outbound web services.
The monitoring implementation covers Exception and SOAP Fault reporting on Web Service consumers and producers.
RESTful Web Services
The spring extension covers RESTful Client Web Service calls. The metric structure and support is identical to the Native Spring Web Service coverage. Due to the nature of RESTful Web Services, instead of showing an operationName, the monitoring solution shows the Rest command string.
Exception Handling
The spring extension supports the Error Detector integration for Spring Web Services and Spring Framework components.
Request Mapping
The Request Mappings are used in the Spring framework to map the URLs such as /appointments to an entire class or a particular handler method. Typically these Request Mappings map a specific request path (or path pattern) to a form controller. The Request Mappings are shown in the Investigator at Spring|Web|RequestMapping.
Servlet
Introscope covers out of the box the Spring Servlets. To complete the request flow, the spring extension also covers the Spring Controller framework.
Portlet
In addition to supporting conventional (servlet-based) web development, Spring also supports JSR-168 Portlet development.
The main way in which portlet workflow differs from servlet workflow is that the request to the portlet can have two distinct phases:
  • Action Phase
  • Render Phase
The action phase is executed only once and is where any 'backend' changes or actions occur, such as making changes in a database
The render phase then produces what is displayed to the user each time the display is refreshed
For a single overall request, the action phase is executed only once, but in the render phase the request is executed multiple times
The action and render activities are shown at the Spring|MVC|Portlet Controller node and distinguish between the implemented Portlet Controller and the Action and Render Phase.
Web Remoting
Web Remoting covers requests for the Hessian Client, HTTP remote invocations, RMI Client and Jax RPC invocations.
Metric Visualization:
  • Spring|Remoting|RMI
  • Spring|Remoting|Hessian
  • Spring|Remoting|HTTP Invoker
  • Spring|Remoting|Jax-RPC
Aspect-Oriented Programming (AOP)
Aspect-Oriented Programming (AOP) complements object-oriented programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Aspects enable the modularization of concerns such as transaction management, that cut across multiple types and objects.
One of the key components of spring is the AOP framework. AOP complements Spring IoC to provide a capable middleware solution. The spring extension covers modeled Aspects using the Annotations. Aspect is a modularization of a concern that cuts across multiple classes. The monitoring solution visualizes execution of defined Aspects at: Spring|Aspect|{classname}|{method}.
This extension supports the following annotation-based monitoring:
  • Component
    Spring|MVC|Component
  • Controller
    Spring|MVC|Controller
  • Repository
    Spring|MVC|Repository
  • Service
    Spring|MVC|Service
  • Request Mapping
    Sprin|Web|RequestMapping'
Installation and Configuration
To install and configure the Spring extension, perform the following steps:
  1. You need to install the Out-of-the-box Java Agent.
  2. To deploy the Spring extension, copy the
    SpringMonitoring.tar.gz
    file to the following location:
    wily/extensions/deploy
    The Spring extension gets deployed and extracted to
    extensions/SpringMonitoring
    folder.
  3. Configure the extension properties in
    extensions/SpringMonitoring/bundle.properties
    file
  4. Restart the application to enable Spring Monitoring.
Spring ATC Integration
The Spring ATC integration supports the following nodes, alerts, and blame points:
  1. New ATC nodes for Spring MVC Controller and Services
  2. New Alerts “Spring Controller Errors”, “Spring Service Errors” and corresponding metric grouping in SaaS management module
  3. New BlamePoint summary metrics for Spring MVC Controller and Service nodes using JavaScript calculator
Troubleshooting
Error Message:
SOAP Messages using Spring APIs with invalid XML Can Cause Application Failure
Symptom:
The Spring Extension agent reads soap messages. When a SOAP message using Spring APIs has an invalid XML format, the Spring APIs can change or corrupt the SOAP message. The SOAP message change can cause application failure.
Solution:
By default, the Spring Extension agent gets its namespace and operationName by reading the SOAP Body. Configure the agent to get its namespace and operationName from the endpoint URI.
Follow these steps:
  1. Open the IntroscopeAgent.profile file.
  2. Add the property extension.spring.connectionurl.enabled=true
  3. Restart the managed application.
    The agent retrieves its namespace and operationName from the endpoint URI. Therefore the namespace and operation names are different from that is used for former metrics.
Categories
Frameworks