Contents

This section illustrates the configurations that are common across most of the adapters. However, if there are any additional component-specific details which are not described here, such details can be found in the respective component help file.

Customization to the configuration can be done through Configuration Property Sheet (CPS) and Properties panel; CPS having Component-specific configuration and Properties having Component Instance configuration.

Properties Panel

To view/edit properties, use any one of the two options below in the Orchestrator:

  • Right-click the component present in the Fiorano Orchestrator and click Properties.
  • Open from Window > Show View > Other > General > Properties

Properties section has subsections where Component Instance values can be edited based on the requirement, such as General, Deployment, Execution, Log Manager, Log Module Instances, and Runtime Arguments.

Component Instance Properties

Component instance properties appear in the Properties pane when a component present in the Fiorano Orchestrator is selected. These properties and the attributes present under it are explained in the sections below.

General

This group contains general properties that identify the component instance or affect the appearance of the component instance.


Figure 1: General properties for a sample component

Name

Name of the component instance in the application. This name should be unique in an application.

Guid

Guid (Global Unique Identifier) is a unique name used as an identifier to represent a service/component. This is generally the name of the component itself.

Version

When there are multiple versions of a component with the same GUID, the Version property determines the component that this instance represents.

Example: Web Service Consumer has two versions of components, version 4.0 and version 5.0. Version 4.0 uses axis API and version 5.0 uses axis2 API.

Icon

It is recommended that the configuration of the component is compatible across versions when developing custom components.

Short Description

A one line description for the component instance. This description is shown as a tooltip for the component. By default, the value defined for short-description element in the component's Service Descriptor is shown here. If there is no value defined for this property, the default value is shown in tooltip.

Example: For an SMTP component that is configured to send emails using a Fiorano email account, the short description can be amended to give a more appropriate description.


Figure 2: Tooltip showing the changed Short description for SMTP component

Long Description

A detailed description about the component instance. By default, the value defined for long-description element in the component's Service Descriptor is shown here.

Use Separate Process CPS

Select this check box to use external Configuration Property Sheet (CPS) on a separate JVM instead of the interface available in eStudio. When you open the CPS from the Fiorano Orchestrator after selecting this option, the external CPS opens up. This option can be used when loading the default eStudio CPS is complex and takes up too much memory.

Deployment

It contains the deployment information of the component, which affect the way components are deployed in Fiorano environment. The Peer Server node on which the component has to be launched, and the  can be configured here. 


Figure 3: Deployment properties in the Properties panel

Nodes

A delimited list of Peer Servers from Fiorano network on which this component instance is launched. The component is launched on the first Peer Server in the list that is available in Fiorano network. If the Peer Server on which the component instance is running shuts down, the component instance fails over to the next available Peer Server.

Click the button against Nodes option to launch Select Nodes editor to configure the Peer Servers.


Figure 4: Editor to configure Peer Servers on which the component instance can launch

The peer server present in the Fiorano network appears under Selected Nodes section in the Select Nodes editor. This can be moved to Available Nodes section and used accordingly as mentioned below:

  • To add a Peer Server - Select the server you need to add from the Selected Nodes section and click the  button. The selected server gets added to Available Nodes section. 
  • To remove a Peer Server - Select the Server you need to remove from the Available Nodes section and click the  button. The selected server gets added back to Selected Nodes section, which means this server will not be available for the Service Instance anymore.
  • To add/remove multiple servers - Use and  to move all the Selected Nodes to Available Nodes and all the Available Nodes to Selected Nodes respectively.

    Icon

    If multiple nodes are selected, all the selected nodes appear under Nodes field in the Deployment tab as comma-separated values.

  • To change the order of the Peer Servers - Order of priority can be changed using the Up button and the Down button in case of multiple servers.

Fail Over

Icon
  • If the component instance persists data on the Peer Server on which it is running, then the data is lost when the component instance fails over to a different Peer Server.
  • The failover process is equivalent to manually stopping the component instance, changing the Peer Server on which the component instance should be launched and restarting the component.
  • Messages that are received by the component instance during the failover are lost.
  • This is not the same as failover when Peer Server is configured in HA mode.

Based on the selected Peer Server, the component color changes to give a visual clue as to which Peer the component is configured to launch. By default, when a Peer Server is added to an Enterprise Server, a unique color is chosen. In the below figure, the Feeder and Display components are configured to launch on different servers.


Figure 5: Change in component color representing different peer servers attached

Icon
  • Changing the Node name at runtime for Worklist and Aggregator services is not supported. Unlike other components, Worklist and Aggregator components have state information written to the local disk. Moving the Worklist (or Aggregator) from one peer server to another results in state data loss. In the case of Worklist, not only the data loss, the external application, that is, Worklist web application will not show work items saved in the Worklist after the node change.
  • To achieve high availability for Stateful components, configure the back-end data store in clustered/HA relational database, like Oracle, DB2, and so on. Or deploy the components on a Peer Server that is running in Shared HA mode.
Cache Component

During the development process, some components might have external resources added. Also, for custom-built components, the source files might be updated from time to time. To reflect the changes for such components across the peers at runtime, enable this property to force the resources of the component to be re-fetched each time a Connectivity and Resource Check is done.

  • yes
    Resources required for execution by the component instance are fetched from the Enterprise Server and cached on the Peer Server (if not already done) when the CRC (Check Resources & Connectivity) operation is performed in the Event Process.
    A resource can be marked as required for execution in the Service Descriptor.
    If the resources are not changed in the Enterprise Server, then they need not be fetched every time the application is launched, thereby reducing the time taken to perform a CRC operation for the application.
  • no
    The resources required for execution by the component instance are fetched from the Enterprise Server to the Peer Server every time the CRC operation is performed.

    Icon

    If there are changes done to the component resources, this property should be set to no before performing the CRC operation and can be reset to yes later.

Execution

This group contains properties that affect launch behavior of the component.


Figure 6: Execution properties in the Properties panel

Execution Type

This property specifies how the component instance is launched. There are four possible values.

  • Separate Process: The component instance is launched in a separate JVM. It is automatically launched when the application is launched. When this option is selected properties Debug Mode and JVM_PARAMS are visible.
  • In Memory: The component instance is launched in the JVM of the Peer Server. It is automatically launched when the application is launched. When this option is selected properties Debug Mode and JVM_PARAMS are not visible.

  • Group Process: This launch mode enables multiple microservices to run in a Single JVM sharing the same resources. This launch mode overcomes certain limitations faced by the two modes mentioned above - the Separate launch mode having a restriction to use a limited number of microservices in a peer and the In Memory launch mode affecting the peer server performance when microservices face memory/thread leak.

    Icon

    To know more about the 3 launch modes above, refer to the Configuring Execution Type section.

  • Manual: The component instance is not launched when the application is launched. It has to be launched manually from the command line.

    Icon

    To know more about the Manual launch mode and for further details on using scriptgen, refer to the Manual Deployment section.

  • None: If selected, the component instance is never launched. When this option is selected properties Debug Mode is not visible and the value for property JVM_PARAMS is ignored.

The boundary of the component icon is changed to provide a visual clue for the launch type selected. The below figure shows the change in the boundary of a component instance for each launch type.


Figure 7: Boundary of component instance providing visual clue for launch type

Prefer First Node

To prefer the first launch on the highest available node, that is, whether or not the launch of this service instance is preferred on the highest level.

Kill Primary

To kill Primary Service Instance when Secondary launches.

If a service is bound to a Peer Server and when another service with the same name tries to bind with the same Peer Server, then the 2 options available are:

  • Yes
    Primary service will be killed and secondary service will take its place.
  • No
    Secondary server kills itself.
Debug Mode
  • yes
    The component instance is launched in debug mode. A debugger from any IDE can be attached to the component instance to debug the component instance step by step at runtime. When this value is selected, the property Debug Port is visible.
  • no
    The component instance is not launched in debug mode and a debugger cannot be attached. When this value is selected, the property Debug Port is visible.
    This property is only used when the property Launch Type is set to Separate Process. To debug the component instance launched in the memory of Peer Server JVM, debug parameters have to be in the configuration file – %FIORANO_HOME%\esb\fps\bin\fps.conf – of the Peer Server.
