Monday Dec 16, 2013

WLS 12.1.2 and MultiTenant Databases

Oracle WebLogic Server release 12.1.2 has integrated support for the Oracle Database 12c features, particularly Application Continuity, Transaction Guard, Database Resident Connection Pool, Multi Tenant Databases, and Global Data Services. WLS integration to these new 12c database features is described in this blog https://blogs.oracle.com/WebLogicServer/entry/new_whitepaper_cloud_performance_elasticity.

The integration to Multi Tenant Database or Pluggable Database increases elasticity, scalability, and enables multitenancy. Pluggable Database implementations allow multiple distinct databases in a single, larger database installation. The Container Database (CDB) feature in Oracle Database 12c minimizes the overhead of these multi-database configurations by consolidating them into a single database with multiple Pluggable Databases (PDB) in a single Container Database. For more information about using this feature in WLS, see https://blogs.oracle.com/WebLogicServer/entry/part_3_12c_database_and

In Oracle WebLogic Server, you can use a single data source to pool connections to multiple pluggable databases. The application at run time can switch between PDB's by calling ALTER SESSION SET CONTAINER. This model provides the benefits of the Multi Tenancy option at the mid tier in addition to the data tier, including scalability and elasticity.

You should be aware of some limitations of PDB switching with Oracle Database 12.1. The following WebLogic Server limitations exist when using tenant switching.

  • Oracle RAC Fast Application Notification (FAN) is not supported. Even though FAN is not supported, Active GridLink still provides the benefit of a single data source view of multiple RAC instances and the ability to reserve connections on new instances as they are available without reconfiguration using connection load balancing. If you want to use tenant switching with an Active GridLink data source, “FAN enabled” must be set to false see http://docs.oracle.com/middleware/1212/wls/JDBCA/gridlink_datasources.htm#CHDIAGEF . Generic data sources don’t use FAN so this restriction doesn’t apply.

  • Database Resident Connection Pool (DRCP) is not supported

  • Application Continuity is not supported.

  • Proxy authentication is not supported.

  • Recovery of XA transactions in single data source that is used for switching between multiple PDB's is not supported.

For more details about these limitations read the documentation http://docs.oracle.com.middleware/1212/wls/JDBCA/ds_oracledriver.htm#CCHBDGHC.

Monday Nov 18, 2013

Navigating Through Diagnostic Data Options

In this new post I will talk about diagnostic data and more importantly what data and source of data are needed to troubleshoot and resolve some specific common problems.

WebLogic Server along with the JVM offers various ways to collect logs, debug traces, diagnostic images, thread dumps, and much more. However, useful data can easily get buried with lots of noise, unneeded data that won't help resolving a particular problem.

Performance Issues

We will start with performance issues such as long running requests or server hangs.  The best way to narrow down where the issue lies is to dump the java threads and parse them through a thread dump analyzer tool such as ThreadLogic.  Looking at the server log files, or enabling some debugging features would be premature since the first step is to identify the thread(s) that are stuck to determine what is being executed and relevant JEE resources. The log could also alert about stuck threads once they have been stuck for over the maximum allowed time (see MaxStruckThreadTime) but unless thread dumps are examined, it won't be possible to determine possible patterns of issues and threads' relationship around locked objects.

Memory Leaks

Another common performance issue involves memory leaks.  If you encounter OutOfMemory java.lang exceptions you should issue a heap dump and analyze it with a tool such as VisualVM or the Eclipse MAT.  See my post on Heap Dumps analysis for more details. Heap dumps are snapshots of memory certain times.  Heap dumps are to the Java process memory (non native) what thread dumps are to Java process threads.  Enabling -verbose:gc is also an effective way to monitor heap usage at runtime.  The output of the GC stats can be redirected to a file so that not to clog the server logs.  This can be done by setting -Xloggc with HotSpot JVM.  It's recommended to include -XX:+PrintGCDetails and -XX:+PrintGCTimeStamps to log time stamps and detailed GC activities as well.  Troubleshooting guide for HotSpot VM details these flags among others useful flags for diagnosis purposes.

Applications, 3rd parties, and configuration issues

The following chart summarizes what could be collected to debug each of the listed WLS component.  This list is by no means exhaustive.  Many more debug flags could be used for these listed components.  This chart contains examples of useful debug options and links to additional resources.

