I am in the train back to Basel (Switzerland) and I will try to summarize the day spent on a SIG Oracle Middleware of the DOAG (German Oracle User Group) session related to Oracle Middleware administration and monitoring.

The different topics I saw were:

  • WebLogic 11g clustering and high availability
  • Overiew of the Cloud Control 12c (monitoring, automatization, quality management, cloud management
  • Real User Experience Insight (RUEI): End-to-End User Monitoring and Java Diagnostic
  • Administration and deployment with WLST
  • WebLogic Tuning and Oracle Fusion Middleware 11g

Many of these were not new for me, some others I had no clue.

WebLogic 11g clustering and high availability

As one of my dbi services colleague has already described the clustering and HA (in French: https://www.dbi-services.com/oracle-weblogic-essentials–avantages-du-clustering), I will not describe this part excepting listing a few points that I did not know:

  • Forms and Apex cannot be installed on the same domain, one of the disadvantage of that is the licensing cost that will be higher.
  • Let’s say, we have a cluster with two machines M1 and M2: In case we have to work on the hardware or the Operating System level on M1, we can move all applications from M1 to M2 using the WLS migration function. The second server M2 must have enough resources for hosting these additionals managed servers. This is often not the case as the servers are sized to host a number of applications and not more, at least not all from M2 and the additionals from M1. The function is available, but in my point of view, I would possibly use other solutions, such as having more nodes in the cluster, doing the maintenance while all servers are not fully in use, etc.
  • WLS 10.3.6 supports Oracle RAC, WLS 10.3.5 does not; we have to use Oracle Coherence with WLS 10.3.5
  • The clustering of EJBs can even be used although it is not often the case.

Overview of the Cloud Control 12c

Oracle Cloud Control 12c is a tool that provides a lot of functionalities. The sessions focused on monitoring, automatization, quality management, and cloud management. Here are some items I discovered:

  • We have the “Oracle Application Replay” pack where we can do a capture from a production workload and replay it in a test environment with the exact timing, concurrency, and transaction characteristics of the original workload. At the end, we have analysis and reports where we can see errors, performance issue, and data divergence.
  • With Cloud Control we can define a SLA and apply it to SOA applications. Once this is in place, the administrator can create a set of Service Level Objectives and see at the end if the SLA is compliant to the definition/expectations.

Real User Experience Insight (RUEI)

This tool, which can be used as a standalone product, was also integrated to be used with the Enterprise Manager and JVMD for the sql queries diagnostics. With this kind of installation, we can monitor the whole End to End user chain. RUEI collects information between the different tiers with no overhead and without changing the monitored applications and then creates reports where we can see when a problem occured.

With the help of Cloud Control, we can find which part was the source of the problem (database, memory, “thread” lock etc.) and which user was impacted. We even have the possibility (product under license) to see the action the user did at this time.
The implementation of RUEI needs about two days for a POC and between 10 and 20 days for a production environment.

WLST

Even if I have already used WLST, I learned that:

  • You can set environment variables in a script (e.g export MS_NAME = test in env.sh), run it and call them with os.environment[‘MS_NAME’] in a .py script. This is helpfull in case we have to do the same kind of installation: we only have to update the environment variables in the env.sh script and we can still use the same .py script.
  • You can create your own functions saved under “WL_HOME/common/wlst” which can then be used in a .py scripts
  • You can use shutil.copy() after deploy(). This will keep the last 10 EARs in a backup. Those 10 EARs can then be deployed later in case an issue occured during the deployment phase.

WebLogic Tuning and Oracle Fusion Middleware 11g

The WebLogic Tuning was more related to the JVM tuning.

The Java Performance Tuning consists of two parts:

  1. Java Code Optimization
  2. Garbage Collection tuning.

The first part is managed by the developer who has to take care for instance that no thread locks occur. Having a good code will avoid having headaches later on. But unfortunately, when we hit a problem it is often too late as we already have deployed the application 🙁

The presentation was focused on the second part, JVM Garbage Collection. The JVM memory management (PermGen, Young and old Generation) was explained and which GC strategy can be used to fulfill the requirements.

Some tips:

  • Throughput: use Parallel GC
  • Response time: use Concurrent GC
  • The use of “Java Visual VM” with the Visual GC plugin is a good combination to understand how the JVM is used.

The tuning of JVM cannot be explained in half an hour but this session brough some clarifications.

In the Oracle Fusion Middleware 11g part, there was a presentation of WLS Forms and Report. As I do not know these products and their architecture I will not treat this topic here to avoid giving “wrong” information. Just two points: I have understood that analyzing of performance issue is not so easy as a lot of components are involved in the architecture. Another point which seems to be rather complicated is the migration from version 6 to 11.

To conclude, the sessions were interresting. Through the different questions put on the table and exchanging with the participants, I was able to see different points of view, user problems and the different solutions that can/could be applied.

Even if I am not (yet) fully involved in all products/solutions, I have come back with a better knowledge of the tools, solutions, and topics to be studied, tested, and (why not) implemented.