SlideShare a Scribd company logo
Effective Fault Handling
in Oracle SOA Suite 11g
Ronald van Luttikhuizen [Vennster]
Guido Schmutz [Trivadis]

1-October-2012 | Oracle OpenWorld




                                     1|x
Guido Schmutz
• Working for Trivadis for more than 15 years
• Oracle ACE Director for Fusion Middleware and SOA
• Co-Author of different books
• Consultant, Trainer, Software Architect for Java, Oracle, SOA
  and EDA
• Member of Trivadis Architecture Board
• Technology Manager @ Trivadis

• More than 20 years of software development
  experience

• Contact: guido.schmutz@trivadis.com
• Blog: http://guidoschmutz.wordpress.com
• Twitter: gschmutz

                                                                  2|x
Ronald van Luttikhuizen
• Managing Partner at Vennster
• Oracle ACE Director for Fusion Middleware and SOA
• Author of different articles, co-author Oracle SOA Book 11g book
• Upcoming book SOA Made Simple
• Architect, consultant, trainer for Oracle, SOA, EDA, Java

• More than 10 years of software development and architecture
  experience

• Contact: ronald.van.luttikhuizen@vennster.nl
• Blog: blog.vennster.nl
• Twitter: rluttikhuizen


                                                                     3|x
Agenda

1.   What is Fault Handling ?
2.   Fault Handling in SOA vs. traditional systems
3.   Scenario and Patterns
4.   Implementation of Scenario
5.   Summary and Best Practices




                                                     4|x
What is a Fault ?

● Something happened outside normal operational activity or
  “happy flow”
  •   Technical error
  •   Programming error
  •   Faulty operation by user
  •   Exceptional business behavior
● Prevention and handling




                                                              6|x
Two Types of Faults

Business faults
● Faults that service clients can expect and recover from
● Failure to meet a particular business requirement
● Often: expected, business value, contractual and recoverable


Technical faults
● Faults that service clients do not expect and cannot (easily) recover from
● Results of unexpected errors during runtime, e.g. null pointer errors,
  resources not available, and so on
● Often: unexpected, technical, implementation and non-recoverable

                                                                          7|x
Business Fault
<wsdl:operation name="orderProduct">
  <wsdl:input message="order:OrderProductRequestMessage"/>
  <wsdl:output message="order:OrderProductResponseMessage"/>
  <wsdl:fault message="order:ProductNotInStockFaultMessage"
              name="ProductNotInStockFault"/>                        1. Service contract
  <wsdl:fault message="order:CustomerNotFoundFaultMessage"
              name="CustomerNotFoundFault"/>
                                                                         including fault
</wsdl:operation>

<xsd:element name="CustomerNotFoundFaultMessage">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="CustName" type="xsd:string"/>         2. Fault message payload
      <xsd:element name="City" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

                                                                                 8|x
Business Fault (II)
<soap:Envelope>
  <soap:Header/>
  <soap:Body>
    <soap:Fault>
                                                      3. Actual service response
      <faultcode>CST-1234</faultcode>
      <faultstring>Customer not found</faultstring>
      <detail>
        <CustomerNotFoundFault>
          <CustName>John Doe</CustName>
          <City>Long Beach</City>
        </CustomerNotFoundFault>
      </detail>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>



                                                                            9|x
Technical Fault
<wsdl:operation name="orderProduct”>
  <wsdl:input message="order:OrderProductMessage"/>
  <wsdl:output message="order:OrderProductResponseMessage"/>
  <wsdl:fault message="order:ProductNotInStockFaultMessage"
                                                                     1. Service contract
              name="ProductNotInStockFault"/>                            including fault
  <wsdl:fault message="order:CustomerNotFoundFaultMessage"
              name="CustomerNotFoundFault"/>
</wsdl:operation>


                                                               2. Actual service response
<soap:Body>
  <soap:Fault>
    <faultcode>S:Server</faultcode>
    <faultstring>Could not connect to URL 127.0.0.1 on port 8001</faultstring>
  </soap:Fault>
</soap:Body>

                                                                                 10 | x
Agenda

1.   What is Fault Handling ?
2.   Fault Handling in SOA vs. traditional systems
3.   Scenario and Patterns
4.   Implementation of Scenario
5.   Summary and Best Practices




                                                     11 | x
Fault Handling SOA vs. traditional systems

