0% found this document useful (0 votes)
87 views41 pages

WebLogic Server Management Pack Overview

The document provides an overview of Oracle Enterprise Manager 11g and its capabilities for managing Oracle Fusion Middleware and WebLogic Server. It describes the new interface for Oracle Enterprise Manager 11g, which uses an ADF-based navigation model to more efficiently manage Oracle products. The hands-on lab covers tasks like monitoring multiple WebLogic domains, tracking configuration changes, debugging hung applications, analyzing JVM memory usage, and optional exercises for performance trend analysis and scaling out clusters.

Uploaded by

Huynh Tran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views41 pages

WebLogic Server Management Pack Overview

The document provides an overview of Oracle Enterprise Manager 11g and its capabilities for managing Oracle Fusion Middleware and WebLogic Server. It describes the new interface for Oracle Enterprise Manager 11g, which uses an ADF-based navigation model to more efficiently manage Oracle products. The hands-on lab covers tasks like monitoring multiple WebLogic domains, tracking configuration changes, debugging hung applications, analyzing JVM memory usage, and optional exercises for performance trend analysis and scaling out clusters.

Uploaded by

Huynh Tran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Oracle Enterprise Manager

Oracle Fusion Middleware Management

WebLogic Server Management Lab

Session S318968
Oracle Enterprise Manager 11g 
WebLogic Server Management Pack Enterprise Edition 
Hands‐on Lab 
Introduction to Enterprise Manager 11g 
Oracle Enterprise Manager 11g is the centerpiece of Oracle's integrated IT management strategy, which rejects the 
notion of management as an after‐thought. At Oracle, we design manageability into each product from the start, 
enabling Oracle Enterprise Manager to then serve as the integrator of manageability across the entire stack 
encompassing Oracle and non‐Oracle technologies. Fueled by this unique vision, Oracle Enterprise Manager 11g 
has introduced business‐driven IT management to help IT deliver greater business value through three highly 
differentiated capabilities: 

• Business‐driven application management, which combines industry‐leading capabilities in real user 
experience management, business transaction management and business service management to 
improve application users' productivity while enhancing business transaction availability 
• Integrated application‐to‐disk management, which provides deep management across the entire Oracle 
stack to reduce IT management complexity and eliminate disparate point tools 
• Integrated systems management and support, which utilizes industry‐first technology to bring support 
services into the IT management console; enabling proactive IT administration, increased application and 
system availability, and improved customer satisfaction 

Oracle WebLogic Server Management Pack Enterprise Edition (EE) 
Oracle WLS Management Pack EE provides increased visibility, production assurance, and significant reduction in 
cost and complexity while managing WLS environments, thereby increasing ROI on WLS investments. It provides 
application runtime visibility through composite application modeling and monitoring, JVM diagnostics, business 
transaction management and comprehensive service and infrastructure management including configuration and 
lifecycle management. 

Oracle WLS Management Pack EE delivers comprehensive management capabilities, and makes it easy for the WLS 
administrators to manage WLS application environments. The pack improves visibility by discovering services as 
well as underlying Java artifacts, modeling functional and architectural relationships, as well as monitoring usage 
and performance metrics. Rich out of the box dependency analysis, performance monitoring, and production JVM 
diagnostics support is provided for Java EE applications and web services.  

Further, the pack manages service levels, and provides an error alert management solution. Automated lifecycle 
management and configuration management capabilities for WebLogic and the underlying infrastructure help to 
implement Oracle best practices and to analyze changes across services and infrastructure. Java EE infrastructure 
components are grouped and managed in conjunction with existing components, with topology, service level and 
alerting functionality. A single centralized console can be used to analyze WLS domain groups, domains, clusters, 
servers, and the applications themselves throughout the infrastructure. Enterprise Manager provides a superior 
ownership experience with its unmatched management of Oracle products, as well as third party products. 

This lab will demonstrate: 
While the WebLogic Server Management Pack Enterprise Edition contains many features, all features of the pack 
are not included as exercises in this hands‐on lab.  This hands‐on lab includes the exercises listed below.  For 
information on features not covered in this hands‐on lab (e.g. Business Transaction Management, configuration 
Page 1 of 40
management features from Application Configuration Console and Configuration Change Console, Service Level 
Management, Coherence Management), please refer to the SOA and Middleware Management page available on 
the Oracle Technology Network (OTN).   
• Navigating the New User Interface for WebLogic Server Management 
• Monitoring Multiple WebLogic Domains with WebLogic Domain Groups 
• Tracking and Comparing WebLogic Server Configuration Changes 
• Debugging a Hung Application Using Root Cause Analysis 
• Analyzing JVM Memory Consumption with Heap Comparisons 
• Proactively Analyzing Performance Trends and Delay Analysis (OPTIONAL – EXTRA CREDIT) 
• Scaling Out Existing WebLogic Clusters (OPTIONAL – EXTRA CREDIT) 
 
