Thursday Dec 19, 2013

RDA not working due to Perl being unavailable or inaccessible?

What is RDA?

Not familiar with RDA (Remote Diagnostic Agent)? Learn more, take a look at :

  • Resolve Problems Faster! Use Remote Diagnostic Agent - Fusion Middleware [ID 1498376.1]

The Perl Problem 

RDA is written in perl. If RDA cannot find Perl 5.005 or above, you may see one of the following messages:

Error: ORACLE_HOME is not set
Please set your ORACLE_HOME.

or 

Error: Perl not found in the PATH or in known folder locations.
Although the default RDA engine requires Perl, a compiled version without Perl requirements is available.
Please download the platform-specific RDA engine from My Oracle Support and place it within the top folder of your RDA installation.

To work around you can configure RDA to use a compiled binary engine. The compiled engine is available for most platforms and is shipped as part of the RDA / OCM bundle. Find the engine binary in "RDA_HOME/engine".

Good news! RDA 8.02 auto-enables the compiled engine

The recently released RDA 8.02 automatically enables the compiled engine should RDA determines Perl is not available, accessible or valid. If you are reading this blog, having experienced the messages above or other perl errors, the likelihood is that you are using an older version of RDA. Upgrade to 8.02 now to benefit from this enhancement and others!

Earlier versions of RDA require the compiled engine to be manually enabled if RDA is not able to use Perl.  

Reference: 
How to Manually Enable the Remote Diagnostic Agent ( RDA ) Compiled Engine .. [ID 1603021.1]

Using RDA 8.02 and the perl problem described above still reproduces? Check the following:

1. Does "RDA_HOME/engine" contain a compiled engine binary (rda_<platform> e.g rda_linux) and a rda.cfg.

  • You may have downloaded RDA standalone rather than the RDA / OCM Bundle. Or, you are working on a platform for which no compiled engine is available.

2. Does the os user have read / write privileges to:

  • the directory from which they are launching the RDA command script
  • the RDA_HOME/engine/rda.cfg 

3. Are you able to manually enable the compiled engine as per the instructions given in  [ID 1603021.1]

Monday Dec 02, 2013

Read all about it! December Edition of Middleware Support News

Volume 10 - December 2013 edition - of "Oracle Fusion Middleware Support News" is published.

Oracle Fusion Middleware Support News : Current Edition - Volume 10 : December 2013 [ID 1347075.1]

Highlights:

  • Error Correction Policy - Have you got a Patch and Maintain Strategy? …
  • Extended Dates For Fusion Middleware 11g Lifetime Support Levels …
  • Critical Patch Update For Oracle Fusion Middleware - CPU October 2013 …
  • Oracle Fusion Middleware - Proactive Patching Corner …
  • SOA Diagnostic Dumps (11.1.1.7) - Script Example …
  • Oracle WebCenter Content, Enterprise Capture and Forms Recognition 11.1.1.8 News …
  • Oracle WebCenter Portal 11.1.1.8 News …
  • Certifications and Documentation for Pre-Acquisition Sun/BEA IDM Products …
  • Oracle Enterprise Data Quality 11g (11.1.1.7.3) Released …

Screenshot of Support News

Image of FMW Support News

(Note: My Oracle Support login is required to view the Support News article.)

Monday Nov 18, 2013

Fusion Middleware Error Correction Policy - Have You Got a Patch and Maintain Strategy?

It is not uncommon to come across Fusion Middleware 11g product solutions which do not have the latest patch set applied. Example: a business has a SOA Suite 11.1.1.3 in production. The solution has been working fine for three years, and then new business requirements forces an application change. The change, unfortunately, breaks rather than enhances existing functionality. A Service Request is logged with My Oracle Support and the business receive the news that the problem is caused by a bug, a patch for which is available. "Good news!" But, it is a patch which can only be applied against the latest patch set. Furthermore, the fix will not be backported to 11.1.1.3. "Oh .. really .. why can't we get a fix for the patch set we are on? Lifetime Support Policy - Level: Premier Support - has not yet expired for 11g."

The business has been blissfully unaware of the Server Technology Products Software Error Correction Policy.  This document describes the different types of patches which Oracle may release for products and the policies which surround them. It is particularly important, however, to read the product line specific advice found in the Appendix. To part quote, the advice for Oracle Fusion Middleware:

Grace Period: up to 1 year, minimum 3 months.

You have up to one year from the initial release of the patch set to install the new patch set, and can receive new bug fixes for the previous patch set during that time ...

For details (including links to documents containing error correction dates for specific products and patch sets), see

Error Correction Support Dates for Oracle Fusion Middleware (10g/11g/WLS) (Doc ID 944866.1).

In 944866.1, you will find a link to

Error Correction Support Dates for Oracle Fusion Middleware 11g (11.1.1/11.1.2) (Doc ID 1290894.1)

which shows that the error correction grace period for Fusion Middleware (which covers SOA) 11.1.1.3 ended in January 2012. This explains why, in our scenario above, the business will need to first apply the latest available patch set, followed by the interim patch in order to fix their issue.

