Wednesday May 15, 2013

Accessing VNC Console for ODA WLS Virtual Machines 2.5

When working on the ODA patch 2.5 there maybe occasions where you need to VNC into the virtual machine to try and diagnose issues because the standard oakcli doesn't provide enough information. I believe in 2.6 a new function has been a introduced to make this easier (oakcli show vmconsole) but in 2.5 it doesn't exist.

In this example I have deployed WLS on the ODA but one of the managed server machines is not coming up correctly although the command oakcli show vm is saying all is OK.

To get a VNC console to the managed server VM I performed the following.

  1. You need to go the the VM repository. This is on either of the ODA_BASE machines. To find where this is, on the node 0 db vm run the following command:

    oakcli show vm

    NAME                                  MEMORY       VCPU            STATE           REPOSITORY

    OTD_ofm_domain_AdminNode_1              4096          2            ONLINE          odarepo2
    OTD_ofm_domain_AdminNode_2              4096          2            ONLINE          odarepo1
    OTD_ofm_domain_AdminServer              1024          2            ONLINE          odarepo2
    WLS_ofm_domain_AdminServer              2048          2            ONLINE          odarepo1
    WLS_ofm_domain_ManagedServer_1          6144          2            ONLINE          odarepo2
    WLS_ofm_domain_ManagedServer_2          6144          2            ONLINE          odarepo1

    The server I'm interested in is WLS_ofm_domain_ManagedServer_1, which is found on  odarepo2. This tells me I need to go to the repository on ODA_BASE Node 1 (I'm counting from 0). In my case this is called nlab-oda-pub2.

  2. Login as root to the ODA_BASE server that has the required repository. change directory to the following

    cd  /OVS/Repositories/odarepo2/VirtualMachines/WLS_ofm_domain_ManagedServer_1

    Please note that yours may differ, I'm connecting to the odarepo2 and vm WLS_ofm_domain_ManagedServer_1

  3. In this directory there should be a file vm.cfg. Open this up and add the following line at the top

    vfb = ['type=vnc,vncunused=1,vnclisten=']

  4. Bounce the VM with the oakcli commands:

    oakcli stop vm WLS_ofm_domain_ManagedServer_1


    oakcli start vm WLS_ofm_domain_ManagedServer_1

  5. Start a VNC session and point to the correct node. In my case I need to connect to the head machine on the second node (machine you install the ODA_BASE into). The port you need to connect to is 5901 as 5900 is taken by the ODA_BASE machine.

    This should op up the console. In this instance I can see that may network was already taken, that is why it didn't start correctly.


Wednesday May 01, 2013

How to Enable Web Forms Manually

I have just upgraded my BPM to (PS 6). There has been a lot of talk about this release as it provides lots of functionality on the BPM Composer. I was keen to have a loom at the new features such as web forms so I implemented a simple BPM process which utilises the web form. I got as far as creating the human task but when I wanted to add a Web Form the green + was disabled.

I'm not sure if this is an issue as part of the upgrade or it was something I did wrong. After a bit of investigation comparing another instance that was working I realised that the frevvo application was not deployed in the Weblogic Console. Once I manually deployed the frevvo application the web form was enabled. The location of the frevvo app is the following:



Thursday Feb 28, 2013

Installing Process Accelerators for Oracle BPM

Oracle Process Accelerators help organizations reach process excellence faster. Process Accelerators are business process solutions developed with Oracle Business Process Management (BPM) Suite 11g. Process Accelerators can be deployed as-is, or extended to meet customer-specific requirements. In addition to expediting time-to-value for BPM deployments, Process Accelerators embody best practices and serve as blueprints for organizations that are developing process driven solutions with Oracle BPM Suite. Organizations adopting Process Accelerators not only improve the business process targeted by the Accelerators they deploy, but also have a unique opportunity to reach maturity in their process management initiative faster and with lower risk by applying Process Accelerator Best Practices and Patterns.

This blog post is to document the install procedures for Process Accelerators In this release the following process are delivered:

  • Oracle Travel Request Management (TRM) - streamlines the travel request process
  • Oracle Document Routing and Approval (DRA) - streamlines the document approval process
  • Internal Service Request (ISR) - streamlines the service request process
  • Public Section Incident Reporting (PSIR) - streamlines the incident reporting process
  • Financial Services Loan Origination (FSLO) - streamlines the loan application approval process

There are also 2 process that have been released in preview mode:

  • Oracle Employee Onboarding (EOB)
  • Oracle Business Account Opening (BAO)