Debug Port

The port on which the component waits for instructions from the debugger.
When property Debug Mode is set to yes, then the property Debug Port is set to 5000. It is equivalent to launching the component with the following command line arguments:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000

Icon

The component instance can be alternatively launched in debug mode by specifying the required command line arguments in the property JVM_PARAMS.

Buffer Limit

Maximum buffer size (bytes) that to be stored per port. The Peer Server starts generating alerts when the number of bytes comes close to this limit.

Configuration

The serialized configuration of the component instance. Any changes made to this are reflected when the component instance is launched or the CPS of the component instance is opened.

Connection Factory Properties

Connection Factory settings modified from peer connections will be lost when the component is stopped or event process is stopped. In order to make it persistent, add connection factories which thereby gets added in EventProcess.xml file for the specified Service Instance.

Click Add button and select the property from the Name drop-down and provide appropriate value to save a particular Connection Factory property.

Icon

Enterprise server will take care of creating Service Handles along with Connection Factory Settings and passing these properties to the respective peers upon restart.

Log Manager

Contains logging information as described below.

  • Type: Type of log handler, for example, File, Console.
  • Class Name: Class name of the specific Log Type.
  • Directory: Name of the directory where Log files are stored.
  • File Size: The maximum file size after which a new Log file has to be created.
  • # of files: Maximum number of Log files to be maintained.
  • Include Time Stamp: To include Time-stamp in Log Message
  • Time Stamp Format: To set the format in which time stamp needs to appear in the Logs. Default value is "MM/dd/yyyy HH:mm:ss"

Log Module Instances

This group contains different loggers that are used and their log level configuration.
All the loggers that are used by the component instance are shown as properties in this section. The level at which logging should be performed for each logger is defined below.

There are nine logging levels (Values) available in the drop-down list – Off, Severe, Warning, Config, Info, Fine, Finer, Finest, and All.

Icon

By default, the log level is set to SEVERE. This can be changed to the desired level. For example, the log level can be set to CONFIG when working on the Development environment.


Figure 8: Log Module Instances properties in the Properties panel

When the component is launched, all the component log module instance names are modified to include Event Process name, Service Instance name and Service GUID to maintain uniqueness.

For example, if the log module instance name of a component is "com.fiorano.services.display.DisplayService", then after the component is launched, some extra information is included and is changed to "EVENT_PROCESS1.COM.FIORANO.SERVICES.DISPLAY.DISPLAY1.DISPLAYSERVICE" and the logger is created with the changed name. In the above example, the log module instance name has the service GUID name "Display".

If the original name doesn't have Service GUID name, then Application Name, Sevice GUID, and Service Instance name is pre-pended to the log module name. For example, if the log module instance name is "org.apache.ws.security.processor.SignatureProcessor", then after the component is launched, it is changed to "COMMUNICATIONS_IN.WSSECURITY.WSSECURITY1.ORG.APACHE.WS.SECURITY.PROCESSOR.SIGNATUREPROCESSOR" and the logger is created.

Changing the log module instance names at component startup is required to maintain the uniqueness of components logs especially when multiple instances of a component are running in the same JVM.

However, this does make logging from 3rd party jars difficult to manage when working with custom components. To avoid this, the property Append service Info is useful for controlling log levels of loggers used by third-party libraries, since the handlers for such loggers will be created without appending service info to the logger names used by them.

Icon
  • This property should not be enabled for default loggers used by Fiorano pre-built components and loggers generated by default in custom components.
  • If all the loggers need to be set with the same value, for example, "INFO", select this log level value for the property All Levels.

For information about log levels and the effect they have on logs generated, please refer to http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html.

Runtime Arguments

Contains the information about the runtime arguments for the service. It has a single property JVM_PARAMS which contains all command line parameters that are passed to launch the component.


Figure 9: Execution properties in the Properties panel

This property is used only when the Launch Type of the component instance is set to 'Separate Process'. Any system properties can be set using this property.

Example

Icon

To support regional language-specific characters during HTTP transfer, character set encoding of the regional language has to be specified using the system property file.encoding. The system property can be provided as -Dfile.encoding=<required_encoding> for this property. If there are some other properties already defined, then the value to add should be appended to the existing value separated by a space.

JVM_PARAMS section contains the JVM parameters that are used while launching the component. Whenever a change is made in JVM PARAMS section, the Update all Service Instances dialog box appears asking whether the change has to be updated for all the service instances in all Event Process having the same JVM PARAMS value.


Figure 10: Dialog box prompting to update all Service Instances or to update only the present instance

If No option is selected, then it updates to the current service instance. If Yes option is selected, a dialog listing the service instances with same JVM PARAMS value appears and the required service instances can be selected for an update.


Figure 11: Select Service Instances

Configuring Connection Timeout

In microservices such as FTPGet, FTPPut, and FileReader, an input/output operation may get hung for indefinite time waiting for a request to return due to various reasons such as network fluctuations of the mounted directory. To avoid such waiting time, it is recommended to configure Connection Timeout in the runtime arguments. This is done by adding a property "-DCONNECTION_TIMEOUT" with the value (in milliseconds) as per requirement in Runtime Arguments in the Properties pane.

To configure Connection Timeout, 

  1. Click the microservice present on the orchestrator editor.
  2. In the Properties pane, click the Runtime Arguments tab and append the following values in the JVM_PARAMS text area:

    Append to the JVM_PARAMS values


    Figure 12: Configuring the runtime arguments by editing the JVM_PARAMS value to manage memory

  3. Press Enter to save the configuration and click the option "No" or "Yes" to update this configuration only to the current service instance alone or for all event process respectively.
Icon

After configuring Connection Timeout as above, the maximum time that the component waits for execution of each file will be 3000 milliseconds (3 seconds). If a CONNECTION_ERROR is thrown while the request is expecting to read N number of files, then the execution of all the remaining files for that request will be discarded. Once the CONNECTION_ERROR has occurred, the next request from the input port is processed in sequential order.

Icon

If an error occurs while configuring -DCONNECTION_TIMEOUT in runtime arguments, then the microservice takes the default value 180000 milliseconds (3 minutes). For example, if -DCONNECTION_TIMEOUT is set to an empty value or if it throws NumberFormatException due to a typing error like "_DCONNECTION_TIMEOUT=30)0", then this default value is taken.

Icon

When configuring the timeout, the component takes the value from different locations in different Launch Modes as below:

  1. Separate Process: Properties -> Runtime Arguments -> JVM_PARAMS
  2. In-memory: When the microservice is launched in the In-memory launch mode, the property 'CONNECTION_TIMEOUT' (in %FIORANO_HOME%\esb\server\bin\server.conf, if FPS is launched using server.bat/server.sh or %FIORANO_HOME%\esb\fps\bin\fps.conf, if FPS is launched using fps.bat/fps.sh) should be set to some value as mentioned below:


    Figure 13: Mentioning Connection Timeout value in the Server configuration file

 

Port Properties

Component port properties can be configured by choosing the port and configuring the appropriate property in the Properties panel.

Input Port Properties

Input port properties appear in the Properties pane when the input port of a component instance is selected.


Figure 14: Input Port properties selected/highlighted

Input port properties for an SMTP component are explained below.

General


Figure 15: Input port General properties for a sample component instance

Name

Name of the Input Port

Desc

Description to brief the functionality of the port.

Configuration

The serialized configuration of the component instance. Any changes made to this are reflected when the component instance is launched or the CPS of the component instance is opened

Workflow

Specifies the role of this port in the workflow. The options available are:

  • No WorkFlow
  • Workflow Item
  • Workflow End

Workflow Item and Workflow End can be selected accordingly to specify the role of the port. When either of these ports is selected, the next attribute 'Workflow Data Type' gets highlighted for further customization.

