Friday, December 18, 2015

Oracle BPM Suite 12c Server using Ansible

This article describes a way to automate the installation of Oracle BPM 12.2.1 on Linux 7 server. I'm using Ansible to automate the configuration of Linux server and install the software. I'm also using Vagrant with Oracle Virtual Box to automatically provision a Linux 7 server and run the Ansible playbook on the virtual machine automatically for testing.
You can download the sample code in my GitHub account:

The sample source code contains an Ansible playbook and configuration for Vagrant. Before you run it you need to download the supported JDK 8 installation file (for example jdk-8u66-linux-x64.tar.gz) and put it on roles/linux-jdk/files folder, Fusion Middleware Infrastructure 12.2.1 installation file and put it on roles/fmw-software/files folder and Oracle BPM suite 12.2.1 installation and put it on roles/soa-software/files from Oracle support.
You need to have an Oracle Database up and running. If you do not have one or you want to create one with Ansible you can use my playbook for Oracle Database. Links are at the end of this article.

For run it you need to have installed Ansible, Vagrant and Virtual Box and then just do:

$ vagrant up

Playbook is idempotent so you can run it again in the same server several times to have your server in the expected status.

You can configure your infrastructure parameters on infra-vars.yml. As minimum (if you do not use my ansible playbook for create the database) you need to configure the database connection settings.

You can also set custom passwords on secrets.yml file. For oracle Linux user you need to set the password encrypted. On a Linux system use the following to create the encrypted password:

mkpasswd --method=SHA-512

Monday, December 14, 2015

jdeveloper 12c generic installer windows 10 integrated weblogic cannot create domain

If you try to install JDeveloper 12c (12.2.1 or 12.1.3) on Windows 10 using the generic installer you will not manage to create a new WebLogic domain because jython libraries that integrated weblogic have cannot recognize the operating system. The same problem can happen if you install on Windows 7 the 12c JDeveloper using the generic installer, then upgrade the operating system to Windows 10 and need to recreate the domain. This is also happening in SOA Suite and Business Process Management Suite quick start for Developers installation.

A quick solution for this is to use the Windows installer and not the generic one. For SOA/BPM quick start JDeveloper installation you need to patch the juthon-modules.jar to create the SOA domain.

If you still want to use the generic installer (for example to use a newer version of JDK) you can extract the jython-modules.jar at C:\Oracle\Middleware\Oracle_Home\wlserver\common\wlst\modules and edit inside Lib. Find _osTypeMap and add the string 'Windows 10'.

_osTypeMap = (
        ( "nt", ( 'nt', 'Windows NT', 'Windows NT 4.0', 'WindowsNT',
                  'Windows 2000', 'Windows 2003', 'Windows XP', 'Windows CE',
                  'Windows Vista', 'Windows Server 2008', 'Windows 7', 'Windows 8', 
                  'Windows Server 2012', 'Windows 10' )),
        ( "dos", ( 'dos', 'Windows 95', 'Windows 98', 'Windows ME' )),
        ( "mac", ( 'mac', 'MacOS', 'Darwin' )),
        ( "None", ( 'None', )),

Then you need to package jar file again using jar -cvf jython-modules.jar *.* inside jython-modules extracted folder.

You can optionally download the patched jython-modules.jar for windows 10 here:

Friday, November 27, 2015

WebLogic JDBC performance analyzing using Java Flight Recorder

Java Flight Recorder (JFR) is a tool for monitoring Java applications. JFR is integrated into Java Virtual Machine (JVM). It have less than 1% overhead and is capable for monitoring production systems without affecting performance.

To enable JFR with the JVM that will run a WebLogic server we need to start the WebLogic using 2 flags:


The JVM default JMX port is 7091. We can change it and set it for example to 7093 using:

This is useful when monitoring multiple managed servers on the same machine. Each managed server can have it's own port.

For development servers we can also disable authentication and SSL using the following (this is an insecure setting, do not use it with production machines):

We can then open the Java Mission control using the jmc command from JAVA_HOME bin folder

$ cd $JAVA_HOME/bin
$ ./jmc

Wednesday, November 18, 2015

Proxy Oracle Maven repository using Artifactory

Oracle have a Maven repository that hosts artifacts and maven plugins for ADF, WebLogic, SOA composites, Toplink, Coherence and other technologies. Repository is at A short registration is required for use the repository. You need to login with your OTN account, read and accept the terms of use. Documentation for how to use the repository with JDeveloper and Hudson/Jenkins Continuous Integration (CI) you can find here:

As many developers and CI servers use the repository you download from Oracle repository the same artifacts several times. This is a slow process and can bottleneck the external lines. A more effective solution is to use a repository manager and proxy the Oracle Maven repository on the internal network. This way you will download only 1 time each artifact from Oracle Maven repository and speed up the build process on developer machine or on Continuous Integration Servers.

Monday, November 9, 2015

Using Ansible to install WebLogic 12c R2 (12.2.1) and Fusion Middleware Infastructure on Oracle Linux 7.1

Before a couple of days Oracle release WebLogic 12c R2 (12.2.1). There are a lot of cool features like Java EE 7 support and Multitenancy Support for WebLogic domains. Installation of WebLogic server along with ADF runtime (Fusion Middleware Infrastructure) are not hard but requires a lot of parameters to be configured and a significant time when you need to repeat the actions in multiple virtual machines. Also Infrastructure updates are time consuming. Ansible is a great tool that help us automate this things. This article will demonstrate the creation of a WebLogic domain using Ansible. You can download code in my git hub account:

Fusion Middleware needs a Database repository for storing the required schemas. If you don't have a database already you can use an Ansible playbook i have create to install an Oracle Database 12c automatically. You can download the code here:

You can configure your infrastructure variables in infa-vars.yml

You can test the playbook from the extracted folder using:

vagrant up

a virtual machine will be ready in a few minutes with no other interaction. You can access the Enterprise Manager at if you use the default settings.

Thursday, October 22, 2015

Using Ansible to configure an Oracle Linux 7.1 server with Oracle 12c R1 Enterprise Edition Database

Ansible is the leading tool for configuring software and various parameters on servers. It does not require agents and other software installed on nodes like other popular tools (puppet or chef). Its also modular and already have hundreds of modules that help us configure our servers in several ways. In this article I will show how we can install an Oracle 12c R1 Database ( in Oracle Linux 7.1 server. The same Ansible playbook can be used with Redhat Enterprise Linux 7.1 and CentOS 7.1. You can download the code in Github at:

Source code also includes configuration for provision automatically a virtual machine using Vagrant.

Download from Oracle support the Oracle installation files:



and put them to folder roles/oracle-install/files inside checkout folder

After go into checkout folder and execute :

$ vagrant up 

After a few minutes a virtual machine with Oracle Database will be ready for you without any further configuration. You can access the Enterprise Manager Express using sys/sysdba and “oracle” as password.


You can shutdown the virtual machine using:

$ vagrant halt

You can destroy it (delete from disk) using:

$ vagrant destroy

more details at my article here :

Tuesday, October 13, 2015

Deploy JAX-RS 2.0 REST Webservice on WebLogic 12c

Creating a JAX-RS 2.0 (REST) style web service and deploy it to a WebLogic 12.1.3 server deployment will fail. The reference implementation of JAX-RS 2.0 library is missing from server. WebLogic 12c comes with Jersey 2.5.1 jar installed on filesystem but not deployed by default on WebLogic.