For the following, Redirect stdout and stderr logging should be enabled.  This can be done via the Administration Console in the advanced section of the servers logging tab or at startup in the java command line with -Dweblogic.StdoutDebugEnabled=true.  In addition, the severity level of the log file should be set to debug.

WLS comp. or 3rd party resource

Examples of Debug options and flags

MyOracleSupport  related resources

(login required)

 EJB/Web Serv.

-Dweblogic.webservice.verbose=true

-Dweblogic.webservice.client.verbose=true

To log SOAP requests and response messages

Trace in servers log files 

Troubleshooting EJBs Issues

How to enable Debugging for Weblogic EJB

How To Debug WLS Application Container Problems

Troubleshooting Oracle Web Services 11g

 JMS

-Dweblogic.debug.DebugJMSStore

To log info on load, store events and transaction records into servers log files

See Debugging JMS for more JMS debugging options


Troubleshooting JMS Info Center

 SSL

-Dssl.debug=true

-Dweblogic.security.SSL.verbose=true 

Trace in servers log files 

Troubleshooting SSL Security
Clustering

-Dweblogic.debug.DebugReplication for high level replication info

-Dweblogic.debug.DebugClusterAnnouncements to log info on announcement, StateDump and attributes messages sent or received by multicast

Trace in servers log files  

Debug RJVM or Intra-Cluster Communication Problems
JTA

weblogic.JTAXA & weblogic.JTA2PC for runtime issues, example:

JAVA_OPTIONS="-Dweblogic.Debug=weblogic.JTAXA, weblogic.JTA2PC"

Trace in servers log files  

Investigating Transaction Problems
JDBC

-Dweblogic.debug.DebugJDBCSQL=true

to print information about JDBC methods invoked with their arguments, return values, and thrown exceptions

See JDBC Debugging Scopes under Monitoring JDBC Resources

Trace in servers log files  

Investigating JDBC Issues

JDBC Debugging Scopes

Oracle JDBC Driver (*)

-Doracle.jdbc.Trace=true to enable jdbc logging

Create OracleLog.properties

Trace is file defined in oracle.jdbc.LogFile

Enable Oracle JDBC Driver Debug in WLS
Deployment (Classloader) Set the following options to true to report which classes are getting loaded

-Dweblogic.utils.classloaders.GenericClassLoader.Verbose

-Dweblogic.utils.classloaders.ChangeAwareClassLoader.Verbose

-Dweblogic.utils.classloaders.ClasspathClassFinder

-Dweblogic.utils.classloaders.DefaultFilteringClassLoader.Verbose

-Dweblogic.utils.classloaders.FilteringClassLoader.Verbose

-Dweblogic.utils.classloaders.FilteringClassLoader.ResourceDump

Trace in servers log files

Deployment Problems - Enabling Debug


Proxy plug-in

Debug="ALL" in the proxy configuration file

(iisproxy.ini, httpd.conf or obj.conf)

Trace in file set in WLLogFile defined inside proxy configuration file

Common Diagnostic Process for Proxy Plug-In Problems

(*)  Enabling JDBC Driver debug flags is verbose so it's recommended to set logging properties to appropriate levels such as FINE, SEVERE, FINEST, INFO etc. based upon the debugging requirement.

RDA

Diagnosing and troubleshooting also require a good understanding of the Weblogic domain environment, its configuration, patching level, JVM parameters and also an easy navigation through various logs and configuration files.  For this, RDA is a great diagnosing tool because it collects all this data indiscriminately.  One of the numerous benefits of RDA is that it doesn't require any complex setting and can collect data from each distinctive log file, xml repository and scripts.  So, RDA reports are of great assistance while working directly with Oracle support because that allow the engineer assigned to a service request to quickly understand the environment under which a specific issue is occurring.  This generally helps expedite the resolution of the SR.

WLDF

The Weblogic Diagnostic Framework can be used to collect metrics, setup watch and notifications, and to define instrumentation.  With WLS 12.1.2, you can set the level (Low, Medium or High) of built-in modules that will gather metrics, or disable them completely.  WLDF collects runtime statistics on JDBC, JTA and JVM and more.  You can then use the Monitoring Dashboard to view and navigate through the collected data.  WLDF is not an alternative to debug options.  Debug options activate tracing that is coded as part of WLS whereas WLDF collects and monitors runtime mbeans values and can activate notifications with defined rules.  They are used for different purposes.  

