Darwin IT

Subscribe to Darwin IT feed
Darwin-IT professionals do ICT-projects based on a broad range of Oracle products and technologies. We write about our experiences and share our thoughts and tips.Martien van den Akkerhttps://plus.google.com/110503432901891966671noreply@blogger.comBlogger360125
Updated: 6 hours 41 min ago

OPN Fusion Middleware Community Forum 2016: my summary

Sat, 2016-03-19 06:24

I just boarded on my flight back to Amsterdam and  I'd grab a chance to put down my first impressions of this week.

Apart from catching a flu, it was a great event. As could be expected the word describing the weather fenomena I'm about to enter resonates throughout the whole event. (For those who didn't catch my vague description: it's 'Cloud, Cloud,  Cloud).

One of the presenters put that Oracle needs to go for 100% Cloud for a while to become a recognised Cloud provider. But in a few years it wil most probably turn out that in most cases we wil be in a hybrid environment. And then Oracle will have the best papers to provide for both Cloud and On-Premise.  By the way: Oracle will encounter the same problems with upgrades that customers have for years.  So it can be expected that upgrading Oracle software will improve over time as well.

The most interesting session on the first day for me was the session of Grant Ronald about Application Builder Cloud Service and Max: Mobile Application Accelerator.  The latter is a little like Forms Builder in the cloud to build an app the 4 GL way.  Very cool in my opinion and Grant was amusing as always.  Smart to give him the last slot of the day.

The second day started for me with an excellent introduction and demo of Real Integration Business Insight or in short Insight.  Although leveraging BAM it has a whole different approach.  With BAM you need to complete your composite with Business Indicator definitions and deploy it. Only then you can define your queries, views and dashboard.  But with Insight you can do it top down. You don't need to define any indicators or sensors in your composites or service bus projects.  You define a model with milestones and Business Indicators afterwards in Insight. Then you need to map the indicators and milestones to particular points in your services.  Probably this is done by a more technical person or architect, who knows the implementation of the services.  For the rest business users can implement it. Your model can even span composites that are not interrelated with an ECID, using a correlation key.  This comes in convenient in cases like where  one BPEL process writes something to a database and later another instance picks it up.  Logically you're still working on the same business process but for SOA Suite it wasn't the same flow anymore.  Did you get that I mentioned Service Bus?  Besides BPEL it works for SB as well.  And since BAM is leveraged you'll find the models back in the data sources so you'll be able to expand from there and use the BAM functionality to join it with other sources. 

I took some sessions on PCS. They announced a few new capabilities for the next few releases.  For me Correlation Sets is a highly appreciated addition.  We have it in BPEL from the first release.  In BPM it was added to to the second patchset and apparently they left it out of PCS. Probably because correlation is hard to grasp. But when you want to interact with a running process you need to indicate how the engine can conclude for which instance the incoming event is meant. 

There is a very native integration with DOCS so you can add documents to a folder related to the process instance.  But there will be a new start event to start an instance on arrival of a document in a certain folder.  This caters for an end 2 end document workflow.  Thight integration with Oracle Social Network allows you to interact with peers on an task.

Another thing I took from there was that apparently we still see PCS too much as a stripped down version of BPM Suite in the cloud.  So we tend to think in ways like: 'why is this piece of BPM functionality not in PCS' or 'In BPM we can do this, why can't we do that in PCS as well?'. But although BPM was the starting point I believe that we need to start seeing it as a whole separate product with its own purpose. So let's think from PCS and think on how this could be used and grown up  as a child on it's own legs. So that needed to come of my chest... ;).

The day ended with a nice ACE hacking event on how you could build a showcase with as many Cloud Services as you can.  Not everything went smooth but I think they did a good job.

I took the PCS Hybrid Applications track for the workshop.  It could have been a little more elaborate but it was nice. Got to play with the upcoming April release of PCS in a VM. It looked great. If I get the chance I'll post a little bit more on that later on.

Yesterday we went into the city of Valencia for the Fallas Festivities.  I learned this morning it had something to do with carpenters and to burn their waste.  The whole week there were lots of fireworks, even older people walk around with a box of fireworks and throw around fire-crackers: something we see only teenagers doing on the day before new year. And there were processions and funny statue groups. 

So that completes my overview I think.  I hope I'll be able to write about some subjects in a little more detail soon.

BPM QuickStart 12c on Windows 10

Fri, 2016-03-18 04:27
As many people probably did, I upgraded my laptop to Windows 10. Actually after that I re-installed even windows 10, since I installed an SSD drive (a Samsung EVO 850, which is really fast).