External     BPM          User      Multiple service consumers
                        Interface   Services part of larger unit
                                    Heterogeneous & external components
                                    Long running processes
              ESB
                                    Asynchronous
                                    Timed events
                                    Often enterprise-wide
Implemen-   Implemen-   Implemen-
  tation      tation      tation    Transactions


                                                               12 | x
Agenda

1.   What is Fault Handling ?
2.   Fault Handling in SOA vs. traditional systems
3.   Scenario and Patterns
4.   Implementation of Scenario
5.   Summary and Best Practices




                                                     13 | x
Old System with
                       limited scalability

Short Network
 interruptions                     No 7*24 avail. for
                                   single instance of
                                   credit card service


                                       Response
                                     sometimes get
 Fault if product is                     lost
no longer available

                            Not always
                             available




                                             14 | x
Patterns for Fault Tolerant Software

Compensation
Exception shielding
(Limit) retry
Share the load
Alternative
Exception handler
Heartbeat
Throttling

                                          15 | x
Agenda

1.   What is Fault Handling ?
2.   Fault Handling in SOA vs. traditional systems
3.   Scenario and Patterns
4.   Implementation of Scenario
5.   Summary and Best Practices




                                                     19 | x
20 | x
Product Management
Result Caching

    Result Cache


 Problem
 ● Not to overload the old, non-scalable product system with the new
   demand
 Solution
 ● Use Result Caching to cache the product information (read-only
   operation)
 ● Use Service Throttling to limit the number of concurrent requests

                                                                  21 | x
Product Management
Result Caching

 Results are returned from cache rather than always invoking the
   external service
 ● Product data is rather static, so ideal candidate for caching

   Proxy             Business      1             Product DB
  Service             Service
                 2         3

       Result
       Cache
OSB


                                                                   22 | x
Product Management
Service Throttling

  Restrict the number of messages on the message flow to a Business
    Service
              Message Buffer
   Proxy                         Business       Product
  Service                         Service         DB
OSB

  ● Set from Operational Settings on the OSB console




                                                               23 | x
Credit Card Booking
Retry Configuration


        Retry



 Problem
 ● Unstable network between us and the external services
 Solution
 ● Use Retry mechanism of OSB to try multiple times
 ● No Fault Management necessary for service consumer if network
   interruption is only for a short time

                                                                   24 | x
Credit Card Booking
Retry Configuration

  Configured on the business service in OSB
                                 1
   Proxy         Business
                             after 2s         Visa Service
  Service         Service        2
OSB
                        5x




                                                             25 | x
Credit Card Booking
Service Pooling


              Service Pooling


 Problem
 ● Credit Card Service does not guarantee 7*24 availability for one single
   instance
 Solution
 ● Use the multiple instances (endpoints) that the company provides and
   use service pooling feature of OSB
 ● No Fault Management for the service consumer if at least one endpoint
   is available
                                                                        26 | x
Credit Card Booking
Service Pooling
                           Credit Card Service instance 1
      Proxy     Business
                           Credit Card Service instance 2
     Service     Service
   OSB                     Credit Card Service instance 3




                                                            27 | x
Order History
Fault Management Framework


 Use Fault Policy Management
 In Mediator to configure retry



 Problem
 ● Order History System not available should have no impact on
   Business Process
 Solution
 ● Use Mediator with Fault Management Framework to configure retry
   independent of availability of Order History Web Service

                                                                 32 | x
Order History
  Fault Management Framework
<faultPolicyBindings version="2.0.1">
  <composite faultPolicy="OrderProcessFaultPolicy"/>
</faultPolicyBindings>


<faultPolicies>
  <faultPolicy version="2.0.1" id="OrderProcessFaultPolicy">
    <Conditions>
      <action ref="RetryAction"/>
    </Conditions>
    <Actions>
      <Action id="RetryAction">
         <Retry>
            <retryCount>3</retryCount>
            <retryInterval>2</retryInterval>
            <exponentialBackoff/>
            <retryFailureAction ref="HumanInterventionAction"/>
            <retrySuccessAction/>
         </Retry>
      </Action>
    </Actions>
  </faultPolicy>
</faultPolicies>


                                                                  33 | x
Order Handling Process
            Return errors as synchronous response
                            Problem
                            ● Both Product Management and Credit Card Booking can
           Fault Handling     return Business Faults

           Fault Handling   Solution
Reply with Fault            ● Handle errors and map them to errors returned to the
                              service consumer (i.e. the caller of the process)




                                                                               34 | x
Order Handling Process
 Return errors as synchronous response