Workflow Data Type

This attribute is used to specify the part of the document that needs to be tracked, which helps Document Tracking. The attributes that can be tracked are:

  • Message Header
  • Message Body
  • Attachments
  • Application Context
Icon
  • This option gets enabled only when either of the options—Workflow Item or Workflow End are specified in Workflow)
  • Message Body will be tracked by default.


Figure 16: Dialog box to choose Work Data Type

Please refer to Document Tracking for more information.

Enable Callout

Specifies whether the Callout config is enabled or not.

Callout Parameters

Specifies DB callout parameter types for the workflow.


Figure 17: Execution properties under Property panel

 

JMS Destination

This group contains properties related to destinations created for the ports of the component.


Figure 18: Execution properties in the Input Port Properties panel

Configuration

The serialized configuration of the component instance. Any changes made to this are reflected when the component instance is launched or the CPS of the component instance is opened.

Destination Type

Specifies whether the destination for the port is 'Queue' or 'Topic'. Visual representation of port is changed based on the type of the destination as shown below. Square shape indicates a Queue and a circle indicates a Topic.


Figure 19: Input port as queue and as topic

  • When this property is set to Queue, the property Durable Subscription is not visible.
  • When this property is set to Topic, the property Durable Subscription is visible.
Custom Destination

Destinations for each port in the application are created automatically and associated with a port when the application is launched. The destination name for destination created and associated to a port is constructed using the following function:

<Event Process GUID>_<Component instance name>_<Port name>

Example: If an Event Process whose GUID is SAMPLE_APP contains an SMTP component instance with name MAIL_SENDER. The destination created for the input port is SAMPLE_APP_MAIL_SENDER_IN_PORT.

However, if the destination to be used has to be explicitly defined, then this property should be set to yes.

  • When this property is set to yes, the property Destination Name is visible.
  • When this property is set to no, the property Destination Name is not visible.
Destination Name

The name of topic or queue that has to be associated with the port. The destination is automatically created if it is not present.

Destination Encryption

Destination Encryption allows storage of sensitive data from different publishers in a secure way. Encryption implies the transformation of plain text into cipher text by using "key" A key is also used to decrypt the cipher text into plain text.

Destination Encryption Characteristics
In Destination Encryption, all messages sent to a particular destination (topic or queue) are encrypted, thus providing a secure channel of delivery. A component does not have to encrypt the message explicitly like in Message Encryption. A destination is marked as encrypted at the time of its creation. All messages published on this destination are encrypted before storing those in the database and delivered decrypted to subscribing applications. A client application, therefore, does not have to explicitly decrypt a received message.

Base Implementation
Fiorano 9.5.0 and higher versions support Destination Encryption.

DES (Data Encryption Standards) is used as the default encryption algorithm. In addition to that Fiorano 11 supports Base64, TripleDES, AES256, AES128, AES192, RC2-40, RC2-64, and RC2-128.

The Destination Encryption function uses the library cryptix.jar provided by Cryptix for generating keys as well as for encryption. This file comes bundled with the Fiorano 11 installation. It can be found in the FIORANO_HOME/extlib/cryptix directory of the Fiorano 11 installation.

Destination Encryption involves only encrypting the payload of the message and not its JMS headers and properties.

Encrypted Destination Creation
Input/Output port properties appear in the Properties panel when an input port of a component instance is selected.

Is Encrypted
  • Yes
    Encrypted JMS destination will be created.
  • No
    Non Encrypted JMS destination will be created.
Encryption Algorithm

The supported algorithms are DES, Base64, TripleDES, AES256, AES128, AES192, RC2-40, RC2-64, and RC2-128.

Encryption Key

Specify key which is used to encrypt the incoming data. Specify 64 digit key for AES256, 48 digit key for AES192, 32 digit key for AES128, 16 digit key for DES, 48 digit key for TripleDES, 10 digit key for RC2_40, 16 digit key for RC2_64 and 32 digit key for RC2_128.

Allow Padding to Key

Choose yes to allow padding to the key to match the value required for the mentioned algorithm.

Messaging

This group contains properties related to JMS messaging concepts. In general, pre-built components provided by Fiorano use a single connection and share the same session for reading messages in the input port and sending messages to the output port.


Figure 20: Messaging properties in the Input Port Properties panel

Configuration

The serialized configuration of the component instance. Any changes made to this are reflected when the component instance is launched or the CPS of the component instance is opened.

Transacted

Specifies whether the JMS session is transacted or not.

  • yes - JMS session is created as a transacted session. Multiple input messages can be grouped into a single transaction. Messages are not sent on the output port of the component until the transaction is complete. They are held in-memory of the component. When this value is selected, property Transaction Size is visible.
  • no - JMS session is created as a non-transacted session. Messages are sent on the output port of the component immediately. When this value is selected, property Transaction Size is visible.
Icon

When the output of component is very large, it is not advised to set this property value to 'yes'.

A transaction is based on the number of input messages processed and not based on the number of output messages sent. In cases, where a component sends a large number of output messages for each input request, it is not advised to set this property value to yes even if the value for property Transaction Size is set to 1.

Example: A File Reader component reading a large binary file or a DB component that returns a result set containing a large number of rows.

Transaction Size

Number of input messages that should be processed before committing the transaction.

Number of Sessions

Number of sessions that are created by the component instance to process messages received on the input port. Messages are processed in a separate session by each thread. This property is used to increase the number of threads that can process the requests and thereby increase the throughput. However, the number of threads that can at a time is restricted by Max Pool Size property in Connection Pooling Configuration panel.

Acknowledgement Mode

Specifies the acknowledgment mode that is used to acknowledge messages. Messages are not deleted from destinations until they are acknowledged. When the component fails over because of the HA failover of Peer Server, all the messages that are not acknowledged are redelivered. The number of duplicate messages in case of failover can be controlled using this property.

DUPS OK

Messages are acknowledged after configured number of messages are successfully processed and output messages are sent by the component instance. The number of messages after which the messages are acknowledged can be configured at the following node in FMQ profile – Fiorano > mq > pubsub > TopicSubSystem > DupsOkBatchSize. Number of duplicate messages is utmost the DupsOkBatchSize for each session on each input port of the component instance.

AUTO ACKNOWLEDGE

Messages are acknowledged after a message is successfully processed and the output message is sent by the component instance. Hence, number of duplicate messages is utmost 1 for each session on each input port of the component instance.

CLIENT ACKNOWLEDGE

This property is ignored if the property Transacted is set to yes. When the property Transacted is set to yes, messages are acknowledged when the transaction is committed. Hence, number of duplicate messages is utmost the number denoted by property Transaction Size for each session on each input port of the component instance.

Durable Subscription

Specifies whether a durable subscriber is created on the destination represented by the input port or not. This property is visible only when the value for the property Destination Type is set to Topic.

  • yes - A durable subscription is created to the topic represented by the input port. Messages sent to the topic are not lost when the component fails over because of the HA failover of Peer Server. If selected, then the property Subscription Name is visible.
  • no - A durable subscription is created to the topic represented by the input port. Messages sent to the topic may be lost when the component fails over because of the HA failover of Peer Server.
Icon

If the Destination Type is 'Queue', then messages are not lost when the component fails over because of the HA failover of Peer Server.

Following components do not create durable subscriptions and hence have to use only queues as input ports – WSStub and HTTPStub.

Subscription Name

Subscription name that should be used for creating a durable subscriber. This should be a unique name for the Peer Server on which the component instance is running.
Client ID

Unique ID for the JMS connection created by this port. This property is not used by pre-built components provided by Fiorano as there is only one connection created for each component instance.

Message Selector

Specifies a condition (JMS Message Selector) to select only a particular set of messages.

Application Context

Helps to manage the Application Context that is configured for the application / Event Process.


Figure 21: Application Context properties in the Input Port Properties panel

Action

Application Context can be used effectively by choosing the below options appropriately.

No Action

No Action is the default mode which is similar to not defining any particular action on the Application Context.

