SlideShare a Scribd company logo
1 of 46
Download to read offline
Troubleshooting and Best Practices
with WSO2 Enterprise Integrator
Hasitha Abeykoon - Associate Technical Lead
1
Shakila Sivagnanarajah - Software Engineer
Agenda
• Overview
• Monitoring Logs
• Monitoring Messages
• Timeout Configurations
• Best Practices
2
Overview
What is Enterprise Integrator?
•
4
Integration Flow
Short-running Integration Flows
5
Monitoring Logs
Debug Logs
Enable Debug Logs
• Only few simple steps
- Shutdown the EI server
- open log4j.properties file from a text editor. The log4j.properties file is
located at <EI_HOME>/conf directory.
- Set log level to debug for log4j.category.org.apache.synapse as follows
log4j.category.org.apache.synapse=DEBUG
- Start EI server
• This will print useful information related to the mediation flow inside EI.
We can use this log for troubleshooting
7
Debug Logs
Sample Debug Logs
8
Trace Logs
• Trace logs trace the entire path when a message travels along a mediation
sequence.
• Tracing can be enabled for a proxy or for a sequence. This can be done by
adding the following attribute for the proxy/sequence configuration;
trace="enable"
• When tracing is enabled, trace logs can be seen from the
wso2-ei-trace.log file.
• This will provide more fine grained information than the debug logs
9
Trace Logs
Sample Trace Logs
•
10
Monitoring Messages
Monitoring Messages
Why message monitoring ?
• While developing integration scenarios with the EI, sometimes we might
get into situations where the expected results are not received for the
service invocations.
– Message payload sent by the EI is not in the format that is expected
by the backend service
– The content type of the sent message is not supported by the
backend service
– Some of the required headers like ‘Authorization Header’ is missing in
the request sent from the EI.
12
Monitoring Messages
How to monitor messages ?
• To inspect messages passed in the connections, we can
use three mechanisms.
– TCPMon
– WireLogs
– Wireshark
13
Monitoring with TCPMon
• Users can view and monitor the messages passed along a
TCP-based conversation using the TCPMon utility.
• We can use TCPMon tool to monitor messages going
through http transport towards EI and from EI.
• TCPMon is an Apache project distributed under Apache 2.0
License.
• TCPMon is not dependent on any third party libraries.
• Its user interface is based on a swing UI and works on
almost all platforms that support Java.
14
Monitoring with TCPMon
Starting TCPMon
• To run the TCPMon available with your WSO2 Carbon product pack:
1. Go to <PRODUCT_HOME>/bin directory of your product pack.
2. Execute the following command to run the tool.
For Windows
tcpmon.bat
For Linux
./tcpmon.sh
15
Monitoring with TCPMon
A sample:
• There are two connections
– Client-to-Proxy Service connection
– Proxy-to-Backend Server connection
16
Proxy Service
8280 9000
Backend ServerClient
Monitoring with TCPMon
Monitoring Client to EI Connection
17
Proxy Service
8280 9000
Backend ServerClient
TCPMon
8281
Monitoring with TCPMon
Monitoring Client
to EI Connection
18
Proxy
service
Monitoring with TCPMon
Monitoring EI to Backend Connection
19
Proxy Service
8280
9000
Backend ServerClient
TCPMon
9001
Monitoring with TCPMon
Monitoring EI to
Backend Connection
20
Proxy
service
Monitoring with TCPMon
Limitations
• Can monitor only HTTP (no HTTPS)
• Hard to use in a production system
21
Wirelogs
• WireLogs functionality is also used to monitor the
messages flowing through WSO2 EI over http
transport.
• It has the following advantages over TCPMon tool
– Can monitor messages going through https transport
– Do not need to change the synapse configuration
22
Wirelogs
Enable WireLogs
• You can enable wire logs by following these steps
– Shutdown the EI server
– Open log4j.properties file from a text editor. This file is located at the
<EI_HOME>/conf directory.
– Uncomment the following entry;
– Start the EI server
23
log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
Wirelogs
Wirelogs
Reading a WireLog
• To read a wire log, first we have to identify the message direction.
DEBUG - wire >> - Represent the message coming into the EI from the wire
DEBUG - wire << - Represent the message going into the wire from the EI
25
Proxy Service
8280 9000
Backend ServerClient
1 2
34
Wirelogs
26
Proxy Service
8280 9000
Backend ServerClient
1 2
34
Wireshark
• Wireshark is a network protocol analyzer captures packets in
real time and display them in human-readable format.
• Packet capture can provide information about individual
packets such as transmit time, source, destination, protocol
type and header data.
• Can monitor both HTTP and HTTPS requests
• No configuration changes needed
27
Wireshark
Data captured
for a sample
request
28
Timeout
Configurations
Troubleshooting Timeout Issues
Having a good understanding in different timeout configurations will certainly
help with troubleshoot issues.
30
Proxy Service
8280 9000
Backend ServerClient
HTTP Listener
(http.socket.timeout)
Timeout Handler
(synapse.global_timeout_interval)
Endpoint
(timeout)
HTTP Listener
(http.socket.timeout)
Troubleshooting timeout issues
Client-to-Proxy Connection Timeout Parameters
http.socket.timeout
● In the client-to-proxy connection we have to consider only one
configuration parameter. That is http.socket.timeout
● This represents the socket timeout value of the passthrough http/https
transport listener.
● This can be configured from the passthru-http.properties file.
● The default value is 180000.
31
Troubleshooting timeout issues
Proxy-to-Backend Connection Timeout Parameters
http.socket.timeout:
● This represents the socket timeout value of the passthrough http/https
transport sender. This is the same parameter used in transport listener.
Endpoint timeout:
● This is the timeout configuration parameter which can be configured at the
endpoint level.
● It allows us to configure different timeout values for different endpoints.
● For endpoints that doesn’t have a timeout configuration, the global
parameter value is considered as the timeout duration.
32
Troubleshooting timeout issues
Proxy-to-Backend Connection Timeout Parameters
synapse.global_timeout_interval:
● Synapse registers a callback for each backend service invocation.
● When the response is received, the registered callback is used to correlate
it with the request.
● If the backend server does not respond back, the TimeoutHandler will
clear the corresponding registered callback from the callback store.
● The ‘synapse.global_timeout_interval’ parameter represents the time
duration that a callback should be kept in the callback store.
33
Troubleshooting timeout issues
Proxy-to-Backend Connection Timeout Parameters
● Follow the formula
● Set the http.socket.timeout to a value higher than all other endpoint
timeout values.
34
Socket Timeout > max(Global endpoint timeout, Timeout of individual endpoints)
Best Practices
Designing the Solution
• Use the proper naming convention from the start.
• To create and manage artifacts, use WSO2 Enterprise Integrator Tooling
• Create specific ESB projects for specific use cases.
• If an ESB project contains many artifacts related to multiple use cases,
name the artifacts by prefixing or post fixing the use case name.
• Highly cohesive (strength of relationship among features in a module)
• Loosely coupled (interdependencies among modules)
36
<ProjectName>_<FileName>_<FileType>.<Extension>
Ex: Student_Student_Sequence.xml, Stocks_StockQuote_FileInbound.xml
Reusability of Configurations
• Improves readability and reusability
37
Sequence templatesEndpoint templates
<endpoint template="name" ...>
<parameter name="name"
value="value"/>
.....
</endpoint>
<call-template target="template" >
<parameter name="name"
value="value"/>
.....
</call-template>
Use of Mediators - Log Mediator
• When server runs smoothly -> shouldn’t print any logs
• But on an error -> should be enough logs to fix the
issue
• Use log mediators in fault sequences;
38
<log level="custom">
<property name="text" value="An unexpected error occurred"/>
<property name="message" expression="$ctx:ERROR_MESSAGE"/>
<property name="code" expression="$ctx:ERROR_CODE"/>
<property name="detail" expression="$ctx:ERROR_DETAIL"/>
<property name="exception" expression="$ctx:ERROR_EXCEPTION"/>
</log>
Use of Mediators - Service Invocation
39
proxy/REST API
invocation with a Send
mediator
proxy/REST API
invocation with a
Call/Callout mediator
Use of Mediators - No Mediators after
Send/Respond
40
Use of Mediators - Loopback Mediator
41
Use of Mediators - Sequence Mediator
42
Behaviour of Fault Sequence - onError
sequence
43
Behaviour of Fault Sequence - default
fault sequence
44
Test Environment
• Identical to production
• Load/performance tests (replicate production
use-cases)
• Endurance tests (long running tests)
• UAT (User Acceptance Tests)
45
THANK YOU
wso2.com
THANK YOU
wso2.com