Handle Business Faults in BPEL error handler and reply with an error




                                                                   35 | x
Order Handling Process (II)
  Handle missing callback with timeout
                    Problem
                    ● Order Processing response message can get lost in the Order
                      Processing system, i.e. the callback message will never
                      arrive in the process

                    Solution
                    ● Timeout on the Wait For Answer with a BPEL pick activity
Pick with timeout
                      with a timeout
                    ● Undo the process by doing compensation
   Compensate
                    ● Use the BPEL compensate activity together with
                      compensation handler to undo the Booking of the Credit Card

                                                                        36 | x
Order Handling Process (II)
Handle missing callback with timeout
Pick Activity for handling callback
   message with timeout branch




                 c




                                       37 | x
Order Handling Process (III)
Compensation Handling
                       Problem
                       ● Order Processing callback message can be a Product No
  Compensation           Longer Available Business Fault
  Handler

                       Solution
                       ● Undo the process by doing compensation
Handle Business        ● Use the BPEL compensate activity together with
Fault and Compensate
                         compensation handler to undo the Booking of the
                         Credit Card


                                                                      38 | x
Order Handling Process (III)
Compensation Handling
Compensate activity invokes compensation
  handling on the inner scope
• Can only be invoked from within a fault handler or
  another compensation handler




                                                       39 | x
Order Handling Process (V)
 Generic Error Handler w. Fault Policy Framework

                               Problem
                               ● Unexpected (technical) fault
Unexpected (technical) error   ● Multiple processes that deal with unexpected faults in
                                 their own way

                               Solution
                               ● Use fault handler mechanism to enqueue on error queue
                                 without adding process logic
                               ● Create one process to listen to error queue and handle
                                 faults
                               ● Retrieve process information by using (composite) sensors
                                                                                  41 | x
Order Handling Process (V)
Generic Error Handler w. Fault Policy Framework

 Explanation of generic fault handler




                                                  42 | x
Order Handling Process (V)
  Generic Error Handler w. Fault Policy Framework
<faultPolicyBindings version="2.0.1">
  <composite faultPolicy="GenericFaultPolicy"/>
</faultPolicyBindings>


<faultPolicies>
  <faultPolicy version="2.0.1" id="GenericFaultPolicy">
    <Conditions>
      <action ref="GenericAction"/>
    </Conditions>
    <Actions>
      <Action id="GenericAction">
        <javaAction className="nl.vennster.GenericHandler“ defaultAction=“HumanIntervention">
          <returnValue value="HumanIntervention" ref=" HumanIntervention"/>
        </javaAction>
      </Action>
    </Actions>
  </faultPolicy>
</faultPolicies>


<property name="oracle.composite.faultPolicyFile">oramds:/apps/fault-policies.xml</property>
<property name="oracle.composite.faultBindingFile">oramds:/apps/fault-bindings.xml</property>


                                                                                                43 | x
Agenda

1.   What is Fault Handling ?
2.   Fault Handling in SOA vs. traditional systems
3.   Scenario and Patterns
4.   Implementation of Scenario
5.   Summary and Best Practices




                                                     44 | x
Summary
Issue                                                             Solution                                        Product
Overloading product management system                             ThrottlingResult cache                          OSB
Credit Card Service does not guarantee 7*24 uptime due to e.g.    Muliple endpoints                               OSB
network problems                                                  Service pooling
Guarantee message delivery to order management system             Availability of queues                          OSB (and SOA Suite for XA
                                                                  Enqueue and dequeue in service consumer         propagation to OSB)
                                                                  transaction
Returning business fault over async MEP from order management     Separate operation and fault message            OSB and SOA Suite (callback
system                                                                                                            contract between the two)

Order history service not available                               Retry in Mediator using fault policy framework SOA Suite

Business fault handling from service to process to consumer       Catch faults in process and reply fault to      OSB and SOA Suite (correct
                                                                  consumer                                        contracts)
Detect missing response message                                   Timeout in pick activity                        SOA Suite
Handle product no longer available                                Compensation                                    SOA Suite
Avoid calling credit card booking twice                           Set non-idempotent property                     SOA Suite
Processes needing to deal with unexpected technical faults. All   Fault policy frameworks, error queue, generic   SOA Suite
processes solving it in their own way using process logic.        error handler, SOA Suite APIs & composite
                                                                  sensors.
                                                                                                                                 45 | x