Earlier I wrote about installing SOA/BPM QuickstartInstaller, using silent install. All goes well, but where in 12.1.3 you actually can succesfully create a domain, with 12.2.1 you can't. I don't know why I got it working with 12.1.3, but I found why it doesn't in 12.2.1.

I turns out to be a recurring problem that also arose in JDeveloper 11g and it is caused by jython being not able to recognize the OS.

If you open the jython-modules.jar that can be found here %FMW_HOME%\wlserver\common\wlst\modules, then you'll find a 'Lib' folder with in it the file javashell.py. You can open the jar file using an archiver, I used my favorite tool TotalCommander, with the key-combi <CTRL>-<PgDn>.

Copy the file out of it and find the part '_osTypeMap' and add the string 'Windows 10' to the 'nt' list:

_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', )),

Just copy it back in to the jar file, overwriting the older version. By the way, although I found out earlier that the fault was in the jython install, the real thanks should go to Christos Vezalis, for his great explanation and the actual solution (I did not know what the string should be).

By the way, this same solution works for JDeveloper 12c as well.

Automatic install SOA/BPM QuickStart under Linux

Fri, 2016-02-26 07:51
Earlier I wrote about the automatic or silent install of JDeveloper. As a preperation for an automatic install of the complete SOASuite I translated this to Linux.

To do so in Linux you'll need to adapt the sudoers file.

Log in als root via het commando
[oracle@darlin-vce-db ~]$ su -
Last login: Fri Feb 26 06:44:05 EST 2016 on pts/0

