Galera Cluster Schema Changes, Row Based Replication and Data Inconsistency

Galera Cluster is a virtually synchronous multi-master replication plug-in. When using Galera Cluster application can write to any node and transactions are then applied to all serves via row-based replication events.

This is built-in Mysql row-based replication which supports replication with differing table definitions between Master and Slave.
So, when using row-based repplication source and target table do not have to be identical. A table on master can have more or fewer columns or use (more...)

DOAG 2017 and IT Tage 2017 Presentation Material

First of all Happy New Year to everyone and I want to thank the numerous people that attended my sessions "Calamities With Cardinalities" at DOAG 2017 and IT Tage 2017 last November and December.

You can find the slide deck here at

Stay tuned for more publications this year - at least I have some interesting stuff upcoming.

Western Europe 2018 Tour

| Jan 23, 2018
Many thanks to all those who graced my sessions during my Western Europe 2018 Tour in Paris, Lausanne, Milan and Rome. You can download the materials presented here

Testing Latency On The Oracle Cloud

One of the best things about working on the HCM Cloud Center of Excellence team at Oracle is that you learn something new every day.

I recently worked on an inquiry from a customer asking about latency testing: has anyone ever done it and, if so, how did they go about it?  In all honesty, it was a stumper for me.  I had no idea how to respond.  Fortunately, one of the folks on the (more...)

Jarvis Pizzeria: Getting started with Dynamic Processes

| Jan 23, 2018
Getting started with the new integration cloud, the cloud that brings ICS, VBCS and PCS together. This also includes the introduction of dynamic processes, Oracle's new approach for adaptive case management. This introductory blog consists mainly of an overview of the different parts of dynamic processes. In addition, some differences between PCS and the Integration Cloud are discussed.

First step: import the Jarvis Pizza Preparation application. The location of this menu option is changed but (more...)

SoapUI: validate a date field in response with current date

Once in a while you need to validate a service that has dates in the response. Although SoapUI has xpath and xquery match assertions, validate against strings is quite difficult. How to do a date comparison against for instance the current date?

You can do it with a script assertion:
And the content of this can be:
def groovyUtils = new
// Set Namespaces
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

Oracle Licensing bootcamp training in your city

Dear Friends, 

In the year 2018, our friend Sibaji Dey Choudhury is conducting 2-day "comprehensive" bootcamp trainings on Oracle Licensing in several major cities across the world. At the end of the intensive bootcamp training, you have the option of an assessment at no extra cost to get an "Oracle Licensing Maestro" certificate. 

Sibaji has 13 years of experience on "Oracle Licensing" training and consulting services, across 300+ customers worldwide.

If you are are (more...)

Hash Join Overflow Costing #2

In my previous post on costing a Hash Join overflow to disk I came up with a formula for the cost of a Hash Join operation that overflows to disk based on tests I had done, but I also mentioned that there might be other factors involved not yet exposed by my testing. My main concern was whether the disk I/O's involved were all of the same type, or a mix of single block and (more...)

Modify your in wlst

In 2016 I did several posts on automatic installs of Fusion MiddleWare, including domain creation using wlst.

With weblogic 12c you automatically get a pre-configured per-domain nodemanager. But you might find the configuration not completely suiting your whishes.

It would be nice to update the file to with your properties in the same script.

Today I started with upgrading our Weblogic Tuning and Troubleshooting training to 12c, and one of the steps is (more...)

Full Outer Join Strategien in unterschiedlichen RDBMS

Für Leute, die parallel mit mehreren RDBMS zu arbeiten haben - so wie ich -, ist es wichtig, die kleinen Unterschiede in der Implentierung im Blick zu behalten. Dabei sind Artikel wie die Untersuchung "NESTED LOOP and full/right outer join in modern RDBMS" von Mohamed Houri ausgesprochen nützlich. Darin erfährt man unter anderem Folgendes:
  • weder Oracle, noch der SQL Server, noch Postgres können einen Nested Loop Join verwenden, um einen RIGHT OUTER JOIN auszuführen: sie (more...)