Summary & Best Practices
● Differentiate between business and technical faults
● Design service contracts with faults in mind: formally describe business faults in
  service contracts
● Don’t use exceptions as goto’s
● Design with criticality, likeliness to fail, and cost in mind
● Differentiate fault patterns in OSB and BPM/BPEL
  •   OSB: Retry, throttling, transaction boundaries
  •   BPM/BPEL: Compensation, business fault handling, generic fault handler, timeout
● Handle unexpected errors generically
● Make services autonomous
● Fault-handling on scope of services and in wider perspective

                                                                                        46 | x
Thank You!                                               Vennster
                                                                 Ronald van Luttikhuizen
                                                                 ronald.van.luttikhuizen@vennster.nl

                                                                 Trivadis AG
                                                                 Guido Schmutz
                                                                 guido.schmutz@trivadis.com



BASEL   BERN   LAUSANNE   ZÜRICH   DÜSSELDORF   FRANKFURT A.M.   FREIBURG I.BR.   HAMBURG   MÜNCHEN   STUTTGART    WIEN




                                                                                                          47 | x

More Related Content

Viewers also liked

Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
Data Con LA
 
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
Kay Lerch
 
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San JoseDataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Aldrin Piri
 
Comparison of various streaming technologies
Comparison of various streaming technologiesComparison of various streaming technologies
Comparison of various streaming technologies
Sachin Aggarwal
 
Real-Time Event & Stream Processing on MS Azure
Real-Time Event & Stream Processing on MS AzureReal-Time Event & Stream Processing on MS Azure
Real-Time Event & Stream Processing on MS Azure
Khalid Salama
 
Developing Connected Applications with AWS IoT - Technical 301
Developing Connected Applications with AWS IoT - Technical 301Developing Connected Applications with AWS IoT - Technical 301
Developing Connected Applications with AWS IoT - Technical 301
Amazon Web Services
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data Platform
Lightbend
 
How to Build Continuous Ingestion for the Internet of Things
How to Build Continuous Ingestion for the Internet of ThingsHow to Build Continuous Ingestion for the Internet of Things
How to Build Continuous Ingestion for the Internet of Things
Cloudera, Inc.
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
Aaron Irizarry
 
Exception handling
Exception handlingException handling
Exception handling
xavier john
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
Seth Familian
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackPonraj
 
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in ActionNot Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Paris Carbone
 
Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016
Timothy Spann
 
Pivotal CF and Continuous Delivery
Pivotal CF and Continuous DeliveryPivotal CF and Continuous Delivery
Pivotal CF and Continuous Delivery
Timothy Spann
 
Building the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine LearningBuilding the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine Learning
SingleStore
 

Viewers also liked (20)

Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
Big Data Day LA 2015 - Always-on Ingestion for Data at Scale by Arvind Prabha...
 
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
IoT Innovation Lab Berlin @relayr - Kay Lerch on Getting basics right for you...
 
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San JoseDataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
 
Comparison of various streaming technologies
Comparison of various streaming technologiesComparison of various streaming technologies
Comparison of various streaming technologies
 
Real-Time Event & Stream Processing on MS Azure
Real-Time Event & Stream Processing on MS AzureReal-Time Event & Stream Processing on MS Azure
Real-Time Event & Stream Processing on MS Azure
 
Developing Connected Applications with AWS IoT - Technical 301
Developing Connected Applications with AWS IoT - Technical 301Developing Connected Applications with AWS IoT - Technical 301
Developing Connected Applications with AWS IoT - Technical 301
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data Platform
 
How to Build Continuous Ingestion for the Internet of Things
How to Build Continuous Ingestion for the Internet of ThingsHow to Build Continuous Ingestion for the Internet of Things
How to Build Continuous Ingestion for the Internet of Things
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 
Exception handling
Exception handlingException handling
Exception handling
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS Attack
 
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in ActionNot Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
 
Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016Apache NiFi Meetup - Princeton NJ 2016
Apache NiFi Meetup - Princeton NJ 2016
 
Pivotal CF and Continuous Delivery
Pivotal CF and Continuous DeliveryPivotal CF and Continuous Delivery
Pivotal CF and Continuous Delivery
 
Building the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine LearningBuilding the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine Learning
 

Similar to Effective fault handling in SOA Suite 11g

Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11gRonald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Getting value from IoT, Integration and Data Analytics
 
Netpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APMNetpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APM
Boni Bruno
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
Bilgin Ibryam
 