Store Application Context

Stores the Application Context to use it on a future instance.

Restore Application Context

Restores the Application Context which was stored previously.

Set Default Application Context

Uses the default Application Context instead of the one created separately

Message Filters

Messages can be filtered by providing a specific name and value to it under the Name and Value columns respectively.


Figure 22: Message Filters properties in the Input Port Properties panel

Input port configured with specific values accepts only those messages that match the criteria specified in the Message Filter. If the message content does not match the criteria, the message is discarded.

Icon

For an Input Port  with a Message Filter, make sure that you set the same values in the Output port if the Input Port needs to accept the message.

Output Port Properties

Output port properties appear in the Properties pane when an output of a component instance is selected.


Figure 23: Output port properties selected/highlighted

Output port properties for an SMTP component are shown below.

General


Figure 24: Output port General properties for a sample component instance

General Properties of Output Port  have the same functions as that of the General Properties of Input Port.

JMS Destination

This group contains properties related to destinations created for the ports of the component. For more information, refer to JMS Destination section under Input Port Properties.

Messaging


Figure 25: Messaging properties in the Output Port Properties panel

Time to Live

Specifies the time in milliseconds for which the message is available from the system after it is sent from the producer. The message is discarded on the expiration of this time. 0 (zero) milliseconds indicate infinite lifetime.

Example: Consider an application contains four component instances. Value for this property is set to 30000 milliseconds on the output port of the first component instance. This means, once the message is sent on the output port of first component instance, the message should be consumed by the fourth component instance in 30 seconds. If it is not consumed in 30 seconds, then the message will be lost and will never reach the fourth component.

Message Priority

The priority of the message sent; can be any integer value from 0 (zero - lowest) to 9 (nine - highest). The default priority is 4.

Persistent Messages

Specifies whether the producer on this port sends persistent messages or not. If this property is set to yes, all messages are persisted to message store. If this property is set to no, the messages are not persisted and there may be message loss noticed during the HA failover of the Peer Server.

Preventing message loss

To avoid message loss in Fiorano Event Processes, change the following properties -

  • On each output port, set the value of property Persistent to yes.
  • On each route, set the value of property Durable to yes.
  • On each input port that is a topic, set the value of property Durable Subscription to yes.
  • Whenever a JMS* component is used, make sure all messages sent are persistent and all subscriptions to topics are durable. These properties can be set in CPS of JMS components.
Components with implicitly defined JMS messaging properties

Some of the less used components in Fiorano have Acknowledgement Mode, Transaction Type, and Transaction Size implicitly defined and will not pick the values from the input port.

ComponentAcknowledgement ModeTransaction TypeTransaction Size
AggregatorAUTO_ACKNOWLEDGEfalse1
ChatAUTO_ACKNOWLEDGEfalse1
DiskUsageMonitorServiceAUTO_ACKNOWLEDGEtrue1
DisplayAUTO_ACKNOWLEDGEfalse1
ExceptionListenerAUTO_ACKNOWLEDGEfalse1
FeederAUTO_ACKNOWLEDGEfalse1
HTTPReceiveAUTO_ACKNOWLEDGEfalse1
HTTPStubDUPS_OK_ACKNOWLEDGEfalse1
JoinAUTO_ACKNOWLEDGEfrom command line1
SAPR3MonitorAUTO_ACKNOWLEDGEfalse1
SleepAUTO_ACKNOWLEDGEfalse1
TimerAUTO_ACKNOWLEDGEtrue1
WSStubDUPS_OK_ACKNOWLEDGEfalse1
XMLVerificationAUTO_ACKNOWLEDGEtrue1

Application Context

In the Output Port Application Context, you have an option to choose the Component Instance from the Configuration drop-down if it was saved after creating the Application Context. Rest of the options are the same as in Input Port properties.


Figure 26: Application Context properties in the Output Port Properties panel

Message Filters

Refer the content in Message Filters under Input Port properties.

Configuration Property Sheet (CPS)

To view/customize the configuration attached to a component, use any one of the two options below in the Orchestrator:

  • Double-click the component.
  • Right-click the component and click Configure.
Icon
  • CPS appears as a dialog box or wizard.
  • Detailed information on properties involved in each component CPS is available in the Pre-built Microservices section.

Managed Connection Factory

Connection Properties

Use Connection details from input

The parameters to create the connection can be specified in the input message when this property is selected. If this property is selected the validation errors in the managed connection factory panel of the CPS are treated as warnings.

Icon
  • You may bypass this step without giving valid configuration and complete the configuration of the component. If valid properties are not provided even in the input message, an exception will be thrown at runtime.
  • If this option is chosen, an additional element "Connection Factory Settings" is added to the schema of the input port of component. Properties that are used to create the connection for a specific component are present under this element.
  • For the components EJBAdapter and WebServiceConsumer, you cannot proceed with the configuration of the component by giving invalid configuration, even if this option is chosen.


Connection Pool Params

Defines the connection pool settings for the component. Creating a connection to external systems like Database or FTP Server or HTTP Server is typically a resource extensive and time-consuming process. Configuring a connection pool reduces the overhead of creating a connection on each request.
Click the ellipsis button to launch an editor to configure connection pool parameters as shown in the figure below.


Figure 27: Connection pool configurations

Enable Connection Pool

If this property is selected, the connections created are cached in a pool for subsequent use. When the connection pool is disabled it implies that the connection should not be cached and a new connection will be created for each request.
Enabling connection pool property will reduce the time spent in creating a new connection for every input request.

Properties Max Pool Size, Blocking Timeout, and Idle Timeout are enabled only when this property is selected.

Max Pool Size

The maximum number of connections that can be cached in the pool.

Blocking Timeout (in ms)

The time in milliseconds after which the call to fetch a connection from the pool will timeout if there is no unused connection available. A connection will not be created after the timeout.

Idle Timeout (in mins)

Specifies the maximum number of minutes that an idle (unallocated) connection can remain in the pool before being removed to free resources.

Proxy Settings

Click the ellipses button to launch an editor to configure proxy configurations as shown below.


Figure 28: Proxy configurations

Use Proxy Server

Select this option if the connection has to be established using a proxy server. Properties Proxy Address, Port Number, Username, Password and SOCKS Proxy.

Proxy Address

The IP address or the host name of the machine where the proxy server is running.

Port Number

Port number on which the proxy server is running.

Username

The user name to log into the proxy server.

Password

Password for the user name provided.

SOCKS Proxy

Enable this property to use SOCKS protocol to connect to the proxy server.

Icon

When the property Use Connection details from input is chosen, an element ProxySettings will be added to the schema of the input port of the component as shown in the figure below to provide the proxy details in the input message.


Figure 29: Schema changes for proxy settings when Use Connection details from input is set

SSL Security

Click the SSL Security ellipsis button  to launch the editor to set SSL configurations.


Figure 30: SSL configurations

Enable SSL

Select this option to enable SSL Settings. Rest of the properties in this editor are enabled and configurable only when this property is checked.

SSL Settings
PropertyDescription
Trust Store LocationLocation of the trust store file. TrustStore is a file where digital certificates of trusted sites are stored and retrieved for authentication during an SSL connection. TrustStore is used to authenticate a server in SSL authentication.
Trust Store PasswordPassword of the specified trust store.
Key Store LocationLocation of the key store file. The KeyStore is used by the component for client authentication.
Key Store Password

Password to access the private key from the keystore file.

Icon

Accept Server Certificate and Ignore Hostname Mismatch properties are useful only in consumer type components like HTTPAdapters, WebServiceConsumer etc.

Key Store TypeType of the Key Store whose location is specified by Key Store Location.
For Java keystore file format, this property has the value jks (or JKS). You do not normally specify this property, because its default value is already jks .
Trust Store TypeType of Trust Store whose location is specified by property Trust Store Location.
For Java keystore file format, this property has the value jks (or JKS). You do not normally specify this property, because its default value is already jks .
This value is optional.
Trust Manager Factory TypeAlgorithm for the Trust Manager Factory.
Key Manager Factory TypeAlgorithm for the Key Manager Factory.
Security Provider ClassDetermines Security provider class.
Security ProtocolDetermines Security protocol.
Key Store Client KeyDetermines Key Store Client Key.
Icon
Icon