The WLDF built-in configurations (Low, Medium, & High) can be cloned into a new configuration, and used as templates for creating custom WLDF configurations.  The Low volume built-in is enabled by default in production mode.  One new feature with WLS 12.1.2 is Runtime control which gives the ability to activate or deactivate diagnostic system modules dynamically at runtime wihtout making any domain configuration change.

JFR

JFR recording data can also be captured through WLDF diagnostic images based on WLDF watch rules so that JVM runtime system information can be analyzed along with recording of WLS components diagnostic data.  Once extracted from the diagnostic image capture, the JFR file can be analyzed using Java Mission Control.

WLST

WLST diagnostic commands can be used to extract data from the diagnostic archive (event and harvested metric data) in either XML form or CSV, based on the function you use.  You can also dump the diagnostics data from a harvester to a local file.

The following WLST functions allow to capture an image and to download image files from a remote system over WLST:

One major difference between the diagnostic framework and the debug options is that debugs are enabled so that an issue can be reproduced and traced whereas the diagnostic image capture is used as a server-level dump for post-failure analysis in a similar way heap dumps are used post memory leak failures.

Friday Nov 08, 2013

Spotlight on an ACE: Dirk Nachbar

As part of our ongoing spotlights on Oracle ACEs, today we're highlighting Dirk Nachbar of Switzerland. Dirk currently works for Phillip Morris, and is recognized as an Oracle ACE for his expertise in both Oracle Fusion Middleware technologies and his Oracle Database prowess.
Dirk is currently working as a Senior Technical Analyst in the field of Oracle Technologies at Philip Morris International in Lausanne / Switzerland. He worked for several years for Consulting Companies in Germany and Switzerland with his major focus beingon Oracle Middleware Technologies (Oracle Application Servers & Oracle Fusion Middleware) for design, install, configure and troubleshooting, but also in the field of Oracle Database Administration. Moreover, Dirk holds Oracle certifications for Data Guard and Oracle WebLogic Server, and writes regular articles for the DOAG and SOUG newspapers.

Get in touch with Dirk by looking at his blog, on Twitter, or on LinkedIn.

Wednesday Nov 06, 2013

News Flash: Hong Kong Housing Society Improves Governance Control, Reduces Costs by 25%, Speeds up Approval by 30%

“We selected Oracle Fusion Middleware for its superior local support, higher performance, availability, reliability, and flexible enterprise architecture to cost-effectively integrate with existing Oracle applications", said Mr. C.W. Miao, Head of Information Technology, Hong Kong Housing Society in a press release today. To address the challenge of frequent downtime during peak periods and increasing cost in maintaining its legacy systems, Hong Kong Housing Society replaced its legacy systems with Oracle's WebLogic Suite, BPM Suite, and the ADF Framework. The Fusion Middleware solutions provide Hong Kong Housing Society with a flexible, reliable and cost-effective enterprise architecture that enables integration with existing Oracle applications including JD Edwards EnterpriseOne and PeopleSoft. The cost savings and performance results clearly demonstrate significant benefits. Read the PR for complete details.

Friday Nov 01, 2013

Drink Milk or Got a Pet? Watch what IDEXX Laboratories and Oracle do for you

IDEXX Laboratories is the global market leader in diagnostics and IT for animal health [with 50,000 veterinary practices worldwide], and water and milk quality. Watch this video where Brett Curtis, Senior System Administrator from IDEXX, discusses their business applications and laboratory information management systems. IDEXX uses Oracle WebLogic Server, SOA Suite, Coherence, Enterprise Manager and more. Enterprise Manager is used to manage their entire stack and has enabled IDEXX to achieve an astounding 90% reduction in time to find root cause of problems in their application infrastructure.

Wednesday Oct 30, 2013

WebLogic How-to Videos: Install, Upgrade, & Patch

Here is another great YouTube video by our product manager Monica Riccelli. She talks about installers now being standardized in Oracle for greater consistency -- no more WebLogic native installers. Also, JDK is no longer a part of the WebLogic install. The various installers she discusses include OUI, ZIP, OEPE, Coherence and more. Monica then takes us through a step by step install process.


