This chapter explains the parameters that can be configured at the FioranoMQ Server level. These parameters are commonly used across the FioranoMQ Server and can be configured in the default profile at the node FioranoMQ->Fiorano->etc->FMQConfigLoader in Offline Configuration mode using Studio.
For information on how to configure the FioranoMQ Server in Offline mode, refer to Chapter 3: Offline Configuration Through Profile Manager and for Online Configuration (through the Web Management Console), refer to Chapter 32: FioranoMQ Web Management Console of FioranoMQ Handbook.
FMQConfigLoader
This chapter explains the parameters present in FioranoMQ->Fiorano->etc->FMQConfigLoader
AclBasedDestinationSecurity
This indicates whether ACL based security is enabled.
Valid values:
The default value is no.
- yes - if enabled, User operations will first be checked against the associated ACL.
- no – if disabled, User operations will not be checked against the associated ACL.
Example:
In a multi user environment in which each User must have different access privileges to the FioranoMQ Server, this value must be set to yes.
AllowDurableConnections
A Durable Connection maintains connectivity with FioranoMQ at all times. Applications do not have to take care of storing, re-connecting and then forwarding stored messages to the Server. These activities are not visible to the client application and are automatically performed by FioranoMQ's runtime library. When the connection is restored, messages stored in the local store are automatically sent to the server.
Valid values: The default value is no.
- yes - durable connections are enabled in the Server. All that a client application has to do to make its connection durable is to AllowDurableConnections in its application code Please refer to Section 5.1 Durable Connections in the Server in the FioranoMQ Handbook.
- no - durable connections are not enabled in the Server. This nullifies the AllowDurationConnections property set in the client.
Example:
Consider a process computer monitoring a steel mill. Real-time steel production information is sent each second to a main hub. The main hub uses this information to generate the desired results. If the connection between the Process machine and the Hub breaks, the send mechanism fails and an exception is raised. Since this data is generated only once, the application requires to store this data upon encountering the exception and while trying to connect to the server. This adds considerable load to the application. In such cases, a Durable Connection comes to the rescue by doing the work for the application. It automatically tries to reestablish the connections, stores the data in transit and sends it to the Server as soon as the connection is restored.
Dependencies:
AutoRevalidationEnabled - If AllowDurableConnections is set to yes, AutoRevalidationEnabled will automatically be set to yes.
AllPermissions
This parameter determines whether all default permissions for a new ACL should be negative or positive. For this option to have an effect AclBasedDestinationSecurity must be set to true.
Valid values: The default value is yes.
- yes - when set to yes, all default permissions for a new ACL would be positive.
- no - when set to no, all default permissions for a new ACL would be negative.
Example:
This parameter can be set to no when Users are to be added with their respective permissions added later.
AllowOnTheFlyAclCheck
This flag indicates whether modifications in an ACL would be reflected on clients while the Server is running. If AclBasedDestinationSecurity is set to yes, this will not affect those clients that are connected unless AllowOnTheFlyAclCheck is set to yes as well.
Valid values: The default value is no.
- yes - clients that are connected behave similar to future clients that are to connect to the Server after modifications to the ACL.
- no - C clients that are connected to the Server behave as they did prior to the modifications to the ACL.
Dependencies
- The AllowOnFlyAclCheck flag works for all permissions except in the instance below where: A publisher is publishing non-persistent messages on a topic.
- The permission to create a publisher is revoked on this topic.
- No exception is thrown even though the User is not allowed to publish because messages are sent in batch mode. Therefore, to receive an exception:
Solution One:
For NP messages, batching are enabled by default which leads to the behavior mentioned above. To receive an exception at the send API, set the BatchingEnabled parameter in the ConnectionFactory to FALSE.
Solution Two:
Add the line below in the client code environment while performing the lookup function:
env.put("BatchingEnabled", "false")Note: env is the environment passed while performing a JNDI lookup. This disables batching for that particular client.
See: AclBasedDestinationSecurity.
AllowOnTheFlyCreationOfDestinations
This flag controls the behavior of createTopic and createQueue APIS in a JMS Session. This deters a User from creating the destination using the session.createTopic or session.createQueue APIS. This does not prevent the admin User from creating destinations. Destinations can still be created using admin connection and admin services.
Valid values: The default value is yes.
- yes -a new destination is automatically created when a destination name that does not exist is invoked.
- no - when a destination name that does not exist is invoked an exception will be thrown.
Example:
When clients are not be allowed to create destinations, the FioranoMQ Server administrator can make sure only the required destinations are created and clients do not add to existing destinations by setting this value to no.
CreateDefaultACL
This indicates whether to create default ACLs for different FioranoMQ objects. When set to yes different FioranoMQ objects are attached with their respective ACLs that decide which set of users/groups have access to a particular FioranoMQ object.
Valid values: The default value is yes
- yes - FioranoMQ objects have their respective default ACLs. For default ACLs to have an effect, AclBasedDestinationSecurity must be set to true.
- no - no default ACLs are created for FioranoMQ objects.
See also AclBasedDestinationSecurity.
EnableAutoRevalidation
EnableAutoRevalidation enables controlling auto revalidation. Auto revalidation refers to Fiorano runtime’s ability to detect a loss of connection and its subsequent attempts to automatically re-connect back to the server.
Valid values: The default value is no.
- yes - Fiorano runtime will automatically try to reconnect to the server on detecting a loss of connectivity.
- no - the client will not reconnect automatically upon loss of connection.
Dependencies
The parameter above depends on AllowDurableConnections. If EnableAutoRevalidation is set to yes then EnableAutoRevalidation is also set to yes.
EnsureUniquenessOfClientId
Every FioranoMQ JMS client is supplied with a clientID. This flag indicates whether uniqueness of clientIDs is required.
Valid values: The default value is yes.
- yes - a connection that sets a client ID set on another connection will get an exception upon doing so.
- no - a connection that sets a client ID set on another connection will proceed normally.
Example:
When each clientID is required to be unique, this value must be set to yes.
HttpPollingInterval
The polling interval for HTTP requests the amount of time in milliseconds. The request waits for messages before returning a response from the Server.
Valid values: The default value is 10000.
Range of integer values in java are: -2^31 to 2^31 -1.
All values less than or equal to 0 are equal to each other.
IncludeMessageID
IncludeMessageID determines whether to include the messageID as part of the message.
Valid values: The default value is no.
- yes - messageID will be included as part of the message.
- no - messageID will not be included as part of the message.
LazyRSCreation
LazyRSCreation is a value that determines if the thread creation is optimized on the client-side. Although the connection is started with the start method call, a thread for listening in on the data has to be started. When the thread creation is optimized, a thread is created when the first consumer joins a session created by the connection.
Valid values:
- yes – the thread creation is optimized on the client-side. A thread is created when the first consumer joins a session created by the connection.
- no – the thread is not optimized. A thread is created as soon as the connection is started. This is the default value.
Example:
When the number of threads running in an application need to be economized, the value must be set to yes so that there are no unnecessary threads created until a consumer joins a session.
MaxTransactionBufferSize
MaximumTransactionBufferSize is the maximum amount of data (in bytes) that a transacted Session would store in an uncommitted state. Any attempt to publish more data in an uncommitted transaction will result in an exception.
Valid values: The default value is 10240000
Range of integer values in java. (-2^31 to 2^31 -1)
All values less than zero are equal to each other.
MessageSelectorFactoryClassName
MessageSelectFactoryClassName is the class name that provides the Content Based Routing (CBR) Engine functionality for FioranoMQ Server. This property is used only if CBR is enabled in the FioranoMQ Server.
Valid values: The default value is fiorano.jms.cbr.cbr1.def.MessageSelectorFactory.
PingEnabled
PingEnabled property controls client connections pinged automatically. Pinging is essential for detecting Network problems.
Valid values: The default value is yes.
- yes - client connections are pinged automatically.
- no - client connections are not pinged automatically.
ResumeTimeoutInterval
ResumeTimeoutInterval is the integer specifying the resume timeout to be used by a Large Message Support(LMS) application. If timeout is not resumed within the given period, resuming timeout is stopped. For more details about LMS, please refer to Chapter 8 in FioranoMQ Handbook.
Valid values: The default value is -1. (This indicates that the application will wait indefinitely.)
Range of long values in java - -2^63 to 2^63 -1.
All values less than zero are equal to each other.
SSLEnabled
SSLEnabled is the property which enables a SSL connection with the Server.
Valid values: The default value is no.
- yes - SSL connections are enabled with the server.
- no - SSL connections are not enabled with the server.
SystemEncodingFormat
SystemEncodingFormat encoding format for UTF.
Valid values: Any string.
The default value is UTF-8.
UseFioranoCbr
In group based systems, messages are classified as belonging to a certain group referred to as a ‘topic’. Publishers are required to label each message with a topic name, while consumers subscribe to all messages on a particular topic.
When set to yes this offers a better alternative to group-based systems, known as content-based routing. These systems route messages to subscribers based on content instead of message properties contained in the headers. There is no overhead imposed on the publisher and prior knowledge of the domain is not required. Subscribers have the added flexibility of choosing filtering criterion along multiple dimensions, without requiring a pre-definition of groups.
Valid values: The default value is no.
- yes - enables content based routing at the Server-side. The Server will now have CBR enabled, and clients can send and receive XML messages with XPath selectors.FioranoMQ. CBR utilizes a subset of XPath notation and SQL92 syntax to specify XPath message selectors. Only absolute paths are to be used. Several XPath strings can be combined with AND/OR conditions. Please refer to samples/PubSub/ContentBasedRouting for running clients with CBR.
- no - content based routing is not enabled in the Server.
Example:
Stock Trade Example
Consider a brokerage firm that can have thousands of subscribers interested in information on stock trades. Each subscriber has their own selection criterion based on individual requirements. One subscriber would like to be alerted when two stocks fall below a certain price.
MSFT stock falls below 55 AND ORCL stock falls below 15.
UseSingleSocket
Each JMS Connection results in the creation of two sockets with the Server. By turning on this flag each Fiorano client is instructed to use a single socket rather than both sockets.
Valid values: The default value is no.
- yes - each JMSConnection that a client makes results in one socket.
- no - each JMSConnection that a client makes results in two sockets.
Example:
Where sockets are to be economized, set this value to yes.
UseSingleSocketForAdmin
Turning on this flag, will result in starting off a thread for Admin Connection that waits for data on a socket, constantly. This enables the detection of a loss of connection immediately.
Valid values: The default value is yes.
- yes - a thread for an Admin Connection is created on the socket and it waits for data on socket, constantly. This enables the detection of a loss of connection immediately.
- no - loss of connection will not be detected immediately.
Example:
In most situations it is better to set UseSingleSocketForAdmin to yes because it provides an easy way to immediately detect a loss of connection.