Category Archives: SOA

out of Space for Code Cache for Adapters


If you are facing issues like ‘Out of Space for Code Cache for Adapters’ in Jdeveloper 11.1.1.5 then you must do this changes as discussed in this forum post

Set – JVM Options : XX:ReservedCodeCacheSize=128m in setDomainEnv.sh

SOA suite installation white paper


Soa Suite installation white paper is available for download here

installing soa-suite 11.1.1.2 in linux64


Recently I got the following issue while installing Soa Suite 11.1.1.2.0

in linux64.

I tried the solution specified here but it was not working and it keeps giving the error

[xxx@indl144224 linux64]$ ./runInstaller -jreLoc /scratch/software/mw_local/FMWTOOLS_MAIN_GENERIC_101104.0028.2/xxx/mw_home_standalone/jrockit_160_20_D1.1.0-18/Starting Oracle Universal Installer...
Checking if CPU speed is above 300 MHz.    Actual 2327 MHz    Passed
Checking Temp space: must be greater than 150 MB.   Actual 2481 MB    Passed
Checking swap space: must be greater than 500 MB.   Actual 8273 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-01-19_04-21-22PM. Please wait ...
[xxx@indl144224 linux64]$ java.lang.UnsatisfiedLinkError: Can't load library: /tmp/OraInstall2011-01-19_04-21-22PM/oui/lib/linux64/liboraInstaller.so
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1702)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1004)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:402)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:126)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.ssgetCurrentGroupOfUserux(OiipgEnvironment.java:503)
at oracle.sysman.oii.oiix.OiixEnvironmentOps.ssgetCurrentGroupOfUserux(OiixEnvironmentOps.java:147)
.....

So i tried the following thing and it worked

[xxxn@indl144224 linux64]$ linux32 bash
bash-3.2$ pwd
/scratch/software/mw_local/linux_middleware/xxx/mw_home/soa11.1.1.2/Disk1/install/linux64
bash-3.2$ cd ..
bash-3.2$ lsaix  hpia64  hpunix  linux  linux64  solaris  win32  win64
bash-3.2$ cd linux
bash-3.2$ ./runInstaller -jreloc /scratch/software/mw_local/FMWTOOLS_MAIN_GENERIC_101104.0028.2/xxx/mw_home_standalone/jrockit_160_20_D1.1.0-18/

SOA – a quick view


What is SOA?

SOA is standard based method of system development and integration

What are the benefits?

  • Reusability
  • Integration
  • Interoperability
  • Agile development
  • Scalability
  • Cost Efficient

What are all the ways to implement services?

  • Point to point approach
  • Vendor specific implementation
  • CORBA
  • Web services
  • SCA-style implementation

What are Services?

  • Building blocks of SOA
  • Interface and message structure definitions
  • Standard protocol for interoperability

What are SOA standards?


What is SCA [Service Component Architecture]?

SCA provides a programming model for building applications using SOA

What are the difference between SOA and SCA?

  • SOA is an approach or implementation style and SCA uses SOA to build a composite application
  • SOA is architectural style but SCA is assembly model and defines/design

What are the elements of SCA?

What is SDO [Service Data Object]?

  • Representation of data source in XML format and specifes methods to create, delete and modify data
  • Simplify and unify the way in which applications handles the data

What is EDN [Event Driven Network]?

  • To handle asynchronous messaging arising from a business event
  • Supports publish and subscribe model
  • Aligns with Event driven Architecture [EDA]



Quick look at the mediator component


What is Oracle Mediator Component?

Mediator is the load balancer which can route, filter, validate and transform data from the service providers to external references

  • Route: determines the service component to which the message has to be sent
  • Validate: validate the incoming payload information
  • Filter: Filters the payload for specific information before routing it to the specific component
  • Transformation: Transforms data from one xsd format to another using XSL Mapper

the code specific to mediator in the composite.xml will be like