Alternatively, SSL Security can be managed by configuring the system property (JVM) instead of overwriting SSL socket creation in the CPS. For example, to use TLS 1.1 protocol, change the default value (TLSv1.0) of the '-Dsecurity.protocol' system property to "TLSv1.1". Hence, SSL can be managed without configuring it in the CPS.

Interaction Configurations

Icon

The properties explained below fall under Expert Property; enable Show Expert Properties check box on the upper-left part of the CPS to work on these properties.

Icon

Use these properties with caution as these configurations are meant for advanced users.

Pre/Post Processing XSL Configuration


Figure 32: Pre/Post Processing XSL Configuration properties

Pre Processing XSL Configuration: Pre Processing XSL configuration can be used to transform request message before processing it. 

Post Processing XSL Configuration: Post Processing XSL configuration can be used to transform response message before sending it to the output port.

Icon

Click the small button against the properties to configure these in the XSL Configuration dialog box.

Icon

As this is an Expert Property, enable Show Expert Properties check box on the upper-left part of the CPS to display this property.

Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

XSL Configuration

Properties under XSL Configuration are described in the following sections.

Provide XSL

Provide XSL to be applied on the message for transformation.

XSLT Engine

When this property is chosen as 'other' along with Transformer factory class property, it determines the transformer implementation that should be used to perform the transformation.


Figure 33: XSLT Engine properties

Xalan (2.7.0) and Saxon (8.4) transformer implementations are bundled with Fiorano environment for performing transformations.

  • Xalan
    Xalan implementation (org.apache.xalan.processor.TransformerFactoryImpl) is used to perform transformation.

    Icon

    Xalan(2.7.0) does not support XSLT 2.0

  • Saxon
    Saxon implementation (net.sf.saxon.TransformerFactoryImpl) is used to perform transformation.

    Icon

    Saxon implementation does not support custom functions

  • Other
    This option should be used when a custom transformer implementation has to be used. Selecting this option shows property Transformer factory class which can be used to provide the transformation factory implementation that should be used.
Transformation Source Data

This property is used to apply transformation source to a particular part of the input message.


Figure 34: Transformation source data properties

  • Body: Select if the transformation is to be applied on the Body of the input message.
  • Context: Select if the transformation is to be applied on the Application Context of the input message.
  • Body-Context: Select if the transformation is to be applied on the both Body and Application Context of the input message.

    Icon
    • In this case, XML instance of application context is treated as primary source.

    • Elements in primary source can be referenced directly in XSL, whereas elements of other structure should be referenced as document (StructureName)/ElementName.

Set Transformation result as

This property is used to set transformation result to a particular part of the output message.


Figure 35: Set transformation result as properties

  • Body: Select if the transformation result is to be set to the Body of the output message.
  • Context: Select if the transformation result is to be set to the Application Context of the output message.

Process Message Based On a Property

The property helps components to skip certain messages from processing.


Figure 36: Process Message Based On a Property settings

Icon

As this is an Expert Property, enable Show Expert Properties check box on the upper-left part of the CPS to display this property.

Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

Enable this property If the component needs to process a message based on a condition which will be validated based on its properties. The conditions can be specified using the properties described below.

Message Property Name

Property name of the message from where the value needs to be fetched to evaluate.

Message Property Value

Value of the message property.

For a given message, the condition is met only if the property specified in "Message Property Name" has the value specified in "Message Property Value". If the incoming message does not satisfy the condition, then the component indiscriminately forwards the message to its output port without processing it.

This property will be useful when sequencing has to be maintained between heterogeneous messages. 

Example

In an Event Process that is configured to listen for multiple types of HL7 messages using WSStub microservice, which forwards them using different protocols based on the HL7 message type and inserts it into database, only the forward action is successful. Generally, parallel flows are defined for each HL7 message type, route selectors used to identify the flow and thereby message is sent out of the parallel flow to the DB component.


Figure 37: Event Process composed as a normal parallel flow

It is difficult to maintain order at the DB component input port in above flow. To maintain the order, process all the messages sequentially as shown in the figure below and configure the Process Message Based on Property based on the HL7 message type; only the required components will process, others just forward the message to its output port.


Figure 38: Event Process composed with the property enabled in the HL7 microservice

Validate Input


Figure 39: Common configurations in Interaction Spec panel

This property determines whether the input message has to be validated against the schema defined on the input ports.

  • If enabled, input messages are validated against the schema defined on the input port on which the message is received.
  • If disabled, input messages are not validated.
Icon

If a complex schema is used in the component, then enabling this option has an impact on the performance. If the validate Input property is disabled , it does not validate the input and thereby increases the performance. However, it may cause undesired results if the input XML is not valid. 

Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

Cleanup resources (excluding connection) after each document

A component creates various objects to process business logic. Some of these objects are connection objects or are related to connection where as other objects are not related to connection but are required to process business logic. Holding these objects in-memory all the time will make lesser memory available that can be freed and deleting these objects to free up space results in higher processing time as the objects have to be recreated. Hence, the objects related to business logic can be removed from time to time.

  • If enabled, objects that are not connection-related are not destroyed and are reused for each request.
  • If disabled, objects that are not connection-related are destroyed and recreated for each request. When a connection object is destroyed, all objects are recreated on subsequent request.
Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

Target Namespace

Two or more XML schema having same namespace will cause problems if there are elements which are defined with same name. Schema set on the input and output ports of the component are in some created by the component. To avoid the clash of elements from different schema, the schema generated by the component use the value provided for this property to compute the namespace for input or output schema.

Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

Monitoring Configuration

When monitoring is enabled for a component, it publishes USER_EVENTs containing the following statistics, which are sent to FPS_USER_EVENTS_TOPIC at the configured intervals of time:

  • Minimum execution time: The minimum amount of time taken to process any message during the last publish interval.
  • Maximum execution time: The maximum amount of time taken to process any message during the last publish interval.
  • Count: Number of messages processed during the last publish interval.
  • Throughput: Rate at which messages are processed during the last publish interval.

Click the ellipsis button  to launch an editor to configure Monitoring configuration.


Figure 40: Monitoring configurations in Interaction Spec panel

Icon

Use this property with caution as Expert Property configuration is meant for advanced users.

Enable Monitoring

Select the check box to enable monitoring for request execution time.

Publish Interval

The time interval after which monitoring statistics are computed and sent.

Enabling ListenForUserEvents parameter for Monitoring Performance

To display the monitoring statistics in Dashboard, apart from enabling Monitoring in the CPS, the parameter ListenForUserEvents in FES profile needs to be enabled which can be done from eStuido or the Dashboard as illustrated in the following sections. This property decides whether or not the Enterprise Server listens to the monitoring events published by component instances.

eStudio
  1. Open Profile Management and go to FES under Profiles.
  2. Navigate to FES > Fiorano > Esb > Events.
  3. Click FESEventsManager to open the Properties of FESEventsManager window on the right side.
  4. Under ComponentInstance Configuration section, select the ListenForUserEvents checkbox.

    Icon

    Ensure that the Server is stopped to make the above changes.


    Figure 41: Enabling Dashboard Monitoring option through eStudio

Dashboard
  1. Go to Advanced Properties property under Advanced Properties tab present in the Navigation Panel.
  2. In the Configure Advanced Property window, expand Enterprise Server>Events Manager.
  3. Under Action column, click the Change button corresponding to the Attribute Name: ListenForUserEvents.
  4. Change the value to "true" from the ListenForUserEvents drop-down and click OK.
  5. Click Save Configuration button in the Save Changes dialog box and notice the change in the Attribute Value parameter.
  6. Restart Server to bring the changes into effect.


    Figure 42: Enabling Dashboard Monitoring option through Dashboard
     