This post is to show the install steps for the Process Accelerators. Before you can start the install you must have the following environment installed.

  • Java Development Kit 1.6.0 and later
  • Oracle Database 11g
  • Oracle Weblogic Server 11g
  • Oracle SOA Suite 11g
  • Oracle Business Process Management (BPM) Studio 11g Release 1 (
  • Oracle Business Activity Monitoring (BAM) 11g 
  • Oracle Webcenter Content Release 1 ( - Required for Document Routing and Approval accelerator.

There are lots of sites out there that document how to install these products, for the purpose of this post it is assumed that these products are installed and have been configured. My configuration I installed Webcenter and SOA / BPM on separate machines. Here is a screenshot of the domain configuration.

Webcenter Domain

SOA Domain

I have OSB installed here, this is not required for the PAs so you can ignore.

At the time of writing this blog the only way to get the Process Accelerators is via request. You need to send and email to requesting the software.

  1. Before you start installing the Process Accelerators you need to configure UCM to integrate with BPM. If this is a fresh install this work probably hasn't been done.
  2. If not done so already you need to set the RIDC Port and IP filter address. Therefore login to your UCM instance http://ucmhost:16200/cs and set the following:

    Incoming Socket Connection Address Security Filter:|0:0:0:0:0:0:0:1|*.*.*.*
    Server Socket Port : 4444

  3. Restart the UCM_Server1 managed server.
  4. Login to the weblogic console for your SOA / BPM environment.
  5. In the Domain Structure select the domain, e.g. soa_domain -> Security -> General and check the box

  6. Select the EmbeddedLDAP tab and set the credentials and confirm, e.g. welcome1

  7. Restart the soa_server1 managed server
  8. Login to UCM as weblogic and configure a new LDAP provider to link back to the SOA.
  9. Navigate to Administration -> Providers
  10. Click the link to add a new LDAPUser and enter the following, set the password to the password you set in step 6.

  11. Restart the UCM_Server1.
  12. Log back in and check that you have 5 successful connections.

  13. Under the Administrators panel, click Admin Server
  14. Click the link Advanced Component Manager
  15. Enable Folders_g

  16. Restart the UCM Managed Server
  17. Log back into UCM and navigate to Administrator, you should be in the  Component Manager screen. Make sure the following components are enabled or disabled:

    Checked : ZipRenditionManagement
    Checked :InboundRefinerySupport
    Checked BpelIntegration
    Checked DynamicConverter
    Checked WebCenterConfigure
    Un-Checked: FrameworkFolders

  18. Login to the Enterprise Manager control for Webcenter domain
  19. Navigate to WC_Domain -> Webcenter -> Content -> Content Server

  20. From the menu select Configuration and make the following changes

  21. If you have separate domains for WC and BPM login to Enterprise Manager Control for the  SOA / BPM Domain. Expand SOA then select soa-infra
  22. From the SOA Infrastructure menu, select SOA Administration -> Workflow Config, then select the More Workflow Notification Configuration Properties... link
  23. In the System MBean Browser tree, expand WorkflowConfig, then select human-workflow

  24. On the Attributes tab, in the UcmIdcUrl Value field, enter idc://ucmhost:4444 (4444 was the port I entered in step 2).
  25. Click Apply
  26. Navigate to Farm_soa_domain -> Weblogic Domain -> soa_domain. Right-click the soa_domain and select Security -> Credentials
  27. Select WF-ADMIN-USER, then click Create Key
  28. On the Create Key dialog box:
    • Ensure that Select Map field is set to WF-ADMIN-USER
    • In the Key field, enter WF-ADMIN-CREDENTIAL
    • In the User Name field, enter a user name with administrative privileges on the OWC server
    • In the Password and Confirm Password fields, enter a password for a user with administrative privileges on the OWC server

  29. Restart All Servers to make sure that all these changes have taken place.

You should now be in a position to install the Process Accelerators. The documentation that comes with the process accelerators is pretty good. To save myself lost of documentation I will point to certain steps within the document to execute.

  1. Download the documents zip file for the process accelerators
  2. Open the file paaig.pdf
  3. Skip all steps till you get to 2.1.2 Configure Oracle Business Activity Monitoring for Reports. Execute all steps for 2.1.2 so your BAM environment is configured.
  4. Execute all steps in the 2.2 Installing Oracle Process Accelerators and Oracle BAM Reports. The install gets to 97% fairly quickly, it will sit at running post install scripts for up to 90 or so minutes. If you want to see what is happening you can tail the install script. Please note my process accelerator home is: $MW_HOME/PAHome

    tail -f $MW_HOME/PAHome/installpa.log
    tail -f $MW_HOME/PAHome/installbam.log
    tail -f $MW_HOME/PAHome/installwc.log

    You should get a BUILD SUCCESSFUL at the end.

  5. If you get a BUILD FAILED then you will need to install manually. Go to Step 2.4 provides the steps to do this.
    I undeploy the process accelerators before I resinstall, here are the steps I take.

    • Run the commands
      cd $MW_HOME/PAHome/bin
      ant uninstall-pa
    • start a database session as sys
      sqlpuls / sysdba
      SQL>drop user accelerators cascade;
    • Restart all environments - this is required to clear some of the external applications from Weblogic
    • cd $MW_HOME/PAHome/bin
      . env_sh
      ant install-pa

  6. Once you have a build successful you can complete the post install steps.
  7. Starting at Section 3, complete all steps in 3.1. Here is an example of the users I assigned to each role in the BPM workspace. If the users don't exist in your environment follow this link.

  8. In Section 3.2 there are some tricks that will impact on what will and what won't display. This is what I did.
    In the Weblogic console create the following Groups under  Security Realms -> myrealm -> Users and Groups

  9. Add the appropriate users to the following groups:

    • BPMActionOfficer = vhugo, cdoyle, jausten, jlondon, jverne, istone
    • BPMCaseManager = cdickens
    • BPMCaseWorker = wfaulk
    • BPMReporter = jcooper
    • BPMExternalApp = Any user you want to add to have access to the External Apps
  10. Now you need to add access to the Applications in EM. Here is the list of applications that require security attached:

    • DRAAdminUI(V2.0)
    • FSLOAdminUI(
    • IncidentReportingAdminUI(V2.0)
    • IncidentReportingTaskUI(V2.0)
    • ISRAdminUI(V2.0)
    • TRMAdminUI(V2.0)

    To attach security to these applications login to the Enterprise Manager Control for SOA and navigate to Farm_soa_domain -> Application Deployments. Select one of the applications mentioned above. From the Application Deployment menu select Security -> Application Roles.

    To add users / groups to the Application click the search button this will display the role. Select the Role and add a User / Group by clicking the Edit button.

    In all instances I added the group BPMExternalApp to the Application roles with the exception of the IncidentReportingAdminUI(V2.0) and
    IncidentReportingTaskUI(V2.0) applications, for these applications I assign the groups created in step 9 matching the role to the group.

    It is important that you don't assign the same role / user to all the roles as some roles will overwrite another giving unpredictable results.

    This completes section 3 in the Install document

There are a number of steps in section 4 that have already been performed as part of the prerequisites. These do not need to be done again. The following steps can be skipped:

  • Section 4.1, "Configuration Matrix"
  • Section 4.2, "Configuring Oracle WebCenter Content"
  • Section 4.3, "Adding New Application Roles in Oracle BPM Workspace"

In Section 4.6, "Packaging FOP for PDF Generation" there is a bug when you run the ant script. the first thing it tries to do is undeploy. As you haven't installed it the process fails. You need to make a minor change to the ant build file.

  1. Open the following file with vi

    vi $MW_HOME/PAHome/pa/src/fs/lo/deploymentPlan/PAInstallFSLO.xml

  2. Go to the line 195 with the command


  3. There you will see that there is the parameter for undeploy when it errors it will stop the process change this to false, e.g. before:

    <Application name="LoanOriginationPDFModelServices"        filelocation="${env.PA_HOME}/pa/src/fs/lo/built/deploy/LoanOriginationPDFModelServices.ear"     wlserver="pa" failonerror="true" action="undeploy" />


    <Application name="LoanOriginationPDFModelServices"        filelocation="${env.PA_HOME}/pa/src/fs/lo/built/deploy/LoanOriginationPDFModelServices.ear"     wlserver="pa" failonerror="false" action="undeploy" />

Last but not least, if you find your BAM reports are not loaded you need to run the install for BAM manually.

  1. cd $MW_HOME/PAHome/bin
  2. .
  3. ant install-bam

Once the completion of Section 4 is done you are ready to run the Process Accelerators.


Tuesday Feb 19, 2013

Changing Memory Settings and JVM to JRockit for SOA Suite

I know there are many blogs out there that show how and where to change the memory configurations, .e.g. increase /  decrease or swap between Sun and JRockit JVM. The reason for this post is more for me to have a reference easy to find, but it brings a few concepts together which are usually found in 2 or 3 blog posts:

  • Memory modification
  • Swapping JVM provider
  • Node manager support

Many of the post out there are for changing the memory settings when running via the script. Although this post will support running via the script it is more about starting via Node Manager.

For the purpose of this post I'm using the scripts developed in my post Startup Scripts for Weblogic and SOA Suite

Firstly we want to change the memory settings for the JVM. This is done in the script.

Make a copy of the file the open for modification:


Look for the lines:

DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
PORT_MEM_ARGS="-Xms768m -Xmx1536m"

Comment these lines out and add the following straight after, e.g.

#DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
#PORT_MEM_ARGS="-Xms768m -Xmx1536m"

if [ "${SERVER_NAME}" = "" ] || [ "${SERVER_NAME}" = "soa_server1" ]; then
  DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
  PORT_MEM_ARGS="-Xms2048m -Xmx2048m"
elif [ "${SERVER_NAME}" = "" ] || [ "${SERVER_NAME}" = "AdminServer" ]; then
  DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
  PORT_MEM_ARGS="-Xms768m -Xmx768m"
elif [ "${SERVER_NAME}" = "" ] || [ "${SERVER_NAME}" = "bam_server1" ]; then
  DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
  PORT_MEM_ARGS="-Xms768m -Xmx768m"
elif [ "${SERVER_NAME}" = "" ] || [ "${SERVER_NAME}" = "osb_server1" ]; then
  DEFAULT_MEM_ARGS="-Xms512m -Xmx1024m"
  PORT_MEM_ARGS="-Xms768m -Xmx768m"
  DEFAULT_MEM_ARGS="-Xms768m -Xmx768m"
  PORT_MEM_ARGS="-Xms768m -Xmx768m"

Depending on how you installed your environment you may need to add the JRockit home, this is done in the, as before make a copy and open the file for modification.


check the value for BEA_JAVA_HOME and make sure it is pointing to your JRockit location, e.g.


As I'm starting my SOA environment via load manager I need to make some additional changes.

The node manager properties need to be updated


make sure the parameter StartScriptEnabled is set to true, e.g.


Also if you want to run JRockit you need to change the Java Homes


The last file that needs modification is the, to change the Java Home.


Comment out the old JAVA_ HOME and JAVA_VENDOR to point to JRockit, Before:

if [ -z "${JAVA_HOME}" -o -z "${JAVA_VENDOR}" ]; then
  # Set up JAVA HOME
  # Set up JAVA VENDOR, possible values are
  #Oracle, HP, IBM, Sun ...
  # PRODUCTION_MODE, default to the development mode


if [ -z "${JAVA_HOME}" -o -z "${JAVA_VENDOR}" ]; then
  # Set up JAVA HOME
  # Set up JAVA VENDOR, possible values are
  #Oracle, HP, IBM, Sun ...
  # PRODUCTION_MODE, default to the development mode

You should be now ready to start your environment. All servers should now start in JRockit, to test this you can run the command:

 ps -ef | grep soa_server1

It should have JRockit in the classpath.

Thursday Aug 30, 2012

Comparing Dates in Oracle Business Rule Decision Tables

I have been working with decision tables for some time but have never had a scenario where I need to compare dates. The use case was to check if a persons membership had expired. I didn't think much of it till I started to develop it. The first trap I feel into was trying to create ranges and bucket sets. The other trap I fell into was not converting the date field to a complete date. This may seem obvious to most people but my Google searches came up with nothing so I thought I would create a quick post.

I assume everyone knows how to create a decision table so I'm not going to go through those steps. The prerequisite for this post is to have a decision table with a payload that has a date field. This filed must have the date in the following format YYYY-MM-DDThh:mm:ss.

  1. Create a new condition in your decision table
  2. Right-click on the condition to edit it and select the expression builder

  3. In the expression builder, select the Functions tab.
  4. Expand the CurrentDate file and select date, and click Insert Into Expression button.

  5. In the Expression Builder you need to create an expression that will return true or false, add the operation <= after the

  6. In my scenario my date field is memberExpire, Navigate to your date field and expand, select toGregorianCalendar().

  7. Your expression will look something like this, click OK to get back to the decision table

  8. Now its just a matter of checking if the value is true or false.

Simple when you know how :-)

Sunday May 20, 2012

Renaming BPEL Process Names

A common problem is that developers don't get the BPEL process name right the first time. There have been a number of solutions proposed on the Internet which range from 'you just can't do it' to complicated Linux 'one-liners' which don't work on Windows.

Wouldn't it be nice to just have a "Rename BPEL Process" button in JDeveloper for SOA Suite 11g.

What we need is a script which will do the following:

  1. Run on any platform that JDeveloper supports (ie, Windows, Linux, and Mac).
  2. Rename the old filename to the new filename of the BPEL process.
  3. Updated any string references to the old BPEL name with the new BPEL name in any file that references the BPEL process.
  4. Easily accessible from JDeveloper (ie, no complicated command line wizardry).

JDeveloper has an option to call an "External Tool" which can also be a custom Ant script. This "External Tool" can be called from the toolbar of JDeveloper, including the context menu of the Application Navigator View.

Here is a build.xml Ant script which takes care of the above requirements.

<?xml version="1.0" encoding="UTF-8" ?>
<project default="RenameBPELProcessInJDeveloper11gR1">
    <target name="RenameBPEL">
        <echo>Workdir: ${PROJECT_DIR}</echo>
        <echo>String replacement: ${FILENAME_NO_EXT} -> ${NEW_FILENAME}</echo>
        <replace dir="${PROJECT_DIR}" token="${FILENAME_NO_EXT}" value="${NEW_FILENAME}">
            <exclude name="**/.svn*"/>
        <echo>Renaming ${FILENAME_NO_EXT} -> ${NEW_FILENAME} in ${PROJECT_DIR}</echo>
        <move todir="${PROJECT_DIR}">
            <fileset dir="${PROJECT_DIR}">
                <exclude name=".svn*"/>
            <mapper type="glob" from="${FILENAME_NO_EXT}*" to="${NEW_FILENAME}*"/>
        <echo>Renaming ${FILENAME_NO_EXT} -> ${NEW_FILENAME} in ${PROJECT_DIR}/xsd</echo>
        <move todir="${PROJECT_DIR}/xsd">
            <fileset dir="${PROJECT_DIR}/xsd">
                <exclude name=".svn*"/>
            <mapper type="glob" from="${FILENAME_NO_EXT}*" to="${NEW_FILENAME}*"/>
        <echo>Renaming ${FILENAME_NO_EXT} -> ${NEW_FILENAME} in ${PROJECT_DIR}/xsl</echo>
        <move todir="${PROJECT_DIR}/xsl">
            <fileset dir="${PROJECT_DIR}/xsd">
                <exclude name=".svn*"/>
            <mapper type="glob" from="${FILENAME_NO_EXT}*" to="${NEW_FILENAME}*"/>

Save this script to a file called build.xml and store it in a folder called RenameBPELAntScript.

We will also need an icon for the "External Tool" button in the JDeveloper Toolbar. For example this one: 
Right-click and "Save Image As...". 

Next follow these steps:

  1. Tools -> External Tools...
  2. New
  3. Tool Type: Apache Ant
  4. Ant Build File: (Browse to build.xml file)
  5. Move RenameBPEL target from Available Targets to Selected Targets.
  6. Add Property -> Insert -> File Directory | Property Name: PROJECT_DIR
  7. Add Property -> Insert -> File Name Without Extension | Property Name: FILENAME_NO_EXT
  8. Add Property -> Insert -> Prompt | Property Name: NEW_FILENAME
  9. Options Page, no changes required. Click Next.
  10. Process Page, no changes required. Click Next.
  11. Classpath Page, no changes required. Click Next.
  12. Display Page: 
    Caption for Menu Items: Rename BPEL Process
    Icon Location: (Browse to renameBpelIcon.gif)
    Click Next.
  13. Integration Page:
    Add Items to Menus: 
    Tools Menu
    Navigator Context Menu
    Add Buttons to Toolbars:
    Main Toolbar
    Before Tool Starts:
    Save All
    After Tool Exits:
    Reload Open File:
    Log Output to Messages Log
    Click Next
  14. Availability Page:
    Select: When Specific File Types are Selected
    Move BPEL Process from Available Types to Selected Types
  15. Click Finish
  16. Click OK

So what does the result look like?

Select a BPEL process in the Application Navigator of JDeveloper. Now you have two options for invoking the Rename BPEL process 'External Tool'.

As shown below, you can press the new icon in the toolbar. 

Alternatively you can select from the context menu. 

The complete process should look something like this: 

Notice that the original filename was foo.bpel and we have renamed it to bar.bpel.

If you are using Oracle Suite for 11g, then the above solution will solve your BPEL process rename issue. This same features is already on the roadmap for 12c.

Tuesday May 15, 2012

Upgrading Database Schema in FMW Upgrade

During a FMW upgrade one of the most common tasks forgotten is the upgrade of the database schemas as the steps seem to be berried in a mountain of documentation. If you are looking for the actual steps to upgrade FMW look at the following post - Upgrading Fusion Middleware 11.1.1.x to when you get to step 24 refer to this blog entry.

Oracle has made it a bit simpler running the Patch Set Assistant (psa). Before it was a bit of a dark art running a command line script and you had to guess what schemas need to be upgraded. Now there is a wizard driven tool to implement this.

  1. As the middleware owner change directory to $MW_HOME/oracle_common/bin
  2. Run the following command to start the PSA wizard

    Click Next to start entering details

  3. Select the component you want to upgrade, it will include all the prerequisites.

  4. Select the prerequisite check boxes to say you have backed up your environment.

  5. Enter connection details for the MDS schema

  6. Enter connection details for the SOAINFRA schema

  7. Check that all schemas connect successfully. If not go back and correct.

  8. Make sure all the setting are correct and continue

  9. Watch the install run, then complete

  10. Now you can check the version of the schemas to ensure they are correct. In this case I'm looking to have the version come back as

    SELECT owner, version, status FROM schema_version_registry
    where owner in ('DEV_MDS', 'DEV_SOAINFRA');

    OWNER                          VERSION                        STATUS
    ------------------------------ ------------------------------ -----------
    DEV_MDS                                   VALID
    DEV_SOAINFRA                              VALID

Monday May 14, 2012

Finding the Right Patchset

I'm always surprised at how hard it is to find the right patchsets when looking to do an upgrade.

So I thought I would make a blog entry that makes it easy to find the right patches starting from The following list are documents that provide the required patches for the associated upgrades:

I will update as more patchsets become available.

If you are looking for patch install instructions please refer to the following blog entry:

Upgrading Fusion Middleware

Happy upgrades

Tuesday Jan 24, 2012

Getting History from SQLPlus using Linux

A colleague of mine just asked me how do you get history in SQLPlus on Linux the same way you get by default in windows, e.g. when you press the up key you see the previous commands executed. I have never really given it much thought in the past, but there must be a way. After a quick Google search I found a solution. This blog is really for my future reference as the examples I found on the net required a bit of thought.

The post assumes you are using RedHat or OEL, It will work for other Linux OS but you will need to source the right application. I'm installing on OEL 5.7 64 bit.

The key behind this solution is the utility call rlwrap which is a read line wrapper. It maintains a separate input history which can be edited.

  1.  Login to you Linux machine as the root user

  2. Download the rlwrap utility using the appropriate link below and save it to a staging area on the Linux machine:
    rlwrap 32Bit
    rlwrap 64Bit

  3. From the staging area install the rlwrap utility, e.g.:

    rpm -ivh rlwrap-0.37-1.el5.x86_64.rpm

  4. Connect as the oracle user (or the user you connect to SQLPlus)

  5. Edit the .bashrc file ($HOME/.bashrc) and add the following line in the aliases section.

    alias sqlplus="rlwrap sqlplus"

  6. Initialize the .bashrc file with the following command

    . .bashrc

  7. Login to SQLPlus and history should be enabled

    sqlplus scott/tiger@orcl

    SQL*Plus: Release Production on Wed Jan 25 04:07:40 2012

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

    Connected to:
    Oracle Database 11g Enterprise Edition Release - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> select count(*) from emp;


    Press the up key

    SQL> select count(*) from emp;

Now you are done. Enjoy

Monday Jun 20, 2011

Installing Eclipse for OSB Development

OSB provides 2 methods for OSB development, the OSB console, and Eclipse. This post deals with a typical development environment with OSB installed on a remote server and the developer requiring an IDE on their PC for development. As at Eclipse is only IDE supported for OSB development. We are hoping OSB will support JDeveloper in the future.

To get the download for Eclipse use the download WebLogic Server with the Oracle Enterprise Pack for Eclipse, e.g. Oracle WebLogic Server 11gR1 (10.3.4) + Coherence + OEPE - Package Installer (wls1034_oepe111161_win32.exe).

To ensure the Eclipse version is compatible with your OSB version I recommend using the Eclipse that comes with the supported WLS server, e.g. OSB you would install WLS 10.3.4+oepe.

The install is a 2 step process, install the base Eclipse, then install the OSB plugins. In this example I'm using the install for windows, your versions may differ.
  1. You need to download 2 programs, WebLogic Server with the oepe plugin for your OS, and the Oracle Service Bus which is generally generic. Place these files in a directory of your choice.

  2. Start the executable

  3. I create a new Oracle Home for this installation as it don't want to impact on my JDeveloper install or any other Oracle products installed on my machine.

  4. Ignore the support / email notifications

  5. Choose a custom install as we only want to install the minimum for Eclipse. If you really want you can do a typical and install everything.

  6. Deselect all products then select the Oracle Enterprise Pack for Eclipse. This will select the minimum prerequisites required for install.

  7. As I'm only going to use this home for OSB Development I deselect the JRockit JVM.

  8. Accept the locations for the installs.

  9. If running on a Windows environment you will be asked to start a Node Manger service. This is optional. I have chosen to ignore.

  10. Select the user permissions you require, I have set to default.

  11. Do a last check to see if the values are correct and continue to install.

  12. The install should start.

  13. The install should complete successfully. I chose not to run the Quick Start.

  14. Extract the OSB download to a location of your choice and double click on the setup.exe. You may be asked to supply a correct java location. Point this to the java installed in your OS. I'm running Windows 7 so I used the 64bit version.

  15. Skip the software updates.

  16. Set the OSB home to the location of the WLS home installed above

  17. Choose a custom install as all we want to install is the OSB Eclipse Plugins.

  18. Select OSB IDE.

  19. For the rest of the install screens accept the defaults.

  20. Start the install

  21. There is no need to configure a WLS domain if you only intend to deploy to the remote server. If you need to do this there are other sites how to configure via the configuration wizard.

  22. Start Eclipse to make sure the OSB Plugin has been created. In the top right drop down you should see OSB as an option.

  23. Connecting to the remote server, select the Server Tab at the bottom

  24. Right-click in that frame and select Server.

  25. Chose the remote server version and the hostname

  26. Provide and name for your server if necessary, and accept the defaults

  27. Enter connection details for the remote server

  28. Click on the Remote server and it should validate stating its status.

    Now you ready to develop, Happy developing!

Wednesday Jun 15, 2011

Issue Deploying Migrated BPM Processes to

I have migrated my BPM processed from to This issue may happen with other versions but I thought I would document anyway.

When deploying my migrated BPM process I get the following error:


This issue is caused by the ADF worklist projects in your BPM process. Therefore for each ADF project in your BPM process you need to modify the weblogic.xml file to add the oracle.soa.worklist.webapp  library which seems to be a requirement in the new release of In JDeveloper it adds it automatically so you don't need to worry about it for new projects.

The weblogic.xml is found in the ADF worklist project:

Web Content > WEB-INF > weblogic.xml

Open the weblogic.xml in source mode and add the following code at the bottom just before the </weblogic-web-app> tag.


To confirm you have entered it correctly go to the Overview tab and select libraries. You should see the the library added.

Now you can redeploy, and you should get success.

Monday May 09, 2011

Migrating Objects in the MDS

There are some great blogs out there that address MDS management via ANT. As good as they were I didn’t find the exact answer I was after which was migrating common objects such as Domain Value Maps, XSD, WSDL, etc, development lifecycle. Thanks to Edwin and Clemens who provided the base for this post.

To maximise reuse in a SOA Suite deployments developers can utilise the MDS. Instead of storing the objects within the SOA Composite itself. The objects can be stored in the common area in the MDS for all developers to use.

In this post I use a Domain Value Map and migrate it from the developers local machine through to production using a generic ANT script. The same concept can be applied to other common objects such as XSD and WSDLs.

  1. By default JDeveloper uses a file based MDS repository. This can be used to develop SOA composites even without connectivity the the server. To modify the file based MSD you use OS commands. It is recommended practice to place custom objects in the apps folder. This needs to be created.

    In widows explorer change directory to the JDeveloper home and create an apps directory in the integration/seed directory.

  2. In JDeveloper you can make a connection to the file MDS and you will be able to see the new directory

  3. In this example I create a generic project that I use to crate my Domain Value Map.

  4. Once the DVM has been created you need to move it to the MDS so SOA Composites can find it at design time. This is done using OS commands. To make my DVM easier to find I also create a DVM folder in the apps directory we created in step 1.

    Once copied you will be able to view it in JDeveloper.

  5. Now the developer can use this DVM as a shared object. The issue now is if you tray and deploy a SOA project to the server which uses this DVM it will fail. The DVM does not exist on the server, so before you deploy the project you need to deploy the DVM to the server. I have created an ANT script to help you migrate these objects. You can download them here.

  6. Unzip the file and copy the ant-contrib-1.0b3.jar file to JDEV_HOME/ant/lib

  7. You will need to make some adjustments for your environment.  Below is a copy of the you will need to change the home directories to match your environment.

    # global  
    # temp  
    # dev deployment server weblogic

    Some properties of interest are:

    search.pattern  this is the search that is performed to find the objects you want to migrate. If the source environment is a DB MDS you can have multiple searches, e.g. /dvm/*;/xsd/*

    this is the environment you want to move the objects to. This value must match the prefix of the connection properties, e.g. dev.serverURL.

    source.environment this is the source enviroment where the objects are sourced. This value must match the prefix of the connection properties, e.g. dev.serverURL

    tmp.output.dir this is the directory that is used to create all the files as they are prepared to be deployed into the target environment.

    In this example I have only provided a local and a development environment. You can add new environments such as test and production if required, e.g.
    # test deployment server weblogic
  8. The build.xml should not need changing but I’m sure you may want to add some enhancements if required.
    <?xml version="1.0" encoding="iso-8859-1"?>  
    <project name="soaDeployAll" default="main">  
        <echo>basedir ${basedir}</echo>  
        <property environment="env"/>   
        <echo>current folder ${env.CURRENT_FOLDER}</echo>  
        <property file="${env.CURRENT_FOLDER}/"/>    
        <property name="mds.deploy.dir" value="${tmp.output.dir}/${source.environment}"/>
           <format property="time" pattern="yyyyMMddhhmm" offset="-5" unit="hour"/>      
        <taskdef resource="net/sf/antcontrib/"/>
        <target name="main">      
          <echo>Please select a correct operation</echo>
        <target name="migrateObjects">   
            <equals arg1="${source.environment}" arg2="local" />      
              <antcall target="exportLocalMDSobjects"/>   
              <antcall target="deployMDSobjects"/>
              <antcall target="exportRemoteMDSobjects"/>   
              <antcall target="deployMDSobjects"/>
        <target name="exportLocalMDSobjects">  

            <echo>Export Local MDS Objects ${local.folder}</echo>          <echo>export and create local MDS temp</echo>               <echo>create zip from file MDS store</echo>                 <mkdir dir="${mds.deploy.dir}"/>                <zip destfile="${mds.deploy.dir}/${download.description}${time}_mds.jar" compress="false">             <fileset dir="${local.reposistory}" includes="${search.pattern}" excludes="${exclude.pattern}"/>          </zip>            <echo>create zip with MDS jar</echo>                  <zip destfile="${mds.deploy.dir}/${download.description}${time}" compress="false">             <fileset dir="${mds.deploy.dir}" includes="*.jar"/>          </zip>            </target>         <target name="exportRemoteMDSobjects">             <propertycopy name="export.serverURL"    from="${source.environment}.serverURL"/>          <propertycopy name="export.overwrite"    from="${source.environment}.overwrite"/>          <propertycopy name="export.user"         from="${source.environment}.user"/>          <propertycopy name="export.password"     from="${source.environment}.password"/>          <propertycopy name="export.forceDefault" from="${source.environment}.forceDefault"/>            <echo>Export objects from ${export.environment} MDS</echo>            <echo>Export from ${export.serverURL} with user ${export.user}</echo>          <echo>Export jarFile ${mds.deploy.dir}/${download.description}${time}</echo>            <mkdir dir="${mds.deploy.dir}"/>         <ant antfile="${oracle.home}/bin/ant-sca-deploy.xml" inheritAll="false" target="exportSharedData">               <property name="wl_home" value="${wl_home}"/>               <property name="oracle.home" value="${oracle.home}"/>               <property name="serverURL" value="${export.serverURL}"/>               <property name="user" value="${export.user}"/>               <property name="password" value="${export.password}"/>                 <property name="pattern" value="${search.pattern}"/>              <property name="jarFile" value="${mds.deploy.dir}/${download.description}${time}_mds.jar"/>         </ant>            <echo>create zip with MDS jar</echo>                  <zip destfile="${mds.deploy.dir}/${download.description}${time}" compress="false">             <fileset dir="${mds.deploy.dir}" includes="*${time}_mds.jar"/>          </zip>     </target>        <target name="deployMDSobjects">             <propertycopy name="deploy.serverURL"    from="${target.environment}.serverURL"/>          <propertycopy name="deploy.overwrite"    from="${target.environment}.overwrite"/>          <propertycopy name="deploy.user"         from="${target.environment}.user"/>          <propertycopy name="deploy.password"     from="${target.environment}.password"/>          <propertycopy name="deploy.forceDefault" from="${target.environment}.forceDefault"/>            <echo>deploy objects to ${target.environment} MDS</echo>            <echo>deploy on ${deploy.serverURL} with user ${deploy.user}</echo>          <echo>deploy sarFile ${mds.deploy.dir}/${download.description}${time}</echo>            <ant antfile="${oracle.home}/bin/ant-sca-deploy.xml" inheritAll="false" target="deploy">               <property name="wl_home" value="${wl_home}"/>               <property name="oracle.home" value="${oracle.home}"/>               <property name="serverURL" value="${deploy.serverURL}"/>               <property name="user" value="${deploy.user}"/>               <property name="password" value="${deploy.password}"/>               <property name="overwrite" value="${deploy.overwrite}"/>               <property name="forceDefault" value="${deploy.forceDefault}"/>               <property name="sarLocation" value="${mds.deploy.dir}/${download.description}${time}"/>          </ant>          </target>     </project>

  9. The final file is the bat file to run the ANT script. this will need to be changed to meet your environment.

    set ORACLE_HOME=d:\oracle\product\jdeveloper\
    set ANT_HOME=%ORACLE_HOME%\jdeveloper\ant
    set PATH=%ANT_HOME%\bin;%PATH%
    set JAVA_HOME=%ORACLE_HOME%\jdk160_21


    ant -f build.xml %1

  10. You can run the ANT script from any directory you choose to download the scripts. The bat file will set the correct path to find the right executables. As all the dynamic variables are set in the you only need to specify the project to execute. Open a command prompt and change directory to where you ANT scripts are. Execute the following:

    mdsConfig.bat migrateObjects

  11. You should now see you DVM in your DB MDS in JDeveloper.

  12. The last test it to see that your DVM has now been loaded in the server and can be accessed from the SOA Composer.

Monday Apr 04, 2011

BEA Software Archive

I have seen a few questions out there from people trying to find legacy BEA Software. The official place to find this is on the Oracle Support web site To access this site you must be an Oracle customer as you need to provide a CSI number.

Login to the Oracle Support web site and search on the note 763603.1. It has the title ‘BEA Archive’. This has old BEA Software going back to version 7.x. Generally they are at the last update release, e.g. 8.1.6. If you need something other than this you will need to raise a service request.

Wednesday Feb 23, 2011

Upgrading Fusion Middleware 11.1.1.x to

This is a follow on from my previous post where we upgraded to The instructions I provide here will work for Fusion Middleware and wanting to upgrade to

In this example I’m just upgrading SOA Suite on OEL 64bit but the steps will be the same, some of the downloads may be different based on your environment.

To upgrade to you need to have access to as this is where the downloads reside. Oracle provides as a standalone download so you can do a fresh install if required using OTN downloads (

The high level steps to upgrade are as follows:

  • Download software
  • Shutdown your SOA Environment
  • Upgrade WLS to
  • Upgrade SOA Suite to
  • Upgrade OSB to
  • Upgrade MSD Schemas
  1. Identify the downloads you require for your install. You will need the WebLogic Server Upgrade and the additional product downloads. If you are using 64bit then use the generic version. The downloads are found from the following location -

    For the purpose of this post I downloaded the following patches
    11060985 – WLS Server Generic
    11060960 – SOA Suite
    11061005 – OSB Suite 
  2. Make sure you have set the Java executable in your PATH e.g.

    export PATH=$JAVA_HOME/bin:$PATH
  3. Make sure all your WebLogic environment has been shut down before performing the upgrade.
  4. Extract the WLS patch 11060985 to a temporary directory and start the installer

    java –jar wls1034_upgrade_generic.jar

    Please note if you are not running 64BIT then the upgrade executable will be just a bin file which you can execute directly.

  5. Chose the right Oracle home for your WebLogic Server install.

  6. In the Register for Security Updates you can enter your details or just click Next. If you do not enter details confirm that you don’t want to receive these updates


  7. Select the products you want to upgrade and select next. It is recommended that you accept the defaults.

  8. Confirm the directories that will be upgraded

  9. Upgrade of WLS ahs been completed

  10. Extract your both SOA downloads to a temporary directory and run the installer found in Disk1

    ./runInstaller -jreLoc /java/jdk1.6.0_20/jre

    Please note that the java location and version may be different for your environment

  11. Skip the Software Updates

  12. Ensure your system meets the prerequisites

  13. Set the Oracle home for your SOA install.


    You will be asked to confirm that you want to upgrade, click Yes

  14. Choose your application server. Since you are upgrading from 11.1.1.x you will be on WebLogic

  15. Start the Install

  16. Installation Upgrade of SOA Suite completed accept the default to finish.


  17. In my environment I have OSB installed so I need to upgrade this next. If you don’t have SOA Suite you can go straight to completing the DB Schema updates at Step 24. 
  18. Extract the OSB upgrade files to a temporary directory and execute the installer found in the Disk1 folder.
    ./runInstaller -jreLoc /java/jdk1.6.0_20/jre


  19. Skip the software updates

  20. Select the Oracle home for your environment


    Accept the warning to continue the upgrade

  21. Point to the location of your WebLogic Server installation

  22. Install the OSB upgrade

  23. Upgrade has been completed accept the defaults


  24. Change directory to $MW_HOME/oracle_common/bin where the Patch Set Assistant is installed
  25. Execute the following command to update the MDS schema. Please not for my examples I have the context set to DEV. your may be different. This means that all my schemas are prefixed by DEV.

    ./psa -dbType Oracle -dbConnectString 'localhost:1521:xe' -dbaUserName sys -schemaUserName DEV_MDS

    You will be asked you passwords for sys and the schema

    Enter the database administrator password for "sys":
    Enter the schema password for schema user "DEV_MDS":

  26. Change directory to $MW_HOME/Oracle_SOA1/bin to where the Patch Set Assistant is installed for SOA Suite.
    Execute the following command to update the SOA and BAM schemas

    ./psa -dbType Oracle -dbConnectString 'localhost:1521:xe' -dbaUserName sys -schemaUserName DEV_SOAINFRA
  27. To check that you have the installed correctly run the following SQL as sysdba.

    SELECT owner, version, status FROM schema_version_registry;

    OWNER                          VERSION                        STATUS
    ------------------------------ ------------------------------ -----------
    DEV_MDS                                   VALID
    DEV_SOAINFRA                              VALID

    Don’t stress if the versions are not all sitting at version as not all schemas need to be updated. The key ones are MDS and SOAINFRA

Tuesday Feb 22, 2011

Change Logging Level for SOA 11g

I’m sure there are many blogs out there that have this solution. But I seem to get asked this question a lot so I thought I would post it here for my convenience.

  1. Login to Enterprise Manager, e.g.

  2. Expand the SOA folder and right-click the soa-infra(soa_server1) folder and select Logs – Log Configuration

  3. Navigate to the component you want to monitor and change the log level. It is possible to change at a parent level if required


    It is not recommended that you set the level to FINIEST at a parent level as it will generate a lot of logging.
  4. Make sure you apply the change to take affect.


Simple as that.


Discussions and Examples using Oracle Fusion Middleware. Some image links are broken when using Firefox, Safari, and Chrome. If you want to see the full image please use IE.


tumblr hit counter vistors, thanks for your support


« April 2014