<component name="ConversionMediator">
<implementation.mediator src="ConversionMediator.mplan"/>
</component>

Mediator component in the design view consist of

Name: Name of the mediator component

WSDL Url: the service provider URL

Port Type: The port on which the request message is sent

Resequence Level: Whether the sequencing of the incoming message will be taken care commonly[Operation] or for each component [component]

Priority: priority set for parallel routing rule

validate XSD: validate the schema for the incoming message

Callouts: specifies java classes for extra logic in programmatic way

Resequence:

Standard -> the incoming message will be sequence based on the sequence id

Best Effort -> sequencing based on the best possible way

FIFO ->  sequencing of message based on the time of the arrival of the message

Static Routing:

routing rule based on static information

Filter -> content based or header based routing

Transform -> using xsl mapper file

validate -> using schematron file

Assign -> assign header,payload values of the message from source to target

sequential -> rule executed one after the other

Parallel -> rule executed in parallel. Priorities are given to the parallel rule

Dynamic Routing:

routing rule based on external rule which keeps changing based on the invocation context

Fault Handling: This is handled in composite or at the component[mediator] level by specifying fault policies

Event Handling: A mediator can subscribe or publish an event

Soa Suite 11gR1 (11.1.1.3.0) installation guide for Windows


The complete Soa suite installation guide is uploaded here

Complete fusion middleware documents are available at

http://download.oracle.com/docs/cd/E14571_01/index.htm

System requirements and specifications

Checklist

  • Processor
  • Operating System
  • Disk Space
  • Physical Memory
  • Browser
  • JDK

Complete requirments are available at

http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html

Download the files

All software can be downloaded from the Fusion Middleware 11gR1 PS2 download page (also known as the FMW download page)

Installation procedure [RCU version 11.1.1.3]

  1. Oracle DB (OracleXE Univ)
  2. Weblogic Server 10.3
  3. Repository Creation Utility for DB schema 11.1.1.3
  4. Soa Suite 11.1.1.2
  5. Soa Suite patchset installer for 11.1.1.3
  6. Jdeveloper 11.1.1.3
  7. Soa Extension (Oracle SOA Composite Editor)
  8. Weblogic domain creation

If you face any problem in creating the DB schema using RCU 11.1.1.3 then please download the RCU 11.1.1.2 and follow this installation process. Also you will face some issues in creating the Weblogic db schema for soa_infra during weblogic domain creation

  1. Oracle DB (OracleXE Univ)
  2. Weblogic Server 10.3
  3. Repository Creation Utility for DB schema 11.1.1.2
  4. Soa Suite 11.1.1.2
  5. Jdeveloper 11.1.1.3
  6. Soa Extension (Oracle SOA Composite Editor)
  7. Weblogic domain creation (domain creation will fail for soa_infra stating a 11.1.1.3 version problem if you have used RCU 11.1.1.3)
  1. Soa Suite patchset installer for 11.1.1.3

Database

OraceXEUniv.exe http://download.oracle.com/otn/nt/oracle10g/xe/10201/OracleXEUniv.exe

Screenshots

WebLogic Server

wls1033_oepe111150_win32.exe

http://download.oracle.com/otn/nt/middleware/11g/wls1033_oepe111150_win32.exe

Screenshots

Repository Creation Utility

ofm_rcu_win32_11.1.1.3.3_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_rcu_win32_11.1.1.3.3_disk1_1of1.zip

Note:

If repository tool 11.1.1.3.3 is creating some kind of problem while creating DB schema then please use RCU of 11.1.1.2.1 [if you are using 11.1.1.2.1 then please refer to section X for the installation order]

ofm_rcu_win32_11.1.1.2.1_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_rcu_win32_11.1.1.2.1_disk1_1of1.zip

Screenshots

SOA Suite & Patch

You have to have Soa Suite 11.1.1.2.0 installed in your system before installing the 11.1.1.3.0 patchset installer

