Monday Mar 30, 2015

Getting an error while building migrated ADF Based Forms 11g to 12c (BEA-160187)

 We were getting an error while try to build our project after migration of ADF based Oracle BPM Forms 11g to 12c.

 An error says:

"Error: <J2EE> <BEA-160187> <weblogic.appc failed to compile the application .....>" 

And a warning says:

"Warning: Unresolved WebApp library references defined in weblogic.xml, of module 'public_html' [Extension-Name: oracle.soa.worklist.webapp, Specification-Version: 11.1.1, exact-match: false]" 

Our "weblogic.xml" file need to update. We edited "<weblogic-web-app>" tab and remove "oracle.soa.worklist.webapp" library reference version. Then our project build successfully.

[Read More]

Friday Mar 06, 2015

Oracle Service Bus SAP (iWay) Adapter Migration 11g to 12c

Step 1: Export project from 11g Service Bus Console

Step 2: Create a OSB application and import project

Step 3: Using SAP Adapter Migration Tool

Step 4: Browse and Select JNDI connection for SAP

Step 5: Edit Business Service wsdl source manually

Step 6: Change jndi name.

Step 7: Clean & Build & deploy your project using Jdeveloper 12c

[Read More]

Thursday Feb 19, 2015

JDeveloper 12c SAP Adapter Configuration

While trying to create SAP Adapter on JDeveloper 12c, configuration error can be appeared.

SAP JCO Library Missing
ERROR:SAP JCO library is not accessible. Please see 'Oracle SOA Adapter User Guide' for SAP JCO installation instructions.

[Read More]

Thursday Jan 29, 2015

Desktop application for purging SOA instances

You can purge instances with using my desktop application. It is easiest way to delete them from your SOA database. My application connects your database and run "soa.delete_instances" procedure. All of instance states will be ignored. "Check states table" . Before you start purging, your database administrator have to run these command below in your database.


My main referance document is "".

And Please back up your database before you start purging!

So, how to use this program?

Driver: Oracle JDBC driver
Connection String(url): Write your connection url like this example "jdbc:oracle:thin:@localhost:1521/orcl"
SOA Username: Something like SOA_INFRA, PROD_SOAINFRA etc.
Test Connection: It tests your connection, succeed or failed.

Composite Name: Which composite you want to purge? It is case sensitive
Composite Version: 1.0,1.1 etc.
Date From: Beginning creation date for the composite instances. Purge instances created the date after.
Date To: Ending creation date for the composite instances. Purge instances created the date before. (Not equals this date)

Batch Size: Batch size used to loop the purge Maximum Run time: Expiration time at which the purge script exits the loop. Delete with period: Split connections for each period. If you don t check this box, your application runs only "1" time. If you check this box, your application splits your begin and end date with selected day. For example, Date from is "2015-01-10" and date To is "2015-01-20", and you check this box and select 2 days period. Your application will be running 5 times, first delete instances between "2015-01-10" and "2015-01-12", then run again for delete instances between "2015-01-12" and "2015-01-14", then it will be continue like this.

Click "Run" button and wait.

If you want to use this tool, please contact with me via my e-mail (

And it is not official Oracle Product.

[Read More]

Wednesday Jan 28, 2015

SOA Instance States Table

Oracle SOA Suite composite instance state ids and descriptions table.[Read More]

Monday Jan 26, 2015

BPM Actionable Email Configuration

Step 1: Create e-mail account with mailbox.It means that account can get e-mail.

Step 2: Update user messaging driver

Step 3: Update Workflow properties

Step 4: Check driver config file (driverconfig.xml) from server. Config file path is "/data/oracle/domains/SOABPM-TEST-DMN/config/fmwconfig/servers/SAOBPM/applications/usermessagingdriver-email/configuration/".

Step 5: Restart SOA servers

Step 6: Create Test Composite

Step 7: Make humantask notification actionable

Step 8: Deploy & Test it.

You can download test application Click!

[Read More]

Tuesday Dec 16, 2014

Close and ReOpen Process as a New Instance

Step 1: Create Main Process

Step 2: Call Sub Process with Send Task

Step 3: Return from Sub Process with Receive Task

Step 4: Call Sub Process for Creating new instance

Step 5: Create Sub Process

Step 6: Sub Process Start activity

Step 7: Sub Process Cancel activity

Step 8: Sub Process End activity for cancel

composite.xml file

[Read More]

Wednesday Nov 19, 2014

Call SubProcess N Times and wait All Of Them are Completed!

Step 1: Create Main Process

Step 2: Create Sub Process

Step 3: Create DB Adapter for getting instance count

You can read my blog post about how to create and use DBAdapter. Click for read.

Step 4: Check your "composite.xml" file.

Step 5: Calling your Sub Process with "Service Task"

Step 6: Call DB Adapter with "Service Task"

Step 7: Check Process Instance Count with "Exclusive Gateway"

If count equals 1, all off subprocesses are completed with/without error. Otherwise there must be a subprocess that is running, because all of subprocesses are generated with same ECID that is as same as main process ECID

[Read More]

Tuesday Nov 18, 2014

Execute Pure SQL With DBAdapter

Step 1: Create DB Adapter

Step 2: Call DB Adapter with Service Task

[Read More]

BPM Set Instance Title

Step 1: Create BPM Application

Step 2: Add "Script" activity called "SetInstanceTitle"

Step 3: Using "ora:setCompositeInstanceTitle()" XPATH function.

Step 4: Check it on EM console

[Read More]

Friday Jul 18, 2014

DNS (Domain Name System) configuration in Solaris 10 & older

Step 1: Check /etc/resolv.conf file

Step 2: Open & Edit /etc/resolv.conf

Step 3: Enable the name resolving using DNS

Step 4: Test new name server

[Read More]

Friday Apr 25, 2014

Deployment failed because of "unrecoverable incompatibilities"

Edit composite.xml and add a new property.

<property name="oracle.bpm.bpmn.force.deploy">true</property> 

[Read More]

Thursday Apr 17, 2014

How To Reuse UserLogin in OIM

After delete a user, you can reuse userlogin in OIM. Please follow the steps below.

Step 1:  Login system admin screen and click on "System Configuration"

Step 2: Search and find "User Id Reuse property" and set value to "TRUE"

Step 3: Connect OIM database and find "UDX_USER_LOGIN" index and copy its sql script.

Step 4: Drop index.

Step 5: Recreate index as nonunique index. 

[Read More]

Change Email Validation For Uniqueness in OIM

Change email validation for uniqueness in OIM. Please follow the steps below.

Step 1:  Login system admin screen and click on "System Configuration"

Step 2: Search and find "Email Uniqueness property" If you do not click on "Create"

Step 3: Research and be sure :)

[Read More]

Wednesday Apr 16, 2014

Groovy in ADF

Groovy is an agile, dynamic language for the Java platform, defined as JSR 241. It has many features that were inspired by languages such as Python, Ruby, and Smalltalk, making them available to Java developers with a Java-like syntax. It interoperates seamlessly with any Java class, and can be compiled and interpreted without disturbing normal operations.[Read More]

I am a member of the Fusion Middleware Applications Consultancy team.

I focus on tips and tricks FMW applications consultancy but also have a strong interest in ADF Development & Achitecture, Oracle BPM, Oracle Identity Manager and Oracle SOA Suite.

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.


« March 2015