More Related Content

What's hot

ISO 9001-2015 QMS Awareness & Interpretation Training.pdf
ISO 9001-2015 QMS Awareness & Interpretation Training.pdfISO 9001-2015 QMS Awareness & Interpretation Training.pdf
ISO 9001-2015 QMS Awareness & Interpretation Training.pdfManivannanVelayuthan
 
AI in India: A Strategic Necessity
AI in India: A Strategic NecessityAI in India: A Strategic Necessity
AI in India: A Strategic NecessitySocial Samosa
 
Iso awareness training
Iso awareness trainingIso awareness training
Iso awareness trainingmanojmridul
 
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...GustavoMaciel67
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management WSO2
 
Migrating from IBM API Connect v5 to v2018
Migrating from IBM API Connect v5 to v2018Migrating from IBM API Connect v5 to v2018
Migrating from IBM API Connect v5 to v2018Natalia Kataoka
 
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...apidays
 
Introduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsIntroduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsMario Cho
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi SpecPedro J. Molina
 
Use Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services IndustryUse Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services IndustryCelonis
 
Building an API Security Strategy
Building an API Security StrategyBuilding an API Security Strategy
Building an API Security StrategySmartBear
 
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)Nordic APIs
 
Driving Business Insights with a Modern Data Architecture AWS Summit SG 2017
Driving Business Insights with a Modern Data Architecture  AWS Summit SG 2017Driving Business Insights with a Modern Data Architecture  AWS Summit SG 2017
Driving Business Insights with a Modern Data Architecture AWS Summit SG 2017Amazon Web Services
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1SmartBear
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!Sven Bernhardt
 
