Download presentation
Presentation is loading. Please wait.
1
SOA-40: Getting Rejected on the Bus
How OpenEdge® Developers Deal with Failure David Cleary Principal Software Engineer
2
Aristotle – Greek philosopher
“It is possible to fail in many ways… while to succeed is possible in only one way” Aristotle – Greek philosopher SOA-40: Getting Rejected on the Bus
3
OpenEdge and Sonic™ ESB
You can align business and IT goals using Sonic and OpenEdge in your SOA You can create robust and flexible business applications You can handle failures in your infrastructure, applications, or data SOA-40: Getting Rejected on the Bus
4
Agenda Sonic ESB Endpoints Faults and rejected messages
Dealing with rejection on the bus Sonic ESB Endpoints Faults and rejected messages Quality of Service (QOS) and Message Time To Live (TTL) Application architecture and AppServer™ operating modes Fault processing options AppServer Down!!!! SOA-40: Getting Rejected on the Bus
5
Terminology Service Process Container
Your OpenEdge based application exposed to Sonic ESB through the Sonic Adapter Process A Sonic ESB process that uses an itinerary to execute 1 or more operations on 1 or more services Container A Sonic managed executable process that hosts processes and services SOA-40: Getting Rejected on the Bus
6
Sonic ESB Endpoints Destination where ESB services and processes send and receive messages Can be associated with a Queue or Topic 4 defined Endpoint types for Services Entry (required for services) Exit (usually ReplyTo) Fault RME SOA-40: Getting Rejected on the Bus
7
OpenEdge ESB Adapter Architecture
Entry Endpoint Fault Endpoint AppServer Adapter Rejected Endpoint Database Exit Endpoint SOA-40: Getting Rejected on the Bus
8
Faults and Rejected Messages
Invalid message types Invalid data Adapter exceptions Failure to send result Fault Messages Infrastructure issues Applications errors (RETURN ERROR) Service has Fault and Rejected Message endpoints SOA-40: Getting Rejected on the Bus
9
Anatomy of a Rejected Message
<SOAP-ENV:Body> <xq:rejectedMessageInfo xmlns:xq=“…"> <rejectedCode>OPENEDGE_INVOCATION_ERROR</rejectedCode> <rejectedLocation container="dev_OpenEdgeTest" host="pcdcleary" process="CheckCustomer" serviceApplication="dev.OpenEdge" step="Find Customer" topLevelProcess="CheckCustomer"/> <rejectedDetails> {Error message and stack trace} </rejectedDetails> SOA-40: Getting Rejected on the Bus
10
Anatomy of a Fault Message
<exception xmlns=“…"> <message>Fault String: SessionPool : NoAvailableSessions[Could not connect to the AppServer: General Error: Connection refused: connect. (7203)]</message> <class>com.progress.open4gl.dynamicapi.SessionPool.NoAvailableSessionsException</class> <detail> <faultDetails container="dev_OpenEdgeTest" host="pcdcleary" process="CheckCustomer" serviceApplication="dev.OpenEdge" step="Find Customer" topLevelProcess="CheckCustomer" /> </detail> <faultDetails container="dev_OpenEdgeTest" host="pcdcleary" process="CheckCustomer" serviceApplication="dev.OpenEdge" step="Find Customer" topLevelProcess="CheckCustomer" /> < message> Fault String: SessionPool : NoAvailableSessions[Could not connect to the AppServer: General Error: Connection refused: connect. (7203)] </message> <class> com.progress.open4gl.dynamicapi.SessionPool.NoAvailableSessionsException </class> SOA-40: Getting Rejected on the Bus
11
Quality of Service Best Effort At Least Once Exactly Once Default
Messages may be lost or redelivered At Least Once No lost messages May be redelivered Exactly Once Most reliable No lost or redelivered messages SOA-40: Getting Rejected on the Bus
12
Message Time To Live Specifies a timeout on a process
Messages that timeout sent to RME Default is 0 (no timeout) SOA-40: Getting Rejected on the Bus
13
Configuring Properties
Service Fault and Rejected Message endpoints Can be overridden by process Endpoint Entry endpoint specifies QOS Process sets minimum QOS Process Time to Live SOA-40: Getting Rejected on the Bus
14
Application Architecture and Operating Modes
Sonic container and OpenEdge AppServer treated as single unit Sonic provides networking Fewer faults due to AppServer availability ESB Service and OpenEdge AppService same Session-free operating mode recommended Each operation does complete unit of work No state saved on AppServer Persistent procedures defeat this architecture SOA-40: Getting Rejected on the Bus
15
Session-managed and Persistent Procedure Issues
Requires three calls for a single operation Saves state on AppServer even with Session-free AppServer still bound due to fault or rejected message Limits scalability Enable Intra-Container messaging to mitigate issues SOA-40: Getting Rejected on the Bus
16
Fault Processing Options
Settable per operation Fault Only (Default) Original message lost Fault and Original message Original message can be remediated and resubmitted Rejected and Original message Same as above, but rejected format Continue process with Fault SOA-40: Getting Rejected on the Bus
17
Fault Processing Options
SOA-40: Getting Rejected on the Bus
18
Booking a Vacation Coordinator Service Flight Booking Hotel Booking
Client Flight Booking Hotel Booking Car Booking SOA-40: Getting Rejected on the Bus
19
Book Hotel Room Process
SOA-40: Getting Rejected on the Bus
20
Checking Availability
Yes, there are rooms available Process/transaction continues No, there are not rooms available Entire transaction fails I don’t know if rooms are available AppServer down No available agents SOA-40: Getting Rejected on the Bus
21
Fix problem and resubmit
SOA-40: Getting Rejected on the Bus
22
AppServer Down Demo!!! SOA-40: Getting Rejected on the Bus
23
Agenda Sonic ESB Endpoints Faults and rejected messages
Dealing with rejection on the bus Sonic ESB Endpoints Faults and rejected messages Quality of Service (QOS) and Message Time To Live (TTL) Application architecture and AppServer operating modes Fault processing options AppServer Down!!!! SOA-40: Getting Rejected on the Bus
24
In Summary You can align business and IT goals using Sonic and OpenEdge You can create robust and flexible business applications You can handle failures in your infrastructure, applications, or data SOA-40: Getting Rejected on the Bus
25
For More Information, go to…
PSDN Introducing Native Invocation with the OpenEdge Adapter for Sonic ESB Progress Sonic ESB Developers Guide - Resubmit Sample Progress eLearning Community: OpenEdge Development with Sonic ESB Designing ESB Processes Orchestrating Services with Sonic BPEL Server SOA-40: Getting Rejected on the Bus
26
Relevant Exchange Sessions
SOA-11: Common Applications for Sonic ESB SOA-23: Enterprise Integration Patterns in Sonic ESB SOA-30: Getting the Most Out of Sonic Workbench SOA-33: Transactions in an SOA World SOA-40: Getting Rejected on the Bus
27
? Questions SOA-40: Getting Rejected on the Bus
28
Thank You SOA-40: Getting Rejected on the Bus
29
SOA-40: Getting Rejected on the Bus
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.