After the install process is complete the video takes us through the configuration wizard. The ZIP installer is then discussed and its effectiveness, such as it being the smallest downloadable option, easy, and very popular with our customers and limitations (such as for development only and not to be used in production) highlighted. Monica then takes us through the configuration wizard, its usage, and when to use WLST scripts. The video then discusses NodeManager and its usage and discusses how to reconfigure a WebLogic domain on upgrade – through our GUI tools or through command line interface. Lastly, it highlights Opatch – a patch application tool used by our customers and standardized across all Oracle products. Really detailed video. Check it out! 

Friday Oct 25, 2013

Reminder: WebLogic Global, Virtual Developer Day November 5

Just a quick reminder about the FREE virtual developer day focused on WebLogic (and Coherence) coming on November 5th.

This day, with content tailored for developers, will guide you through tooling updates and best practices around creating applications with WebLogic and Coherence as target platforms. We'll also explore advances in how you can manage your build, deploy and ongoing management processes to streamline your application's life cycle. And of course, we'll conclude with some hands-on labs that ensure this isn't all a bunch of made-up stuff - get your hands dirty in the code!

November 5, 2013
9am PT/12pm ET
REGISTER NOW


We're offering two tracks for your attendance, though of course you're free to attend any session you wish. The first will be for pure developers with sessions around developing for WebLogic with HTML5, processing live events with Coherence, and looking at development tooling. The second is for developers who are involved in the building and management processes as part of the application life cycle. These sessions focus on using Maven for builds, using Chef and Puppet for configuration and more.

We look forward to seeing you there - don't forget to invite a friend!

Thursday Oct 17, 2013

So what is Active GridLink for RAC?

I had referred to Active GridLink for RAC in my blog yesterday and since then got several questions on this topic. So I decided to re-visit Active GridLink. With the release of version 11g, Oracle WebLogic Server started to provide strong support for the Real Application Clusters (RAC) features in Oracle Database 11g, minimizing database access time while allowing transparent access to rich pooling management functions that maximizes both connection performance and availability. WebLogic is the only application server in the marketplace which has been fully integrated and certified with Oracle Database RAC 11g without losing any rich functionality. Active GridLink provides Fast Connection Failover (FCF), Runtime Connection Load-Balancing (RCLB), and RAC instance graceful shutdown. With the key foundation for providing deeper integration with Oracle RAC, this single data source implementation in Oracle WebLogic Server supports the full and unrestricted use of database services as the connection target for a data source.


For more details and to understand how our customer NEC leverages this capability, read the whitepapers on this topic.

Get in depth ‘how-to’ details from this youtube video from our resident expert, Frances Zhao.

Wednesday Oct 16, 2013

Oracle WebLogic Server and Oracle Database: A Robust Infrastructure for your Applications

It has been said that a chain is as strong as its weakest link. Well, this is also true for your application infrastructure. Not only are the various components that constitute your infrastructure, like database and application server critical, the integration between these things [whether coming out of the box from your vendor or done in-house] is paramount. Imagine your database being down and your application server not knowing about it and as a result your application waiting indefinitely for a database response – not a great situation if high availability is critical to your application. Or one of your database nodes is very busy, but your application server doesn’t have the intelligence to decipher that – it keeps pinging the busy node when it can in fact get a response from another idle node much faster. This is what Oracle WebLogic and Database integration provides: Intelligent integration out of the box. Tight integration between Oracle WebLogic and Database makes your infrastructure robust enough that not only does each of your infrastructure component provide you with improved RASP [reliability availability, scalability, and performance] but these components work together to offer improved performance & availability, better resource sharing, inherent scalability, ease of configuration and automated management for your entire infrastructure. Oracle WebLogic Server is the only application server with this degree of integration to Oracle Database.

With Oracle WebLogic Server 11g, we introduced Active GridLink for Real Application Clusters (RAC). In conjunction with Oracle Database, this powerful software technology simplifies management, increases availability, and ensures fast connection failover with runtime connection, load balancing and affinity capabilities. With the release of Oracle Database 12c this summer, even tighter integration between Oracle WebLogic Server 12c (12.1.2) and Oracle Database 12c has been achieved and this further optimizes the integration for a global cloud environment.