How to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunHow to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunFibonalabs
 
AI Builder.pptx
AI Builder.pptxAI Builder.pptx
AI Builder.pptxHealthApp1
 

What's hot (20)

ISO 9001:2015 (QMS) Awareness Training
ISO 9001:2015 (QMS) Awareness TrainingISO 9001:2015 (QMS) Awareness Training
ISO 9001:2015 (QMS) Awareness Training
 
ISO 9001-2015 QMS Awareness & Interpretation Training.pdf
ISO 9001-2015 QMS Awareness & Interpretation Training.pdfISO 9001-2015 QMS Awareness & Interpretation Training.pdf
ISO 9001-2015 QMS Awareness & Interpretation Training.pdf
 
AI in India: A Strategic Necessity
AI in India: A Strategic NecessityAI in India: A Strategic Necessity
AI in India: A Strategic Necessity
 
Iso awareness training
Iso awareness trainingIso awareness training
Iso awareness training
 
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...
Visualizing Google Cloud 101 Illustrated References for Cloud Engineers and A...
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management
 
Migrating from IBM API Connect v5 to v2018
Migrating from IBM API Connect v5 to v2018Migrating from IBM API Connect v5 to v2018
Migrating from IBM API Connect v5 to v2018
 
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...
apidays Hong Kong - Attack API Architecture, Alvin Tam, Hong Kong Computer So...
 
Introduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsIntroduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. Applications
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
 
Use Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services IndustryUse Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services Industry
 
Building an API Security Strategy
Building an API Security StrategyBuilding an API Security Strategy
Building an API Security Strategy
 
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)
How Spotify Payments Creates APIs to Manage Complexity (Horia Jurcut)
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Driving Business Insights with a Modern Data Architecture AWS Summit SG 2017
Driving Business Insights with a Modern Data Architecture  AWS Summit SG 2017Driving Business Insights with a Modern Data Architecture  AWS Summit SG 2017
Driving Business Insights with a Modern Data Architecture AWS Summit SG 2017
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
 
