WSO2 ESB - How to track messages between mediation flows

WSO2 ESB Services / APIs for Enterprise level applications, usually consume services deployed in other WSO2 products like DSS, BRS etc., or use services deployed in some legacy or third party application (can call, backend services) in order to complete the service request.

This means you have multiple endpoints configured and used, across different sequences encomposing the service.

Keeping track of these internal message flows between various services is important to debug service flows. This is more important and complex when debugging services which involves service timeouts and client or backend service errors.

Thankfully, as per the WS-Addressing specification, each message is assigned a unique message identifier or Message ID.
Synapse Engine takes care of the same and every Message is assigned an unique message ID.

Its available as MessageID and its a Synapse context message property that can be retrieved using the get-property() function in the Property mediator.

<property …

WSO2 ESB - Disable Endpoint Suspension

Endpoints An endpoint in simple terms is a URL (destination) that can be used by any WSO2 service which needs to send a message to that particular destination / API. 
The endpoints can be configured for both external services and also internal, peer services running inside the same ESB instance or the host system. 
One of the important configurations that is often overlooked are the endpoints error handling.  As any network oriented application, messages can get lost due to various tcp errors, connection timeouts, etc., Therefore for a successful and controlled behavior, endpoint error handling is very important. 
The default behavior of endpoints in WSO2 is, if messages in those endpoint are failed, the endpoint will be marked as "suspended" and thereby causing failure of the subsequent messages. 
This is more important if multiple internal services are consumed as part of an exposed Proxy service or API. To handle the different errors and timeouts from the internal servic…

Explore Endeca Workbench Architecture and embedded applications

Explore Endeca Workbench - Apache Sling Web Console
Oracle Commerce 11.2Workbench is an hybrid web application, housing the Experience Manager (XM), EAC console, Data sources (CAS crawls) etc., providing the bunch of capabilities for business users and also the content and system administrators to configure and administer the Endeca application.  The Endeca workbench application is made up of other well known technologies and applications like Apache Sling, a framework for RESTful web-applications, Apache Jackrabbit, a content repository complying to the JCR API, Apache Felix, etc.,
In this blog we can have a look at the Apache Sling configurations and capabilities that are exposed and available for fine tuning.
Apache Sling Simply put, Apache Sling is a framework for RESTful web applications, mapping HTTP request URLs to content resources based on the request's path, extension, etc.,
You can have a deep dive on Sling at the above link...

Apache Sling application exposes the configur…

What is STOMP...

STOMP - The Streaming (or Simple) Text Oriented Messaging Protocol
So, what is STOMP? Simply put, its a Text Oriented protocol for messaging between two applications or through a message broker. 
Officially it goes, STOMP provides an inter-operable wire format so that STOMP clients can communicate with any STOMP message broker to provide easy and widespread messaging interoperability among many languages, platforms and brokers.
STOMP is text-based and does not use binary protocols. It supports a range of core enterprise messaging features, such as authentication, messaging models like P2P & publish and subscribe, message acknowledgement, transactions, message headers & properties, etc.,
There are number of messaging protocols like AMQP, MQTT, etc., but STOMP stands out as one of the popular messaging protocols which is Text based. 
All leading Messaging brokers support STOMP protocol, for STOMP compliant message brokers refer here.
A nice comparison between leading messaging prot…

Endeca Baseline Indexing Issue - Perl Script Error

Baseline Indexing Issue Fix - Perl script errorCan't locate in @INC
Can't locate in @INC (@INC contains: /tmp/original_perl_build_dir/lib/5.8.3/x86_64-linux /tmp/original_perl_build_dir/lib/5.8.3 /tmp/original_perl_build_dir/lib/site_perl/5.8.3/x86_64-linux /tmp/original_perl_build_dir/lib/site_perl/5.8.3 /tmp/original_perl_build_dir/lib/site_perl .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Sometimes when Baseline or Partial indexing may fail while executing any utility scripts, with "Perl" script error, as above ( check the below screenshots for reference..) 

To fix this error, follow the below steps: Check if the PlatformServices are running in Endeca Server  (eg- using ps -ef | grep java )naviage to /opt/endeca/PlatformServices/11.2.0/tools/server/binExecute ./shutdown.shnavigate to /opt/endeca/PlatformServices/workspace/setupExecute the following command - source installer_sh.ininavigate back to /opt/endeca/PlatformS…

Catalog Maintenance System - Manual process

Catalog Maintenance System  Catalog Maintenance System - CMS, is a set of batch process and dynamic services that updates catalog, category and product relationships.

The service can be executed by various methods.

Manual invocationScheduled serviceAutomatic invocation after project deployments

In this post, we can see how to manually invoke the CMS process. 
Step-by-step guideLogin into dyn/admin of the server (http://<IP>:<port>/dyn/admin/)Goto Commerce adminstration page -> Basic Catalog Maintenance1.http://<IP>:<port>/dyn/admin/atg/commerce/admin/en/maintenance/startService.jhtml?process=BasicMaintProcessClick on Start Process  The process should end without any errors   Execute Baseline Index

WSO2 - Registry setup

All WSO2 products are shipped with a built-in registry, supported by the H2 Database packaged with the product. Though its sufficient for many applications, its not recommended for Enterprise integration applications and Production environments.

In our case the ESB registry is mounted with WSO2 Governance Registry (GREG). The below steps can be used to change the ATOM based registry mount (default) with JDBC based mount.

The following example was implemented on the systems which had deployed resources and services, servicing other applications.

GREG 1. In GREG, replace WSO2_CARBON_DB in master-datasources.xml with JDBC details.

   <description>The datasource used for registry and user manager</description>
   <definition type="RDBMS">