In conclusion, having a patch and maintain strategy is essential. Maintaining Fusion Middleware products at the latest major version and/or patch set release + updates has the following benefits:

  • Proactively applying the latest patch set and updates can avoid problems and therefore minimize downtime.
  • It can reduce the time taken to consume or obtain fixes for new issues.

If you are using Oracle Fusion Middleware 11g, bookmark and regularly review:

Information Center: Patching and Maintaining Oracle Fusion Middleware 11g (Doc ID 1341616.2)

Screenshot of Information Center: Patching and Maintain Fusion Middleware 11g

This Information Center contains links to knowledge articles which discuss the Error Correction policy and list Error Correction end dates. The Information Center is also a one stop shop for links to patch and patch set collateral:

  • Patch Set Release Announcements
  • Patch Set Updates (including Critical Patch Update) information
  • Patching Documentation 
  • And more ..

Get proactive, know your error correction end dates and put in a place a strategy to keep your product up to date with the latest patch set and updates.

Thursday Oct 31, 2013

Critical Patch Update for Oracle Fusion Middleware - CPU October 2013

The latest Critical Patch Update (CPU) has been released for Oracle products. Start your reading here

Critical Patch Updates, Security Alerts and Third Party Bulletin 

This is the home page containing links to all "Critical Patch Updates" released to date, along with sections detailing 

  • Security Alerts 
  • Third Party Bulletin
  • Public Vulnerabilities Fixed
  • Policies
  • Reporting Security Vulnerabilities

On this page you will find the link to the

Oracle Critical Patch Update Advisory - October 2013

The advisory lists the support documents that cover the patch availability for all Oracle products.

For Oracle Fusion Middleware, go to:

Patch Set Update and Critical Patch Update October 2013 Availability Document [ID 1571391.1]

If you are hit any unexpected errors when applying the CPU patches, check out the known issues documented in these two support documents.

  • Critical Patch Update October 2013 Oracle Fusion Middleware Known Issues  [ID 1571369.1]
  • Critical Patch Update October 2013 Database Known Issues [ID 1571653.1]

And lastly, for an informal summary of what the Critical Patch Update fixes, check out the blog posts by "Oracle Software Security Assurance" team

October 2013 Critical Patch Update Released

Monday Oct 07, 2013

RDA 8.01 - Now A Better Experience for WebLogic Administrators

What is RDA?

Not familiar with RDA (Remote Diagnostic Agent)? Well I won't use this blog entry to provide a lesson, but if you want to learn more, take a look at these two support articles:

  • Get Proactive with Fusion Middleware : Resolve Problems Faster! Use Remote Diagnostic Agent [ID 1498376.1]
  • How to Run Remote Diagnostic Agent ( RDA ) Against Oracle WebLogic Server ( WLS ) [ID 1262157.1]

Too many questions in set up

"I have to answer too many questions at set up time!". The first of two criticisms leveled at a RDA collection which targeted a WebLogic Server based technology stack. Well I pleased to say that the number of questions of has been reduced.

If, for example, you set up RDA using the "WebLogicServer" profile, you will encounter a set up dialogue similar to the one copied / pasted from a Weblogic 12c solution, on Unix, below.

Tip: Work through the set up questions a little quicker by configuring your environment variables to point at your Middleware Home and location of your WebLogic domain prior to running RDA set up. Doing so, allows RDA to find default values for certain questions, which means you can just hit return and move on.

# Setting the environment

. /home/oracle/app/FMW12c_1212/config/user_projects/domains/my_domain/bin/setDomainEnv.sh
ORACLE_HOME=/home/oracle/app/FMW12c_1212/oh; export ORACLE_HOME
# Running RDA set up 
cd /home/oracle/software/rda
./rda.sh -S -p WebLogicServer
 
# Set up dialogue
Enter the network domain name for this server
> uk.acme.com

Enter the Oracle home to be used for data analysis
Hit "Return" to accept the default (/home/oracle/app/FMW12c_1212/oh)
> 
Enter the location of the directory where the domains to analyze are located
(For example in UNIX, <BEA Home>/user_projects/domains or 
<Middleware Home>/user_projects/domains)
Hit "Return" to accept the default
(/home/oracle/app/FMW12c_1212/config/user_projects/domains)
> 
For a successful WLS connection, ensure that the domain Admin Server is up 
and running.

Data Collection Type:
  1  Perform offline collection
  2  Perform online collection (using WLS connection)

Enter the item number
Hit "Return" to accept the default (2)
> 

Select a Oracle WebLogic Server domain home target list:
  1  Domain my_domain (in
     /home/oracle/app/FMW12c_1212/config/user_projects/domains)

  A  All Oracle WebLogic Server domain home targets
  D  Define a new Oracle WebLogic Server domain home target
  E  Edit an Oracle WebLogic Server domain home target
  N  No Oracle WebLogic Server domain home targets
 
Enter your selection, as a comma-separated list of item numbers or ranges
Hit "Return" to accept the default (1)
> 
Server list for 'my_domain' domain:
  1  AdminServer
  2  ms3