The new ISO 9001:2015
The new ISO 9001:2015The new ISO 9001:2015
The new ISO 9001:2015
 
How to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunHow to implement Micro-frontends using Qiankun
How to implement Micro-frontends using Qiankun
 
AI Builder.pptx
AI Builder.pptxAI Builder.pptx
AI Builder.pptx
 

Similar to Troubleshooting and Best Practices with WSO2 Enterprise Integrator

Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorWSO2
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataGetInData
 
Observability for Integration Using WSO2 Enterprise Integrator
Observability for Integration Using WSO2 Enterprise IntegratorObservability for Integration Using WSO2 Enterprise Integrator
Observability for Integration Using WSO2 Enterprise IntegratorWSO2
 
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Marcin Bielak
 
OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable 17090AshikurRahman
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaMax Alexejev
 
Protocol
ProtocolProtocol
Protocolm_bahba
 
B.Eng-Final Year Project interim-report
B.Eng-Final Year Project interim-reportB.Eng-Final Year Project interim-report
B.Eng-Final Year Project interim-reportAkash Rajguru
 
Developing Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaDeveloping Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaJoe Stein
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performanceMarkTaylorIBM
 
NGINX Installation and Tuning
NGINX Installation and TuningNGINX Installation and Tuning
NGINX Installation and TuningNGINX, Inc.
 
WebLogic Stability; Detect and Analyse Stuck Threads
WebLogic Stability; Detect and Analyse Stuck ThreadsWebLogic Stability; Detect and Analyse Stuck Threads
WebLogic Stability; Detect and Analyse Stuck ThreadsMaarten Smeets
 
OnPrem Monitoring.pdf
OnPrem Monitoring.pdfOnPrem Monitoring.pdf
OnPrem Monitoring.pdfTarekHamdi8
 
