This card covers the migration path from Oracle SOA Suite 12c and Oracle Service Bus (OSB) 12c running on-premises on WebLogic Server to Oracle Integration Cloud (OIC) Gen 3, Oracle's cloud-native iPaaS. This is a re-implementation guide, not a lift-and-shift (Oracle offers a separate OCI Marketplace path for keeping the SOA runtime).
| System | Role | API Surface | Direction |
|---|---|---|---|
| Oracle SOA Suite 12c | Source — BPEL, Mediator, adapters | SOAP, REST, JCA | Outbound (migrating from) |
| Oracle Service Bus 12c | Source — proxy services, routing | SOAP, REST, JCA | Outbound (migrating from) |
| Oracle Integration Cloud Gen 3 | Target — Orchestration, adapters | REST, SOAP, Adapters | Inbound (migrating to) |
| OCI Process Automation | Target for BPM/Human Task workflows | REST only | Inbound (migrating to) |
| SOA Component | OIC Equivalent | Complexity | Gap Level | Notes |
|---|---|---|---|---|
| BPEL Process (sync) | App-Driven Orchestration (sync) | Medium | Low | Most constructs map well |
| BPEL Process (async) | App-Driven Orchestration (async) | Medium-High | Low-Medium | Correlation sets need redesign |
| Mediator routing | Orchestration with switch/filter | Low-Medium | Low | Routing rules translate to switch actions |
| Mediator resequencer | Custom with Autonomous DB (ATP) | High | High | No native OIC equivalent; requires ATP + Integration Accelerator |
| OSB proxy service | OIC trigger (REST/SOAP adapter) | Medium | Low | Rebuild pipeline stages as orchestration actions |
| OSB business service | OIC invoke (adapter connection) | Low | Low | Direct adapter-to-adapter replacement |
| Human Task (BPM) | OCI Process Automation | High | Medium | Web forms rebuilt; SOAP triggers need REST wrappers |
| Business Rules (SOA) | OCI Process Automation Decision Models | Medium-High | Medium | Rule dictionaries redesigned as DMN models |
| B2B (EDI/AS2) | OIC B2B with AS2/FTP adapters | High | Medium | Trading partner agreements need reconfiguration |
| BAM | OIC Monitoring + OCI Observability | High | High | No direct equivalent |
| SOA EDN | OIC pub/sub (limited) | High | High | Gen 3 does not support event-based design in projects |
| Spring / Java Embedding | OCI Functions (serverless) | High | High | Must extract Java logic; invoke via REST |
| Custom XPath Functions | OCI Functions or native XSLT | High | High | No custom XPath extension support in OIC |
| Metric | Non-BYOL | BYOL | Notes |
|---|---|---|---|
| Messages per hour (1 pack) | 5,000 | 20,000 | Minimum 1 pack required |
| Max packs via UI | 12 | 3 | Override via OCI CLI |
| Billing model | Per hour (running) | Per hour (running) | Billed whether sending messages or not |
| Limit Type | Value | Applies To | Notes |
|---|---|---|---|
| Schema-based payload | 10 MB | All integrations | In-memory processing cap |
| File-based (opaque schema) | 1 GB | Stage File, FTP, REST attachments | Does not load into OIC memory |
| Integrations per project (Gen 3) | 100 | Per project | Create additional projects for larger portfolios |
| Project deployments | 50 | Per project | Active deployed integrations |
| Connections per project | 20 | Per project | Shared connections across integrations |
| Lookups per project | 20 | Per project | Key-value mapping tables |
| JavaScript libraries per project | 20 | Per project | Reusable JS code modules |
| Capability | SOA Suite 12c On-Prem | OIC Gen 3 | Impact |
|---|---|---|---|
| Payload size | Unlimited (memory-bound) | 10 MB schema / 1 GB file | Large XML payloads need chunking |
| Concurrent threads | Server-dependent | Message pack-dependent | Must right-size message packs |
| Custom Java code | Full JVM access | None (use OCI Functions) | Architectural change required |
| XSLT engine | Full XSLT 2.0 + extensions | XSLT 1.0/2.0 subset in Mapper | Complex transforms may need redesign |
| Scheduling | ESS / cron | OIC scheduler (basic) | Limited scheduling options |
| SOA Mechanism | OIC Equivalent | Migration Action | Notes |
|---|---|---|---|
| WS-Security (OWSM policies) | OAuth 2.0 / OIC Security Policies | Redesign auth flow | OWSM policies do not carry over |
| SAML assertions | OAuth 2.0 + IDCS federation | Configure IDCS federation | Token format changes |
| Username/Password (wsse) | Basic Auth / OAuth 2.0 | Reconfigure per connection | Prefer OAuth for production |
| SSL mutual auth (2-way SSL) | OIC certificate upload | Upload certs to OIC trust store | Per-connection configuration |
| Custom token handlers | OCI Functions + OIC REST invoke | Externalize custom auth logic | No custom auth handler support in OIC |
START -- Migrating SOA/ESB to OIC
|
+-- Step 1: Inventory SOA components
| +-- BPEL composites --> Map to OIC App-Driven Orchestration
| +-- Mediator routing --> Map to OIC Orchestration with switch/filter
| +-- OSB proxy services --> Map to OIC trigger + orchestration
| +-- Human Tasks / BPM --> Map to OCI Process Automation
| +-- B2B (EDI/AS2) --> Map to OIC B2B adapters
| +-- MFT --> Map to OIC File Server + FTP adapter
| +-- Custom Java / Spring --> Extract to OCI Functions
|
+-- Step 2: Identify untranslatable patterns
| +-- Custom XPath functions? --> Rewrite in XSLT or OCI Functions
| +-- Mediator resequencer? --> Requires ATP database workaround
| +-- SOA EDN events? --> Redesign as scheduled polling or OCI Events
| +-- Java embedding? --> Move to OCI Functions (REST invocation)
| +-- BAM dashboards? --> OCI Logging Analytics + custom visualization
|
+-- Step 3: Choose migration strategy
| +-- < 50 integrations, simple? --> Big bang (3-4 months, 2 devs)
| +-- 50-200 integrations, mixed? --> Phased with co-existence (6-12 months)
| +-- > 200 or complex Java? --> Phased with SOA on OCI interim (12-18 months)
|
+-- Step 4: Size OIC message packs
+-- Analyze SOA runtime metrics (messages/hour, peaks)
+-- Factor for growth (1.5x-2x current)
+-- Start estimated, right-size after 30 days
| SOA/OSB Adapter | OIC Adapter | Gap | Migration Notes |
|---|---|---|---|
| Database Adapter (JCA) | Oracle Database Adapter | Low | SQL operations map directly; stored procedure support available |
| JMS Adapter | JMS Adapter | Low | Connection factory details change; destination names remap |
| FTP Adapter | FTP Adapter | Low | Supports FTP, SFTP, FTPS; file polling patterns translate well |
| File Adapter | Stage File action | Low-Medium | Local file operations become Stage File read/write |
| AQ Adapter | Oracle AQ Adapter | Low | Requires OCI networking setup for on-prem queues |
| Oracle Apps Adapter (EBS) | Oracle E-Business Suite Adapter | Medium | API differences between SOA and OIC adapter versions |
| SAP Adapter (iDocs) | SAP Adapter (OIC) | Medium | Connection configuration differs; iDoc support maintained |
| MQ Series Adapter | IBM MQ Adapter | Medium | MQ connection via OIC Connectivity Agent |
| REST Adapter | REST Adapter | Low | WADL/Swagger import supported |
| SOAP Adapter | SOAP Adapter | Low | WSDL import; WS-Security policies need reconfiguration |
| Oracle ERP Cloud Adapter | Oracle ERP Cloud Adapter | Very Low | Native OIC adapter; best-supported path |
| Custom JCA Adapter | No equivalent | High | Rewrite as REST service + OCI Functions |
| Coherence Adapter | No equivalent | High | Replace with OCI Cache or Redis via REST |
| UMS (email/SMS) Adapter | Email notification action | Medium | Limited compared to SOA UMS; use OCI Notifications for SMS |
Catalog every deployed SOA composite, OSB project, and BPM process. Extract component types, adapters used, and integration patterns. [src1]
# Export SOA composite list via WLST
connect('weblogic', 'password', 't3://soahost:7001')
cd('/SOAFolder/soa-infra')
composites = cmo.getDeployedComposites()
for comp in composites:
print(comp.getDN() + ',' + comp.getMode() + ',' + str(comp.isDefault()))
disconnect()
Verify: Cross-reference output with EM console composite listing.
Match each composite to OIC equivalents. Flag composites with untranslatable patterns. [src1, src3]
GREEN (direct map): BPEL sync/async, Mediator routing, OSB proxy,
standard adapters (DB, FTP, JMS, REST, SOAP)
YELLOW (redesign): Complex XSLT, Human Tasks, Business Rules,
BPEL correlation sets, B2B, MFT
RED (no equivalent): Custom Java/Spring, custom XPath,
Mediator resequencer, EDN events, BAM, Coherence
Verify: Typical ratio is 50-60% green, 20-30% yellow, 10-20% red.
Install the Connectivity Agent inside your data center to enable OIC cloud integrations to reach on-premises resources without VPN. [src1]
# Install OIC Connectivity Agent
unzip oic_connectivity_agent.zip -d /opt/oic-agent
cd /opt/oic-agent
# Configure InstallerProfile.cfg with OIC instance URL and agent group
java -jar connectivityagent.jar
Verify: OIC console > Design > Agents shows agent group with status “Running”.
Map BPEL process flow to OIC App-Driven Orchestration. Replace BPEL activities with OIC actions. [src1]
BPEL Activity --> OIC Action
-----------------------------------------------
Receive --> Trigger (REST or App adapter)
Invoke --> Invoke (adapter connection)
Assign (copy rules) --> Map (XSLT mapper)
Switch/Case --> Switch action
While --> While loop (prefer callbacks)
Throw/Catch --> Fault handler / Scope with error
Java Embedding --> Invoke OCI Function via REST
Verify: Test rebuilt OIC integration against same test data as original SOA composite.
| SOA XSLT Feature | OIC Mapper Support | Workaround |
|---|---|---|
| Standard XSLT 1.0 functions | Fully supported | Direct migration |
| XSLT 2.0 functions | Partially supported | Test each function individually |
| Custom XPath Java functions | Not supported | Rewrite as OCI Function, call via REST |
| oraext: extension functions | Partially supported | Test each extension individually |
| dvm: (Domain Value Map) lookups | OIC Lookups | Recreate DVMs as OIC Lookup tables |
| xref: (Cross-reference) functions | Not supported | Implement via database lookup + OIC DB adapter |
| Multi-file XSLT imports | Single XSLT file in OIC | Merge imported stylesheets |
| XQuery (OSB) | XSLT only in OIC | Rewrite XQuery transforms as XSLT |
| Custom XSLT constructors | Not renderable in Mapper | Edit XSLT source directly |
| Error | Meaning | Cause | Resolution |
|---|---|---|---|
| OIC-PAT-00001 | Integration activation failed | Schema validation or unsupported XSLT | Fix schema/XSLT imports; ensure self-contained schema |
| CASDK-0004 | Connection test failed | Connectivity Agent not reachable | Verify agent status, network routes, firewall rules |
| ORA-00060 (via DB adapter) | Deadlock detected | Concurrent DB operations | Add retry with jitter; reduce parallel execution |
| OIC-MAPPER-001 | Unsupported XSLT construct | SOA XSLT with custom constructors | Edit XSLT source code manually |
| INTEGRATION-0007 | Payload too large | Message exceeds 10 MB limit | Split payload using Stage File + chunking |
| OIC-SCH-001 | Schedule conflict | Multiple scheduled integrations competing | Stagger schedules; increase message packs |
Replace with callback-based patterns using OIC’s “Receive Callback” adapter action. [src2]Deploy HA agent group with 2+ agents behind a load balancer. [src1]Monitor via OIC dashboard; configure auto-scaling or burst packs. [src6]Simplify transforms; move heavy processing to OCI Functions. [src1]Track expiry dates externally; set reminders 30 days before expiry. [src1]// BAD -- SOA-style polling loop wastes OIC thread capacity and risks timeout
While (jobStatus != "COMPLETE") {
Wait(30 seconds)
Invoke ERP -> Get Job Status
// OIC thread blocked for entire duration (could be 30+ minutes)
}
// GOOD -- Submit job, release thread, receive callback when done
1. Invoke ERP -> Submit FBDI Import Job (returns job ID)
2. Integration ends (thread released)
3. Separate integration triggered by ERP callback:
"Receive Callback Message upon completion of FBDI bulk import job"
-> Process results
// BAD -- exceeds project limits
Project: "SOA_Migration"
- 350 integrations (exceeds 100 limit)
- 45 connections (exceeds 20 limit)
- All teams sharing one project
// GOOD -- respects Gen 3 project limits
Project: "Finance_Integrations" (40 integrations, 8 connections)
Project: "HR_Integrations" (30 integrations, 6 connections)
Project: "Supply_Chain" (55 integrations, 12 connections)
Project: "B2B_EDI" (25 integrations, 5 connections)
// BAD -- OIC has no Java embedding support
String result = someCustomJavaClass.processData(inputXml);
// This code cannot run in OIC runtime
// GOOD -- deploy as OCI Function, invoke from OIC via REST
public class DataProcessor implements Function {
public String handleRequest(String input) {
return processData(input); // Custom Java logic
}
}
// OIC: Invoke via REST adapter -> https://functions.oci.region/invoke
# Check OIC instance health and message consumption
curl -X GET "https://YOUR_OIC/ic/api/integration/v1/monitoring/dashboard" \
-H "Authorization: Bearer $OIC_TOKEN"
# List all deployed integrations
curl -X GET "https://YOUR_OIC/ic/api/integration/v1/integrations?limit=100" \
-H "Authorization: Bearer $OIC_TOKEN"
# Check Connectivity Agent status
curl -X GET "https://YOUR_OIC/ic/api/integration/v1/agents" \
-H "Authorization: Bearer $OIC_TOKEN"
# View integration errors (last 24 hours)
curl -X GET "https://YOUR_OIC/ic/api/integration/v1/monitoring/errors?timeWindow=24h" \
-H "Authorization: Bearer $OIC_TOKEN"
# Check message pack usage
curl -X GET "https://YOUR_OIC/ic/api/integration/v1/monitoring/messageCount" \
-H "Authorization: Bearer $OIC_TOKEN"
| Version | Release | Status | Breaking Changes | Migration Notes |
|---|---|---|---|---|
| OIC Gen 3 (24.x) | 2024 Q1 | Current | Basic Routing removed; project-based org required | Target platform for all new migrations |
| OIC Gen 2 (23.x) | 2023 | Supported (EOL planned) | None | Migrate to Gen 3 before EOL |
| SOA Suite 12.2.1.4 | 2020 | Extended Support | N/A | Most common source version for migration |
| SOA Suite 12.2.1.3 | 2018 | Extended Support | N/A | Upgrade to 12.2.1.4 first, then migrate |
| SOA Suite 11g | 2009-2014 | Desupported | N/A | Upgrade to 12c first; direct 11g-to-OIC not documented |
| Use This Migration When | Don't Use When | Use Instead |
|---|---|---|
| Moving to Oracle Fusion Cloud ERP/HCM and need cloud-native integration | SOA composites rely heavily on custom Java/Spring with no cloud equivalent | Lift-and-shift SOA to OCI Marketplace |
| SOA infrastructure faces hardware EOL or WebLogic license renewal | You need SOA EDN event-driven architecture | Hybrid: SOA on OCI + OIC for new integrations |
| Integration portfolio is primarily adapter-to-adapter | Integration latency requires in-process Java (sub-ms) | Keep SOA on-prem or SOA on OCI |
| Organization has mandated cloud-first strategy | Need full XSLT 2.0 with custom extensions | SOA on OCI Marketplace |
| Capability | SOA Suite 12c (On-Prem) | OIC Gen 3 (Cloud) | Migration Impact |
|---|---|---|---|
| Deployment model | WebLogic Server cluster | Multi-tenant cloud PaaS | Infrastructure management eliminated |
| Development tool | JDeveloper | Browser-based designer | Developer retraining (1-2 weeks) |
| Orchestration | BPEL 2.0 (full spec) | App-Driven Orchestration (subset) | Some BPEL constructs unavailable |
| Mapping | XSLT 2.0 + XQuery + custom | XSLT in OIC Mapper (visual + source) | Complex transforms need simplification |
| Custom code | Java embedding, Spring, custom XPath | None (use OCI Functions) | Major architectural change |
| Human workflow | BPM / Human Task | OCI Process Automation | Forms rebuilt; SOAP triggers need wrappers |
| Event-driven | EDN (Event Delivery Network) | Limited (no EDN in Gen 3) | Must redesign to polling or external events |
| File handling | Unlimited in-memory | 10 MB schema / 1 GB file-based | Large payloads need redesign |
| Pricing model | CPU-based perpetual license | Message pack subscription (hourly) | Operating cost model change |
| High availability | WebLogic clustering (admin-managed) | Built-in (Oracle-managed) | Operational simplification |
| On-prem connectivity | Direct (same network) | Via Connectivity Agent | Agent infrastructure required |