Icon

Refer the Monitoring Performance section to see how performance is monitored in the Dashboard.

Threadpool Configuration

 This property is used when there is a need to process messages in parallel within the component, still maintaining the sequence from the external perspective. 

  • This needs to be used only in such circumstances.
  • If sequential processing is not required, please use sessions on the input port.

Click the Threadpool Configuration ellipses button to configure the Threadpool Configuration properties.


Figure 43: Threadpool Configuration properties

Enable Thread Pool

Enable this option to configure the properties that appear as below.

Pool Size

The number of requests to be processed in parallel within the component. Default value is '1'.

Batch Eviction Interval (in ms)

Time in milliseconds after which the threads are evicted in case of inactivity. New threads are created in place of evicted threads when new requests are received. Default value is '1000'.

Scheduler Configurations

A component can be scheduled to execute a specific request at configured intervals of time. When the component is configured to run in Scheduler mode, the component will not have input port (separate input need not be sent to the component in order to send message). However, messaging properties that are usually configured on the input port can be configured in Transport Configurations panel.


Figure 44: Scheduler configurations panel

Scheduler Configurations tab

Enable Scheduling

Select the check box to run the component in the scheduling mode.

Repeat Interval

Specifies time interval between successive requests.

The units of time available are:

  • milli seconds
  • seconds
  • minutes
  • hours
  • days
Repeat forever

If this option is enabled, then the number of times the input request is executed will be infinite.

Repeat only

Specifies the number of times the input request is executed.

Icon

This property appears only if Repeat forever option is enabled.

Start time

The polling start time. If the specified start time is earlier than the component start time, the first schedule will happen at the next scheduled time. For example, start time is 08:00:00, poll interval is 30 minutes, and component starts at 8:10:00, the first schedule will happen at 08:30:00.

Start date

The polling start date. If the specified start date is earlier than the component start date, then it will be ignored and input messages are sent at next scheduled date.

Input Message


Figure 45: Input Message tab in the Scheduler Configurations panel

Use specified Input

Select the check box to configure input that is repeatedly executed.

  • Validate: Validates the specified input against the structure specified on the input port.
  • Generate Sample Input: Generates the sample input for the structure specified on the input port.

Advanced Configuration

Advanced scheduling information can be configured in the Scheduler Configuration panel.


Figure 46: Advanced Scheduling configuration

Enable Advanced Scheduling

This option can be chosen if advanced scheduling options like scheduling on specific days, dates and during certain time periods needs to be done.

Schedule Type

The scheduling type can be chosen depending on the way the scheduling of messages needs to be controlled.

The different scheduling types and their working are as below.

  • DAILY: The message is sent every day between the start and end time as defined in the sessions table. The times have to be in hh:mm:ss format.
  • WEEKLY: The message is sent on predefined days of a week. The days in week can be chosen on clicking the ellipsis against the property Scheduled Days in Week. The messages are sent only during the intervals defined by the sessions panel.
  • MONTHLY: The message is sent on predefined dates in a month. The days in week can be chosen on clicking the ellipsis against the property Scheduled Dates in Month. The messages are sent only during the intervals defined by the sessions panel.
Scheduled Dates In Month (Schedule Type - MONTHLY)

Click the button against the property to specify the dates in the Editor. Dates moved to the Included Entries section are considered as the scheduled dates.


Figure 47: Editor to provide Scheduled Dates In Month

Scheduled days in week (Schedule Type - WEEKLY)


Figure 48: Editor to provide Scheduled days in week

Start Time

Provide the Start Time and End Time by clicking Add button and then entering the timings.

Use End Date

When this option is chosen, the scheduling will stop on the date as defined against End Date. The date has to be in MM/dd/yyyy HH:mm:ss format.

Icon

When finite repeat count and end date are both used, the scheduling will stop based on which event happens earlier.

Transport Configurations

Transport Configurations panel is used to configure messaging properties when the component is configured in Scheduling mode.

After selecting the Enable Scheduling check box in the Scheduler Configuration panel, click Next to configure Transport properties in Transport Configurations panel.


Figure 49: Transport configurations panel

Transacted

For information on this property, refer to section Transacted in Input Port Properties.

Acknowledgement Mode

The Acknowledge modes available are:

  • AUTO ACKNOWLEDGE
  • CLIENT ACKNOWLEDGE
  • DUPS OK ACKNOWLEDGE

For information on acknowledgement modes, refer to section Acknowledgement Mode in Input Port Properties.

Transaction Size

For information on this property, refer to section Transaction Size in Input Port Properties.

Icon

When the component is not in scheduling mode, properties are configured on the Input Port Properties.

Error Handling

Errors that occur in the component are classified into five categories – JMS Error, Response Generation Error, Request Processing Error, Connection Error and Invalid Request Error. Actions that have to be taken when an error occurs are defined in the Error Handling panel.

Icon

Some of the panels or actions are not available for some components and hence are not visible in those components.


Figure 50: Error handling

Connection Error

This property in Error Handling Panel will be visible only if the Managed Connection Factory panel is present. Presence of Managed Connection Factory implies that the component makes a connection to external system.

Example: Components like FileReader and FileWriter do not create any connections and hence they do not have this property in the CPS.
Errors that occur because of the connection to an external system cannot be made or because the connection to an external system is lost are categorized under the category

Connection Error

Example: Trying to connect to an external web site when the network connection is not active.


Figure 51: Available actions for Connection Error category

Remedial Actions
Actions that can be taken when a Connection Error occurs are as explained below.

  • Send To Error Port: When an invalid input is given to the component, it sends the error on the ON_EXCEPTION output port of the component. By default, ON_EXCEPTION port is present in all components that support error handling. If this option is unchecked, then the Retries before sending error property in Advanced Settings group is disabled.
  • Try reconnection: The component will re-execute the input request with a new connection, if this action is enabled. The number of times it should try and the time interval between two successive retries can be configured in Advanced Setting Panel of this panel. Configuring for retries is explained in Retry Configuration section.
  • Discard Connection: The component removes the connection from the connection pool as soon as a connection error occurs. If the processing of input request fails due to connection error then component will discard that connection object. The component will try with another connection object from the connection pool, if there are no connections in the connection pool then the component will create a new connection, and this connection is used to process the input request.

    Icon

    If the Try reconnection property is not set, then this property will be ignored.

  • Stop Service: The component is stopped when an error occurs if this action is enabled.

JMS Error

Errors that occur in transport (JMS)


Figure 52: Available actions for JMS Error category

Remedial Actions

Actions that can be taken when a JMS Error occurs are as explained below:

  • Log to error logs: Logs the exception and trace to error logs.
  • Stop service: The component is stopped when an error occurs if this action is enabled.

Response Generation Error

Errors that occur while building a response for the processed request.


Figure 53: Available actions for Response Generation Error category

Remedial Actions

Actions that can be taken when a Response Generation Error occurs are as explained below:

  • Log to error logs: Logs the exception and trace to error logs.
  • Send to error port: when an invalid input is given to the component, it sends the error on the ON_EXCEPTION output port of the component if this action is enabled. By default, ON_EXCEPTION port is present in all components that support error handling.

    Icon

    Retries before sending error property in Advanced Settings group is disabled if this option is unchecked.

Request Processing Error

Request Processing Errors are categorized based on the following conditions:

  • The error occurs after input message is successfully parsed and understood.
  • The error is not a result of connection problems.

Example: In case of FTPGet, a Request Processing Error occurs when the specified file (to be downloaded) in the input request is not present in FTP Server.


Figure 54: Available actions for Request Processing Error category

Remedial Actions

