Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOA-40: Getting Rejected on the Bus

Similar presentations


Presentation on theme: "SOA-40: Getting Rejected on the Bus"— Presentation transcript:

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


Download ppt "SOA-40: Getting Rejected on the Bus"

Similar presentations


Ads by Google