(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for Development(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for DevelopmentBIOVIA
 
Tokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdfTokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdfssuser2ae721
 
VerneMQ - Distributed MQTT Broker
VerneMQ - Distributed MQTT BrokerVerneMQ - Distributed MQTT Broker
VerneMQ - Distributed MQTT BrokerAdriano Pimpini
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Idit Levine
 

Similar to Troubleshooting and Best Practices with WSO2 Enterprise Integrator (20)

Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
Observability for Integration Using WSO2 Enterprise Integrator
Observability for Integration Using WSO2 Enterprise IntegratorObservability for Integration Using WSO2 Enterprise Integrator
Observability for Integration Using WSO2 Enterprise Integrator
 
OMA Lightweight M2M
OMA Lightweight M2M OMA Lightweight M2M
OMA Lightweight M2M
 
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
 
OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable OOP - Basing Software Development on Reusable
OOP - Basing Software Development on Reusable
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
 
Protocol
ProtocolProtocol
Protocol
 
B.Eng-Final Year Project interim-report
B.Eng-Final Year Project interim-reportB.Eng-Final Year Project interim-report
B.Eng-Final Year Project interim-report
 
Developing Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaDeveloping Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache Kafka
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performance
 
NGINX Installation and Tuning
NGINX Installation and TuningNGINX Installation and Tuning
NGINX Installation and Tuning
 
WebLogic Stability; Detect and Analyse Stuck Threads
WebLogic Stability; Detect and Analyse Stuck ThreadsWebLogic Stability; Detect and Analyse Stuck Threads
WebLogic Stability; Detect and Analyse Stuck Threads
 
OnPrem Monitoring.pdf
OnPrem Monitoring.pdfOnPrem Monitoring.pdf
OnPrem Monitoring.pdf
 
(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for Development(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for Development
 
Tokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdfTokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdf
 
VerneMQ - Distributed MQTT Broker
VerneMQ - Distributed MQTT BrokerVerneMQ - Distributed MQTT Broker
VerneMQ - Distributed MQTT Broker
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017
 

More from WSO2

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in MinutesWSO2
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityWSO2
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...WSO2
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”WSO2
 

More from WSO2 (20)

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Troubleshooting and Best Practices with WSO2 Enterprise Integrator

  • 1. Troubleshooting and Best Practices with WSO2 Enterprise Integrator Hasitha Abeykoon - Associate Technical Lead 1 Shakila Sivagnanarajah - Software Engineer
  • 2. Agenda • Overview • Monitoring Logs • Monitoring Messages • Timeout Configurations • Best Practices 2
  • 4. What is Enterprise Integrator? • 4
  • 7. Debug Logs Enable Debug Logs • Only few simple steps - Shutdown the EI server - open log4j.properties file from a text editor. The log4j.properties file is located at <EI_HOME>/conf directory. - Set log level to debug for log4j.category.org.apache.synapse as follows log4j.category.org.apache.synapse=DEBUG - Start EI server • This will print useful information related to the mediation flow inside EI. We can use this log for troubleshooting 7
  • 9. Trace Logs • Trace logs trace the entire path when a message travels along a mediation sequence. • Tracing can be enabled for a proxy or for a sequence. This can be done by adding the following attribute for the proxy/sequence configuration; trace="enable" • When tracing is enabled, trace logs can be seen from the wso2-ei-trace.log file. • This will provide more fine grained information than the debug logs 9
  • 10. Trace Logs Sample Trace Logs • 10
  • 12. Monitoring Messages Why message monitoring ? • While developing integration scenarios with the EI, sometimes we might get into situations where the expected results are not received for the service invocations. – Message payload sent by the EI is not in the format that is expected by the backend service – The content type of the sent message is not supported by the backend service – Some of the required headers like ‘Authorization Header’ is missing in the request sent from the EI. 12
  • 13. Monitoring Messages How to monitor messages ? • To inspect messages passed in the connections, we can use three mechanisms. – TCPMon – WireLogs – Wireshark 13
  • 14. Monitoring with TCPMon • Users can view and monitor the messages passed along a TCP-based conversation using the TCPMon utility. • We can use TCPMon tool to monitor messages going through http transport towards EI and from EI. • TCPMon is an Apache project distributed under Apache 2.0 License. • TCPMon is not dependent on any third party libraries. • Its user interface is based on a swing UI and works on almost all platforms that support Java. 14
  • 15. Monitoring with TCPMon Starting TCPMon • To run the TCPMon available with your WSO2 Carbon product pack: 1. Go to <PRODUCT_HOME>/bin directory of your product pack. 2. Execute the following command to run the tool. For Windows tcpmon.bat For Linux ./tcpmon.sh 15
  • 16. Monitoring with TCPMon A sample: • There are two connections – Client-to-Proxy Service connection – Proxy-to-Backend Server connection 16 Proxy Service 8280 9000 Backend ServerClient
  • 17. Monitoring with TCPMon Monitoring Client to EI Connection 17 Proxy Service 8280 9000 Backend ServerClient TCPMon 8281
  • 18. Monitoring with TCPMon Monitoring Client to EI Connection 18 Proxy service
  • 19. Monitoring with TCPMon Monitoring EI to Backend Connection 19 Proxy Service 8280 9000 Backend ServerClient TCPMon 9001
  • 20. Monitoring with TCPMon Monitoring EI to Backend Connection 20 Proxy service
  • 21. Monitoring with TCPMon Limitations • Can monitor only HTTP (no HTTPS) • Hard to use in a production system 21
  • 22. Wirelogs • WireLogs functionality is also used to monitor the messages flowing through WSO2 EI over http transport. • It has the following advantages over TCPMon tool – Can monitor messages going through https transport – Do not need to change the synapse configuration 22
  • 23. Wirelogs Enable WireLogs • You can enable wire logs by following these steps – Shutdown the EI server – Open log4j.properties file from a text editor. This file is located at the <EI_HOME>/conf directory. – Uncomment the following entry; – Start the EI server 23 log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
  • 25. Wirelogs Reading a WireLog • To read a wire log, first we have to identify the message direction. DEBUG - wire >> - Represent the message coming into the EI from the wire DEBUG - wire << - Represent the message going into the wire from the EI 25 Proxy Service 8280 9000 Backend ServerClient 1 2 34
  • 27. Wireshark • Wireshark is a network protocol analyzer captures packets in real time and display them in human-readable format. • Packet capture can provide information about individual packets such as transmit time, source, destination, protocol type and header data. • Can monitor both HTTP and HTTPS requests • No configuration changes needed 27
  • 28. Wireshark Data captured for a sample request 28
  • 30. Troubleshooting Timeout Issues Having a good understanding in different timeout configurations will certainly help with troubleshoot issues. 30 Proxy Service 8280 9000 Backend ServerClient HTTP Listener (http.socket.timeout) Timeout Handler (synapse.global_timeout_interval) Endpoint (timeout) HTTP Listener (http.socket.timeout)
  • 31. Troubleshooting timeout issues Client-to-Proxy Connection Timeout Parameters http.socket.timeout ● In the client-to-proxy connection we have to consider only one configuration parameter. That is http.socket.timeout ● This represents the socket timeout value of the passthrough http/https transport listener. ● This can be configured from the passthru-http.properties file. ● The default value is 180000. 31
  • 32. Troubleshooting timeout issues Proxy-to-Backend Connection Timeout Parameters http.socket.timeout: ● This represents the socket timeout value of the passthrough http/https transport sender. This is the same parameter used in transport listener. Endpoint timeout: ● This is the timeout configuration parameter which can be configured at the endpoint level. ● It allows us to configure different timeout values for different endpoints. ● For endpoints that doesn’t have a timeout configuration, the global parameter value is considered as the timeout duration. 32
  • 33. Troubleshooting timeout issues Proxy-to-Backend Connection Timeout Parameters synapse.global_timeout_interval: ● Synapse registers a callback for each backend service invocation. ● When the response is received, the registered callback is used to correlate it with the request. ● If the backend server does not respond back, the TimeoutHandler will clear the corresponding registered callback from the callback store. ● The ‘synapse.global_timeout_interval’ parameter represents the time duration that a callback should be kept in the callback store. 33
  • 34. Troubleshooting timeout issues Proxy-to-Backend Connection Timeout Parameters ● Follow the formula ● Set the http.socket.timeout to a value higher than all other endpoint timeout values. 34 Socket Timeout > max(Global endpoint timeout, Timeout of individual endpoints)
  • 36. Designing the Solution • Use the proper naming convention from the start. • To create and manage artifacts, use WSO2 Enterprise Integrator Tooling • Create specific ESB projects for specific use cases. • If an ESB project contains many artifacts related to multiple use cases, name the artifacts by prefixing or post fixing the use case name. • Highly cohesive (strength of relationship among features in a module) • Loosely coupled (interdependencies among modules) 36 <ProjectName>_<FileName>_<FileType>.<Extension> Ex: Student_Student_Sequence.xml, Stocks_StockQuote_FileInbound.xml
  • 37. Reusability of Configurations • Improves readability and reusability 37 Sequence templatesEndpoint templates <endpoint template="name" ...> <parameter name="name" value="value"/> ..... </endpoint> <call-template target="template" > <parameter name="name" value="value"/> ..... </call-template>
  • 38. Use of Mediators - Log Mediator • When server runs smoothly -> shouldn’t print any logs • But on an error -> should be enough logs to fix the issue • Use log mediators in fault sequences; 38 <log level="custom"> <property name="text" value="An unexpected error occurred"/> <property name="message" expression="$ctx:ERROR_MESSAGE"/> <property name="code" expression="$ctx:ERROR_CODE"/> <property name="detail" expression="$ctx:ERROR_DETAIL"/> <property name="exception" expression="$ctx:ERROR_EXCEPTION"/> </log>
  • 39. Use of Mediators - Service Invocation 39 proxy/REST API invocation with a Send mediator proxy/REST API invocation with a Call/Callout mediator
  • 40. Use of Mediators - No Mediators after Send/Respond 40
  • 41. Use of Mediators - Loopback Mediator 41
  • 42. Use of Mediators - Sequence Mediator 42
  • 43. Behaviour of Fault Sequence - onError sequence 43
  • 44. Behaviour of Fault Sequence - default fault sequence 44
  • 45. Test Environment • Identical to production • Load/performance tests (replicate production use-cases) • Endurance tests (long running tests) • UAT (User Acceptance Tests) 45