Actions that can be taken when a Request Processing Error occurs are as explained below:.

  • Log to error logs: Logs the exception and trace to error logs.
  • Re-execute Request: The component will re-execute the input request if this action is enabled. Configuring for retries is explained in section Retry Configuration section. This action should be enabled only for errors that may be rectified over time. 
    Example: Error in file reader because a file is not found. If the required file should be placed by another process, then the file not found error can be rectified over time and hence can be retried.
  • Send To Error Port: When an invalid input is given to the component, it sends the error on the ON_EXCEPTION output port of the component. By default, ON_EXCEPTION port is present in all components that support error handling. Retries before sending error property in Advanced Settings group is disabled if this option is unchecked.
  • Stop Service: The component is stopped when an error occurs if this action is enabled.
  • Throw fault on warnings: In some cases, a problem in the component which is not severe is treated as a warning. Such warnings are just logged by default. The component will treat such warnings as errors, if this property is enabled.
    Example: When the FileReader is configured to read files with a particular pattern for file names, a warning is logged if there are no files whose names match the pattern configured. If the FileReader is polling a directory, then it is an inherent assumption that files are not always present and hence treating it as warning is appropriate. But if the file reader is not in scheduler mode, then absence of files has to be treated as an error.

Invalid Request Error

Errors that occur when parsing the input request are categorized under Invalid Request Error. Remedial actions are different for EDBC and BC components.


Figure 55: Available actions for Invalid Request Error category

EDBC Components

Remedial Actions

  • Log to error logs: Logs the exception and trace to error logs.
  • Process invalid request: Do not stop processing in case request is invalid. Continue Processing.
  • Send To Error Port: When an invalid input is given to the component, it sends the error to the ON_EXCEPTION output port of the component. By default, ON_EXCEPTION port is present in all components that support error handling. If this option is unchecked, then the Retries before sending error property in Advanced Settings group is disabled.
  • Stop service: The component is stopped when an error occurs if this action is enabled.
BC Components

Remedial Actions

Actions that can be taken when an Invalid Request Error occurs.

  • Send To Error Port: When an invalid input is given to the adapter, it sends the error on the ON_EXCEPTION output port of the component. By default, ON_EXCEPTION port is present in all components that support error handling. Retries before sending error property in Advanced Settings group is disabled if this option is unchecked.
  • Do not stop service: If this property is not checked, when an invalid input is sent to the component, the component will be stopped immediately. This property is checked by default.
    Example: In case of SMTP, if the input message is not valid according to the schema set on its IN_PORT, an exception occurs and the component will be stopped only if this property is unchecked.

Retry Configuration

When Re-execute Request is enabled for Request Processing Error or when Try Reconnection is enabled for Connection Error, the Advanced Settings group containing configurations for retries is visible.

  • Time between retries(ms): The time interval between two successive retries.
  • Number of retries: The number of times the component should retry the request. This property is enabled only if Infinite check box is unselected.
  • Infinite: If the check box is selected, the component will continuously retry the request until the request is process successfully. when this option is selected, the property Number of retries is disabled and its value is ignored.
  • Retries before sending error: This property is enabled only if Send To Error Port action is enabled. If Send To Error Port action is enabled and if the value for this component is a number n, then the component sends an error on the ON_EXCEPTION port after every n retries.

Schema Editor


Figure 56: Schema Editor

Schema Editor is used to configure schemas that are required for the functionality of a component.
In general,

  • XSDs and DTDs can both be provided in the schema editor. Some components allow only XSDs.
  • Only one root element can be selected. Some components allow selecting multiple root elements.
  • When a DTD is provided in the schema editor, the External XSDs tab is disabled.

XSD

Schema

Schemas that are present on the file system can be loaded by clicking on Load button   or the XSD/DTD can be provided in the text area in the schema tab shown in figure 48. This opens a file browser which enables navigation to the required schema on the file system. The file type can be chosen as XSD or DTD in the filechooser.

Root element can be selected by clicking on Select Root Element button . A list containing all the elements present in the schema will be displayed as shown in Figure 49. A root element (multiple root elements, in some cases) should be selected from that list of elements. The selected root element(s) will be displayed in the schema editor next to Select Root Element text.


Figure 57: Selection of root element

Structure

The structure tab displays a tree structure of the schema provided as shown below. The structure depends on root element.


Figure 58: Structure of the schema when no Root Element is chosen


Figure 59: Structure of the schema when Bookstore is chosen as Root Element

The structure of the entire schema is displayed if none of the root element is selected. If root element is selected (as 'Bookstore' in the figure above), the structure of that element is displayed.

External XSDs

If there are any imported schemas in the schema provided in XSD-Schema tab, they can be resolved by adding them as the external XSDs here. Any number of external schemas can be added here.

Icon

Imported schemas can also be resolved by adding the schemas in Schema Repository.


Schemas provided as external XSDs must have target namespace defined.

Click the Add button to add the external schema. Select an option from Manual or Load from File.


Figure 60: Adding external schema

  • Manual - The text editor on the right is editable only when Manual option is selected. The schema has to be provided manually in the text editor.
  • Load from File - Opens a File Chooser to browse the required external schema.

After loading the schema in the text editor, click the Save button to save the schema. The schema will be added to the list of external XSDs only when it is saved.

To remove a schema, select the corresponding namespace and click Remove button .
To view a schema, select the corresponding namespace and the schema can be viewed in the text editor.


Figure 61: Configuring external schema

Clear

On clicking Clear button, the schema, external schemas, root element and structure present in the schema editor will be cleared.
Fetch from Connected Source


Figure 62: List of connected ports from which schema should be fetched

On clicking Fetch from Connected Source button, a list of ports (which have schema set on them) of the components connected to this component are displayed. Application Context of the event process is also listed, if defined. On selecting one of the ports or application context, the schema present will be set as schema in the schema editor.

Schema Repository

Schema Repository is used to store schemas that are imported in schemas used by different components/event processes. The imported schemas referred from anywhere in an Event Process/component can be stored here so that they are resolved even when they are not added explicitly. Hence, schemas which are imported across multiple event processes/components can be stored in the schema repository.

Adding Schema

To add schemas to the Schema Repository, perform the following steps.

  1. In Studio, navigate to Tools > Schema Repository. This opens a Schema Repository editor  using which schemas can be added to schema repository.


    Figure 63: Schema repository editor

  2. Click the Add Button to add schemas to the repository, Customize Add... editor.


    Figure 64: Adding XSD to the schema repository

  3. Click the ellipsis button to browse the required XSD.
  4. Select an XSD and click OK
    The values URI, Location, schema name will be automatically updated.
    1. The URI value should not be an empty field. In case, if the schema has a target namespace, URI should be same as the target namespace of the XSD.
    2. The Location field displays the absolute path of the schema file.
    3. If the schema is to be copied and saved in the location <FIORANO_HOME>/xml-catalog/user, select the field Save to Catalog folder with name and specify a name with which the file has to be saved.
    4. If Save to Catalog folder with name is not selected, the file is not copied to the location <FIORANO_HOME>/xml-catalog/user and will be referred from its original location.
  5. Click OK to close Customize Add editor.
    A new row specifying the URI and Location of the XSD will be added in the table.
    1. To remove a schema from the schema repository, select a row from the table and click Remove.


      Figure 65: Removing XSD from the schema repository

    2. The option 'Delete schema file' specifies whether to delete the file from the system or just to remove the schema from xml-catalog. Select the check box to remove the file completely.
    3. In case, if the file is not copied to <FIORANO_HOME>/xml-catalog/user, the file will be deleted from its original location if this option is selected.

XPath Editor


Figure 66: XPath Editor

XPath Editor can be used for specifying path expressions to identify nodes in an XML document and for specifying conditions. The list of elements from schema provided are shown in the left panel of the editor. An XPath Editor with sample schema is shown below.


Figure 67: Adding a constant in XPath Editor

An element can be selected by simple drag and drop onto the right panel. An XPath expression may consist of different constant values, functions or/and operators. These can be added easily by right clicking on the right panel and selecting the option based on the requirement.

Adding a Function

A function can be added either by right clicking on the right hand side panel --> Add Function or by selecting from the list available in the palette tab which is present in the left panel as shown below.


Figure 68: XPath Editor – Palette containing different XPath functions