Read about these capabilities in detail in the Oracle WebLogic-Database Integration Whitepaper. Get in depth ‘how-to’ details from this YouTube video on the topic from our resident expert, Monica Roccelli.

Monday Oct 14, 2013

Whitepaper: The Department of Defense (DoD) and Open Source Software

With tight budgets organizations throughout the U.S. Department of Defense (DoD) see the appeal of the open source model. Open source software (OSS) includes operating systems, applications, and programs in which the source code is published and made available to the public, enabling anyone to copy, modify and redistribute that code without paying royalties or fees. Open source “products” typically evolve through community cooperation among individual programmers as well as very large companies. An open source license permits anybody in the community to study, change and distribute the software for free and for any purpose.

At first glance it might seem that DoD organizations can avoid buying commercial software products simply by starting with open source software and developing their own applications. As this white paper shows, total cost of ownership (TCO) for open source software often exceeds that of commercial software. While minimizing capital expenses by acquiring “free” open source software is appealing, the up-front cost of any software endeavor represents only a small fraction of the total outlay over the lifecycle of ownership and usage. And while cost effectiveness is important, it must be carefully weighed against mission-effectiveness.

This paper seeks to answer two questions:

1. What are the tangible and intangible costs that the government should bear under an open source licensing model?

2. What are the tradeoffs and risks associated with open source licensing models in relation to commercially available software?

Download this whitepaper today to ensure you are considering the various cost drivers of owning and operating an application environment.

Friday Oct 11, 2013

Virtual Developer Day for WebLogic: November 5th

We're excited to announce an upcoming FREE virtual developer day focused on WebLogic (and Coherence).

This day, focused on developers, will guide you through tooling updates and best practices around creating applications with WebLogic and Coherence as target platforms. We'll also explore advances in how you can manage your build, deploy and ongoing management processes to streamline your application's life cycle. And of course, we'll conclude with some hands-on labs that ensure this isn't all a bunch of made-up stuff - get your hands dirty in the code!

November 5, 2013
9am PT/12pm ET
REGISTER NOW


We're offering two tracks for your attendance, though of course you're free to attend any session you wish. The first will be for pure developers with sessions around developing for WebLogic with HTML5, processing live events with Coherence, and looking at development tooling. The second is for developers who are involved in the building and management processes as part of the application life cycle. These sessions focus on using Maven for builds, using Chef and Puppet for configuration and more.

We look forward to seeing you there, and don't forget to invite a friend!

Thursday Oct 03, 2013

Avocent's VP of Engineering: Leveraging WebLogic & More for DCIM Offering

Just prior to OpenWorld I wrote about our customer Emerson's Avocent division, the cutting edge work they are doing with their DCIM offering, and Steve Blackwell's sessions at OOW [Read the blog here]. We got lucky and were able to catch Steve live at OpenWorld for an OTN interview in which he offers further details on their Trellis platform, how it leverages Oracle WebLogic Suite, Oracle Coherence, Oracle Complex Event Processing, Oracle Service Bus and other Oracle technologies to offer a state-of-the-art platform for their customers.

Friday Sep 20, 2013

Another not-to-miss OpenWorld Session: WebLogic on Oracle Database Appliance

Oracle WebLogic Server on Oracle Database Appliance offers a complete solution for building and deploying enterprise Java EE applications in a fully integrated system of software, servers, storage, and networking that delivers highly available database and WebLogic services.
In this session, we will discuss how WebLogic is deployed on Database Appliance virtual environment and what the benefits of deploying to this platform are.

Session Id: CON8980

Time: Monday, Sept 23rd 2013, 12:15 p.m. - 1:15 p.m.

Location: Marriott Marquis, Room: Golden Gate A

Speakers: Simon Haslam (Veriton), Frances Zhao-Perez (Oracle)

Read Simon's blog for more information on this session.

More on the topic from OTN.


 

OpenWorld Session: Intelligent Integration - WebLogic & Active GridLink for RAC

Oracle WebLogic Active GridLink for RAC is the market-leading mid-tier integration solution leveraging additional Oracle RAC advancements. Oracle and NEC have jointly invested on verifying and testing the Active GridLink for RAC solution implemented within Oracle WebLogic Server which provides high-availability, scalability and high performance solution for helping customer building mission critical applications. In this session, we will discuss the detailed Active GridLink capabilities and the testing results done by NEC. We then will introduce the new functionality on Oracle Database 12c integration.