ofm_soa_generic_11.1.1.2.0_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_soa_generic_11.1.1.2.0_disk1_1of1.zip

ofm_soa_generic_11.1.1.3.0_disk1_1of1.zip(includes BPM)

http://download.oracle.com/otn/nt/middleware/11g/ofm_soa_generic_11.1.1.3.0_disk1_1of1.zip

Screenshots

JDeveloper

jdevstudio11113install.exe

http://download.oracle.com/otn/java/jdeveloper/11.1.1.3.0/jdevstudio11113install.exe

SOA Extension for JDeveloper

You can install the extensions directly from inside JDeveloper through the “Help -> Check for Updates” menu option which is the recommended way install extensions. If you can’t connect to the Internet from your JDeveloper, you can directly download JDeveloper extensions from this page, and point the Check for Updates wizard to the local file you have downloaded.

http://download.oracle.com/otn/java/jdeveloper/11.1.1.3.0/extensions/soa-jdev-extension.zip

Note: for other extensions please refer

http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml#oracle.sca.modeler

Setting up the database

Run the following commands to increase the process limits (Only for Oracle XE)

sqlplus sys/welcome1@XE as sysdba
SQL> show parameter session
SQL> show parameter processes
SQL> alter system reset sessions scope=spfile sid='*';
SQL> alter system set processes=200 scope=spfile;
SQL> shutdown immediate
SQL> startup
SQL> show parameter session
SQL> show parameter processes

Weblogic Domain Creation

refer this link

Server URLS

The link for the Weblogic console

http://localhost:7001/console (login with weblogic/welcome1)

The link for the EM console

http://localhost:7001/em (login with weblogic/welcome1)

The link for the SOA worklist app

http://localhost:8001/integration/worklistapp

The link for B2B

http://localhost:8001/b2b

The link for BAM (must use IE browser)

http://localhost:9001/OracleBAM

Starting the servers

Go to the domain directory and type startWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domain> startWebLogic.cmd

On the same command line press ctrl+c or goto the bin directory of the domain folder and type stopWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domai\bin> stopWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domain\bin> stopManagedWebLogic.cmd so_server1

Unable to deploy EJB: ejb_ob_engine_wls.jar from ejb_ob_engine_wls.jar


If your soa server is up but your soa_infra is down then search for the following error in
$DOMAIN_HOME\servers\soa_server1\logs\soa_server1.log

weblogic.application.ModuleException: Exception preparing module: EJBModule(ejb_ob_engine_wls.jar)

Unable to deploy EJB: ejb_ob_engine_wls.jar from ejb_ob_engine_wls.jar:

There are 1 nested errors:

java.io.IOException: JDT compilation error!
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getMBeanAttribute(String, String) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getNumberOfCompositeInstancesByPartitions(String[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method listComposites() is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method invokeMBeanOperation(String, String, String[], Object[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method setMBeanAttribute(String, String, Object) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getNumberOfFaultedCompositeInstancesByPartitions(String[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 at weblogic.ejb.container.ejbc.CompilerForJDT.compile(CompilerForJDT.java:57)
 at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:309)
 at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:485)
 at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:452)
 at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:439)
 at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:779)
 at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:679)
 at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1237)
 at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:440)
.....
.....

Then install the SOA patchset installer (11.1.1.3) on top of your existing SOA suite 11.1.1.2

BINDING.JCA-12563 resolution


If you ever face issues like

BINDING.JCA-12563 Exception occurred when binding was invoked. Exception occurred during invocation of JCA binding: “JCA Binding execute of Reference operation ‘Write’ failed due to: Input Source null. Input Source null. Input Source is null. “. The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
then there is a problem in the xml transformation in the mediator to write the file
Resolution:
Look if the transformation information in the mediator is proper.
Check if the transformation exist in the first place.

oracle.fabric.common.FabricInvocationException


Bump….
I got this error yesterday when I tried to deploy a dummy soa composite