Using SQL*Plus to Seed your Dockerized Oracle Database

In my last blog, you learned  to create a containerized Oracle database for your development/testing purpose. You also know how to connect to your container and run command in the container.

Most applications require some reference data e.g. example,my  OrderApp application based on Apache Tom EE  requires catalog data to be pre-populated before I can test my application. 

One of the readers asked me how can we run a SQL (more...)

Who used in 2017?

A number of years ago, I provided statistics on the geographic distribution of people who used the free, evaluation service for Oracle Application Express at  I did this in 2008, 2009 and 2011.  It's time for an update. 

I've included a graphic of the top 30 and the full report below, and here are my observations:

  • Since 2008, the number of visitor sessions to increased (more...)

Global variable wsrep_OSU_method=RSU ignored on MariaDB Galera Cluster 10.0.32

Galera Cluster is great solution for application clustering but it has some limitations. One of the most critical limitations is how Galera Cluster performs model changes.

From Galera Cluster documentation:
What’s happening is a side effect of a multi-master cluster with several appliers. 
The cluster needs to control when a DDL statement ends in relation to other transactions,
in order to deterministically detect conflicts and schedule parallel appliers.
Effectively, the DDL statement (more...)

Blocking Prepared XA Transaction

There was an oracle-l thread last month about blocking sessions which could not be identified.

I replied back about a very niche scenario which I’d seen a few times before. And it’s just happened again so I thought it would be useful to just post some evidence on this.

Here are a couple of articles posted previously on XA transactions:

First, a reminder, from the posts (more...)

Boston Cloud SIG Session: Docker Demystified

| Jan 19, 2018
Thank you to all for coming to my session for North East Oracle User Group (Boston), more specifically the first ever Cloud SIG meetup a Burlington, MA on Jan 18th. It was heartening to see a 100+ crowd for a session that spanned all the way up to 9:30 PM on a week day. I sincerely hope you enjoyed it.

Here is the presentation for you to download:

CDB Views and Query Optimizer Cardinality Estimations

Today I faced a performance problem caused by a bad cardinality estimation involving a CDB view in a multitenant environment. While solving the problem I did a number of observations that I try to summarize in this blog post.

First of all, when checking the execution plan of a query already running for more than two hours, I noticed that, in the execution plan, neither the referenced CDB view nor one (more...)

Dynamic LOV with Pipeline function

A new year brought me some new tasks. I had to take over a generic Excel import and the customer wanted some extension by checking if the join on the master tables were successful.

Unfortunate we were talking about a generic solution which meant that all the configuration was saved inside tables including the LOV-tables which were saved as simple select statements.

Show all import rows/values which were not fitting towards the master data.


Pivotal Cloud Foundry App Instance Routing in HTTP Headers

Developers who want to obtain debug data for a specific instance of an app can use the HTTP header X-CF-APP-INSTANCE to make a request to an app instance. To demonstrate how we can write a Spring Boot application which simply outputs the current CF app index so we are sure we are hitting the right application container.

Simplest way to do that is to define a RestController using Spring Boot as follows which then enables (more...)

Migrating Function based indexes from Oracle to PostgreSQL

In this post, I will share  challenges with function based index in PostgreSQL . I was performing database migration from Oracle to PostgreSQL and used AWS Schema Conversion Tool(SCT) for converting the database schema.AWS Schema conversion tool takes care of automatically converting schema from one database engine to other. You can get more information about…

Disable or Hide a Radio Button Instance

I ran across a few blogs and forum posts from people either asking or sharing how to hide or disable radio buttons. The answers I saw appeared to address only part of the story so I thought I would share a solution. PeopleCode includes functions, properties, and methods for disabling and hiding fields. As you would imagine, A field property such as Visible will show or hide a field. What makes a radio button challenging (more...)