Please come to meet our experts from Oracle and NEC discussing the latest and greatest technologies; and learn how this will benefit your business!

Session ID: CON8977

Time: Wed, Sept 25, 1:15-2:15pm
Location: Marriott Marquis, Room Golden Gate A

Speakers: Naoto Kashiwagi (NEC), Frances Zhao-Perez (Oracle), Yosuke Arai (Oracle) 

Read the join whitepaper written by NEC and Oracle on this topic.

Monday Sep 16, 2013

Ensuring high level of performance with WebLogic JDBC

In this post you will find some common best practices aimed at ensuring high levels of performance with WebLogic JDBC.  However, rather than just throwing some tips, I will detail why each recommendation is beneficial to JDBC and Weblogic Server performance.

  • Use Oracle JDBC thin driver (Type 4) rather than OCI driver (Type 2)

The Oracle JDBC thin driver is lightweight (easy to install and administrate), platform-independent (entirely written in Java), and provides slightly higher performance than the JDBC OCI (Oracle Call Interface) driver.  The thin driver does not require any additional software on the client side.  Oracle JDBC FAQ stipulates that the performance benefit with the thin driver is not consistent and that the OCI driver can even deliver better performances in some scenarios.

  • Use PreparedStatements objects rather than Statement 
With PreparedStatements, compiled SQL statements will be kept in cache and only be executed once against the database.  As a result, unnecessary parsing and round-trips to the database will be avoided when the same statement is used later within the same connection.  The statement cache size defines the total number of prepared statement that can be made with a single connection from the Datasource.

  • Close all JDBC resources in a finally Block

This include ResultSet, Connection, Statement and Prepared Statement objects and to avoid potential memory leaks.  The connection.close() won't necessarily automatically clean up all the other objects because the implementation of close() may differ between JDBC drivers.  Also, JDBC objects not properly closed could lead to this error:

java.sql.SQLException: ORA-01000: maximum open cursors exceeded.

If you don't explicitly close Statements and ResultSets right away, cursors may accumulate and exceed the maximum number allowed in your DB before the Connection is closed. 

  • Set Shrink frequency to 0 in production environments

By disabling Shrink frequency you will not allow waits before shrinking a connection pool that has incrementally increased to meet demand.  The Shrink Frequency parameter is used to specify the number of seconds to wait before shrinking a connection pool, given that ShrinkingEnabled is kept at its default value, or set to true.  Weblogic shrinks a connection pool by reducing the number of connections to the greater of either the minimum capacity or the number of connection in use and thus frees up some resources.  In development we can afford to keep the no-longer-used connection active rather than immediately returning them to the pool.  

  • Consider skipping the SQL-query test when Test Connections on Reserve is enabled

When Test Connections on Reserve is enabled (see Advanced Connection Pool Configuration in the console), the Weblogic Server checks a database connection prior to returning the connection to a client to avoid passing an invalid connection in the application.  Since this operation could impact the performance, it's recommended to use Seconds to Trust an Idle Pool Connection (set to 10 seconds by default) that defines how long WebLogic Server will trust the connection and therefore skip the connection test after a connection has been proven valid.

  • Enable Pinned-to-Thread
Disabled by default, this option can improve performance by enabling threads to keep a pooled database connection even after the application closes the logical connection.  This eliminates potential contention between threads getting a database connection.  However, this parameter should be used with great care because the connection pool maximum capacity is ignored when pinned-to-thread is enabled.  A connection no longer used will not return to the pool but will stay linked to the thread, and no shrinking can apply to that pool.
  • Ensure that Maximum Thread Constraint property doesn't exceed the number of database connection

This property (See Environment Work Manager in the console) will set a maximum number of possible concurrent requests. If it exceeds the number of database connection then some threads might end up waiting until existing database connection are made available.


Visit Tuning Data Source Connection Pools and Tuning Data Sources for additional parameters tuning in JDBC data sources and connection pools to improve system performance with Weblogic Server 12.1.2, and Performance Tuning Your JDBC Application for application-specific design and configuration. 

About

The official blog for Oracle WebLogic Server fans and followers!

Stay Connected

Search

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