Mulesoft Interview Questions
1. What is Mule ?
Mule ESB (a.k.a. Mule) is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications quickly and easily, enabling them to exchange data. Mule ESB enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more.
2. What is ESB?
An enterprise service bus (ESB) is software architecture for middleware that provides fundamental services for more complex architectures. For example, an ESB incorporates the features required to implement a service-oriented architecture (SOA). In a general sense, an ESB can be thought of as a mechanism that manages access to applications and services (especially legacy versions) to present a single, simple, and consistent interface to end-users via Web- or forms-based client-side front end.
3. What are all the Primitives used in Mediation?
We have different types of primitives in mediation.
Message Element Setter
4. What is Shared Context?
Shared Context: Context is a temporary area which is created along with Service Message Object (SMO) in the Mediation Flows. Shared Context is a type of context which is present in the SMO. Shared Context is mainly used when we are using Aggregation process where we need to iterate the BO for Certain times. Shared Context maintains Aggregation data between Aggregation primitives. The Content (data) which is present in the shared context BO does not persist across Request and Response flows i.e. The Data in the Shared Context which is used in Request flow cannot be used again in Response flow.
5. What is Transient Context?
Transient Context: Used for passing values between Mediation primitives within the current flow — either the request flow or the responses flow. The transient context cannot link requests and responses and hence cannot be used across.
Used when you want to save an input message before a service invokes call (within a request or response flow). After the services invoke call, the next primitive can create another message by combining the service invoke response and the original message stored in the transient context.
6. What is Correlation Context?
Correlation Context: Used when Mediation primitives want to pass values from the request flow to the response flow.
Used to pass values from the request message onto the response.
7. Difference between Callout and Service Invoke?
Service Invoke: The Service Invoke primitive is used to make a service request in either a request or response mediation flow. The service may be Request/Response or One-Way. Multiple instances of the Service Invoke primitive are permitted in a flow, allowing a series of service invocations to be performed.
Callout: The Callout receives the message and calls the requested service and operation. There is a Callout node for each connected target operation in the mediation flow.
– If the call is successful, the Callout Response node in the response flow receives the response message.
– If the call is unsuccessful, the Callout can be set to retry service invocations depending on the type of fault received.
8. How can you implement a loop in mediation?
By using Fan-in and Fan-out primitive.
9. What is the functionality of Fan-in and Fan-out?
Fan-out: We can use the Fan Out primitive to fire the output terminal once (with the input message) or to fire the output terminal multiple times. You can use Fan Out in isolation or as part of a Fan Out and Fan In combination.
Fan-In: Fan In is always partnered with a Fan Out in the same flow and acts as a decision point for when to continue flow execution. It receives a number of messages until a decision point is reached, at which point the last message to be received is propagated to the output terminal. The Fan In primitive may only be used in combination with Fan Out.
10. How can you change the runtime changes using mediation primitive?
We have future called Promotable properties in ESB. We can configure this future while development. Then we can make it changed at runtime without restarting the server it can be published.
11. What are all the configurations required for JDBC Adapter implementation?
Data Source needs to be created and need to configure with DB. If we have security, then need to created security authentication.
12. What is the Difference between SDO and SMO?
SDO: Service Data Object is the representation of the variable or Object.
SMO: The SMO model is a pattern for using SDO Data Objects to represent messages
13. What is the Difference between Stop and fail?
Stop: Stops a particular path in the flow, without generating an exception.
Fail: Generates a failure in the flow.
14. Why am I getting ‘Unable to get resource from repository’ while building the Mule examples?
If you are getting this error message while building the Mule examples:
[WARNING] Unable to get resource from repository atlassian-m2-repository (http://repository.atlassian.com/maven2)
[WARNING] Unable to get resource from repository atlassian-m1-repository (http://repository.atlassian.com)
[WARNING] Unable to get resource from repository Codehaus (http://repository.codehaus.org/)
[WARNING] Unable to get resource from repository codehaus-snapshots (http://snapshots.repository.codehaus.org)
[ERROR] BUILD ERROR
[INFO] Failed to resolve artifact.
You may need to change the version value of the dependency in the pom.xml, for instance,
The issue regarding dependencies review is tracked at MULE-1446.
15. How to use Mule HQ with Mule?
Add the following code snippet to your Mule configuration:
<!-- starts an RMI registry on the default port 1099. -->
Start your Mule instance.
Ensure the HQ agent is running on the server the Mule instance is configured on and is pointing to the desired HQ server.
Check the Mule HQ server page to see if information about the Mule instance is being received.
16. What is a Mule UMO?
A Mule UMO is a Universal Message Object
UMO is now a legacy term. What was once referred to as UMO Components are now referred to as Service Components?
17. Mule won’t start? Check your Environment?
The java and mule environment variables must be setup correctly for mule to start. If you are experiencing problems check the following variables:
MULE_HOME – should be the location of the mule install
JAVA_HOME – should be the location of the JDK
PATH – should have both JAVA_HOMEbin and MULE_HOMEbin in the path.
Check all of the above carefully. Some systems with multiple JDK’s installed can end up with incorrect mappings between the PATH and the JAVA_HOME, which will stop mule from loading.
18. How to add classes/jars to the Mule class path?
Use the MULE_LIB variable (generally set in the run script)
To include JAR file(s) in a mule class path, declare each dependent jar file in the MULE_LIB entry.
For spring resource, if the XML bean declaration is placed within a project, include the project JAR file in the class path too (i.e., if not included, Mule will throw a **.xml not found on class path)
19. How to configure a simple FTP handler in Mule?
20. What is Mule Data Integrator?
Mule has released a data integrator tool, it is a visual mapping tool which supports flat file, java object, XML mappings, etc. Coding complex mappings can be very tedious and additionally difficult to maintain, the mule data integrator with drag and drop facilities makes building and maintaining mappings very simple.
The mapping is done in eclipse (plugins required) and executed on a data integrator runtime which sits on top of Mule ESB – this requires a license.
21. Where to find the class Abstract Mule Test Case?
This is in 1.4/1.4.1 distributions but was missing from the 1.3.3 distribution – the class is defined in <mulehome>/lib/mule/mule-core-<version>.jar.
Our design of course tutorials and interview questions is practical and informative. At TekSlate, we offer resources to help you learn various IT courses. We avail both written material and demo video tutorials. For in-depth knowledge and practical experience explore online mule ESB Training.
Messaging framework to an enterprise-wide highly distributable object broker.
22. What Difficulties Mule Does Encompass?
Transport: applications can accept input from a variety of means, from the file system to the network.
Data format: speaking the right protocol is only part of the solution, as applications can use almost any form of representation for the data they exchange.
Invocation styles: synchronous, asynchronous, or batch call semantics entail very different integration strategies.
Lifecycles: applications of different origins that serve varied purposes tend to have disparate development, maintenance, and operational lifecycles.
23. Why Mule Was Designed?
Mule’s core was designed as an event-driven framework combined with a unified representation of messages, expandable with pluggable modules. These modules would provide support for a wide range of transports or add extra features, such as distributed transactions, security, or management. Mule was also designed as a programmatic framework offering programmers the means to graft additional behavior such as specific message processing or custom data transformation.
24. Why the Name Mule?
There is a lot of infrastructure work to be done before we can really start thinking about implementing any logic. So this infrastructure work is regarded as “donkey work” as it needs doing for every project. A Mule is also commonly referred to as a carrier of load, moving it from one place to another. The load it specializes in moving is our enterprise information.
25. What Are Available Esbs Apart From Mule?
All major JEE vendors (BEA, IBM, Oracle, Sun) have an ESB in their catalog. It is unremarkably based on their middleware technologies and is usually at the core of a much broader SOA product suite. There are also some commercial ESBs that have been built by vendors not in the field of JEE application servers, like the ones from Progress Software, IONA Technologies, and Software AG.
26. What Are Differences Between Mule And Other Commercial Esbs ?
Prescriptive deployment model, whereas Mule supports a wide variety of deployment strategies. Prescriptive SOA methodology, whereas Mule can embrace the architectural style and SOA practices in place where it is deployed. Mainly focused on higher-level concerns, whereas Mule deals extensively with all the details of integration. Strict full-stack web service orientation, whereas Mule’s capacities as an integration framework open it to all sorts of other protocols. Comprehensive documentation, a subject on which MuleSource has made huge progress recently.
27. What Is Model Layer In Mule?
The first logical layer is the model layer. A Mule model represents the runtime environment that hosts services. It defines the behavior of Mule when processing requests handled by services. The model provides services with supporting features, such as exception strategies. It also provides services with default values that simplify their configuration.
28. What Is Service Layer In Mule?
A Mule service is composed of all the Mule entities involved in processing particular requests in predefined manners. A service is defined by a specific configuration. This configuration determines the different elements, from the different layers of responsibility that will be mobilized to process the requests that it will be open to receive. Depending on the type of input channel it uses, a service may or may not be publicly accessible outside of the ESB.
29. What Is Transport Layer In Mule?
The transport layer is in charge of receiving or sending messages. This is why it is involved with both inbound and outbound communications. A transport manifests itself in the configuration by the following elements: connectors, endpoints and transformers.
A transport also defines one message adapter. A message adapter is responsible for extracting all the information available in a particular request (data, meta information, attachments, and so on) and storing them in transport-agnostic fashion in a Mule message.
30. What Is Connector In Mule?
A connector is in charge of controlling the usage of a particular protocol. It is configured with parameters that are specific to this protocol and holds any state that can be shared with the underlying entities in charge of the actual communications.
For example: a JMS connector is configured with a Connection, which is shared by the different entities in charge of the actual communication.
31. What Is Endpoint In Mule?
An endpoint represents the specific usage of a protocol, whether it is for listening/polling, reading from, or writing to a particular target destination. Hence it controls what underlying entities will be used with the connector they depend on. The target destination itself is defined as a URI. Depending on the connector, the URI will bear a different meaning; for example, it can represent a URL or a JMS destination.
32. What Is Transformer In Mule?
A transformer takes care of translating the content of a message from one form to another. It is possible to chain transformers to cumulate their effects. Transformers can kick in at different stages while a message transits through a service.
33. What Is Router In Mule?
Routers play a crucial role in controlling the trajectory a message will follow when it transits in Mule. They are the gatekeepers of the endpoints of a service, taking care of keeping messages on the right succession of tracks so they can reach their intended destinations. Certain routers act like the big classification yards: they can split, sort, or regroup messages based on certain conditions.
34. What Is Filter In Mule?
Filters are a powerful complement to the routers. Filters provide the brains routers need to make smart decisions about what to do with messages in transit. Some filters go as far as deeply analyzing the content of a message for a particular value on which their outcome will be based.
35. What Is Component In Mule?
Components are the centerpiece of Mule’s services. Each service is organized with a component at its core and inbound and outbound routers around it. Components are used to implement a specific behavior in a service. This behavior can be as simple as logging messages or can go as far as invoking other services. Components can also have no behavior at all; in that case they are pass-through and make the service act as a bridge between its inbound and outbound routers.
36. How Message In Mule Is Composed?
A Mule message is composed of different parts: The payload, which is the main data content carried by the message.
The properties, which contain the meta information much like the header of a SOAP envelope or the properties of a JMS message. Optionally, multiple named attachments, to support the notion of multipart messages.
Optionally, an exception payload, which holds any error that occurred during the processing of the event.
37. What Are Configuration Builders In Mule ?
Mule uses configuration builders that can translate a human-authored configuration file into the complex graph of objects that constitutes a running node of this ESB. The main builders are of two kinds: a Spring-driven builder, which works with XML files, and a script builder, which can accept scripting language files.
38. Why Spring-driven Configuration Builder Is Important Than Script Builder ?
The advantages of Spring-driven configuration builder
It is the most popular — you are more likely to find examples using this syntax.
It is the most user friendly — Spring takes care of wiring together all the moving parts of the ESB, something you must do by hand with a script builder.
It is the most expressive — dedicated XML schemas define the domain-specific language of Mule, allowing you to handle higher-level concepts than the scripting approach does.
39. What Is Bridge Component In Mule?
A bridge component is used to pass the messages from the inbound router to the outbound one. A bridge is a neutral component: it does not perform any action or modify messages that it processes.
40. What Tags Are Used To Configure Spring Elements In Mule?
Tags like <spring:bean/> <spring:entry/> etc. are used to configure spring stuff.
41. What Are Available Approaches Used For Modularizing Configurations In Mule?
There are different following approaches that can be used when modularizing a configuration.
Independent configurations – a Mule instance can load several independent configuration files side by side.
Inherited configurations – main idea is to express a formal parent-child dependency between two configurations. By strongly expressing this dependency, you will have the guarantee at boot time that no configuration file has been omitted. Simply by using the same name for the parent and child models and by flagging the child as being an heir, as shown here:
<model name="myConfig" inherit="true">
Imported configurations – You can easily import external Spring application context files into your Mule configuration files. The following illustrates how instance.xml would import its Spring context file:
<spring:import resource="instance-beans.xml" />
Heterogeneous configurations – It is possible to mix several styles of Mule configuration in an instance. An instance can be configured with a Groovy script and Spring XML configuration builders.
42. Give An Example Of Stdio Connector In Mule?
<stdio:connector name="SystemStreamConnector" promptMessage="Please enter something: " messageDelayTime="1000"/>
43. Give An Example Of Http Connector In Mule?
44. When Does Mule Instantiates A Connector?
If Mule figures out that one of our endpoints needs a particular connector, it will automatically instantiate one for us, using all the default values for its different configuration parameters. This is a perfectly viable approach if we are satisfied with the behavior of the connector when it uses its default configuration. This is often the case for the VM or HTTP transports. Note that Mule will name these default connectors with monikers such as connector.http.0.
45. What Is Transport Service Descriptor In Mule?
The connector has a technical configuration known as the Transport Service Descriptor (TSD). This hidden configuration is automatically used for each instance of the connector. It defines technical parameters such as what classes to use for the message receivers, requesters, and dispatchers; or the default transformers to use in inbound, outbound, and response routers. Knowing these default values is essential to grasping the behavior of a transport.
46. How Many Endpoints Are There In Mule?
There are two endpoints:
You will use inbound and outbound endpoints to communicate between components and services inside Mule as well as with the outside world.
47. What Is An Outbound Endpoint In Mule?
Outbound endpoints are used to send data. An outbound endpoint is used to do things such as send SOAP messages, write to file streams, and send email messages.
48. What Is Global Endpoint In Mule?
An endpoint destination that is shared by several routers, it is worth creating a global endpoint. A global endpoint is not typified for inbound or outbound routing, making it usable in many different places in a configuration file. It must be named so it can actually be used in a service, which will reference the global endpoint by its name. A global endpoint can also help clarify the usage of a particular destination.
49. Why Does An Endpoint In Mule Offer An Address Attribute?
This allows us to configure a generic endpoint using the Mule 1.x style of URI-based destination addresses instead of the dedicated attributes of the specific endpoint element.
50. Give An Example Of File Endpoint In Mule?
<file:endpoint name="tmpPoller" path="/tmp" fileAge="1000"pollingFrequency="2000"/>
51. What Is Streaming Property In File Connector In Mule?
The value of this streaming property can be either true or false. If it is set to true then we are actually working on stream of file data otherwise we are working with file itself.
52. What Is Polling frequency Property In File Connector In Mule?
When we want file inbound endpoints to poll their source directories for new content. This is accomplished by setting the polling Frequency to some milliseconds value.
53. What Is Auto delete Property in File Connector in Mule?
The default value of auto Delete is true. Therefore, a file inbound endpoint will, by default, remove the file from the source directory once it is read by the inbound endpoint. If you do not want to delete file automatically then you can set auto Delete property to false.
54. What Is Fileage Property In File Connector In Mule?
The fileAge property specifies how long the endpoint should wait before reading the file again. For instance, a fileAge of 60000 indicates Mule should wait a minute before processing the file again.
55. How To Send Only Certain Types Of File From One Directory To Another In Mule?
Use the below element in file inbound to filter certain types of files.
<file:filename-wildcard-filter pattern="file*.xml"/></file:inbound-endpoint> pattern indicates what pattern of file names should move from one directory to another directory.
56. What Is Vm Transport In Mule?
The VM transport is a special kind of transport that you’ll use to send messages via memory. These messages never leave the JVM the Mule instance is running in.
57. What Is Multicasting Router In Mule?
The multicasting router can send messages to multiple endpoints over different transports. The multicasting router allows you to easily move the same messages across these different endpoints.
58. What Is Mule Transformer?
It is an event, more specifically an instance of org.mule.api.MuleEvent. This object carries not only the actual content of the message but also the context of the event.
59. What Is Mule Context?
The Mule context is composed of references to different objects, including security credentials, if any, the session in which the request is processed. All internals of the ESB are accessible through Mule context
60. What Is Payload In Mule?
The content of a message, also known as payload. It is wrapped in an instance of org.mule.api.MuleMessage, which provides different means of accessing the payload under different forms. A Mule Message also contains properties, much like the header of a SOAP envelope or the properties of a JMS message, and can also have multiple named attachments.
61. What Are Different Type Of Messages In Mule ?
Bridge messages: Pass messages from inbound to outbound routers.
Echo and log messages: Log messages and move them from inbound to outbound routers.
Build messages: Create messages from fixed or dynamic values
62. Do I Need An Esb?
Mule and other ESBs offer real value in scenarios where there are at least a few integration points or at least 3 applications to integrate. They are also well suited to scenarios where loose coupling, scalability and robustness are required.
63. Why Mule Esb?
Mule ESB is lightweight but highly scalable, allowing you to start small and connect more applications over time. Mule manages all the interactions between applications and components transparently, regardless of whether they exist in the same virtual machine or over the Internet, and regardless of the underlying transport protocol used.
There are currently several commercial ESB implementations on the market. However, many of these provide limited functionality or are built on top of an existing application server or messaging server, locking you into that specific vendor. Mule is vendor-neutral, so different vendor implementations can plug in to it. You are never locked in to a specific vendor when you use Mule.
64) What is a REST web service?
Representational State Transfer (REST) is an architectural style that specifies constraints, such as the uniform interface, that if applied to a web service induces desirable properties, such as performance, scalability, and modifiability that enable services to work best on the Web.
65) What are the advantages of RESTful web services?
Advantages of RESTful Web Services
Fast: RESTful Web Services are fast because there is no strict specification like SOAP. It consumes less bandwidth and resource.
Language and Platform independent: RESTful web services can be written in any programming language and executed in any platform.
Can use SOAP: RESTful web services can use SOAP web services as the implementation.
Permits different data format: RESTful web service permits different data format such as Plain Text, HTML, XML and JSON.
66) What is SOAP Web Service?
SOAP stands for Simple Object Access Protocol. It is a XML-based protocol for accessing web services. SOAP is a W3C recommendation for communication between two applications.
SOAP is XML based protocol. It is platform independent and language independent. By using SOAP, you will be able to interact with other programming language applications.
67) What are the advantages of Soap Web Services?
WS Security: SOAP defines its own security known as WS Security.
Language and Platform independent: SOAP web services can be written in any programming language and executed in any platform.
Disadvantages of Soap Web Services:
Slow: SOAP uses XML format that must be parsed to be read. It defines many standards that must be followed while developing the SOAP applications. So it is slow and consumes more bandwidth and resource.
WSDL dependent: SOAP uses WSDL and doesn’t have any other mechanism to discover the service.
68) What is the difference between SOAP and REST?
SOAP -> REST
1. SOAP is a protocol. -> REST is an architectural style.
2. SOAP stands for Simple Object Access Protocol. -> REST stands for Representational State Transfer.
3. SOAP can’t use REST because it is a protocol. -> REST can use SOAP web services because it is a concept and can use any protocol like HTTP, SOAP.
4. SOAP uses services interfaces to expose the business logic. -> REST uses URI to expose business logic.
5. SOAP defines standards to be strictly followed. -> REST does not define too much standards like SOAP.
6. SOAP defines standards to be strictly followed. -> REST does not define too much standards like SOAP.
7. SOAP requires more bandwidth and resource than REST. -> REST requires less bandwidth and resource than SOAP.
8. SOAP defines its own security. -> RESTful web services inherit security measures from the underlying transport.
9. SOAP permits XML data format only. -> REST permits different data format such as Plain text, HTML, XML, JSON etc.
10. SOAP is less preferred than REST. -> REST more preferred than SOAP.
69) What is a Web service API?
An API (Application Programming Interface) is the means by which third parties can write code that interfaces with other code. A Web Service is a type of API, one that almost always operates over HTTP (though some, like SOAP, can use alternate transports, like SMTP).
70) What is RAML?
RAML stands for Restful API Modeling Language is a YAML-based language for describing Restful APIs. It provides all the information necessary to describe RESTful or practically Restful APIs.
RAML is similar to WSDL, it contains endpoint URL, request/response schema, HTTP methods and query and URI parameter.
71) Why we use RAML?
Answer) RAML helps client know, what the service is and how all the operations can be invoked. RAML helps the developer in creating the initial structure of this API. RAML can also be used for documentation purpose.
72) What are the different types of variables in Mule ESB?
The different types of variables in Mule ESB are:
73) What are the various types of Exception Handling in Mule ESB?
The types of exception handling in Mule ESB are:
Default Exception Handling
Global Exception Handling
Catch Exception Handling
Choice Exception Handling
74) What are the Flow Processing Strategies?
Synchronous Flow Processing Strategy, Queued Flow Processing Strategy, Asynchronous Flow Processing Strategy, Thread Per Processing Strategy, Queued Asynchronous Flow Processing Strategy, Non-blocking Flow Processing Strategy, Custom Processing Strategy, Rollback Exception Handling.
Advanced Mulesoft Interview Questions For Experienced
75) What is caching and why to use it?
Caching is a concept with is used to store frequently used data in the memory, file system or database which saves processing time and load if it would have to be accessed from original source location every time.
76) What is Mule Cache Scope and what are its storage types?
Caching in Mule ESB can be done by Mule Cache Scope. Mule Cache Scope has 3 storage types -
In-memory: This store the data inside system memory. The data stored with In-memory is non-persistent which means in case of API restart or crash, the data been cached will be lost.
Maximum number of entries
TTL (Time to live)
Managed-store: This stores the data in a place defined by ListableObjectStore. The data stored with Managed-store is persistent which means in case of API restart or crash, the data been cached will no be lost.
Maximum number of entries
TTL (Time to live)
Simple-test-file-store: This stores the data in a file. The data stored with Simple-test-file-store configuration is persistent which means in case of API restart or crash, the data been cached will no be lost.
Maximum number of entries
TTL (Time to live)
Name and location of the file
77) What are Flow Processing Strategies?
Flow processing strategies in Mulesoft are:
Synchronous Flow Processing Strategy
Queued Flow Processing Strategy
Asynchronous Flow Processing Strategy
Thread Per Processing Strategy
Queued Asynchronous Flow Processing Strategy
Non-blocking Flow Processing Strategy
Custom Processing Strategy
78) How can we create and consume SOAP service in Mule?
Creating SOAP Service – We can create a SOAP service same as we create Mule Project with RAML, the only change is instead of RAML we need to import Concert WSDL. Consuming SOAP Service – We can use Web Service Consumer or CXF component in our mule flow to access/consume SOAP service.