This appendix provides a detailed discussion of the support available for the accurate monitoring of Oracle Application Development Framework (ADF)-based applications.
RUEI supports out-of-box monitoring of Oracle ADF applications. It automatically discovers Oracle ADF applications, and translates network objects to business functions. Using this support, individual user actions are automatically matched to the correct web application, task flow, and view.
For ADF and Fusion applications, you can take advantage of the ADF Monitoring Service, which enhances data received from network collection with additional data received from the ADF Monitoring Service (e.g. user names). This requires deploying and configuring the ADF Monitoring Service which is described in the Oracle Real User Experience Insight Installation Guide.
The monitoring support described in the rest of this appendix has been verified against applications based Oracle ADF version 11g.
You can create suite definitions for Oracle ADF-based applications in the same way as for any other supported Oracle Enterprise architectures. The procedure to create suites is fully described in Section 10.1.1, "Creating Suite Definitions".
Many ADF components use 'hover' images which could cause RUEI to report incorrect page loading times. To improve the accuracy of page loading times, configure hover images as framework exceptions as described in Section 10.2, "Refining Application Definitions Through Framework Exceptions."
The adf-faces-databinding-rt.jar
file provides a DMS-based implementation for the ExecutionContextProvider(oracle.adfinternal.view.faces. context.AdfExecutionContextProvider)
class. The implementation class has been pre-registered in the .jar
file, but the feature itself can only be enabled by specifying the following application context parameter in the web.xml
file:
<context-param> <description>This parameter notifies ADF Faces that the ExecutionContextProvider service provider is enabled. When enabled, this will start monitoring and aggregating user activity information for the client initiated requests. By default, this param is not set or is false. </description> <param-name>oracle.adf.view.faces.context.ENABLE_ADF_EXECUTION_CONTEXT_PROVIDER</param-name> <param-value>true</param-value> </context-param>
Because Oracle ADF is based on the Java technology, it is most likely that your Oracle ADF applications will use the JSESSIONID
state cookie. To enable RUEI to monitor and track users over the complete session, you should ensure the cookie path is set to "/". If your Oracle ADF application uses another cookie name for state tracking, you need to update the application definition to reflect this. In addition, be aware that user name recognition is based on the j_username
construction. See Section 12.2, "Specifying the Session Tracking Mechanism" for more information on cookie configuration.
In terms of ADF reporting, RUEI depends heavily on the Adf-View-ID, which is provided as a header. For this reason, it is important that ADF developers set the view ID to some sensible value. By default, the view ID is filled based on the name of the jspx that generates the content.
For dynmic regions, the UIShell.jspx will be shown continuously without specific coding. Oracle recommends that you implement code similar to the following:
In a jsf phase listener:
FacesContext context = FacesContext.getCurrentInstance();
Object response = context.getExternalContext().getResponse();
if (response instanceof HttpServletResponse) {
HttpServletResponse httpResponse = (HttpServletResponse)
response;
httpResponse.setHeader("Adf-View-Id", viewID);
}
where viewID is the relevant viewID.
The view ID should be a rough indication of the java code block that was used to produce the content that the client saw. In fusion it makes sense inside the context of a product, and is wider than the individual regions.
This code should be executed after "BeforePhase", that is, before the beginning of the RenderResponse phase which sets the response headers for user activity monitoring tools. Otherwise the headers will be overwritten in the phaselistener code that injects the default headers.
ADF pages may not be available via the Replay Viewer using the Session Diagnostics feature, or may appear garbled, if they are based on Rich Internet Applications (RIAs). Examples of RIA frameworks include Ajax, Curl, GWT, Adobe Flash/Adobe Flex/AIR, Java/JavaFX, Mozilla's XUL, OpenLaszlo, and Microsoft Silverlight.
If replayed pages appear blank, you should consider removing the use of the oracle.adf.view.rich.security.FRAME_BUSTING
context parameter within the required pages. This security parameter is used to prevent clickjacking, which occurs when a malicious web site pulls a page originating from another domain into a frame and overlays it with a counterfeit page.
The ADF-specific data items shown in Table I-1 are reported by RUEI.
Table I-1 ADF-Specific Data Items
Item | Description |
---|---|
ADF suite/Code |
The code of an ADF framework suite, as defined in its configuration definition. This data makes it possible to distinguish between different monitored ADF framework suites. |
ADF suite/Name |
The name of an ADF framework suite, as defined in its configuration definition. This data makes it possible to distinguish between different monitored ADF framework suites. |
ADF action/Name |
The action that was triggered by this hit (such as view, action, dialog, focus, disclosure, launch, query, sort, valueChange, and so on). |
ADF application/Name |
The name of the application module within the ADF framework. |
ADF component client ID/Name |
An unique identifier of the element clicked by the end-user on the (previous) page. |
ADF component display name/Name |
The display name of the component that was activated by the (previous) end-user action. |
ADF component type/Name |
The type of the component that was activated by the (previous) end-user action. |
ADF Region/Name |
The name of the last active region within which the (previous) end-user action took place. |
ADF view ID/Name |
The identifier of a (part of) the screen where the (previous) end-user action took place. |
Detailed information about the architecture and functionality of Oracle ADF can be obtained from the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework. This is available at the following location:
http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/title.htm