Enter your selection, as a comma-separated list of item numbers or ranges
Hit "Return" to accept the default (1-2)
> 
Are custom scripts used to start Oracle WebLogic servers (Y/N)?
Hit "Return" to accept the default (N)
>

# The next prompt concerns OCM. You are not required to configure OCM. 
# If time is short, just answer 'N'

RDA benefits from Oracle Configuration Manager by improving its 
data collection. Oracle Configuration Manager (OCM) collects the 
configuration information and uploads it to the OCM Repository 
in connected mode. When OCM is configured in disconnected mode, it 
adds the OCM payload to the RDA report packages in future RDA runs.

Pending Configurations in /home/oracle/app/FMW12c_1212/oh:
  MH_T0001  Middleware home /home/oracle/app/FMW12c_1212/oh

Hit 'Return' to continue

Do you want RDA to configure OCM now (Y/N)?
Hit "Return" to accept the default (Y)
> N

# After answering the prompts set up will be complete. 
# Now just launch the command line script (no parameters) 
# to run the collection

./rda.sh 

"Cannot see the wood for the trees" in the output

This is the second of the criticisms. RDA does collects many files and metrics - this is one its strengths. Yet I think it is fair to say that the presentation of WebLogic Server data in the RDA Start Menu (generated as part of the output) lacked some order and structure. For example, server log files were somewhat buried, and similarly, unless you knew to scroll down to WLST collections, you could not easily ascertain the basic contents of a targeted Weblogic domain. In RDA 8.01, the sub menus for the WebLogic Domain and Servers have been re-ordered to address this concern. Review the screenshots below.

Figure 1 : WebLogic Domain Sub Menu


Note: In the Main Index, RDA will only list managed servers which have been targeted for collection. In this example, only AdminServer and ms3 were targeted for collection. Yet we can see from the Domain MBeans that the domain contains other managed servers and a cluster. 

Figure 2 : MBean Drill Down Example - Admin Server State

Figure 3: WebLogic Server Sub Menu


To take advantage of these changes download the latest version of RDA. The download links can be found in

Get Proactive with Fusion Middleware : Resolve Problems Faster! Use Remote Diagnostic Agent [ID 1498376.1]

Monday Sep 16, 2013

OOW 2013 - Sessions Focused on Support Services and Oracle Fusion Middleware


Only a few days to go and Oracle OpenWorld 2013 will be upon us! Oracle Support and Services will be at Oracle OpenWorld in full force this year with 500 Services experts, 40+ sessions, a Support Stars Bar, a My Oracle Support Community Meet up, and demos of powerful new support tools. Learn best practices for maintaining Oracle Fusion Middleware, how to utilize Oracle Fusion Middleware products in a private cloud environment, tips for running Oracle Fusion Middleware in critical environments, and more. Go here a listing of Fusion Middleware specific sessions - for example:

Conference Sessions

Best Practices for a Private Cloud with Oracle Fusion Middleware

Running Oracle Fusion Middleware in Critical Environments: Tips from SWIFT

Best Practices for Maintaining Oracle Fusion Middleware

Demo

Migration Tools and Resources for Oracle Fusion Middleware

And more

There is also a My Oracle Support Meet Up Event" on Monday, Sep 23 and do come visit the Support Stars Bar - Monday 23rd through to Wednesday 25th

To all going, have an enjoyable OpenWorld 2013!

Friday Sep 06, 2013

Read all about it! Middleware Support News

The September 2013 edition of Oracle Fusion Middleware Support News is now available - featuring:

  • Introducing Fusion Middleware 12c (12.1.2) Infrastructure
  • New to SOA 11g Adapters? Here's an overview
  • WebCenter 11.1.1.8 - Center of Mobile Engagement for Business
  • Get an Identity Management education in bitesize chunks!
  • + all the latest proactive patch and patch set release news

Since the last time I blogged about the support news (June 2012), this My Oracle Support knowledge article has undergone a face lift. As well as looking a little more groovy, you can collapse / expand news articles to make for easier reading. Here's a screenshot.


Find the Support News by navigating to the document below:

Oracle Fusion Middleware Support News : Current Edition - Volume 9 : September 2013 (Document 1347075.1)

Enjoy! 

Thursday Jul 18, 2013

Critical Patch Update for Oracle Fusion Middleware - CPU July 2013

The latest Critical Patch Update (CPU) has been released for Oracle products. Start your reading here

Critical Patch Updates, Security Alerts and Third Party Bulletin 

This is the home page containing links to all "Critical Patch Updates" released to date, along with sections detailing 

  • Security Alerts 
  • Third Party Bulletin
  • Public Vulnerabilities Fixed
  • Policies
  • Reporting Security Vulnerabilities

On this page you will find the link to the

Oracle Critical Patch Update Advisory - July 2013

The advisory lists the support documents that cover the patch availability for all Oracle products.

For Oracle Fusion Middleware, go to:

Patch Set Update and Critical Patch Update July 2013 Availability Document [ID 1548709.1]