Please feel free to seek assistance from the instructor or Oracle Demo staff at any point in time. 
 
Before you begin the exercises in this hands‐on lab, please note the following: 
 
• You will be given a virtual machine address to use for this lab. For ease of reference, you may want to 
write this below: 
 
Virtual Machine Address: _________________________________________________________ 
 
• The URL to your Oracle Enterprise Manager Grid Control console is as follows, and should be accessed via 
the Microsoft Internet Explorer web browser: 
 
Grid Control URL:  https://<Virtual Machine Address>:7799/em   
(e.g. https://ec2‐111‐222‐333‐444.compute‐1.amazonaws.com:7799/em) 
 
• You may connect to the console  with the following Oracle Enterprise Manager administrator credentials: 
 
Username:  sysman 
Password:    welcome1 
 

Page 2 of 40
Navigating the New User Interface for WebLogic Server Management  
 
Summary: 
Administrators can perform tasks more efficiently through the new and improved interface for managing Oracle 
Fusion Middleware 11g and Oracle WebLogic Server. 
 
Exercise Walkthrough: 
1. After logging in to the Grid Control console, click on the ‘Targets’ tab.  Then click the ‘Middleware’ subtab.   

The ‘Middleware’ subtab page identifies all the middleware – both Oracle as well as non‐Oracle – that Grid 
Control centrally manages and monitors.  Each WebLogic Domain that is added to Grid Control appears here 
and you gain a high‐level overview of middleware software status and any potential problem areas with that 
software.   

Click on the target name ‘/Farm01_medrec_1/medrec_1’ to be taken to the domain’s Home page.  

2. The WebLogic Domain Home page appears.  Notice that the user interface has completely changed from prior 
Grid Control releases.  The pages for managing Oracle Fusion Middleware 11g and Oracle WebLogic Server 
(releases 9.x and 10.x) are ADF‐based now ‐ rather than UIX based ‐ and as such provide a simplified and much 
improved navigation model. 

The interface that appears may look familiar as it is similar to the interface of the Oracle Enterprise Manager 
Fusion Middleware Control which is bundled and installed with Oracle Fusion Middleware 11g.  While the 
overall look‐and‐feel of the Grid Control Console and the Fusion Middleware Control Console are similar, the 
features that each exposes are very different.  While Fusion Middleware Control provides real‐time monitoring 
and administration capabilities for Oracle Fusion Middleware, Grid Control provides historical monitoring, 
alerting and notifications, configuration management, provisioning, service level management, and 
management support for other non‐middleware software (such as databases, packaged applications, 
hardware, operating system, and third‐party software). 

Page 3 of 40
 
On the left‐hand side of the page is the target navigation pane displaying a tree of the managed servers in this 
domain and the applications deployed to them.   
 
Expand the tree to view all content in the target navigation pane.   
 
On the right‐hand side is the content pane displaying information for the target selected from the left‐hand 
side.  The contents pane contains various regions – each with a variety of configuration, availability and 
performance data concerning the domain.  These regions can be dragged and dropped around the page in 
order to customize the layout of the home page. Notice the ‘Summary’ region has a link to drill down into the 
WebLogic Server Administration Console, and if this were for instance a SOA Suite or WebCenter Suite 
domain, there would be a link to drill down to the Oracle Enterprise Manager Fusion Middleware Control 
Console as well.   
 
Dynamic target menus are available from either the navigation pane or the content pane.   
 
From the navigation pane, you can right‐mouse click on a target to access its menu.  From the content pane, 
you can click on the black down arrow next to the target type icon and label. 
 
There is a general information icon next to the target type name.  When accessed, additional information on 
the target is displayed; such as the target’s version number, installed location, agent used to monitor the 
target, and the underlying host machine on which it is installed. 

 
 
3. Select the ‘AdminServer’ target from the navigation pane to go to its home page.   

Page 4 of 40
As with any home page, you can gauge the overall health of the managed server from this page.  Take a 
moment to review the various regions’ content on the page.  How is the managed server performing?  Is there 
significant load?  Are there any alerts?   

Access the target’s menu and peruse its various submenus and available capabilities. Notice that to 
startup/shutdown/blackout the server, you must navigate to the target’s menu and drilldown into the 
‘Control’ submenu. 

 
4. Oracle Enterprise Manager Grid Control 11g Release 1 introduces two new target types for deployed Java EE 
applications.  These new target types are application deployment and clustered application deployment.  
While an application deployment represents one application deployed to a single server, a clustered 
application deployment represents one application deployed across multiple servers that reside in a cluster.   

By having application deployments as “first‐class” targets, you gain a variety of features in Grid Control.  For 
instance, these new target types have a status metric (up/down); can be started up/shutdown/placed under 
blackout; support metric thresholds and alerting, and support target privileges.   

Scroll down the home page and select the ‘medrec’ application deployment target from the server’s home 
page.   

Take a moment to review the various regions’ content on the application deployment home page.   
 
Access the target’s menu and peruse its various submenus and available capabilities. 

Page 5 of 40
 
5. Feel free to peruse the domain, or another domain, a bit more to familiarize yourself with the new navigation 
model and layout.   

Page 6 of 40
Monitoring Multiple WebLogic Domains with Oracle WebLogic 
Domain Groups 
Summary: 
 
Administrators can simplify how they manage multiple WebLogic Domains by creating and using WebLogic Domain 
Groups within Grid Control.  Rather than relying on several different WebLogic Server Administration Consoles and 
rather than navigating to various different domain’s home pages within the Grid Control Console, administrators 
can gain an overview of availability, performance, configuration, and potential problem areas across all domains 
from just a few pages – within just 1‐3 clicks. 
 
Exercise Walkthrough: 
Oracle WebLogic Domain Group targets are not available out‐of‐box with the Grid Control installation.  You must 
manually create Oracle WebLogic Domain Groups after you add Oracle WebLogic Domains to Grid Control.  This 
exercise will guide you through how to create an Oracle WebLogic Domain Group, and what features are available 
after you do so. 
 
1. Click on the ‘Targets’ tab.  Then navigate to the ‘Groups’ subtab.  From the ‘Create’ drop down list, select 
‘Oracle WebLogic Domain Group’ and click the ‘Go’ button. 

 
2. The ‘Create WebLogic Domain Group’ page appears prompting you to supply the group’s name as well as to 
add members to the group.   

First, supply a name for the group, such as ‘Production Domains’, and then click the ‘Add’ button to begin 
adding WebLogic Domain targets to the group. 

Page 7 of 40
 
 
3. From the ‘Search and Select: Targets’ page, select domains to add to the group.  Multiple domains can be 
selected by holding the shift key as you select each domain.  When all domains are selected, click the 
‘Select’ button. 

 
 
4. You are returned to the ‘Create WebLogic Domain Group’ page with the selected domains appearing in the 
‘Members’ table.   

Click the ‘Ok’ button to complete creation of the Oracle WebLogic Domain Group.   

Page 8 of 40
The ‘Groups’ subtab is updated with the newly created Oracle WebLogic Domain Group. 

 
5. Click on the newly created Oracle WebLogic Domain Group’s name link to launch the home page for the 
group.   

The home page can be seen as a “dashboard” view into your domains.  The pages available for the Oracle 
WebLogic Domain Group target type automatically refresh so you can be assured that the most up‐to‐date 
information is displayed. The upper region provides an overview of the availability of managed servers across 
all domains of the group and of potential problem areas via alerts, policy violations and configuration changes.  
The middle region has several performance metric charts indicating which five managed servers have for 
example the longest request processing time, most requests, and highest heap usage.  The bottom portion of 
the page provides further details on each managed server. 

Page 9 of 40
 
6. From the ‘Oracle WebLogic Domain Group’ menu, select ‘Performance’.    

The ‘Performance Summary’ page appears providing further insight into how the managed servers across the 
domains are performing.  From this summary page, you can modify the time range to limit the amount of 
performance data displayed on the charts.  In addition, as you hover over a performance chart, a tooltip 
appears providing more detail as well as a vertical line that spans across the charts so that you can easily 
correlate performance data across all metrics on the page. 

 
7. From the ‘Oracle WebLogic Domain Group’ menu, select ‘Members’.    

The ‘Members’ page appears providing additional details for the targets in the domain.  From here you can 
perform process control, view the latest configuration for each target, or compare configurations of targets. 

Page 10 of 40
  
 

Page 11 of 40
Tracking and Comparing WebLogic Server Configuration Changes 
Summary:  

Administrators can rely on the WebLogic Server Management Pack Enterprise Edition to perform complete 
configuration management for WebLogic Servers in their environment. 

Grid Control Exercise Walkthrough: 
1. On the WebLogic Domain Group’s ‘Members’ page, the last two columns in the table highlight any 
configuration changes that have occurred to the managed servers in the group over the past 24 hours or 
week.  You can see that some configuration changes have occurred – which could have impacted application 
performance.  

Click on a link in either ‘Configuration Changes’ columns for an Oracle WebLogic Server target type.   

Note:  If there are no configuration changes identified in the ‘Configuration Changes’ columns, then you still 
click on the ‘0’ link.   

 
The ‘Configuration History’ page appears for this managed server and identifies all changes that have occurred 
within the selected time range.  You can see that several changes have occurred – changes to web modules, 
EJB modules, applications, and the server itself.    
 
Note:  If there are no configuration changes identified, modify the default value for the ‘Change Discovered 
after’ property by specifying an earlier date (e.g. 5/20/2010).   
 
So if application performance was fine yesterday but not today, then you can quickly and easily access the 
history of configuration changes for the WebLogic Servers supporting the application.  If there are 
configuration changes, you can drilldown to further detail in order to understand whether the changes could 
have negatively impacted performance. 

Page 12 of 40
 
2. Click the web browser’s back button to return to the ‘Members’ page for the WebLogic Domain Group.  

 Another common use case for configuration management is being able to compare one or more WebLogic 
Servers.  For instance, many times you think that the WebLogic Servers in your stage and production 
environments are configured identically, but when performance problems occur, you should first validate that 
the configurations are identical.  The Grid Control Console enables you to easily perform such a comparison 
operation to quickly identify any differences between the managed servers that could have attributed to poor 
performance.  Similarly, a comparison between a live, running WebLogic Server and a saved, ‘gold 
configuration’ can be done to ensure that a managed server still complies with the gold standard – that no 
configuration drift has occurred.   

To perform a comparison between a running WebLogic Server and a saved gold configuration, select the 
managed server labeled ‘/Farm01_medrec_1/medrec_1/AdminServer’ in the ‘Members’ table.  From the 
‘Configuration’ menu above the table, select ‘Compare’. 

 
3. From the ‘Compare Configurations: Second Configuration’ page, click the  ‘Saved Configurations’  link to 
view all saved configurations that you can then choose from in order to perform a compare operation. 

Page 13 of 40
 
4. Select the saved comparison labeled ‘Gold Configuration for Production WebLogic Server’ and click the 
‘Compare’ button.  Navigate around the comparison results to identify the differences in the configurations.   

Notice that you can also compare actual WebLogic Server configuration files (e.g. config.xml).  This is helpful 
should the various properties that Grid Control collects and displays do not include a specific property that you 
want to analyze and compare. 

Page 14 of 40
Debugging a Hung Application Using Root Cause Analysis  
 
Summary: 
By using JVM diagnostics within Enterprise Manager Grid Control, administrators can quickly determine the root 
cause of a hung application in order to get it back up and running as quickly as possible. 
 
Exercise Walkthrough: 
1. Click the ‘Middleware’ subtab.  Click on the Oracle WebLogic Server target name 
‘/secFarm_GCDomain/GCDomain/EMGC_ADMINSERVER’ to be taken to the managed server’s Home page. 

 
2. The WebLogic Server Home page appears.  Looking at the server, we can see that only a single application is 
deployed on this particular server in addition to the agent deployments (jamagent_ADMINSERVER) which is 
jadetest.  We can also see an alarming amount of alerts have appeared in red in the upper‐left hand corner of 
the WLS Home page.    

Page 15 of 40
 
3. Let’s go ahead and determine which alerts have been kicked off and whether it is connected to the rather high 
amount of active sessions that are also seen on the home page.   

In order to do this, please click on the actual alert number in red. 

 
4. We see a number of alarming alerts.  In particular, we can see that that there are a large amount of active 
threads and active sessions indicating a likely application hang scenario.  

In order to troubleshoot this further, please click on the active threads alert.  If you do not see this specific 
alert on the Status Report – Critical Alerts page, then from the ‘Previous’/’Next’ drop down list, select ‘Show 
All’ and do a find for “active threads” to locate the alert for active threads, and click on the alert’s message 
link.  

We can see that we have had most of the active threads stay locked for a very long time.  It is time to actually 
figure out what the cause of these locked threads is via JVM diagnostics. 

Page 16 of 40
 
5. Click the server breadcrumb link at the top to return back to 
‘/secFarm_GCDomain/GCDomain/EMGC_ADMINSERVER’ and from the “WebLogic Server” drop‐down menu 
on the home page, please go to JVM Diagnostics and select “Summary” from the sub‐menu to be brought to 
the JVM diagnostics summary page. 

 
 
This is where you can also explore JDBC Correlation, compare JVM heap dumps, and many other types of JVM 
analysis.  We will explore JVM heap dump analysis in an upcoming exercise. 
 
6. The JVM Diagnostics Summary shows a shocking amount of overall locks.   We can see that the checkout.jsp 
and additem.jsp are the URLs that are clearly being impacted by these locks as they are the only ones still 
listed in this real‐time summary.  Please note that you can expand the timeframe to look at the historical JVM 
metrics as well.   

Page 17 of 40
 
7. By switching to the Details tab and clicking on checkout.jsp link in the ‘Top Requests’ chart legend, we now 
have filtered everything by a single URL which may be important if you have multiple requests (particularly 
if you chose to expand the timeframe).  Scrolling down shows that some SQL is being called that is clearly 
locking the underlying tables in order to attempt an order transaction and we have table lock contention 
which is blocking at least some if not all of our threads.   

You can also click on the “DB” in the top table (or simply choose “DB Wait” from the state drop‐down 
menu) to eliminate the rest of the locks and see how many are actually related to “DB Wait”.   

This will highlight the fact that the DB Wait locks might be the fundamental root cause of the other locking 
threads, but in order to be sure, we need to narrow down which thread is blocking the others.   

 
 
8. In order to determine whether the database locks are indeed the root cause of all of this thread locking, 
let’s drill into the actual details of the threads that are in a locked state.  From the WebLogic Server drop‐
down menu, go to JVM Diagnostics, and choose Threads‐>Real‐time Analysis to bring us into a real‐time 
view of the behavior and state of the current threads.   
Page 18 of 40
We can see the list of threads and indeed they are all stuck on Cart.java which is part of our Checkout.jsp.  This 
indeed is the root cause of all of our stuck threads.  This is obvious simply from the timeframe of thread 
execution.  You can see what is locking each thread.  In addition, we can actually choose to trace a thread.   

 
9. Let’s first determine which lock is holding the other threads.  Please click on the thread name of one of the 
stuck threads.  As we are particularly interested in the check out calls in our orders, let’s select one with a 
request value of /checkout.jsp.  If we look in the lower left, we can see the details of the Thread Holding the 
lock.   

10. At this point, we could find the thread via a few different methods, but let’s just go ahead and find the OS PID 
in the list to find the correct thread.  This introduces you to the concept of the OS PID which as some of you 
might know, is completely unique in regards to the JVM environment.  This unique identifier ensures that we 
can always track specific threads. 

Once you find the correct thread, click on the “DB Wait” link in the State column which indicates that this is 
definitely a database lock as we first feared.  You can quickly identify the SQL being blocked in the thread 
via selecting the associated “SQL Hash” link which is a numerical unique identifier.   

At this point, we have the exact SQL being locked and we can either contact a DBA or if you are one of those 
with the proper privileges, you could use the Database Diagnostics and Tuning capabilities to identify the SQL 
from our application (which is also attempting to lock the table prior to completing the checkout and add Item 
transactions) via the hash and either kill the session blocking your threads or identifying why the table is being 
locked in the first place as it may be locked on purpose for maintenance reasons or perhaps a general update 
to the table is being performed externally. 

With that, we will conclude this exercise.  Please feel free to explore other applications and domains in 
general.  We will look at another mechanism for navigating into JVM Diagnostics in a more general manner in 
a subsequent exercise which will also explore using saved heap dumps. 

Page 19 of 40
Analyzing JVM Memory Consumption with Heap Comparisons 
 
Summary: 
By using JVM Diagnostics within Enterprise Manager Grid Control, administrators can easily determine the cause of 
JVM memory consumption in production, staging, testing, and development environments.  They can easily 
compare those heap dump snapshots between multiple time periods to pinpoint the root cause of the memory 
consumption/leak so the problem can be quickly resolved. 
 
Exercise Walkthrough: 
1. Click on the ‘Targets’ tab.  Then click the ‘Middleware’ sub‐tab.  Please go to the bottom of the list of 
middleware servers to where Related Links are listed.  This will allow you to bring up JVM Diagnostics in a 
more general manner that is not specific to one domain and can provide a broader perspective. 

 
2. You now have visibility into all of the JVM pools being monitored by Enterprise Manager’s JVM Diagnostics.  By 
default, there is no context so there is no data to be displayed.  To view data, you can click on various JVM 
pools to provide you with a view into the behavior of each.  Please go ahead and explore to better understand 
this visibility noting that the drop‐down menu can take you into the summary/details and real‐time thread 
metrics for each of these JVM pools as you explored in the previous exercise 

3. Let’s now go ahead and look at how we can take a heap snap shot.   

Please choose “/secFarm_GCDomain/GCDomain/EMGC_ADMINSERVER” from the list of JVM pools.  From 
the JVM drop‐down menu choose Heap and “Take Snapshot Now” from the sub‐menu.   

It is easy as that to take a heap snapshot for analysis which is then put into a text file which can be imported 
into any Enterprise Manager JVM Diagnostics utility.  You will see a message telling you where the snapshot 
was taken. 

Page 20 of 40
 
 

 
 
4. When you are ready to continue, please go to the top of the tree of thread pools and select “All” to get the 
widest view of all JVM thread pools.   

Please note how you can see even the JVM information with the DB locks that we previously explored from 
this view. 

  
5. Let’s now go ahead and compare to saved heap snapshots.   

We can do this by going back to the Pool menu and selecting “Saved Heap Snapshots” from the Heap drop‐
down.  

 This is where all of your heap dump snapshots will be saved and made available after they are imported into 
Enterprise Manager. 

Page 21 of 40
 
 
6. We see two saved heap snapshots taken from May 24th on the JVM pool that we had examined earlier.  We 
can see that one has a higher memory foot print than the other in regards to percentage of consumed heap 
memory.  Each has a heap size of 1020 and we can see the actual MB that was consumed as well. 

 
 
7. Please click on the one that is marked as 37% as it is the larger of the two.   

We can now see the heap usage in regards to which types of objects are consuming the memory.   

 
 
8. Let’s now go ahead and determine the exact objects responsible for the memory consumption.   

First click on “Roots” in the menu bar.   

From here, we can see that Dictionary is consuming the most memory of the objects, but what are the exact 
classes responsible for the heap consumption? 

Page 22 of 40
       
 
9. In order to find out, simply click on the Dictionary link to drill into the underlying objects within.   

We can see that “jadetest/staticLeak” is referencing the majority of objects.   

If you click the small expandable + node to the left of that particular object, the list will be filtered to just 
the ‘staticLeak’ object.  Click the small expandable + node to the left of that object again to get a list of 
references.    

Examining these, it is clear that our memory leak is being caused by references to a large amount of Vectors 
which in this case was designed on purpose to hold the reference and thus cause a programmatic memory 
leak. 

 
 
10. Let’s now do one last thing and compare this heap dump to the one that was taken earlier.   

Page 23 of 40
We can do this simply by clicking “Compare Heaps” in the menu bar and selecting the other heap which was 
consuming 23% of the memory heap at a previous timeframe.  Please click on the 23% on that line item to 
run the comparison. 

 
11. We can now see a clear comparative summary in this case showing that more objects are clearly being 
referenced in the larger JVM heap.   

By clicking “View Summary”, we can see the size of the jadetest/staticLeak references and the associated 
referenced objects being held in memory at the time of the heap snapshot.   

This can easily be used to compare heap snapshots between timeframes in order to identify memory leaks and 
performance degradation over time.  Please feel free to explore more of the JVM diagnostics if time permits. 

 
 

Page 24 of 40
 

Page 25 of 40
Proactively Analyzing Performance Trends and Delay Analysis 
(Optional – Extra Credit) 
Summary: 
Using Enterprise Manager’s Application Dependency and Performance model‐driven approach to performance 
monitoring empowers both operational and development IT staff to be able to quickly understand an application 
and perform root cause analysis.  Users can drill‐down through the various models that are automatically 
discovered and displayed by Enterprise Manager in order to ensure that they maintain context throughout the 
analysis of the metrics.  Metrics are tied to visible components ensuring that they are understood and easily tied to 
the associated metadata.  The final result is a quick and efficient root cause analysis effort that can get reduce 
downtime and resource drain on an IT organization for critical Java EE and SOA business applications. 

Exercise Walkthrough: 
1. Click on the “/Farm01_medrec_1/medrec_1/AdminServer” WebLogic Server from the Middleware subtab.   
Examine the WebLogic Server home page which illustrates basic performance metrics in both the graphs and 
tables.  We can see the general health and metrics associated with each of the various application 
deployments.  Take a look at some of the overall basic metrics of the server including the heap usage, 
availability and the overall general performance of the ear files and JSP/Servlet entry points.  We will be going 
deeper into some of those entry points momentarily to look at the overall performance trends and the 
relationships/dependencies between the components that underlay the JSP/Servlet entry points that you are 
seeing. 
 

 
 
2. Click on the “Physician” link in the Application Deployments table or by expanding the Application 
Deployment node in the left‐hand navigation tree in order to view the overall performance trends and 
health of the Physician application. 
a. You can now see more specific metrics and basic statistics for the physician (ear) application.  You can 
analyze the various JSP/Servlet metrics as well as other details associated with the response time, 
load, and EJB calls in the tables and graphs. 

Page 26 of 40
b. At this point, we can drilldown to Application Dependency and Performance in the context of the ear 
file or a specific JSP page.  The screenshot below shows where both of these contextual drill‐downs 
are located with the drop‐down menu being for the entire physician application (similar to the 
“Dependency” link next to the Physician deployment in the table on the WebLogic Server home page) 
or Servlets and JSP table where you can get  a more specific JSP page. 
 

 
 
3. You can try out both drill‐downs, but for now select the “Application Dependency and Performance” link in 
the drop‐down menu which will take us to the more detailed metrics for the Physician application 
deployment on medrec_1.   

So let’s examine what type of performance metrics are now available to us at the component level on some of 
these tabs available to us providing details on physician. 

a. First, we have the summary tab which provides us with high‐level information similar to what we saw 
before, but also with max/mins and we now can easily change the time period via the top menu bar 
to look at any time period we want whether it be the previous 8 hours or it be a certain time period 
the week earlier. 

Page 27 of 40
 
 
b. Switching to the Response Times, we now can see more specific response times for both the 
JSP/Servlets in regards to the underlying implemented classes and the EJBs as well being called 
within the ear file. 

 
 
c. Let’s take a look at the details on two more of the tabs, the rest can be explored as desired on your 
own.   

This time click the Invocations tab which is clearly for the same objects as identified above but 
broken out in their own charts. 

Page 28 of 40
 
d. Finally, let’s take a look at the Topology tab which will provide us with a bird’s eye view of the 
actual topology of our application.   

We can see that there is in this case two different physician ear files interoperating via RMI calls and 
that relationship is shown here as well.   

A quick double‐click on the physician ear file color‐coded in white which is the one within 
medrec_1 will take us deeper into those relationships as shown below where we can see the 
relationships and invocations. 

 
.  
4. At this point, we have seen most of the drill‐down directly from the context of the physician ear file.  Let’s now 
go to the general Application Dependency and Performance (ADP) page to see how we can take advantage of 
some of the other model‐driven capabilities provided within Enterprise Manager.   

Please click the “Application Dependency and Performance” link in the top‐right corner of the main window 
next to where you can change the timeframe you are examining. 

Page 29 of 40
a. You can now see the general dashboard which shows all of the various components available in our 
ADP model.  The navigation tree is a model itself and allows you to explore your applications from 
any entry point or high‐level component you like.  Please note that we have SOA applications here as 
well which are running relatively slow and thus most of the right‐hand pane will likely be showing 
alerts for those components initially. 

 
b. Please expand the tree and explore.   

Note that the right‐hand pane changes to match the context of the node in the navigation tree you 
have highlighted.   

Let’s go to the Services node and expand the underlying HTTP node where we can look at the 
actual URLs being monitored and treat them as entry points.  We can click on first physician 
application in the tree (please note we have two physician applications in two different WLS 
domains which are the reason they are separated) and click on the top‐level physician node.   

Here we will once again see some specific metrics on our physician application on medrec_1.   

You can also expand the *.jsp and *.action sub‐nodes to see some of the specific URLs. 

Page 30 of 40
 
 
c. Click on the FacesServlet which is the primary MVC Servlet for all of our actions to see details 
specifically for that one allowing us to see the overall performance trends.   

You can switch time top‐most timeframe to 24 hours to get more visibility.  Please note though that 
your training image may not have been up for very long, so you may not see a ton more metrics for 
the wider time period. 

 
d. Now let’s look at the architecture view again in the general ADP page to see where the delays might 
be occurring.   

Right‐click on /physician and choose “Display Architecture View” from the list of selections.   

Please note this is also where you can set service level objectives (alerts) at the component level.  You 
can explore that functionality on your own after the exercise as time permits.  

Page 31 of 40
 

 
e. You can now see the full architecture view with the actual delay analysis next to it and determine 
where most of the delays are occurring from an architecture standpoint.  Please note that several 
underlying pages are being called via the MVC framework under the FacesServlet.  As you can see, 
most of the delay is in the FacesServlet, so as capacity increases this very well might be where we see 
delays.   

 
f. Double‐clicking on the FacesServlet component brings us a level deeper into all of the EJB and JSP 
calls being made and the relationships between those calls.   

It also shows us a much clearer picture which underlying calls and components are resulting in the 
delays.   

Please try clicking on various objects to understand the overall infrastructure and metrics available 
for each component and how you can easily see the performance trends or perform root cause 
analysis using the tool. 

Important note: One thing to note is that there are no JDBC calls occurring during the patient search 
within the actual ear file.  You will notice that if you click on the SQL Statements tab for each component, 
you will see none are made by that specific component on medrec_1.  Why is that?  The reason is because 
Page 32 of 40
of the earlier RMI call.  The JDBC call is actually occurring in the other physician app on medrec_2 (a 
different domain) via an RMI call.  In addition, once the JDBC call is initially made, it will persist the EJB 
and thus will not make a return trip to the database.  You can try to explore expanding the timeframe to 
see some of these dynamic calls (all calls are dynamic in the Architecture View unlike some of the BPEL 
and Portal views in Application Dependency and Performance), but it may be difficult.  Let’s instead 
explore a different ear file to see that visibility which makes more simple JDBC calls consistently.  
 

 
 
5. Now close the architecture view, and go through the same process with the with the first /medrec HTTP 
entry point which basically is for medrec_2.  Once you bring up the Architecture View, try selecting the SQL 
Statements tab to see the actual SQL statements.   

You can now see this level of detail identifying the performance trends of the actual SQL statements that 
underlying the code. 

Page 33 of 40
 
 

Page 34 of 40
Scaling Out Existing WebLogic Clusters (Optional – Extra Credit) 
 
Summary: 
Administrators can leverage the WebLogic Server Management Pack Enterprise Edition to quickly and efficiently 
add capacity to a domain in order to improve performance of production applications. 
 
Exercise Walkthrough: 
1. Click on the ‘Deployments’ tab.   

 
Then under the ‘Deployment Procedure Manager’ section at the bottom of the page click the ‘Deployment 
Procedures’ link. 
2. A list of deployment procedures appears.  A deployment procedure is a hierarchical series of steps to perform 
a provisioning operation.  In other words, the workflow of all tasks that need to be performed for a particular 
lifecycle management activity is encapsulated in a deployment procedure.   

There are two types of activities involved in deployment procedures.  The first is design‐time activities which 
can include customizing the default deployment procedure according to administrator’s needs.  The second is 
run‐time activities which include using the deployment procedure to actually provision software.   Oracle 
Enterprise Manager 11g Grid Control Release 1 and the WebLogic Server Management Pack Enterprise Edition 
introduces two new deployment procedures for Oracle Fusion Middleware – Fusion Middleware Provisioning 
and Fusion Middleware Domain Scale Up.  The Fusion Middleware Provisioning deployment procedure can be 
used to clone an existing, source Fusion Middleware home and WebLogic domain (i.e. cloning from test to 
production).  The Fusion Middleware Domain Scale Up deployment procedure can be used to expand or scale 
up a domain by increasing the capacity of the WebLogic Server cluster.  The focus of this exercise is on the 
latter deployment procedure – Fusion Middleware Domain Scale Up. 
 
From the list of deployment procedures select the one labeled ‘ Fusion Middleware Domain Scale Up’ and 
click the ‘Schedule Deployment…’ button. 

Page 35 of 40
 
3. The run‐time view of this deployment procedure is displayed as a four step wizard.  The first step is to select 
the existing, source WebLogic domain from the domains already being monitored by Grid Control.   

On the ‘Select Source’ page, provide the following information, and then click the ‘Next’ button. 

Fusion Middleware Domain Name: clone_domain
Working Directory: /tmp/fmw_scaleup_source
Administrator Username: weblogic
Administrator Password: welcome1
Administration Server Host 
Select the option for ‘Preferred Credentials’ 
Credentials: 

 
4. The second step is to configure the domain either by adding a new managed server or by cloning an existing 
managed server in the domain.   

In the tree, select the existing managed server labeled ‘managed_server_1’ and click the ‘Clone Server’ 
button. 

Page 36 of 40
 
5. Select the newly added managed server within the tree (labeled ‘Managed_Server1’) and on the right hand 
side of the console, specify the following information, and then click the ‘Next’ button. 

Managed Server Instance Host: ec2as11g.amazonaws.com
Managed Server Name: managed_server_2
Listen Address: ec2as11g.amazonaws.com
Listen Port 7070
Configure Machines section Select to ‘Do not associate with machine’ 
Working Directory: /tmp/fmw_scaleup_destination
Managed Server Credentials section: Select the ‘Preferred Credentials’ option 

 
Note:  You need to be sure to specify a different ‘Working Directory’ on this page as what was specified on the 
‘Select Source’ page.  Since we do not have another machine to which to clone the managed server, we are 
cloning the managed server to the same machine as the source so the two working directories must be 
different. 
6. The third step is to specify when to perform the actual provisioning operation.   

For the purpose of this exercise, choose to start the operation immediately.  Click the ‘Next’ button. 
Page 37 of 40
 
7. The final step is to review the settings already provided.   

Scan the page to ensure inputs look accurate, and click the ‘Submit’ button. 

 
8. At this point, a job has been scheduled to scale up the domain.  From the ‘Procedure Completion Status’ page 
you can track progress of this operation.   

From the ‘View Data’ drop down list, choose to refresh the content on the page every 30 seconds.   

Page 38 of 40
 
9. As the page refreshes, notice how the status of the run changes from ‘Scheduled’ to ‘Running’.  Continue to 
track progress until the status reaches ‘Succeeded’.  This could take approximately five minutes. 

 
10. Once the status has changed to ‘Succeeded’, navigate back to the domain that was to be scaled up 
and validate that the newly cloned managed server was discovered and up and running.  In addition, to 
ensure that applications are now being served by the newly cloned managed server, access the Calendar 
application from the listen port of the newly cloned managed server via the url http://<Virtual Machine 
Address>:7070/Calendar. 

 
 

Page 39 of 40
This concludes the Oracle Enterprise Manager 11g WebLogic Server Management Pack Enterprise Edition Hands‐
on Lab.  This hands‐on lab runs twice during Oracle Open World:  Tuesday 2:00‐3:00 PM and Thursday 10:30‐
11:30 AM. 
 
Additional information on WebLogic Server Management can be found… 
• at the Demo Booth for Oracle WebLogic Server Management and Java Diagnostics (demo ID 3462) located 
in Moscone South 
• at the following Technical Sessions: 
Session ID  Title of Technical Session Date & Time Location 
S317067  WebLogic Server Management for  Thursday 9:00 AM Marriott Hotel, 
Oracle DBAs  Salon 9 
S317066  Deep Java Diagnostics and Performance  Thursday 1:30 pm Marriott Hotel, 
Tuning:  Expert Tips and Techniques  Salon 9 
 
For additional information, visit:  
Oracle Enterprise Manager:  SOA, WebLogic Server, and Middleware Management 
http://www.oracle.com/technetwork/oem/soa‐mgmt/index.html  
 
Oracle Application Management 
http://www.oracle.com/technology/products/oem/prod_focus/app_mgmt.html 
 
Oracle Enterprise Manager 
http://www.oracle.com/technetwork/oem/grid‐control/overview/index.html  
 

Page 40 of 40

You might also like