Then edit the sudo-ers file:
[root@darlin-vce-db ~]# vi /etc/sudoers
Uncomment the lines for the Cmnd_Alias-es SOFTWARE en SERVICES (remove the hash ’#’ from the start of the lines)
## Installation and management of software
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

Then add the following two lines to the end of the file:
## Extra rights for oracle to do for instance rpm without password.
Save the file (use an exclamation-mark in the ‘:wq!’ command, since sudoers is a read-only-file.
I separated the settings for the environment in a seperate file, called 'jdev12c_env.sh', so you can use that before starting JDeveloper later on or to add these settings in your profile:
echo set Jdeveloper BPM Quickstart 12cR2 environment
export JAVA_HOME=/usr/java/jdk1.8.0_74
export JDEV_HOME=/u01/app/oracle/JDeveloper/12210_BPMQS
export JDEV_USER_HOME_SOA=/home/oracle/JDeveloper/SOA
export JDEV_USER_DIR_SOA=/home/oracle/JDeveloper/SOA
I adapted the response file because of a different ORACLE_HOME path under Linux and renamed it to 'bpmqs1221_silentInstall-lnx.rsp':

Response File Version=


#Set this to true if you wish to skip software updates



#If the Software updates are already downloaded and available on your local system, then specify the path to the directory where these patches are available and set SPECIFY_DOWNLOAD_LOCATION to true





#The oracle home location. This can be an existing Oracle Home or a new Oracle Home

As an extra I also created an start script called 'jdev12c.sh':
. $PWD/jdev12c_env.sh
echo start Jdeveloper BPM Quickstart 12cR2

The actual install script is as
. $PWD/jdev12c_env.sh
if [ ! -d "$JAVA_HOME" ]; then
# Install jdk
echo Install jdk 1.8
sudo rpm -ihv ./jdk-8u74-linux-x64.rpm
echo jdk 1.8 already installed
# Install BPM QS
if [ ! -d "$JDEV_HOME" ]; then
# Install JDeveloper BPM QuickStart
echo Install JDeveloper BPM QuickStart 12cR2
$JAVA_HOME/bin/java -jar fmw_12. -silent -responseFile $PWD/bpmqs1221_silentInstall-lnx.rsp
echo JDeveloper BPM QuickStart 12cR2 already installed
echo copy jdev.boot naar $JDEV_HOME/jdeveloper/jdev/bin
mv $JDEV_HOME/jdeveloper/jdev/bin/jdev.boot $JDEV_HOME/jdeveloper/jdev/bin/jdev.boot.org
cp $PWD/jdev.boot $JDEV_HOME/jdeveloper/jdev/bin/
echo copy JDeveloper BPM QuickStart 12cR2 environment and start scripts to ~/bin
cp $PWD/jdev12c_env.sh ~/bin
cp $PWD/jdev12c.sh ~/bin

As described in the Windows variant of this install this script copies an adapted version of the jdev.boot file to use the JDEV_USER_HOME_SOA and JDEV_USER_DIR_SOA environment variables as set in the jdev12c_env.sh. Also it copies the jdev12c_env.sh and jdev12c.sh scripts to the ~/bin folder (user home dir), so after install you're good to go by running the jdev12c.sh script for starting JDeveloper.

BPM/SOA 12c: Symbolic Filebased MDS in Integrated Weblogic

Tue, 2016-02-02 05:44
In BPM/SOA projects, we use the MDS all the time, for sharing xsd's and wsdl's between projects.

Since 12cR1 (12.1.3) we have the QuickStart installers for SOA and BPM,  that allows you to create an Integrated Weblogic domain to use for SOASuite and/or BPMSuite.

In most projects we have the contents of the MDS in subversion and of course a check out of that in a local svn working copy.

My whitepaper mentioned in this blog entry describes how you can use the mds in a SOA Suite project from 11g onwards.

But how use the MDS in your integrated weblogic? I would expect that some how 'magically' the integrated weblogic would 'know' of the mds references that I have in the adf-config.xml file in my SOA/BPM Application. But unfortunately it hasn't. That is only used on design/compile time.

Now you could just deploy/sync your MDS to your integrated weblogic as you would do to your test/production server and did on 11g.

But I wouldn't write this blog-entry if I did not find a cool trick: symbolic links, even on Windows.

As denoted by the JDEV_USER_DIR variable your (see also this blog entry), your DefaultDomain would be in 'c:\Data\JDeveloper\SOA\system12.\DefaultDomain' or 'c:\Users\MAG\AppData\Roaming\JDeveloper\system12.\DefaultDomain' (on Windows).

Within the  Domain folder you'll find the following folder structure: 'store\gmds\mds-soa\soa-infra'.
 This is apparently the folder that is used for the MDS for SOA and BPM Suite. Within there you'll find the folders:
  • deployed-composites
  • soa
In there you can create a symbolic link (in Windows a Junctions) named 'apps' and pointing to the folder in your svn working copy that holds the 'oramds://apps'-related content. In Windows this is done like:
C:\...\DefaultDomain\store\gmds\mds-soa\soa-infra>mklink /J apps y:\Generiek\MDS\trunk\SOA\soa-infra\apps
The /J makes it a 'hard symbolic link' or a 'Junction'. Under Linux you woud use 'ln -s ...'.

You'll get a response like:
C:\...\DefaultDomain\store\gmds\mds-soa\soa-infra>Junction created for apps <<===>> y:\Generiek\MDS\trunk\SOA\soa-infra\apps
When you perform a dir you'll see:

Volume in drive C is System
Volume Serial Number is E257-B299

Directory of c:\Data\JDeveloper\SOA\system12.\DefaultDomain\store\gmds\mds-soa\soa-infra

02-02-2016 12:06 <DIR> .
02-02-2016 12:06 <DIR> ..
02-02-2016 12:06 <JUNCTION> apps [y:\Generiek\MDS\trunk\SOA\soa-infra\apps]
02-02-2016 12:07 <DIR> deployed-composites
02-02-2016 11:23 <DIR> soa
0 File(s) 0 bytes
5 Dir(s) 18.475.872.256 bytes free
You can just CD to the apps folder and do a DIR there, it will then list the contents of the svn working copy folder of your MDS but just from within your Default Domain.

Just refire your Integrated Domain's DefaultServer and you should be able to deploy your composites that depend on the MDS.

Using SKIP LOCKED feature in DB Adapter polling

Tue, 2016-01-19 04:53
Last few days I spent with describing a Throttle mechanism using the DB Adapter. Today the 'Distributed Polling' functionality of the DB Adapter was mentioned to me, which uses the SKIP LOCKED clausule of the database.

On one of the pages you'll get to check the 'Distributed Polling' option:
Leave it like it is, since it adds the 'SKIP LOCKED' option in the 'FOR UPDATE' clausule.

In my example screendump I set the Database Rows per Transaction, but you might want to set in a sensible higher value with regards to the 'RowsPerPollingInterval' that you need to set yourself in the JCA file:

The 'RowsPerPollingInterval' is not an option in the UI, unfortunately. You might want to set this as a multiple to the MaxTransactionSize (in the UI denoted as 'Database Rows per Transaction').

A great explanation for this functionality is this A-Team blogpost. Unfortunately the link to the documentation about 'SKIP LOCKED' in that post is broken. I found this one. Nice thing is that it suggests using AQ as preferred solution in stead of SKIP LOCKED.

Maybe a better way for throttling is using the AQ Adapter together with the properties

Automatic install of JDeveloper

Wed, 2016-01-06 01:57
A few weeks ago I wrote a little script to do a silent install of SOA/BPM QuickStart.
Yesterday I enhanced the script to also do an automatic install of Java and adapt the environment settings to have the JDeveloper settings specific placed in C:\Data\JDeveloper\SOA.

To run the script you should have the following files placed in one folder (for instance c:\temp\soabpm):
Download the jdk-8u65-windows-x64.exe from here. If you use another version adapt the script below to change the JAVA_HOME as the place where it should be installed and the reference to the installer (jdk-8u65-windows-x64.exe) to the version. The script below ignores any other installation of Java (either an other update of jdk8 or earlier versions).

Using the 'setx' command  (see docs) the JAVA_HOME is explicitly set, and also later on the variables JDEV_USER_DIR_SOA and JDEV_USER_HOME_SOA pointing to C:\Data\JDeveloper\SOA. I picked the jdev.boot from an earlier install adapted the ide.user.dir.var variable as follows:

# The ide.user.dir.var specifies the name of the environment variable
# that points to the root directory for user files. The system and
# mywork directories will be created there. If not defined, the IDE
# product will use its base directory as the user directory.

A copy of this jdev.boot file I placed in the same folder as the script. The scripts sets the FMW_HOME as 'C:\oracle\JDeveloper\12210_BPMQS'. After the install of JDeveloper-SOA/BPM QuickStart, it copies this jdev.boot file to the right place in the FMW_HOME (%FMW_HOME%\jdeveloper\jdev\bin).
Make sure that you have the installer jar files (fmw_12. and fmw_12. unzipped in the same folder. You could have downloaded them in zip files. You can use this script also to do a complete silent install of the JDeveloper Studio Edition, but then use the generic installer downloaded here (Oracle JDeveloper 12c Generic/Others(2.1GB)).

The installBpmQS.bat script is as follows.
@echo off
set JAVA_HOME=c:\Program Files\Java\jdk1.8.0_65
echo setx -m JAVA_HOME "%JAVA_HOME%"
rem Check Java
if exist "%JAVA_HOME%" goto :JAVA_HOME_EXISTS
echo Install %JAVA_HOME%
jdk-8u65-windows-x64.exe /s INSTALLDIR="%JAVA_HOME%"
echo %JAVA_HOME% exists
rem check BPM12.2 QS
set FMW_HOME=C:\oracle\JDeveloper\12210_BPMQS
if exist "%FMW_HOME%" goto :BPMQS_HOME_EXISTS
echo Install %FMW_HOME%
rem echo "Current dir2:" %~dp0
echo "Silent install BPM QuickStart, using response file:" %cd%\bpmqs1221_silentInstall.rsp
"%JAVA_HOME%\bin\java.exe" -jar fmw_12. -silent -responseFile %cd%\bpmqs1221_silentInstall.rsp -nowait
echo %FMW_HOME% exists
if not exist c:\Data mkdir c:\Data
if not exist c:\Data\JDeveloper mkdir c:\Data\JDeveloper
if not exist c:\Data\JDeveloper\SOA mkdir c:\Data\JDeveloper\SOA
rem set JDEV_USER_DIR_SOA and JDEV_USER_HOME_SOA as 'c:\Data\JDeveloper\SOA'
echo set JDEV_USER_DIR_SOA and JDEV_USER_HOME_SOA as c:\Data\JDeveloper\SOA
setx -m JDEV_USER_DIR_SOA c:\Data\JDeveloper\SOA
setx -m JDEV_USER_HOME_SOA c:\Data\JDeveloper\SOA
echo copy jdev.boot naar "%FMW_HOME%\jdeveloper\jdev\bin"
copy jdev.boot "%FMW_HOME%\jdeveloper\jdev\bin" /Y
echo done

For completeness, the content of the response file is:

Response File Version=


#Set this to true if you wish to skip software updates


MOS_PASSWORD=<secure value="">

#If the Software updates are already downloaded and available on your local system, then specify the path to the directory where these patches are available and set SPECIFY_DOWNLOAD_LOCATION to true





#The oracle home location. This can be an existing Oracle Home or a new Oracle Home
Save this as bpmqs1221_silentInstall.rsp. If you use this for the installation of JDeveloper Studio Edition or any other version of JDeveloper, then adapt the name, also in installBpmQS.bat above, and adapt the FMW_HOME/ORACLE_HOME in both installBpmQS.bat and the response-file.

I could have enhanced this script to put the possible points to change in variables. But I think with my eloboration you should get the point...