Highlights - WebLogic Server Patch Set Updates (PSU)

  • WebLogic Server - 12.1.1.0.5
  • WebLogic Server - 10.3.6.0.5

July 2013 marks the end of CPU/PSU patches for Weblogic Server 10.3.5. Looking forward, we will see the final CPU patches for Weblogic Server 9.2.3.0 and 9.2.4.0 in October 2013

If you are hit any unexpected errors when applying the CPU patches, check out the known issues documented in these two support documents.

  • Critical Patch Update July 2013 Oracle Fusion Middleware Known Issues  [ID 1548690.1]
  • Critical Patch Update July 2013 Database Known Issues [ID 1546428.1]

And lastly, for an informal summary of what the Critical Patch Update fixes, check out the blog posts by "Oracle Software Security Assurance" team

July 2013 Critical Patch Update Released

Tuesday Jun 25, 2013

Example WLST Script to Obtain JDBC and JTA MBean Values

Introduction

Following on from the blog entry "Get an Offline or Online WebLogic Domain Summary Using WLST!", I have had a request to create a smaller example which only collects a selection of JDBC (System Resource) and JTA configuration and runtime MBeans values. So, here it is.

Download Sample Script

You can grab the sample script by clicking here.

Instructions to Run:

1. After download, extract the zip to the machine hosting the WebLogic environment. You should have three directories along with a readme.txt

  • output
  • Sample_Output
  • scripts

2. In the scripts directory, find the start wrapper script startWLSTJDBCSummarizer.sh (Unix) or startWLSTJDBCSummarizer.cmd (MS Windows). Open the appropriate file in an editor and change the environment variable settings to suit your system.

Example - startWLSTDomainSummarizer.cmd

set WL_HOME=D:\product\FMW11g\wlserver_10.3
set DOMAIN_HOME=D:\product\FMW11g\user_projects\domains\MyDomain
set WLST_OUTPUT_PATH=D:\WLSTDomainSummarizer\output\
set WLST_OUTPUT_FILE=WLST_JDBC_Summary_Via_MBeans.html
call "%WL_HOME%\common\bin\wlst.cmd" WLS_JDBC_Summary_Online.py

Note: The WLST_OUTPUT_PATH directory value must have a trailing slash. If there is no trailing slash, the script will error and not continue. 

3. Run the shell / command line wrapper script. It should launch WLST and kick off "WLS_JDBC_Summary_Online.py". This will hit you with some prompts e.g.

Is your domain Admin Server up and running and do you have the connection details? (Y /N ):
Y
Enter connection URL to Admin Server e.g t3://mymachine.acme.com:7001 :
t3://localhost:7001
Enter weblogic username:
weblogic
Enter weblogic username password (function prompt 1):
welcome1

(Note: the value typed in for password will not be echoed back to the console).

4. If the scripts run successfully, you should get a HTML summary in the specified output directory. See example screenshots below:

Screenshot 1 - JDBC System Resource Tab Page

 Screenshot 2 - JTA Tab Page

5. For the HTML to render correctly, ensure the .js and .css files provided (review the output directory created by the zip file extraction) are accessible. For example, to view the HTML locally (without using a web server), place the HTML output, jquery-ui.js, spry.js and wlstsummarizer.css in the same directory.

Disclaimer

This is a sample script. I have tested it against WebLogic Server 10.3.6 domains on MS Windows and Unix.  I cannot guarantee that the script will run error free or produce the expected output on your system. If you have any feedback add a comment to the blog. I will endeavour to fix any problems with my WLST code.

Credits

JQuery: http://jquery.com/
Spry (Adobe) : https://github.com/adobe/Spry
http://www.red-team-design.com/cool-headings-with-pseudo-elements

Friday May 31, 2013

How to Query Fusion Middleware Metadata Schemas Via JDBC

Introduction

You are dealing with a Fusion Middleware product, such as SOA, which uses Metadata Schemas, typically created in an Oracle Database via the Repository Creation Utility (RCU). As a Middleware administrator you would like to run a script which queries the schemas. However, the database resides on a different host from the Middleware Home, and there is no SQL*Plus or similar tool available. 

The solution? Although Fusion Middleware products do not ship SQL*Plus, Weblogic Server does include JDBC drivers. This presents an opportunity to try out / brush up your java program coding skills.

Example Solution

Having recently dabbled in WLST to query Weblogic Domain MBeans - Get an Offline or Online WebLogic Domain Summary Using WLST! - I have written an example java program to tackle the problem outlined above. The program utilizes the standard Oracle JDBC driver to:

  • establish a connection to an Oracle Database (which can be remote from the machine hosting Weblogic)
  • attempts three queries listed below
  • renders the output in HTML. (I have reused the html / javascript techniques I employed for the WLST Domain Summarizer to present the results in a nice readable format.)

Query ALL_USERS for owners / "prefixes" of Fusion Middleware schemas.