A string function matches which takes two arguments and returns a boolean value is shown in the above figure.

Adding a Constant value

Supported types of constants are String, Boolean, Numeric, Date-Time, and Duration.

Example: Addition of a boolean value can be done as described below

  1. Right-click the right panel. Select Add Constant > Boolean Value.
  2. Select the value as shown below.


    Figure 69: Adding a boolean constant

Addition an Operator


Figure 70: Adding an operator

  1. Right-click the right panel. Click the Add Operator (plus) button.
  2. Select the operator as shown in the above figure.


Figure 71: Add (plus) operator

The figure above illustrates a sample Xpath expression using a '+' operator. It contains two numeric constant values which are passed as arguments to the operator.

Named Configurations in CPS

Named Configurations may be used in eStudio CPS of components. Configurations can either be loaded from or saved to the repository from CPS itself.
If named configuration is not to be used in the CPS, the text box against Named Configuration shown in the below figures should be left blank and no Named Configuration will be used.

Load Named Configuration

Named Configurations which are created earlier either from the Configuration Repository view or from the CPS itself can be re-used in other service instances.
To view all the named configurations of a particular service or resource type, use the drop-down in named configurations editor present in the CPS. A list of all configurations of similar type present in the repository is shown. Select a configuration name from the list to use that named configuration in a given service instance.


Figure 72: Load Named Configuration

After selecting the named configuration from drop down, the UI will be disabled and will not be able to edit the configuration.


Figure 73: UI disabled after loading Named Configuration

Save Named Configuration

To save a new Named Configuration to the repository, specify a name against Named Configuration, which is not present in the drop-down list and provide the configuration details that need to be saved.

Icon

The UI gets enabled to edit the configuration on typing a new name, while it will be in editable state by default if no configuration is present in the drop-down, that is, if there is no stored configuration present.

Click Save and Close button or Finish button in the CPS to save the named configuration to the repository. 


Figure 74: Save Named Configuration

Encrypt Decrypt Configuration

XML Messages received by and sent from components in event processes can be encrypted and/or decrypted so that sensitive data will be more secure and be protected from being accessible to everyone, and hence enable authorized usage.
This can be done by providing a global encryption key and selecting the elements in XML messages that are to be encrypted/decrypted in component configuration.

XML Message Encryption and Decryption

The first step in securing XML messages is to define an encryption key to be used across all event processes.

Adding Encryption Key

  1. In eStudio, navigate to Configuration Repository View and right-click the Resource button. Select Add Configuration to open the window for adding new Resource Configuration. Select the Resource type as MessageEncryptionConfiguration as shown in the figure below and click Next.


    Figure 75: Add Resource Configuration

  2. Provide the encryption key password (any string) and XML Block Encryption Algorithm as below and click Finish. Supported XML Block Encryption Algorithms are AES128, AES256, TRIPLEDES.


    Figure 76: Provide Encryption Key and Algorithm
Icon

Only one MessageEncryptionConfiguration can be created in one instance of Fiorano Enterprise Server (FES) and the same will be used across all event processes in this FES.

Configuring Components for Message Encryption

When enabled, in general, components will send messages coming out on OUT_PORT in encrypted form and those received on IN_PORT will be decrypted. However, some components which send messages to other servers after receiving them on IN_PORT, like WebServiceConsumer, can encrypt the message received on IN_PORT before sending it to the server and decrypt the message after receiving from the server before sending to OUT_PORT.

The components that support both encryption and decryption on both input and output ports are WSStub, WebServiceConsumer:5.0, WebServiceConsumer:4.0, SalesForce, HTTPAdapters:5.0, HTTPAdapters:4.0 and HttpReceive.

Selecting XML elements to encrypt

In the component CPS, which have single input and output ports, the configuration will be as below.


Figure 77: Encrypt/Decrypt properties in CPS

Enable Show Expert Properties to see properties Input Elements to Encrypt/Decrypt and Output Elements to Encrypt/Decrypt. Both have similar configurations.
Open the Property Editor by clicking on ellipsis  button to select XML elements.


Figure 78: Select elements to encrypt/decrypt

Encrypt: Select this option if the message coming on to this port should be encrypted. Otherwise, the component assumes the message is already encrypted and so will be decrypted.

Select elements to encrypt/decrypt: The message will be either encrypted or decrypted only if there are any XML elements in Selected elements list.
Under Select elements to encrypt/decrypt, the schema structure of the input/output port is shown.

The encryption mechanism does not encrypt/decrypt the XML message as a whole but only the individual XML elements.
Select the elements which are to be encrypted or decrypted by clicking button.
There is no need to select child elements if a parent element is selected. The parent element is encrypted as a whole.

Add elements to encrypt/decrypt: Some components may not have schema on ports. In that case, semi colon separated XPaths, similar to the one in Selected elements list, can be provided here.

Namespace Prefixes: A map of prefix versus namespace used in XPaths can be configured here.
In components with multiple ports, the configuration is similar to single port components except that the above configuration can be done for each individual port.

Navigate to Encrypt/Decrypt Configuration and click Refresh to populate the ports of the component.


Figure 79: Components with multiple ports

Select the required port to populate schema structure. The rest of the configuration is the same as above.


Figure 80: Select elements for each port

Sample Event Process demonstrating Message Encryption

  1. Create an Event Process with Feeder and Display.
  2. Configure Feeder with a schema. In the next page, select Encrypt Configuration tab and select XML elements to encrypt as described above.
  3. Adding MessageEncryptionConfiguration in Configuration Repository view is mandatory before launching the component.
  4. Launch the event process and send a message from Feeder to Display.
  5. A sample message received by Display where OutPart1 element is encrypted can be as below.


    Figure 81: Sample encrypted message

Password Encryption

Adding KeyStore Configuration

  1. In eStudio, open Configuration Repository panel and right-click Resource. Click Add Configuration to add new Resource Configuration. Select the Resource type as "Keystore" as shown below.


    Figure 80: Adding Resource Configuration

  2. Click Next to get the add AES Encryption Key. Enter any String of your choice (recommended minimum of 6 characters for better security) and click Finish to save the keystore which will be used as the key for encryption/decryption of data.


    Figure 82: Adding Encryption Key

Custom Encryption of Passwords

Components in Fiorano Event Processes contain passwords of External Systems like Databases, FTP Servers as part of their configuration. Using this feature, users can use their own keys and algorithms to encrypt passwords.


Figure 83: DB Configuration dialog box

Password Encryption Configuration

Use Custom Encryption

This feature enables you to use your own keys and algorithms to encrypt passwords.  On selecting this check box, two prompts appear,  asking for CustomClass and whether to get Password from vault.

Custom Encryption Class

Java Class which implements ICustomEncryptor has to given in Custom Class text box. You have to override methods encrypt(String) and decrypt(String), for encrypting and decrypting passwords respectively.

Get Password From Vault

If  this check box is selected, you have to enter key instead of password in password field(s). getPasswdFromVault(String key) method from CustomClass (which is implementor of IcustomEncryptor) gets the passwords by taking keys as params.

Below is the sample class that reverses the password(s) and saves password(s) in configuration. Follow the below steps for testing:

  1. Compile the java file with including fiorano-utilj4 jar in classpath.This jar is at location {FIORANO_HOME}/framework/lib/fiorano-utilj4.jar
  2. After compiling, add the class to resources of that component.
  3. Right-click the component in Service Palette and click Edit.
  4. Under Deployement tab, add class file/jar(with compiled class) to resources; the input request gets executed.

Sample Class

External CPS Error with Solaris (solution)

To make External CPS (components like RESTStub, RestConsumer, XMLSplitter, Aggregator etc) work in Solaris operating system, make changes in java.security (location: $JAVA_HOME/jre/lib/security) as mentioned in the following link: http://ccortezsv.blogspot.in/2014/03/sunsecuritypkcs11configurationexception.html

Icon

Configurations will not be saved in CPS unless the above exercise is performed.

Adaptavist ThemeBuilder EngineAtlassian Confluence