Tips and Tricks for Oracle SOA Suite by Oracle A- Team ... · CON8115 High-Performance Oracle SOA...
Transcript of Tips and Tricks for Oracle SOA Suite by Oracle A- Team ... · CON8115 High-Performance Oracle SOA...
Tips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers
Session: CON7977
Joseph Kardamis, IT Manager, The Sherwin-Williams CompanyDavid Shaffer, Managing Partner, MiddleworksSherwood Zern, Consulting Solution Architect, OracleYogesh Kumar, Director, OracleKathryn Lustenberger, Principal Product Manager, Oracle
Oracle Confidential – Internal/Restricted/Highly RestrictedCopyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Ԥ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
Oracle Confidential – Internal/Restricted/Highly Restricted 3
㭠Ԥ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Monday, Oct 26:
CON8056
Oracle Integration Strategy: Cloud, Mobile, Events, and API
Management 11:00 AM - 11:45 AM
CON7977
Tips and Tricks for Oracle SOA Suite by Oracle A-Team,
Engineering, and Customers 12:15 PM - 1:00 PM
CON6371 Oracle Integration Cloud Service—Innovation in Integration 1:30 PM - 2:15 PM
CON7963
Oracle SOA Suite Cloud Service—Accelerate Your Integration
Platform 2:45 PM - 3:30 PM
CON7971
Solving Real-Time Streaming Analytics Mysteries: Oracle
Stream Explorer Strategy 2:45 PM - 3:30 PM
��
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Tuesday, Oct 27:
CON9635
Oracle API Management Vision—Building, Promoting, and
Managing APIs for Success 11:00 AM - 11:45 AM
CON6359
Oracle Managed File Transfer Bulk/Batch Integration with
Fusion Applications 4:00 PM - 4:45 PM
CON7947
Using Oracle Service Bus and JavaScript to Modernize Your
Integrations 5:15 PM - 6:00 PM
CON7965 Mission-Critical Oracle B2B Customer Implementations 5:15 PM - 6:00 PM
MTE10097 Oracle Service Bus for Microservices Architecture 7:15 PM - 8:00 PM
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Wednesday, Oct 28:
CON8115 High-Performance Oracle SOA Suite Customer Panel 11:00 AM - 11:45 AM
CON7967 Oracle’s API Management Roadmap 11:00 AM - 11:45 AM
CON7975
Gain Insight into Integration and Improve Operational
Intelligence 12:15 PM - 1:00 PM
CON6271
Accelerate Your SaaS Integration with Oracle Integration
Cloud Service 1:45 PM - 2:30 PM
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Wednesday, Oct 28 - Continued:
CON7974
Oracle Stream Explorer: A Pattern-First Approach to Real-
Time Streaming Analytics 1:45 PM - 2:30 PM
CON7996 Oracle SOA Suite 12c Success Stories 3:00 PM - 3:45 PM
CON6377 Oracle SOA Suite Cloud Service and Hybrid Integration—
Customer Panel
4:15 PM - 5:00 PM
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 - Thursday, Oct 29:
CON9633
Oracle Integration Cloud Service—Catalyst for Success in the
Cloud 9:30 AM - 10:15 AM
CON6373 Cloud Integration Best Practices—Customer Panel 10:45 AM - 11:30 AM
CON7942 Introduction to Oracle SOA Suite 12.2.1 Operations 10:45 AM - 11:30 AM
CON7993
Boost SaaS and On-Premises Connectivity: Leverage Oracle
Cloud Adapters 1:15 PM - 2:00 PM
CON10096
Oracle SOA Suite for Healthcare Integration: the Path to Large-
Scale Production Deployment 1:15 PM - 2:00 PM
莐.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Hand-On Labs:
HOL10440 Secure Managed File Exchange for the Hybrid Cloud
Monday, Oct 26:
11:00 AM - 12:00 PM Hotel Nikko—Nikko Ballroom III
HOL10756
Oracle API Manager Cloud Service Plus Oracle SOA Cloud
Service—Developer Speed and Innovation
Monday, Oct 26:
11:00 AM - 12:00 PM Hotel Nikko—Mendocino I/II
HOL10414
Explore Real-Time Business Data: Oracle Stream Explorer
and Oracle Business Activity Monitoring
Tues, Oct 27:
10:15 - 11:15 AM Hotel Nikko—Nikko Ballroom III
HOL10759
Integration of SaaS and On-Premises Applications with
Oracle Integration Cloud Service
Tues, Oct 27
11:45 AM - 12:45 PM Hotel Nikko—Mendocino I/II
HOL10461
Achieving Greater Operational Efficiency with Oracle SOA
Suite
Wed, Oct 28
4:15 PM - 5:15 PM Hotel Nikko—Nikko Ballroom III
HOL10416
Using Oracle Service Bus to Power Your Integration Today
and into the Future
Thurs, Oct 29
2:00 PM - 3:00 PM Hotel Nikko—Nikko Ballroom III
�θ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Service (SOA) & Cloud Integration Demo Pods
SLM | 021 Oracle B2B, Oracle Healthcare, and Oracle Managed File Transfer
Moscone South, Lower Left,
Middleware
SLM | 023Oracle Business Activity Monitoring and Oracle Real-Time Integration
Business Insight
SLM | 024 Oracle API Management
SLM | 026 Oracle Stream Explorer
SLM | 027Oracle Integration Adapters: Rich and Comprehensive Connectivity to SaaS,
On-Premises, and More
SLM | 028 Oracle Integration Platform for Services
SPI | 031 Oracle SOA Cloud Service Moscone South, Oracle Cloud
Platform and Infrastructure
ShowcaseSPI | 031 Oracle Integration Cloud Service
Oracle Open World – October 2015
SOA + Agile = ???SOA + Agile = ???
◆ Why would you?
◆ How would you?
Oracle Open World – October 2015
Why would you mix SOA and Agile?Why would you mix SOA and Agile?
◆ Business Agility!
◆ SOA’s aim (among other things) is to flatten the cost of
change by making change smaller and less risky, thereby
enabling the business to change as often as it needs
◆ Agile’s aim (among other things) is to deliver value as
often as possible so as to elicit continuous feedback from
the business and enable change
◆ Doing both will give you Even More Agility! And, as many
teams are trending Agile, being able to blend the
methodologies is beneficial to collaborating
Oracle Open World – October 2015
How we have historically “done SOA”How we have historically “done SOA”
◆ Wait, who’s “we”?
– The Sherwin-Williams Company (so, paint)
– Corporate IT, Internet Services (custom applications and
solutions for various aspects of the company – external web sites
and mobile tools, internally facing business process
improvement, et cetera)
– SOA/Integrations Team (think: “Integration Competency Center”,
or “SOA Center of Excellence” as defined by Wikipedia)
Oracle Open World – October 2015
Okay, back to SOA thenOkay, back to SOA then
From Oracle SOA Engineering Framework
Oracle Open World – October 2015
What had to change?What had to change?
◆ Service Identification and Discovery
– Input: Requirements
– Action: Analysis of Requirements to determine Service
Candidates that are “worth it”, and discover what, if any, Services
already exist which can fulfill the need
– Output: Service candidates
– Agile Analog: Epic/Feature Decomposition and Spikes
� Risk: “Design by Decomposition” – if this step is not done
deliberately, or done by the wrong parties, it may be missed
� Mitigation: Ensure “SOA System Architect” involved in
decomposition
� Acceptance: The process is set up to embrace change
Oracle Open World – October 2015
What had to change?What had to change?
◆ Service Release Planning
– Input: Current Services in flight plus new Service Candidates
– Action: Whether or not existing Services are to be continued, and
what Service Candidates are to be accepted by the team
– Output: Updated Release Plan
– Agile Analogs: Release Planning, Sprint Planning, Backlog
Grooming
Oracle Open World – October 2015
What had to change?What had to change?
◆ Service Definition
– Input: Fully understood functional and non-functional
requirements associated with Service Candidate
– Output: Service Contract
– Agile “Analog”: Roughly, user story Acceptance Criteria
� Inversion: Requirements for services in flight are collected, and
published as a contract (specification) at release/promotion time
� More change is expected, so less time is spent on definition/analysis
– Generally, the service consumers are expecting this as well, so it’s not as
pain-causing as with traditional waterfall
– Interesting: Service “taxonomies” (e.g. app vs. shared, connectivity vs.
data) are more fluid, and services tend to “evolve” from tier to tier
Oracle Open World – October 2015
What had to change?What had to change?
◆ Service Design, Implementation, and Testing
– Input: Service Contract
– Output: Service Interface and functional Service
– Agile Analog: Implementation of user stories, regression testing
� Story implementation covers design, implementation and testing
� Generally each story will correspond to a single operation.
� Implication: The Service Interface is in flux until it’s all done
� Inherently iterative, so care needs to be taken when defining the
Versioning Policy. As other teams are also iterative, they are more
able to flex to your changes, especially while still in development
� Design-Time Governance is fragmented across stories. Performing a
pre-release check (e.g. Code Review) is recommended
Oracle Open World – October 2015
What had to change?What had to change?
◆ Service Deployment and OA&M
– Agile Software Development Methodologies are more concerned
with how to build the software, not how to support it, and as
such, existing methods to perform these activities are fine as is
Oracle Open World – October 2015
Did it blend?Did it blend?
◆ So far, yes! We’re roughly 8 months in to this
“experiment”
◆ But there have been additional challenges as it relates to
inter-team dependencies
– Accommodating unplanned work is far easier in Kanban than in
Scrum, which reduced the impact of inter-team dependencies
– We hypothesize that shifting from centralized SOA CoE
(Component Team) to “embedding” SOA developers in attempt
to create “Feature” teams will result in a reduction of the
number of inter-team dependencies
Oracle Open World – October 2015
Logistics and challengesLogistics and challenges
◆ Ideally, teams should be “Feature” teams
– Feature teams can work a Feature from end to end entirely itself,
realizing the business value without requiring additional
coordination with other teams
– Cross-team dependencies are reduced
◆ However, most of our teams were “Component Teams”
– Standing up a new platform tends to gravitate towards systems
– Our team (SOA CoE) is a Component Team, and is also the team
through which many of the cross-team dependencies flow
◆ Therefore – LOTS of dependencies
Oracle Open World – October 2015
Experiment 1: Scrum to KanbanExperiment 1: Scrum to Kanban
◆ Due to the large amount of churn and
unplanned/unplannable work, a system with less
heaviness on the planning side may be appropriate
◆ Kanban is more about flow and less about “the plan for
the timebox”
◆ Kanban allowed us to flag when items are needed to help
with prioritization, but allowed us to introduce new work
mid-sprint without wrecking “the plan” (because “the
plan” was never “done”)
Oracle Open World – October 2015
Did it work?Did it work?
◆ Yes! We were more productive
◆ No! Cross team dependencies still present challenges
0
10
20
30
40
50
60
70
80
SAFe + Scrum SAFe + Kanban
Ve
loci
ty (
pts
/fo
rtn
igh
t)
Oracle Open World – October 2015
Experiment 2: CoE to CoPExperiment 2: CoE to CoP
◆ “Dissolution” of physical SOA CoE
– Sending out SOA developers to “embed” with other teams in
attempt to promote “Feature” teams
◆ Concerns identified around keeping quality, cohesion
among SOA team
◆ Mitigation: Creation/formalization of “SOA Community of
Practice” to meet periodically to cover things like best
practices, design time governance, code reviews, et
cetera
Oracle Open World – October 2015
Did it work?Did it work?
◆ Don’t know yet! This experiment has just started…
Oracle Open World – October 2015
SOA StuffSOA Stuff
◆ Oracle Practitioner Guides
– Identifying and Discovering Services:
http://www.oracle.com/technetwork/topics/entarch/oracle-
pg-soa-ident-svc-r3-2-1561704.pdf
– Software Engineering in a SOA Environment:
http://www.oracle.com/technetwork/topics/entarch/oracle-
pg-soa-sw-engineering-r3-2-1561707.pdf
Oracle Open World – October 2015
More SOA StuffMore SOA Stuff
◆ Oracle Reference Architectures
– SOA Foundation:
http://www.oracle.com/technetwork/topics/entarch/oracle-
ra-soa-foundation-r3-1-176715.pdf
– SOA Infrastructure:
http://www.oracle.com/technetwork/topics/entarch/oracle-
ra-soa-infrastructure-r3-2-1561710.pdf
Oracle Open World – October 2015
Agile StuffAgile Stuff
◆ Agile Manifesto/Principles
– http://www.agilemanifesto.org/
– http://agilemanifesto.org/principles.html
– Ooh look a SOA one… http://www.soa-manifesto.org/
◆ Scrum and Kanban stuff
– http://www.collab.net/services/training/agile_e-learning
– http://jpattonassociates.com/kanban_oversimplified/
– http://leansoftwareengineering.com/ksse/scrum-ban/
◆ Agile at scale
– http://www.scaledagileframework.com/
– http://www.disciplinedagiledelivery.com/
Oracle Open World – October 2015
SOA + Agile StuffSOA + Agile Stuff
◆ http://www.jbrains.ca/permalink/soa-and-agile-
friends-enemies-frenemies
◆ http://www.zdnet.com/article/what-does-soa-bring-to-
agile-or-agile-to-soa/
◆ http://www.infoq.com/articles/agile-soa-
implementation
◆ https://www.ibm.com/developerworks/community/bl
ogs/ambler/?entry=strategies_for_agile_soa&lang=en
OpenWorld 2015
Sherwood ZernSolution ArchitectFMW A-TeamOctober 26, 2015
Oracle Confidential – Internal/Restricted/Highly RestrictedCopyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Ծ忐
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
Oracle Confidential – Internal/Restricted/Highly Restricted 3
�ӎ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Service Invocation Actions
SOA Direct-Binding
1
2
Oracle Confidential – Internal/Restricted/Highly Restricted 4
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Service Invocations
SOA Direct-Binding
1
2
Oracle Confidential – Internal/Restricted/Highly Restricted 5
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Service Invocation Options
• Oracle Service Bus supports several different ways to invoke an external service – understand the differences and choose the right one for your requirements:
1. Service Callout
– Enrichment of the payload
– Blocking Call
2. Publish
– Invoke the service asynchronously
–Non-blocking call - continue with the message flow without waiting on a response
Oracle Confidential – Internal/Restricted/Highly Restricted 6
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Service Invocation Options(continued)
3. Routing
– Common mechanism to invoke a service
– Demarcation between request and response pipelines
–Uses asynchronous servlet to wait for response from HTTP-based service
4. Java Callout
– Should only be used when invoking very fast services
– examples: Read or Update a cache, quick calculations
Oracle Confidential – Internal/Restricted/Highly Restricted 7
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
A Common Challenge with Service Callout
• Symptom
–OSB encounters STUCK threads
Oracle Confidential – Internal/Restricted/Highly Restricted 8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
A Common Challenge with Service Callout
• Resolution
– Assign Minimum Constraint Work Manager to Invoked Business Service
– Set the number of threads ( 0 < Threads <= 2)
• Work Managers used should be unique per Business Service
• References
– http://docs.oracle.com/middleware/1213/wls/CNFGD/self_tuned.htm#CNFGD112
Oracle Confidential – Internal/Restricted/Highly Restricted 9
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Service Callout Tips
• Error Handling
– Put the Service Callout in its own Stage
– Add a Stage Error Handler
• The fault will not be returned in the SOAP Body (HTTP)
– The fault will be returned in the $fault variable
–Update the SOAP Body with the $fault contents
Oracle Confidential – Internal/Restricted/Highly Restricted 10
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
A Common Challenge with Publish
• Fire-And-Forget; works great, but …
• Potential Issue: What the fetch happened to my messages?
– Errors from remote service are not returned
–Messages are not guaranteed delivery
Oracle Confidential – Internal/Restricted/Highly Restricted 11
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
A Common Challenge with Publish
• Resolution
– Adding Routing Options to the Request Pipeline in the Stage
– Set the Quality of Service to Exactly-Once
– Add Error Handler to Stage
– Errors encountered by remote service get returned to the error handler
– Error handler needs to ensure that the messages are not lost
Oracle Confidential – Internal/Restricted/Highly Restricted 12
�ӏ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Routing Tips
• Can only have one Route per pipeline-request pair
• Use Route versus Publish if no need to continue processing through the request pipeline
• With HTTP transport the response is handled by an asynchronous servlet
– Request thread is returned to the thread pool
• Setting the Quality of Service to Exactly-Once will use the same thread for the response as the request• Helps control the number of concurrent threads to a remote service
Oracle Confidential – Internal/Restricted/Highly Restricted 13
ꅐ͵
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java Callout Tips
• The invoked Java resource should be deployed within the OSB domain
– Able to control its availability
• The invoked method must be static
• Make sure the operation executes quickly
– The request thread is the same thread executing the Java method
Oracle Confidential – Internal/Restricted/Highly Restricted 14
쎰ӟ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Service Invocation Tip:
• http://www.ateam-oracle.com/wp-content/uploads/2013/09/OSBThreadingModelHTTPTransport_1.1.pdf
Oracle Confidential – Internal/Restricted/Highly Restricted 15
Understand the OSB Threading Model
칀Ӡ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda with Highlight
Service Invocation Actions
SOA Direct-Binding
1
2
Oracle Confidential – Internal/Restricted/Highly Restricted 16
칀Ӡ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
SOA Direct-Binding
• Is the right choice for invoking a SOA composite IF your use case involves one of these three requirements
– You need to propagate the Security Subject to SOA
– You need to propagate the transaction context to SOA
– You have an asynchronous process with a callback to the OSB from SOA
Oracle Confidential – Internal/Restricted/Highly Restricted 17
칀Ӡ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
SOA Direct-Binding
• What you need to understand
– SOAP/HTTP should be used if the use case does not need to provide the previously mentioned requirements
– Timeouts cannot be set on this transport; could potentially lead to long running processes
– Thread is blocked until a response is returned
– The underlying XML object must be converted from OSB Xquery Tokenized Stream to a DOM object for outbound and vice versa inbound
Oracle Confidential – Internal/Restricted/Highly Restricted 18
칀Ӡ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 19
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
SOA Development Best Practices
Yogesh KumarDirector, Software DevelopmentSOA Core and BPEL Development
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Ծ忐
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Reducing your code
Reduce and Manage Storage (aka dehydration store)
1
2
3
Ӎ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Faults: Categories and Strategies• System Errors
– Potentially retry able e.g temporary network glitches, endpoint not available– Actionable - Bad composite code/transform
• Business Faults– Actionable - Related to bad payloads, dodgy code – you should try to catch all these
so engine won’t retry them
• Identify common fault handling strategy, for each of two possible cases:1) If in-flight business transaction can be modified and continue:
• Use Fault Policy Human Intervention to pause the flow at faulting invoke • Use User Action to:
– Address error/modify data– Retry/Continue
2) If business semantics require abort and restart/resubmit• Use fault policy Java Action to cause resubmit/log, followed by Terminate current transactionHandling Faults with the Fault Management Framework
4
Ӎ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Reusable Error Handling
• Reduce code with externalized fault/error handling– Avoid duplicating catch blocks all over process– Can be a common strategy for all composites or override for individual composites
• Use SOA Auto Recovery – Applies to faults which you have not caught and don’t have a fault policy for– Intermittent network related Retry able – let engine handle them – Configure auto recovery to run 24x7
• Use Fault Policy– Do not Retry Payload related faults (or business faults)– Use human intervention action in fault policy – Once in human intervention, data can be modified and instance can be aborted,
retried or continued
5
Ӎ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Reusable Error Handling
•Feature : Fault Policy
•For error handling external to SOA which does not impact the SOA/BPEL design or runtime
•Policies are defined in XML
•Re-useable across composites and components
•Pre-defined actions retry, human intervention, replay scope, rethrow fault, abort, and custom Java actions
Using Fault Handling in a BPEL Process
6
妰ӎ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• May set completionPersistPolicy to Faulted
• Audit composite applications at BPEL activity level
– Set Audit Level to minimal
– Identify mile stone activities in your process
– In Java Embedded Activity use addAuditTrailEntry to store custom mile stone based audit
• Another alternative is to use sensors on important mile stone related activities.
<bpelx:exec name=“mile_stone_1" language="java" version="1.5">
<![CDATA[
addAuditTrailEntry(“Reached Mile Stone 1");
]]>
</bpelx:exec>
Reduce StorageLong Running Processes and Audit Trails Can Fill a lot of DB..
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Audit Policy feature in 12c will allow to further reduce audit trail data, where you choose to
• Configure audit trails for composite applications at BPEL activity level
– Identify mile stone activities in your process
– see documentation
<auditPolicies ..>
<auditPolicy name="whilePolicy">
<!– do not audit assign-->
<activity type="bpel:assign“ auditLevel=“off"/>
<!– do not audit while-->
<activity type="bpel:while" auditLevel=“off"/>
<activity type="bpel:exec“ auditLevel=“production"/>
</auditPolicy> </auditPolicies>
Reduce Storage
ӟ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Manage Storage
• Know your data - inflow rate, completion rate, fault rate
• Identify storage used
• Build your purge strategy and get your DBA familiarized with the SOA Suite metadata repository schema
• For 11g: see this White Paper
• For 12c: review the documentation
• Automate Purge and plan/measure/test well in advance of production
– 12.1.3 comes with out of box auto purge
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Working With Very Large Schemas
David ShafferManaging [email protected]
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
Very Large Schemas
JDev Bundle Patches
Sparse Mappings
Non-Sparse Mappings
Additional Tips
For full XSLT tips and tricks doc, see: http://bit.ly/1M92Cq3
1
2
3
2
4
5
쎰ӟ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Large / Complex Schemas
• A very common issue with packaged apps
• Mapping / data transformation can be the hardest part of integration
–Understanding schema (sorry, can’t help with this…)
– Tools issues with schemas, WSDLs, etc
– Hard to traverse schemas for mapping, finding the right elements, etc
• This customer was using OTM’s Glog schema
• Just navigating Glog schemas in JDev 12c XSLT mapper was painfully slow
– Everyone assumed this meant doing mapping manually and minimizing use of Glogschemas
3
緀Ӡ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
JDev Bundle Patches
• 12c Bundle Patch 2 (and beyond) immediately resolved our JDev XSLT mapper issues
• Not everyone is aware of them and instructions for installing helpful
• Need metalink to access, which some developer downloads may not have
• For instructions to install bundle patch 3 (latest as of 10/15/15), see Jan van Zoggel’s blog post at:
– https://jvzoggel.wordpress.com/2015/08/14/patching-your-jdeveloper-12-1-3-with-soa-bundle-patch-12-1-3-0-3/ (or http://bit.ly/1LPJZRI for shortened link)
4
㥠Ӥ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Sparse Mappings
• XML trees can be very large and you often only use a very small number of the nodes in your mappings
– Constantly scrolling through nodes that are of no use to you
• Two strategies for dealing with sparse mappings
1. Generate a schema from sample XML – can be done in XSLT mapper when selecting schema for source or target for your map
– Can then Replace/Add Source or Target schema to switch back and forth
2. Use XSLT view (new in JDev 12c)
– Provides condensed look at the mappings you are creating – only see target nodes which are used
5
Ӫ
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Sparse Mappings: XSLT View
6
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Non Sparse Mappings - Tips
• Right-click on target node and Set Display Scope to only show mappings to that node (and its descendents)
• Right-click any hidden area and use text search to find and display additional nodes you need
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Additional Tips
• Reduce textual clutter with Abbreviate Text to make mapper hide prefixes and also set up custom abbreviations (e.g. “CPL” �“CustomerPartyList”)
• Searches can be cancelled (added in bundle patch 2) and you can reduce the Expension Depth (maybe set to approx 10)
• Don’t use automap to copy large input XML documents – use identity template instead
• Use the XSLT editor to generate test documents (rather than the XSLT testing tool), *if* your schema contains abstract elements or overloaded types)
For full documentation of these tips, see: http://bit.ly/1M92Cq3
9