SELECT USERNAME, CREATED
FROM ALL_USERS
WHERE USERNAME LIKE  '%_MDS'
OR USERNAME LIKE '%_IAU'
OR USERNAME LIKE '%_IAU_%'
OR USERNAME LIKE '%_WLS'
OR USERNAME LIKE '%_STB'
OR USERNAME LIKE '%_UMS'
OR USERNAME LIKE '%_UCSCC'
OR USERNAME LIKE '%_OPSS' 
OR USERNAME LIKE '%_SOAINFRA'
ORDER BY 2

Schema Version Registry Summary

SELECT COMP_ID, COMP_NAME, VERSION, STATUS, UPGRADED
FROM
SCHEMA_VERSION_REGISTRY
ORDER BY 1,2

SOAINFRA - Cube Instance Summary

SELECT COMPOSITE_NAME, COMPONENT_NAME, COMPONENTTYPE,
(CASE WHEN STATE=1 THEN 'OPEN AND RUNNING'
WHEN STATE=2 THEN 'OPEN AND SUSPENDED'
WHEN STATE=3 THEN 'OPEN AND FAULTED' 
WHEN STATE=4 THEN 'CLOSED AND PENDING'
WHEN STATE=5 THEN 'CLOSED AND COMPLETED'
WHEN STATE=6 THEN 'CLOSED AND FAULTED'
WHEN STATE=7 THEN 'CLOSED AND CANCELLED'
WHEN STATE=8 THEN 'CLOSED AND ABORTED'
WHEN STATE=9 THEN 'CLOSED AND STALE'
WHEN STATE=10 THEN 'NON-RECOVERABLE' ELSE STATE || ''  END) AS STATE,
COUNT(*) AS NUM_OF_CUBE_INST
FROM " + v_dbuser_soainfra + ".CUBE_INSTANCE
GROUP BY COMPOSITE_NAME, COMPONENT_NAME, COMPONENTTYPE,STATE
ORDER BY COUNT(*) DESC

Download

You can grab the zip package containing  the class, java source and example output by clicking here.

Instructions

1. After download, extract the zip.

2. cd to the directory labelled "class"

3. Edit the LaunchMetadataCollector.sh (Unix) or LaunchMetadataCollector.cmd (Windows) and change the environment variable setting - WL_HOME - to point at your Weblogic Server home.

4. Then run the LaunchMetadataCollector wrapper script. This will prompt for database connection details e.g.

>Enter the database hostname or ip address: mydbhost.acme.com
>Enter the database port number: 1521
>Enter the database sid: orcl
>Enter the database username: system
>Enter the password: 
>Enter the password again: 
[Optional] Enter the database user which owns the SOAINFRA schema: DEV

5. If the program runs successfully you should see the result of the queries in an output file labelled MetadataCollectorOutput.html

If you want to amend / adapt / enhance the program feel free to take a look at the java source file which is located in the "source" directory.

Monday May 13, 2013

My Take on Getting Started With WebLogic Scripting Tool (WLST)

Introduction

WebLogic Scripting Tool (WLST) has been a long established favourite for experienced WebLogic Server administrators. Over the past two / three weeks I have spent time getting to know WLST - and by getting to know I mean developing a script to produce a solution rather than randomly running three or four commands :-). For the final result of my efforts, see my previous blog entry

Get an Offline or Online WebLogic Domain Summary Using WLST! 

This is a short summary of the resources I used. 

Initial reading and understanding

If you are never encountered WLST, spend a few minutes reading:

Oracle Fusion Middleware Administrator's Guide 11g Release 1 (11.1.1)
3.5.1 Getting Started Using the Oracle WebLogic Scripting Tool (WLST)

Oracle Fusion Middleware WebLogic Scripting Tool Command Reference 11g
Overview of WLST Command Categories

Unsurprisingly, you will also find yourself using the Command Reference as a look up for available commands, functionality and syntax.

WLST Code Snippets and Examples

(There are many more WLST postings (questions, examples, discussions) to be found on the web.)

Jython

WLST is based on the Java scripting interpreter, Jython and as such supports standard Jython features such as local variables, conditional variables, and flow-control statements. Therefore, to achieve something more interesting and exciting you must prepared to learn (by doing) a little Jython. Fortunately, the Jython documentation is comprehensive and provides some good examples:

Use an editor which recognizes Jython / Python