Designing apps for resiliency
Designing apps for resiliencyDesigning apps for resiliency
Designing apps for resiliency
Masashi Narumoto
 
Introduction to enterprise applications capacity planning
Introduction to enterprise applications capacity planning Introduction to enterprise applications capacity planning
Introduction to enterprise applications capacity planning
Leonid Grinshpan, Ph.D.
 
Avoiding Software Insanity
Avoiding Software InsanityAvoiding Software Insanity
Avoiding Software Insanityjosephnaveen
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at Databricks
Matei Zaharia
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
Rohit Kelapure
 
管理向云的迁移过程
管理向云的迁移过程管理向云的迁移过程
管理向云的迁移过程
ITband
 
Service Ownership with PagerDuty and Rundeck: Help others help you
Service Ownership with PagerDuty and Rundeck:  Help others help you Service Ownership with PagerDuty and Rundeck:  Help others help you
Service Ownership with PagerDuty and Rundeck: Help others help you
TraciMyers5
 
Solving enterprise applications performance puzzles queuing models to the r...
Solving enterprise applications performance puzzles   queuing models to the r...Solving enterprise applications performance puzzles   queuing models to the r...
Solving enterprise applications performance puzzles queuing models to the r...Leonid Grinshpan, Ph.D.
 
Cutomize sap webinar
Cutomize sap webinarCutomize sap webinar
Cutomize sap webinar
gabrielsyst
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
Lari Hotari
 
React&Redux : The Amdocs Way (Sneak Peak)
React&Redux : The Amdocs Way (Sneak Peak)React&Redux : The Amdocs Way (Sneak Peak)
React&Redux : The Amdocs Way (Sneak Peak)
Sandeep Bamane
 
Slow things down to make them go faster [FOSDEM 2022]
Slow things down to make them go faster [FOSDEM 2022]Slow things down to make them go faster [FOSDEM 2022]
Slow things down to make them go faster [FOSDEM 2022]
Jimmy Angelakos
 
Mortgage Cadence Orchestrator Presentation
Mortgage Cadence Orchestrator PresentationMortgage Cadence Orchestrator Presentation
Mortgage Cadence Orchestrator PresentationJohnjdetwiler
 
1667 making z rules work session
1667 making z rules work session1667 making z rules work session
1667 making z rules work session
nick_garrod
 
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
IBM Danmark
 

Similar to Effective fault handling in SOA Suite 11g (20)

Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11gRonald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
 
Netpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APMNetpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APM
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
 
VAS - VMware CMP
VAS - VMware CMPVAS - VMware CMP
VAS - VMware CMP
 
Designing apps for resiliency
Designing apps for resiliencyDesigning apps for resiliency
Designing apps for resiliency
 
Introduction to enterprise applications capacity planning
Introduction to enterprise applications capacity planning Introduction to enterprise applications capacity planning
Introduction to enterprise applications capacity planning
 
Avoiding Software Insanity
Avoiding Software InsanityAvoiding Software Insanity
Avoiding Software Insanity
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at Databricks
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
 
管理向云的迁移过程
管理向云的迁移过程管理向云的迁移过程
管理向云的迁移过程
 
Service Ownership with PagerDuty and Rundeck: Help others help you
Service Ownership with PagerDuty and Rundeck:  Help others help you Service Ownership with PagerDuty and Rundeck:  Help others help you
Service Ownership with PagerDuty and Rundeck: Help others help you
 
Solving enterprise applications performance puzzles queuing models to the r...
Solving enterprise applications performance puzzles   queuing models to the r...Solving enterprise applications performance puzzles   queuing models to the r...
Solving enterprise applications performance puzzles queuing models to the r...
 
Cutomize sap webinar
Cutomize sap webinarCutomize sap webinar
Cutomize sap webinar
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
 
React&Redux : The Amdocs Way (Sneak Peak)
React&Redux : The Amdocs Way (Sneak Peak)React&Redux : The Amdocs Way (Sneak Peak)
React&Redux : The Amdocs Way (Sneak Peak)
 
Slow things down to make them go faster [FOSDEM 2022]
Slow things down to make them go faster [FOSDEM 2022]Slow things down to make them go faster [FOSDEM 2022]
Slow things down to make them go faster [FOSDEM 2022]
 
Mortgage Cadence Orchestrator Presentation
Mortgage Cadence Orchestrator PresentationMortgage Cadence Orchestrator Presentation
Mortgage Cadence Orchestrator Presentation
 
