Persisting Component Preferences in Oracle SOA Suite 11g

This is supposed to be a very short post on overcoming a problem with BPEL Properties/Preferences that we set at design time so that we have the option of changing their values at runtime from the Enterprise Manager.

Preferences are very useful and the following blogpost by Eric Elzinga demonstrates how we can use them

http://eelzinga.wordpress.com/2009/10/28/oracle-soa-suite-11g-setting-and-getting-preferences/

However these Preference values does not withstand a server bounce . They are rest back to the old values automatically after the bounce.This was not the case in 10g.

The Problem with BPEL Preferences

  • Connect to Fusion Middleware Control.
  • Expand SOA -> soa-infra -> default and highlight “default”.
  • Navigate to SOA Infrastructure -> Administration -> System MBean Browser.
  • Navigate to Application Defined MBeans -> oracle.soa.config -> Server: soa_server1 -> SCAComposite.

Pic1

  • Expand the <SCA composite> -> SCAComposite.SCAComponent and highlight the BPEL Component.
  • Click on the Attribute Properties.
  • Expand Element_N and change value key for name bpel.preference.<PREFERENCE_NAME>.
  • Click Apply.
  • Restart the SOA server and now PREFERENCE_NAME contains the orginal initial value instead of the expected updated value.

Pic2

The Solution to Persist the Changed Values of Preferences

  • After you Apply the change to bpel.preference.<PREFERENCE_NAME>, click Return.
  • Click Operations tab.
  • Click on the Attribute Save.
  • Click the Invoke button.
  • Click Return.

Pic3

When the server is restarted, the System MBean updated value is maintained.

.

5 thoughts on “Persisting Component Preferences in Oracle SOA Suite 11g

    • Yes i know where these properties are stored. They are saved into the same composite.xml file or .bpel (wherever) you had set it. Whenever you deploy a composite application to the SOA-infra it is first saved into the MDS. Invoking the save operation after changing the property from EM will update the property value in the same composite.xml file.

      Now in case you need to verify this..

      Open JDeveloper and create a MDS connection to your MDS store. From the Resource Palette open the MDS connection you just created and browse to /deployed-composites//composite.xml

      Open the file and view its content in the source view and you will get to see your changes.

      Like

If you have any comments, suggestions or feedback about the post, please feel free to type it here and I will do my best to address them asap