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

Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventAraf Karsh Hamid
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key TokenYuichi Nakamura
 
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...apidays
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC OverviewArin Sime
 
01 - Introduction to Hyperledger : A Blockchain Technology for Business
01 - Introduction to Hyperledger : A Blockchain Technology for Business01 - Introduction to Hyperledger : A Blockchain Technology for Business
01 - Introduction to Hyperledger : A Blockchain Technology for BusinessMerlec Mpyana
 
SAML VS OAuth 2.0 VS OpenID Connect
SAML VS OAuth 2.0 VS OpenID ConnectSAML VS OAuth 2.0 VS OpenID Connect
SAML VS OAuth 2.0 VS OpenID ConnectUbisecure
 
Understanding private blockchains
Understanding private blockchainsUnderstanding private blockchains
Understanding private blockchainsCoin Sciences Ltd
 
Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesLINE Corporation
 
Intro to Microsoft Cognitive Services
Intro to Microsoft Cognitive ServicesIntro to Microsoft Cognitive Services
Intro to Microsoft Cognitive ServicesAmanda Lange
 
Blockchain Interoperability using Cosmos Interblockchain Communication
Blockchain Interoperability using Cosmos Interblockchain CommunicationBlockchain Interoperability using Cosmos Interblockchain Communication
Blockchain Interoperability using Cosmos Interblockchain CommunicationChjango Unchained
 
Polkadot Presentation
Polkadot PresentationPolkadot Presentation
Polkadot Presentationgavofyork
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 

What's hot (20)

Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - Clavent
 
Pub/Sub Messaging
Pub/Sub MessagingPub/Sub Messaging
Pub/Sub Messaging
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key Token
 
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...
apidays Helsinki & North 2023 - API Security in the era of Generative AI, Mat...
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 
01 - Introduction to Hyperledger : A Blockchain Technology for Business
01 - Introduction to Hyperledger : A Blockchain Technology for Business01 - Introduction to Hyperledger : A Blockchain Technology for Business
01 - Introduction to Hyperledger : A Blockchain Technology for Business
 
OAuth
OAuthOAuth
OAuth
 
OpenID for SSI
OpenID for SSIOpenID for SSI
OpenID for SSI
 
Cloud Pub_Sub
Cloud Pub_SubCloud Pub_Sub
Cloud Pub_Sub
 
OAuth2 + API Security
OAuth2 + API SecurityOAuth2 + API Security
OAuth2 + API Security
 
SAML VS OAuth 2.0 VS OpenID Connect
SAML VS OAuth 2.0 VS OpenID ConnectSAML VS OAuth 2.0 VS OpenID Connect
SAML VS OAuth 2.0 VS OpenID Connect
 
Understanding private blockchains
Understanding private blockchainsUnderstanding private blockchains
Understanding private blockchains
 
Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker services
 
Intro to Microsoft Cognitive Services
Intro to Microsoft Cognitive ServicesIntro to Microsoft Cognitive Services
Intro to Microsoft Cognitive Services
 
OAuth 2.0
OAuth 2.0OAuth 2.0
OAuth 2.0
 
Blockchain Interoperability using Cosmos Interblockchain Communication
Blockchain Interoperability using Cosmos Interblockchain CommunicationBlockchain Interoperability using Cosmos Interblockchain Communication
Blockchain Interoperability using Cosmos Interblockchain Communication
 
Polkadot Presentation
Polkadot PresentationPolkadot Presentation
Polkadot Presentation
 
Hyperledger Fabric
Hyperledger FabricHyperledger Fabric
Hyperledger Fabric
 
Api presentation
Api presentationApi presentation
Api presentation
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 

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

Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
WSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the CloudWSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the CloudWSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 

More from WSO2 (20)

Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
WSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the CloudWSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the Cloud
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Recently uploaded

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

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