1667 making z rules work session
1667 making z rules work session1667 making z rules work session
1667 making z rules work session
 
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
PCTY 2012, Overvågning af forretningssystemer i et virtuelt miljø v. Hans Ped...
 

More from Guido Schmutz

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
Guido Schmutz
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data Architecture
Guido Schmutz
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Guido Schmutz
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
Guido Schmutz
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
Guido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data Architecture
Guido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Guido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Guido Schmutz
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
Guido Schmutz
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
Guido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Guido Schmutz
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
Guido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Guido Schmutz
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
Guido Schmutz
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
Guido Schmutz
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
Guido Schmutz
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Guido Schmutz
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI Architecture
Guido Schmutz
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka
Guido Schmutz
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
Guido Schmutz
 

More from Guido Schmutz (20)

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data Architecture
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data Architecture
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI Architecture
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Effective fault handling in SOA Suite 11g

  • 1. Effective Fault Handling in Oracle SOA Suite 11g Ronald van Luttikhuizen [Vennster] Guido Schmutz [Trivadis] 1-October-2012 | Oracle OpenWorld 1|x
  • 2. Guido Schmutz • Working for Trivadis for more than 15 years • Oracle ACE Director for Fusion Middleware and SOA • Co-Author of different books • Consultant, Trainer, Software Architect for Java, Oracle, SOA and EDA • Member of Trivadis Architecture Board • Technology Manager @ Trivadis • More than 20 years of software development experience • Contact: guido.schmutz@trivadis.com • Blog: http://guidoschmutz.wordpress.com • Twitter: gschmutz 2|x
  • 3. Ronald van Luttikhuizen • Managing Partner at Vennster • Oracle ACE Director for Fusion Middleware and SOA • Author of different articles, co-author Oracle SOA Book 11g book • Upcoming book SOA Made Simple • Architect, consultant, trainer for Oracle, SOA, EDA, Java • More than 10 years of software development and architecture experience • Contact: ronald.van.luttikhuizen@vennster.nl • Blog: blog.vennster.nl • Twitter: rluttikhuizen 3|x
  • 4. Agenda 1. What is Fault Handling ? 2. Fault Handling in SOA vs. traditional systems 3. Scenario and Patterns 4. Implementation of Scenario 5. Summary and Best Practices 4|x
  • 5. What is a Fault ? ● Something happened outside normal operational activity or “happy flow” • Technical error • Programming error • Faulty operation by user • Exceptional business behavior ● Prevention and handling 6|x
  • 6. Two Types of Faults Business faults ● Faults that service clients can expect and recover from ● Failure to meet a particular business requirement ● Often: expected, business value, contractual and recoverable Technical faults ● Faults that service clients do not expect and cannot (easily) recover from ● Results of unexpected errors during runtime, e.g. null pointer errors, resources not available, and so on ● Often: unexpected, technical, implementation and non-recoverable 7|x
  • 7. Business Fault <wsdl:operation name="orderProduct"> <wsdl:input message="order:OrderProductRequestMessage"/> <wsdl:output message="order:OrderProductResponseMessage"/> <wsdl:fault message="order:ProductNotInStockFaultMessage" name="ProductNotInStockFault"/> 1. Service contract <wsdl:fault message="order:CustomerNotFoundFaultMessage" name="CustomerNotFoundFault"/> including fault </wsdl:operation> <xsd:element name="CustomerNotFoundFaultMessage"> <xsd:complexType> <xsd:sequence> <xsd:element name="CustName" type="xsd:string"/> 2. Fault message payload <xsd:element name="City" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> 8|x
  • 8. Business Fault (II) <soap:Envelope> <soap:Header/> <soap:Body> <soap:Fault> 3. Actual service response <faultcode>CST-1234</faultcode> <faultstring>Customer not found</faultstring> <detail> <CustomerNotFoundFault> <CustName>John Doe</CustName> <City>Long Beach</City> </CustomerNotFoundFault> </detail> </soap:Fault> </soap:Body> </soap:Envelope> 9|x
  • 9. Technical Fault <wsdl:operation name="orderProduct”> <wsdl:input message="order:OrderProductMessage"/> <wsdl:output message="order:OrderProductResponseMessage"/> <wsdl:fault message="order:ProductNotInStockFaultMessage" 1. Service contract name="ProductNotInStockFault"/> including fault <wsdl:fault message="order:CustomerNotFoundFaultMessage" name="CustomerNotFoundFault"/> </wsdl:operation> 2. Actual service response <soap:Body> <soap:Fault> <faultcode>S:Server</faultcode> <faultstring>Could not connect to URL 127.0.0.1 on port 8001</faultstring> </soap:Fault> </soap:Body> 10 | x
  • 10. Agenda 1. What is Fault Handling ? 2. Fault Handling in SOA vs. traditional systems 3. Scenario and Patterns 4. Implementation of Scenario 5. Summary and Best Practices 11 | x
  • 11. Fault Handling SOA vs. traditional systems External BPM User Multiple service consumers Interface Services part of larger unit Heterogeneous & external components Long running processes ESB Asynchronous Timed events Often enterprise-wide Implemen- Implemen- Implemen- tation tation tation Transactions 12 | x
  • 12. Agenda 1. What is Fault Handling ? 2. Fault Handling in SOA vs. traditional systems 3. Scenario and Patterns 4. Implementation of Scenario 5. Summary and Best Practices 13 | x
  • 13. Old System with limited scalability Short Network interruptions No 7*24 avail. for single instance of credit card service Response sometimes get Fault if product is lost no longer available Not always available 14 | x
  • 14. Patterns for Fault Tolerant Software Compensation Exception shielding (Limit) retry Share the load Alternative Exception handler Heartbeat Throttling 15 | x
  • 15. Agenda 1. What is Fault Handling ? 2. Fault Handling in SOA vs. traditional systems 3. Scenario and Patterns 4. Implementation of Scenario 5. Summary and Best Practices 19 | x
  • 17. Product Management Result Caching Result Cache Problem ● Not to overload the old, non-scalable product system with the new demand Solution ● Use Result Caching to cache the product information (read-only operation) ● Use Service Throttling to limit the number of concurrent requests 21 | x
  • 18. Product Management Result Caching Results are returned from cache rather than always invoking the external service ● Product data is rather static, so ideal candidate for caching Proxy Business 1 Product DB Service Service 2 3 Result Cache OSB 22 | x
  • 19. Product Management Service Throttling Restrict the number of messages on the message flow to a Business Service Message Buffer Proxy Business Product Service Service DB OSB ● Set from Operational Settings on the OSB console 23 | x
  • 20. Credit Card Booking Retry Configuration Retry Problem ● Unstable network between us and the external services Solution ● Use Retry mechanism of OSB to try multiple times ● No Fault Management necessary for service consumer if network interruption is only for a short time 24 | x
  • 21. Credit Card Booking Retry Configuration Configured on the business service in OSB 1 Proxy Business after 2s Visa Service Service Service 2 OSB 5x 25 | x
  • 22. Credit Card Booking Service Pooling Service Pooling Problem ● Credit Card Service does not guarantee 7*24 availability for one single instance Solution ● Use the multiple instances (endpoints) that the company provides and use service pooling feature of OSB ● No Fault Management for the service consumer if at least one endpoint is available 26 | x
  • 23. Credit Card Booking Service Pooling Credit Card Service instance 1 Proxy Business Credit Card Service instance 2 Service Service OSB Credit Card Service instance 3 27 | x
  • 24. Order History Fault Management Framework Use Fault Policy Management In Mediator to configure retry Problem ● Order History System not available should have no impact on Business Process Solution ● Use Mediator with Fault Management Framework to configure retry independent of availability of Order History Web Service 32 | x
  • 25. Order History Fault Management Framework <faultPolicyBindings version="2.0.1"> <composite faultPolicy="OrderProcessFaultPolicy"/> </faultPolicyBindings> <faultPolicies> <faultPolicy version="2.0.1" id="OrderProcessFaultPolicy"> <Conditions> <action ref="RetryAction"/> </Conditions> <Actions> <Action id="RetryAction"> <Retry> <retryCount>3</retryCount> <retryInterval>2</retryInterval> <exponentialBackoff/> <retryFailureAction ref="HumanInterventionAction"/> <retrySuccessAction/> </Retry> </Action> </Actions> </faultPolicy> </faultPolicies> 33 | x
  • 26. Order Handling Process Return errors as synchronous response Problem ● Both Product Management and Credit Card Booking can Fault Handling return Business Faults Fault Handling Solution Reply with Fault ● Handle errors and map them to errors returned to the service consumer (i.e. the caller of the process) 34 | x
  • 27. Order Handling Process Return errors as synchronous response Handle Business Faults in BPEL error handler and reply with an error 35 | x
  • 28. Order Handling Process (II) Handle missing callback with timeout Problem ● Order Processing response message can get lost in the Order Processing system, i.e. the callback message will never arrive in the process Solution ● Timeout on the Wait For Answer with a BPEL pick activity Pick with timeout with a timeout ● Undo the process by doing compensation Compensate ● Use the BPEL compensate activity together with compensation handler to undo the Booking of the Credit Card 36 | x
  • 29. Order Handling Process (II) Handle missing callback with timeout Pick Activity for handling callback message with timeout branch c 37 | x
  • 30. Order Handling Process (III) Compensation Handling Problem ● Order Processing callback message can be a Product No Compensation Longer Available Business Fault Handler Solution ● Undo the process by doing compensation Handle Business ● Use the BPEL compensate activity together with Fault and Compensate compensation handler to undo the Booking of the Credit Card 38 | x
  • 31. Order Handling Process (III) Compensation Handling Compensate activity invokes compensation handling on the inner scope • Can only be invoked from within a fault handler or another compensation handler 39 | x
  • 32. Order Handling Process (V) Generic Error Handler w. Fault Policy Framework Problem ● Unexpected (technical) fault Unexpected (technical) error ● Multiple processes that deal with unexpected faults in their own way Solution ● Use fault handler mechanism to enqueue on error queue without adding process logic ● Create one process to listen to error queue and handle faults ● Retrieve process information by using (composite) sensors 41 | x
  • 33. Order Handling Process (V) Generic Error Handler w. Fault Policy Framework Explanation of generic fault handler 42 | x
  • 34. Order Handling Process (V) Generic Error Handler w. Fault Policy Framework <faultPolicyBindings version="2.0.1"> <composite faultPolicy="GenericFaultPolicy"/> </faultPolicyBindings> <faultPolicies> <faultPolicy version="2.0.1" id="GenericFaultPolicy"> <Conditions> <action ref="GenericAction"/> </Conditions> <Actions> <Action id="GenericAction"> <javaAction className="nl.vennster.GenericHandler“ defaultAction=“HumanIntervention"> <returnValue value="HumanIntervention" ref=" HumanIntervention"/> </javaAction> </Action> </Actions> </faultPolicy> </faultPolicies> <property name="oracle.composite.faultPolicyFile">oramds:/apps/fault-policies.xml</property> <property name="oracle.composite.faultBindingFile">oramds:/apps/fault-bindings.xml</property> 43 | x
  • 35. Agenda 1. What is Fault Handling ? 2. Fault Handling in SOA vs. traditional systems 3. Scenario and Patterns 4. Implementation of Scenario 5. Summary and Best Practices 44 | x
  • 36. Summary Issue Solution Product Overloading product management system ThrottlingResult cache OSB Credit Card Service does not guarantee 7*24 uptime due to e.g. Muliple endpoints OSB network problems Service pooling Guarantee message delivery to order management system Availability of queues OSB (and SOA Suite for XA Enqueue and dequeue in service consumer propagation to OSB) transaction Returning business fault over async MEP from order management Separate operation and fault message OSB and SOA Suite (callback system contract between the two) Order history service not available Retry in Mediator using fault policy framework SOA Suite Business fault handling from service to process to consumer Catch faults in process and reply fault to OSB and SOA Suite (correct consumer contracts) Detect missing response message Timeout in pick activity SOA Suite Handle product no longer available Compensation SOA Suite Avoid calling credit card booking twice Set non-idempotent property SOA Suite Processes needing to deal with unexpected technical faults. All Fault policy frameworks, error queue, generic SOA Suite processes solving it in their own way using process logic. error handler, SOA Suite APIs & composite sensors. 45 | x
  • 37. Summary & Best Practices ● Differentiate between business and technical faults ● Design service contracts with faults in mind: formally describe business faults in service contracts ● Don’t use exceptions as goto’s ● Design with criticality, likeliness to fail, and cost in mind ● Differentiate fault patterns in OSB and BPM/BPEL • OSB: Retry, throttling, transaction boundaries • BPM/BPEL: Compensation, business fault handling, generic fault handler, timeout ● Handle unexpected errors generically ● Make services autonomous ● Fault-handling on scope of services and in wider perspective 46 | x
  • 38. Thank You! Vennster Ronald van Luttikhuizen ronald.van.luttikhuizen@vennster.nl Trivadis AG Guido Schmutz guido.schmutz@trivadis.com BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 47 | x