Installing 12c Compact Domain NOTE: Compact domain is file based, SOA Composer will not edit –> See: Convert QS Domain File-Based MDS to DB-based (Warning: Unverified and unsupported)
Configuring a 12c Standalone Domain (then, search for: 2.5.2 Configuring a Standalone Domain)
NOTE: for 12.2.1 – Documentation is wrong:
qs_config is under ORACLE_HOME/oraclecommon/common/bin and QS_TEMPLATES=”$ORACLE_HOME/soa/common/templates/wls/oracle.soa_template_12.1.3.jar,$ORACLE_HOME/osb/common/templates/wls/oracle.osb_template_12.1.3.jar” – Remove version:Linux: export QS_TEMPLATES="$ORACLE_HOME/soa/common/templates/wls/oracle.soa_template.jar, $ORACLE_HOME/osb/common/templates/wls/oracle.osb_template.jar" Windows: set QS_TEMPLATES=%ORACLE_HOME%\soa\common\templates\wls\oracle.soa_template.jar, %ORACLE_HOME%\osb\common\templates\wls\oracle.osb_template.jar
As compared to the 10g-to-11g upgrade, more of the 11g-to 12c upgrade is done “in-place” https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#FUPSS309
- Flowchart of the upgrade process https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#A1147948
- Supported upgrade starting points for SOA 12c (12.1.3) https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#FUPSS109
- 11gR1 (11.1.1.7.0) – recommended
- 11gR1 (11.1.1.6.0) – not recommended because Error Correction Support grace period has expired
- Restrictions
- Interoperability and compatibility restrictions https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#FUPSS416
- Domain upgrade restrictions https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#FUPSS417
- Schema upgrade restrictions https://docs.oracle.com/middleware/1213/core/FUPSS/upg_prepare.htm#CHDICIBB
- Pre-upgrade tasks https://docs.oracle.com/middleware/1213/core/FUPSS/preupgrade.htm#BABHECHE
- Post-upgrade tasks https://docs.oracle.com/middleware/1213/core/FUPSS/upg_postupg_tasks.htm#FUPSS195
JSON Vars in BPEL:using Javascript Activity?
Assuming “strJsonResponse” is a bpel string type and you could assign value to it, you can use the following javascript code in a javascript actity to assign it to outputVar.
process.outputVar = JSON.parse(process.strJsonResponse);
audit.log(“Output:”+process.outputVar);
See SOAP Message in its entirety. Docs. Use oracle/log policy.
Slow or hangs during domain creation?
Fix is here: https://blogs.oracle.com/reynolds/entry/installing_an_11g_soa_cluster
After installing the JDK I edited the jre/lib/security/java.security file and changed the reference to /dev/urandom to be /dev/./urandom.
Debugger will not initiate:
a. The “Listen Address” in the “Create Default Domain” is pointing to the “All Available Addresses.”
c. Configure /etc/hosts file with the host and ip-address. Restart JDeveloper.
Fault Handling in BPEL:The code sample below (StockFaultSynch.zip) is a simple way to demonstrate Synchronous Fault handling in BPEL.The TestStockFaultSync.zip is a test harness to see what and how faults and fault info is returned.NOTE: You will need to reconnect the WSDL for the StockFaultSynch Service within the TestStockFaultSync to it, once StockFaultSynch is deployed.
BPEL and Correlation (blog)
BPEL processing in a cluster: It does not matter which managed server receives the callback, because that server will wake up the process instance and try to deliver the message to that instance. All nodes are the same. There is no partitioning in a SOA cluster that limits processes to execute only on a subset of the nodes. All nodes serve all processes in all partitions of the SOA domain. If for some reason that instance is still being worked on by another managed server, there is a locking mechanism with a retry schedule in place to make sure that the message is not delivered while another node is also working on it.
Enterprise Scheduling Service:
Create an ESS Job from BPEL (blog)
Using ESS Web Service (+Async calls)
This blog post shows how to launch an ESS Job from the ESS Web Service interface. So you can pas sit any payload you want.
This blog calls the ESS Web Service from SOAP UI.
This blog shows one example of using tokens in the input that can be substituted later.
ESS Docs: Note the JAVA API and WLST commandsAutomatic Oracle Enterprise Scheduler substitution is available for process job command lines and environment properties, as well as for some request properties used by EJB and web service jobs.TheSYS_EXT_invokeMessage
property contains the XML message (SOAP body payload) for invocation. This can either be an XML template or full XML.
Deleting a File: use a FileAdapter to delete (using FileIOInteractionSpec) the file or a Java exec within BPEL to delete it.
SOA: How to Configure Transaction Timeout for BPEL on SOA 11g (Doc ID 880313.1)BPM: How to Configure Transaction Timeout for BPMN EJBs (Doc ID 1475462.1).
Tracing and Auditing:
For WLS_SOA1, enter the following:
-Dtangosol.coherence.wka1=SOAHOST1VHN1 -Dtangosol.coherence.wka2=SOAHOST2VHN1 -Dtangosol.coherence.localhost=SOAHOST2VHN1
For WLS_SOA2, enter the following:
-Dtangosol.coherence.wka1=SOAHOST1VHN1 -Dtangosol.coherence.wka2=SOAHOST2VHN1
-Dtangosol.coherence.localhost=SOAHOST2VHN1
Undeploying a SOA Composite when Soa-Infra is Down (Doc ID 1380835.1)
The Parking Lot Pattern (Sync to Async is problematic when a receive is used in the sync composite. This is a pattern which has been used successfully for sync to async.)
Entity Relationship Modeling, by Richard Barker – Still the best overall data modeling book I know – works for database, class models, and XML schemas
Data Modeling Patterns, by David Hay – Excellent, more advanced, modeling book