Jython (like it's "parent" language Python) is very sensitive to syntax errors. In particular, the language requires the use of indents when coding conditions (e.g IF statements) and loops. Attempt to write Jython using a plain text editor, and before long stress levels will rise. You can make life easier by using an editor which recognizes Jython. Editors like Oracle Eclipse ** and SCITE assist the developer by for example:

  • auto-formatting lines of code
  • color coding of syntax
  • providing option to show line numbers

** Eclipse requires the Python and Jython Interpreters to be configured. Instructions can be found here.

My Oracle Support Documents

And finally, if you have access to My Oracle Support, here are a few knowledge articles which provide some nice WLST examples:

  • How To Debug WLST Jython Scripts? [ID 1360744.1]
  • WLST sample script To Obtain Managed Server Status [ID 1373532.1]
  • WLST Script for monitoring and getting statistics of WebLogic JMS Destinations. [ID 1327086.1]
  • How to get JDBC and Connection Pool data from a WLST or shell script [ID 1453818.1]
  • How to Startup or Shutdown Multiple WebLogic Managed Servers With a WLST Script [ID 1383150.1]
  • How To Take Thread Dumps With WLST [ID 1274713.1]

Tuesday May 07, 2013

Get an Offline or Online WebLogic Domain Summary Using WLST!

Introduction

Further to blog entry "WLST Offline Script to Create Summary of WebLogic Domain", I have created a solution which extends the capability to collecting an online summary if a connection to the domain's Admin Server can be established.

Search the web, and you will find many WLST examples which summarize managed server status and performance, JMS, JDBC and more. In this respect, my efforts are nothing new. However, I thought I would share as my scripts have the following "bells and whistles".

1. If you are unable to connect to the domain's Admin Server, an offline summary of the domain will automatically be obtained

2. The script renders the collected data in HTML, using some javascript to give the final result some interactive formatting for ease of reading. See screenshot snippet below:

Screenshot : Snippet of WLST Summarizer HTML Output

Screenshot showing WLST Summarizer HTML output

3. If a managed server has a "FAILED" health state or there is 1 or more thread hogs in its JVM thread pool, three thread dumps will be captured (15 seconds apart).

Download Sample Script

You can grab the sample script by clicking here.

Instructions to Run:

1. After download, extract the zip to the machine hosting the WebLogic environment. You should have three directories along with a readme.txt

  • output
  • Sample_Output
  • scripts

2. In the scripts directory, find the start wrapper script startWLSTDomainSummarizer.sh (Unix) or startWLSTDomainSummarizer.cmd (MS Windows). Open the appropriate file in an editor and change the environment variable settings to suit your system.

Example - startWLSTDomainSummarizer.cmd

set WL_HOME=D:\product\FMW11g\wlserver_10.3
set DOMAIN_HOME=D:\product\FMW11g\user_projects\domains\MyDomain
set WLST_OUTPUT_PATH=D:\WLSTDomainSummarizer\output\
set WLST_OUTPUT_FILE=WLST_Domain_Summary_Via_MBeans.html

call "%WL_HOME%\common\bin\wlst.cmd" StartDomainSummarizer.py

Note: The WLST_OUTPUT_PATH directory value must have a trailing slash. If there is no trailing slash, the script will error and not continue. 

3. Run the shell / command line wrapper script. It should launch WLST and kick off "StartDomainSummarizer.py". This initial python script will hit you with some prompts e.g.

Is your domain Admin Server up and running and do you have the connection details? (Y /N ):
Y
Enter connection URL to Admin Server e.g t3://mymachine.acme.com:7001 :
t3://localhost:7001
Enter weblogic username:
weblogic
Enter weblogic username password (function prompt 1):
welcome1

(Note: the value typed in for password will not be echoed back to the console).

Depending on your responses it will call "WLSDomainInfoOffline.py" or "WLSDomainInfoOnline.py". 

4. If the scripts run successfully, you should get a HTML summary in the specified output directory. 

5. For the HTML to render correctly, ensure the .js and .css files provided (review the output directory created by the zip file extraction) are accessible. For example, to view the HTML locally (without using a web server), place the HTML output, jquery-ui.js, spry.js and wlstsummarizer.css in the same directory.

Disclaimer

This is a sample script. I have tested it against WebLogic Server 10.3.6 domains on MS Windows and Unix.  I cannot guarantee that the script will run error free or produce the expected output on your system. If you have any feedback add a comment to the blog. I will endeavour to fix any problems with my WLST code.

Credits

JQuery: http://jquery.com/
Spry (Adobe) : https://github.com/adobe/Spry
http://www.red-team-design.com/cool-headings-with-pseudo-elements

Friday Apr 19, 2013

WLST Offline Script to Create Summary of WebLogic Domain

Introduction

I have always believed it is important to find out the bigger picture early on in a problem investigation. For example, if a managed server is exhibiting problematic behaviour, as well as I looking at the logs, I like to know the context - for example:

  • Is the server part of a cluster?
  • How many servers / clusters are in the Weblogic Domain?
  • Is the domain spread across multiple machines?
  • Are System Resources such JDBC and JMS in play?

Weblogic Server scripting ( WLST ) has been around for many years. Consequently there are a large number of examples to be found in blogs, websites and forums. The vast majority assume you can run the script in online mode. What if, however, a WLST online connection cannot be established? Ok, sure we can manually peruse the DOMAIN_HOME/config/config.xml. It is not a friendly a solution partly because some of the configuration is held in other xml files referenced by the config.xml. There has to be another way, I thought, after all WebLogic Server holds domain configuration in MBeans. This got me thinking about WLST.


WLST's readDomain Function

We can use WLST's readDomain function, in offline mode, to load the domain MBean configuration hierarchy / tree. It is as simple this:

Example: Unix Machine:

WL_HOME=/oracle/middleware/wlserver_10.3
DOMAIN_HOME=/oracle/middleware/user_projects/domains/MyDomain
$WL_HOME/common/bin/wlst.sh
wls:/offline/readDomain('/oracle/middleware/user_projects/domains/MyDomain')

Now you are ready to navigate the "tree" using "cd" and "ls" style syntax

wls:/offline/MyDomain/ls()

drw-   AnyMachine
drw-   AppDeployment
drw-   Cluster
drw-   EmbeddedLDAP
drw-   FileStore
drw-   JDBCSystemResource
drw-   JMSServer
drw-   JMSSystemResource
drw-   Library
drw-   MigratableTarget
drw-   Security
drw-   SecurityConfiguration
drw-   Server
drw-   ShutdownClass
drw-   StartupClass
drw-   WLDFSystemResource
-rw-   Active                                        false
-rw-   AdminServerName                               AdminServer
-rw-   AdministrationMBeanAuditingEnabled            false
-rw-   AdministrationPort                            9002
.... etc
wls:/offline/MyDomain/cd ('Server')
wls:/offline/MyDomain/Server/ls()
drw-   AdminServer
drw-   MyManagedServer
drw-   MyManagedServer01
wls:/offline/MyDomain/Server/cd ('MyManagedServer')
wls:/offline/MyDomain/Server/MyManagedServer/ls()
drw-   DataSource
drw-   NetworkAccessPoint
drw-   SSL
drw-   ServerDiagnosticConfig

-rw-   AcceptBacklog                                 300
-rw-   AdminReconnectIntervalSeconds                 10
-rw-   AdministrationPort                            0
-rw-   AdministrationPortEnabled                     false
-rw-   AdministrationProtocol                        null
...
-rw-   JavaCompilerPostClassPath                     null
-rw-   JavaCompilerPreClassPath                      null
-rw-   JavaStandardTrustKeyStorePassPhraseEncrypted  null
-rw-   JdbcLoginTimeoutSeconds                       0
-rw-   KeyStores                                     null
-rw-   ListenAddress                                 127.0.0.1
-rw-   ListenDelaySecs                               0
-rw-   ListenPort                                    7021
-rw-   ListenPortEnabled                             true

... etc
wls:/offline/MyDomain/Server/MyManagedServer/foo = get('ListenPort')
wls:/offline/MyDomain/Server/MyManagedServer/print foo

7021

 

Sample Script and Output

To write a script, which automates the capture and print out of attributes useful to a summary, is challenging because the functions to traverse and search the MBean tree are limited compared to online mode. You are pretty much stuck with the cd(), ls() and get(). However, with a bit of coding creativity with IF and FOR loop syntax you can programmatically explore the tree and return output in a nice format - in my sample I have chosen HTML tables.

Sample Output

To view sample output, go here

Screenshot below shows snipper of sample output.


Download Sample Script

You can grab the sample script by clicking here.

Instructions to Run:

1. Edit the environment variables in the start wrapper script startWLSofflineCollection.sh (Unix) or startWLSofflineCollection.cmd (MS Windows) to suit your system

Example - startWLSofflineCollection.sh

WL_HOME=/oracle/middleware/wlserver_10.3
DOMAIN_HOME=/oracle/middleware/user_projects/domains/MyDomain; export DOMAIN_HOME
WLST_OUTPUT_PATH=/temp/wlst/; export WLST_OUTPUT_PATH
WLST_OUTPUT_FILE=WLST_MBean_Config_Summary.html; export WLST_OUTPUT_FILE
${WL_HOME}/common/bin/wlst.sh CollectWLSConfigOffline.py

Note: The WLST_OUTPUT_PATH directory value must have a trailing slash. If there is no trailing slash script will error and not continue.

2. Then run the wrapper script. It should launch WLST and run the script. The script will collect MBean values and render them in a HTML file.
(Once the script has invoked the WLST shell, the execution of the python script should not take longer than 5 to 10 seconds.)

Disclaimer

This is a sample script. I have tested it against WebLogic Server 10.3.6 domains on MS Windows and Unix.  I cannot guarantee that the script will run error free or produce the expected output on your system. That said, a number of colleagues have also run the script and with their feedback I have ironed out a few problems. If you have any feedback add a comment to the blog. I will endeavour to fix any problems with my WLST code. 

Credits

I found the following blogs particularly useful.

Java / Oracle SOA blog
[http://biemond.blogspot.co.uk/2010/02/invoking-fmw-application-mbeans-in.html]

WLST By Examples
[http://wlstbyexamples.blogspot.co.uk/]


Some Pitfalls (which required coding around)

Checking whether Configuration MBean Hierarchy Exists

If a service or functionality, such as Clusters, JDBC, JMS, Filestore are not configured, the related MBean hierarchy will not be visible when listing at domain level. Example: If Cluster, JDBC, JMS and Filestore have not been configured, the ls() will show:

wls:/offline/MyDomain/ls()

drw-   AnyMachine
drw-   AppDeployment
drw-   EmbeddedLDAP
drw-   Library
drw-   MigratableTarget
drw-   Security
drw-   SecurityConfiguration
drw-   Server
drw-   ShutdownClass
drw-   StartupClass
drw-   WLDFSystemResource

A programmatic attempt to cd to a directory not listed will return an error e.g.

Error: cd() failed. Do dumpStack() to see details.

To work-around, the script contains a custom findMBean function. The function places the contents of the ls() in an array using the returnmap parameter. We can then loop through the array and check whether a given string - the MBean directory name exists e.g.

def findMBean(v_pattern):
        # get a listing of everything in the current directory
    mydirs = ls(returnMap='true');

        v_compile_pattern = java.util.regex.Pattern.compile(v_pattern);

    found = 'Nope not here';

    for mydir in mydirs:
        x = java.lang.String(mydir);
        v_matched = v_compile_pattern.matcher(x);
        if v_matched.find():
            found = 'true';

        return found;

AnyMachine v Machines

In WebLogic Server 10.3, if a domain has one or more machines configured (i.e nodemanager related machines) the ls() at domain level will show

wls:/offline/MyDomain/ls()

drw-   AnyMachine

A cd ('AnyMachine'), however, will fail. The correct cd syntax is

wls:/offline/MyDomain/cd ('Machines')

Identifying Target Information

Features such as JDBC System Resources, Clusters may or may not have targets. An attempt to cd to an MBean directory or get an MBean attribute which does not exist will throw an error and prevent the script from continuing. To work-around we can use TRY / EXCEPT syntax. Example - snippet from sample script which deals with the capture of JDBC System Resource targets.

try:
            v_any_targets = '';
            v_jdbc_target = get('Target');

            # Even if the get fails, the variable is assigned a value of none, set the flag variable accordingly
            if v_jdbc_target == 'None':
                v_any_targets = 'None';
                v_no_of_targets = 1;
            else:   
                # If the get has succeeded then set flag accordingly and obtain length of array returned by the get
                # The array length will be used to determine the HTML rowspan value

                v_any_targets ='Use v_jdbc_target';
                v_no_of_targets = len(v_jdbc_target);

        except:

            # Setting flag and rowspan variable here as well .. belt and braces
            v_any_targets = 'None';
            v_no_of_targets = 1;

            # The exception will still display to standard out, which may cause alarm
            # So adding this message telling the user the exception is expected and can be ignored
            print "IGNORE this exception";   

Wednesday Apr 17, 2013

Critical Patch Update for Oracle Fusion Middleware - CPU April 2013

The latest Critical Patch Update (CPU) has been released for Oracle products. Start your reading here

Critical Patch Updates, Security Alerts and Third Party Bulletin 

This is the home page containing links to all "Critical Patch Updates" released to date, along with sections detailing 

  • Security Alerts 
  • Third Party Bulletin
  • Public Vulnerabilities Fixed
  • Policies
  • Reporting Security Vulnerabilities 

On this page you will find the link to the

Oracle Critical Patch Update Advisory - April 2013

The advisory lists the support documents that cover the patch availability for all Oracle products.

For Oracle Fusion Middleware, go to:

Patch Set Update and Critical Patch Update April 2013 Availability Document [ID 1525152.1]

If you are hit any unexpected errors when applying the CPU patches, check out the known issues documented in these two support documents.

  • Critical Patch Update April 2013 Oracle Fusion Middleware Known Issues  [ID 1525130.1]
  • Critical Patch Update April 2013 Database Known Issues [ID 1523844.1]
And lastly, for an informal summary of what the Critical Patch Update fixes, check out the blog posts by "Oracle Software Security Assurance" team

April 2013 Critical Patch Update Released

Wednesday Apr 03, 2013

One Stop Shop For Your Middleware Product Certification Questions

Introduction

A certification is a combination of Oracle and third-party products and operating systems that Oracle has tested and should work together.

In more detail, product certifications cover:

  • Platform/OS
  • Client, Browser and Java (JRE)
  • Database, Java (JDK)
  • Web Server Plug-Ins
  • Third Party Adapters and Interoperability
  • Network - IPv6
  • Oracle Virtual Assembly Builder

This month we are excited to announce two initiatives designed to help you quickly find the answers to your product certification questions:

"Get Proactive" My Oracle Support Knowledge Article

Review and bookmark this knowledge article

Get Proactive with Fusion Middleware : Find Product Certifications [ID 1532687.1]

The article contains:

  • Viewlets which provides hints and tips for finding product certification data
  • Product Breakdown to drill down to the location of product specific certifications.
  • FAQs
  • Information and links to related resources
Screenshot 1: ID 1532687.1

Screenshot of the new Get Proactive Certification Note

And a New Support Community!

Still have questions / issues. No need to create a Service Request. Instead post your Middleware product certification question to the Middleware Certification support community! A dedicated team of Oracle Support Engineers are monitoring the community and will respond to your enquiry in timely manner.

Screenshot 2: Middleware Certification Support Community

Snapshot of Cert Community

Note: A valid My Oracle Support license / login is required to access the knowledge article and support community.

About

This is the blog of the Oracle Fusion Middleware Proactive Support Delivery Team. Here we will provide information about our activities, publications, product related information and more. Feedback welcome.

Follow OracleMWSupport on Twitter

Search

Archives
« September 2015
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today