Error Message: {http://schemas.oracle.com/bpel/extension}remoteFault
Fault ID    default/Project1!3.0*ad3d0394-9602-4482-9429-fc45d624bb5b/ProcessHello/3-BpInv0-BpSeq0.3-3
Fault Time    Sep 3, 2010 1:07:55 PM
Non Recoverable System Fault :
<bpelFault><faultType> <message>0</message></faultType>
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">
<summary>oracle.fabric.common.FabricInvocationException</summary>
</part>
<part name="detail"><detail>null</detail></part>
<part name="code"><code>null</code></part>
</remoteFault></bpelFault>

for the above error the solution is the deploy the soa composite along with the deployment plan

right-click the composite and click on generate

when u deploy the soa composite you will have to select the
‘Use the SOA configuration option’ and locate the file

The sample config plan will be like

<?xml version="1.0" encoding="UTF-8"?>
<SOAConfigPlan xmlns:jca="http://platform.integration.oracle/blocks/adapter/fw/metadata" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" xmlns:edl="http://schemas.oracle.com/events/edl" xmlns="http://schemas.oracle.com/soa/configplan">
 <composite name="Project1">
 <!--Add search and replace rules for the import section of a composite
 Example:
 <searchReplace>
 <search>http://my-dev-server</search>
 <replace>http://my-test-server</replace>
 <searchReplace>
 <searchReplace>
 <search>8888</search>
 <replace>8889</replace>
 <searchReplace>-->
 <import>
 <searchReplace>
 <search/>
 <replace/>
 </searchReplace>
 </import>
 <service name="orderprocessor_client_ep">
 <binding type="ws">
 <attribute name="port">
 <replace>http://xmlns.oracle.com/SOAApplication_jws/Project1/OrderProcessor#wsdl.endpoint(orderprocessor_client_ep/OrderProcessor_pt)</replace>
 </attribute>
 </binding>
 <callback>
 <binding type="ws">
 <attribute name="port">
 <replace>http://xmlns.oracle.com/SOAApplication_jws/Project1/OrderProcessor#wsdl.endpoint(orderprocessor_client_ep/OrderProcessorCallback_pt)</replace>
 </attribute>
 </binding>
 </callback>
 </service>
 <!--Add search and replace rules for the component properties
 For components and service/reference bindings, you can add policy references.
 Example:
 <component name="*">
 <wsp:PolicyReference orawsp:category="management" orawsp:status="enabled" URI="oracle/log_policy"/>
 </component>-->
 <component name="OrderProcessor">
 <property name="activationAgent.LoadData.className">
 oracle.tip.adapter.fw.agent.jca.JCAActivationAgent
 </property>
 <property name="activationAgent.LoadData.portType">
 <replace>execute_ptt</replace>
 </property>
 </component>
 <reference name="StoreFrontService">
 <binding type="ws"/>
 </reference>
 </composite>
 <!--To configure monitor.config:
 <property name="enabled"><replace>true</replace></property>
 <property name="dataObjectsFolder"><searchReplace><search>mydev</search><replace>myproduction</replace></searchReplace></property>

 sample properties to configure for adapter:
 medmq1

 To add search and replace rules for wsdls, xsd and jca files
 Example:
 <searchReplace>
 <search>http://my-dev-server</search>
 <replace>http://my-test-server</replace>
 <searchReplace>
 <searchReplace>
 <search>8888</search>
 <replace>8889</replace>
 <searchReplace>
 -->
 <wsdlAndSchema name="OrderProcessor.wsdl|StoreFront.wsdl|xsd/BPELProcess1.xsd|xsd/OrderProcessor.xsd|xsd/singleString.xsd|xsd/StoreFront.xsd|xsd/StoreFrontProcessor.xsd">
 <searchReplace>
 <search/>
 <replace/>
 </searchReplace>
 </wsdlAndSchema>
</SOAConfigPlan>