DataSource XML configuration schema

This page describes the schema of the deprecated DataSource XML configuration file.

XML configuration files were deprecated in DataSource 6.2, and removed in DataSource 7. For information on the modern configuration syntax, see DataSource configuration reference: introduction.

Overview

pattern logging udpSignal pattern packetLog pattern 0..∞ patternManager replayManager latencyChainManager delayChannel 0..∞ delayManager heartbeat local remote destination 0..∞ peer 0..1023 nameSpace 1..∞ messagingFields messagingManager user 1..∞ users jmxManager sendDirect DataSource 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 RmZO

Elements

<dataSource>

The root tag for configuring a DataSource.

Configures how peers will identify and connect to this DataSource application. This application will identify its peers using the information set in the <peer> tags.

If SSL is enabled keystores must be correctly configured. See http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore for further details.
Attributes
Name Type Default Required Description

appName

string

[class name]

No

The name of this DataSource, and how DataSource peers will identify it. This name can be overridden by putting a value in the name attribute of a <peer> element.

id

int

0

No

ID number of this DataSource. This ID can be overridden by putting a value in the id attribute of a <peer> element. It must match the id attribute given in the <remote> element of the remote DataSource’s configuration

address

string

localhost1

No

Network interface to listen for connections from DataSource peers

port

int

0

No

Network port to listen for connections from DataSource peers. The default of 0 means that no connections can be made to this DataSource

SSLAddress

string

localhost

No

Network interface to listen for SSL connections from DataSource peers

SSLPort

int

0

No

Network port to listen for SSL connections from DataSource peers. The default of 0 means that no SSL connections can be made to this DataSource

peerConnectionTimeout

int

10

No

The amount of time to wait for a valid peer info packet (protocol negotiation) when making or receiving a peer connection.

Example

<dataSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" port="25099" appName="TEST">
  <logging count="7" level="CONFIG"/>
  <packetLog cycleTime="60" cyclePeriod="60" count="168" />
  <peer>
    <local id="112" type="ACTIVE CONTRIB"/>
    <destination address="merlin" port="25007" />
  </peer>
</dataSource>

<logging>

Configures how your DataSource application logs internal status messages and error messages.

This tag will result in a java.util.logging.Logger instance being created with the specified configuration. This logger instance is available from com.caplin.datasource.DataSource.getLogger().

Please note that from version 6.0 configuring your logger in XML is not recommended. The preferred approach is to pass your java.util.logging.Logger into the factory method com.caplin.datasource.DataSourceFactory.createDataSource(String, String, Logger). If you use this factory method then you must remove any logging configuration from your XML configuration file, otherwise an IllegalStateException will be thrown.

The logging element is deprecated from version 6.0.

Attributes
Name Type Default Required Description

cyclePeriod

int

1440

No

The time in minutes between log file rotations. The default and maximum value is one day (1440 minutes).

cycleTime

int

240

No

If cyclePeriod is one day then cycleTime is the time in minutes from midnight for the first log file rotation.

If cyclePeriod is less than one day then cycleTime is a time period in minutes, used to split up the day starting from midnight, the first log file rotation will occur at the start of the next period. Example 1: if cycleTime is 15 the first log file rotation will occur the next time it is 0, 15, 30 or 45 minutes past an hour. Example 2: if cycleTime is 120 the first log file rotation will occur at the start of the next even hour.

The default value is 240 which, with the default cyclePeriod of 1440, means the logs are cycled at 4:00am every day.

maxSize

long

0

No

The maximum size in bytes of the log before rotating, or 0 for no limit. If maxSize is not zero cyclePeriod and cycleTime will be ignored.

count

int

10

No

Specifies how many wrapped logs to keep, including the currently used log. If this attribute is left out then 10 logs files will be maintained.

rotateLogOnStartup

boolean

false

No

Whether the datasource rotates the existing log file on startup rather than appending to it.

subsystem

string

com.caplin.datasrc.DataSource

No

The name for the Logger (see java.util.logging.Logger). If DataSources have the same logger name, in the same process, they will use the same logger. If DataSource have diffrent logger names they use different loggers and will log to diffrent files.

default

boolean

true

No

Specifies whether the default DataSource implementation of java.util.logging.Handler is used publishing log messages. The default handler writes to a text file. Each line writes out the date in ISO8601 format, the level of the message and the message itself.

level

string

INFO

No

Sets the java.util.logging.Level for DataSource logging. This will pick up any custom levels that have been added as well as the standard levels. The standard Java levels for logging messages are:

  • OFF

  • SEVERE

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

  • ALL

The logger will inherit the system default of any logging properties.

useParentHandlers

boolean

false

No

Specifies whether or not this logger should send its output to its parent Logger.

Example
<logging level="CONFIG" cycleTime="120" cyclePeriod="120" count="84" />

<packetLog>

Configures how your DataSource records binary messages sent between this DataSource and its peers.

This tag will result in a packet-level log file being created with the specified configuration, unless the noPacketLog attribute is set.

Attributes
Name Type Default Required Description

cyclePeriod

int

1440

No

The time in minutes between log file rotations. The default and maximum value is one day (1440 minutes).

cycleTime

int

240

No

If cyclePeriod is one day then cycleTime is the time in minutes from midnight for the first log file rotation.

If cyclePeriod is less than one day then cycleTime is a time period in minutes, used to split up the day starting from midnight, the first log file rotation will occur at the start of the next period. Example 1: if cycleTime is 15 the first log file rotation will occur the next time it is 0, 15, 30 or 45 minutes past an hour. Example 2: if cycleTime is 120 the first log file rotation will occur at the start of the next even hour.

The default value is 240 which, with the default cyclePeriod of 1440, means the logs are cycled at 4:00am every day.

maxSize

long

0

No

The maximum size in bytes of the log before rotating, or 0 for no limit. If maxSize is not zero cyclePeriod and cycleTime will be ignored.

count

int

10

No

Specifies how many wrapped logs to keep, including the currently used log. If this attribute is left out then 10 logs files will be maintained.

rotateLogOnStartup

boolean

false

No

Whether the datasource rotates the existing log file on startup rather than appending to it.

noPacketLog

boolean

false

No

If true, suppresses writing out a packet log.

Example
<packetLog cycleTime="30" cyclePeriod="30" count="336" />

<pattern>

Pattern tag is optional and there can be only one in a <packetLog> or <logging> tag. It allows to specify the name of the initial log to be created by the DataSource (rotated log files will have a .number appended to this). The pattern may be constructed with an expression for java.text.SimpleDateFormat class to parse, so the file names would contain the actual date and/or time.

There are several special character allowed:

  • %t - java.io.tempdir property

  • %u - user.home property

  • %h - hostname

  • %r - current directory

  • %n or %a - application name (the name of the main() class)

Attributes
Name Type Default Required Description

patternType

string

text

No

Possible values: "text" - patternString parameter contains a string to name the log file with, "date" - patternString parameter contains date pattern for the java.text.SimpleDateFormat class.

patternString

string

packet.log

No

Contains the pattern to name the log file. With patternType="date" it should be in java.text.SimpleDateFormat acceptable format.

Example
<packetLog cycleTime="30" cyclePeriod="30" count="336" />
   <pattern patternType="date" patternString="'%u/packet-%n-'yyyy-MM-dd'.log'" />
</packetLog>

<latencyChainManger>

Tag for enabling latency chaining.

Attributes
Name Type Default Required Description

InitialTimeStampField

string

LTY_INIT_TS

No

Field name for the InitialTimeStamp. This fields contains the start time of the chain in milliseconds.

TimeStampListField

string

LTY_LIST_TS

No

Field name for the TimeStampList. This fields contains a comma separated list of time deltas.

EventListField

string

LTY_LIST_EVENT

No

Field name for the EventLis. This fields contains a comma separated list of events corresponding to the time deltas.

Base64

string

ignore

No

Sets the configuration for Base64 encoding of the fields.

  • ignore - no Base64 encoding

  • detect - inspect received fields to see if they are using Base64 encoding and decode if it is encoded

  • decode - decode all received latency chain fields

  • encode - encode all transmitted fields with Base64

Example
<latencyChainManager
  InitialTimeStampField="LTY_INIT_TS"
  TimeStampListField="LTY_LIST_TS"
  EventListField="LTY_LIST_EVENT"/>

<peer>

Parent tag containing the elements which configure how this application communicates with its peers. Multiple destinations should be used to enable failover. If multiple destinations are present then connections to the destinations will be attempted in the order the tags appear in the XML.

Attributes
Name Type Default Required Description

ssl

boolean

false

No

f true, uses the Secure Sockets Layer (SSL) protocol when connecting to another peer. Note: if SSL is enabled keystores must be correctly configured. See http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore for further details.

msgQueueSize

int

200

No

Sets the size of the message queue that will buffer outgoing messages in the event of the peer disconnect and then send them when the peer connection is re-established.

ejectExistingConnection

boolean

true

No

Whether this peer (if listening for inbound connections) should eject any existing connection when a new peer connection is received.

enableTCPNoDelay

boolean

false

No

Set whether the peer socket should use TCP_NODELAY. This setting should be true if the lowest possible message latency is required. When set to true, there is a trade-off of maximum throughput (messages / second) that will be possible.

Example
<peer>
  <local id="112" name="CaplinTest" type="ACTIVE CONTRIB"/>
  <destination address="merlin" port="25007" />
  <destination address="merlin2" port="25005" />
</peer>

<heartbeat>

Configures the rate of heartbeats sent between peers which indicate the health of connections. This heartbeat rate is just a suggestion: on connection to a peer, the DataSources will negotiate a suitable heartbeat rate. If the peer doesn’t support heartbeats then they will not be sent.

Attributes
Name Type Default Required Description

time

long

-1

No

The time, in milliseconds, between heartbeats. The default (-1) means heartbeats are turned off. A suggested time is 15000 as this will send a heartbeat every 15 seconds if no other traffic is being sent, which is suitable for most firewall configurations.

slackTime

long

5000

No

The delay, in milliseconds, after the time attribute before the peer connection is terminated and your application attempts to reconnect due to no heartbeat being received.

Example
<heartbeat time="5000" slackTime="2000" />

<local>

Configures the type information that the DataSource sends to this peer to identify its capabilities.

Attributes
Name Type Default Required Description

name

string

No

Name of this DataSource. Overrides the appName attribute of the <dataSource> tag.

id

int

No

ID number of this DataSource. Overrides the id attribute of the <dataSource> tag.

type

string

No

Type of this DataSource.

Possible values are shown below and can be either one or both, space separated. This type information is used by the peer so that it knows what operations this DataSource provides. Without either values the peer assumes this DataSource to be a Broadcast source that doesn’t support Contributions.

  • ACTIVE: This application only sends updates to those peers which requested them)

  • CONTRIB: This application will receive contributions made by clients to objects which it supplies updates for).

Example
<local id="112" name="CaplinTest" type="ACTIVE CONTRIB"/>

<remote>

Configures the expected capabilites of this peer. Note: once connected, this peer may send different capabilities, which will override those set here.

Attributes
Name Type Default Required Description

name

string

src_index of peer

No

Name of DataSource peer. Will be overridden by the peer once the connection is established.

id

int

0

No

ID number of the DataSource peer that will connect.

type

string

No

Type of this DataSource.

Possible values are shown below and can be either one or both, space separated. This type information is used by the DataSource so that it knows what operations this peer is expected to provide. This may differ from the actual operations that the peer provides, these will be set at connection time. Without either values this DataSource assumes the peer to be a Broadcast source that doesn’t support Contributions.

  • ACTIVE: This peer operates in active mode. Can be overridden by the peer once the connection is established.

  • CONTRIB: This peer can receive contributions made by clients to objects which it supplies updates for.

Example
<remote id="115" name="CaplinOther" type="ACTIVE"/>

<destination>

Configures the location of this peer.

Attributes
Name Type Default Required Description

address

string

localhost

No

The address to connect to

port

int

25000

No

The port to connect to.

Example
<destination address="merlin" port="25007" />

<jmxManager>

Tag containing the elements which configure jmx monitoring for this application.

Attributes
Name Type Default Required Description

enable

boolean

false

No

Specifies whether JMX monitoring is enabled or not.

root

string

javadatasrc

No

Specifies the prefix which will be applied to all MBeans created by this datasource, except the ServerType MBean which has no prefix.

serverType

string

javadatasrc

No

Specifies the type of application this is, which clients can use to determine what MBeans this datasource will provide. For a Java dataSource this should nearly always be javadatasrc, however if you have provided custom Views for you Enterprise Management Console that can distinguish between specialist types of Java DataSource then you should use the dataSource’s distinguishing serverType string here instead.

rmiRegistryPort

integer

1099

No

Specifies the port on which the RMI registry into which the MBeanServer is bound will listen; this is the port that tools (such as the Enterprise Management Console) will generally connect to.

rmiClientPort

integer

-1

No

Specifies the port on which the RMI registry will provide a connection to the MBeanServer. Note: the default value of -1 will cause java to allocate an arbitrary available port when required. This may cause problems if you need to connect via JMX through a firewall, so it is recommended that this attribute is specified explicitly.

hostInterface

string

See description

No

Specifies the network interface on which to export RMI servers and also causes RMI stubs to be embedded with that network interface’s IP address. If not set the default Java RMI behaviour of listening on all network interfaces and embedding the primary interface’s IP address into the stub occurs.

Example
<jmxManager enable="true" rmiRegistryPort="4567" hostInterface="192.168.35.100" root="production-source-1"/>

<sendDirect>

Tag containing the attribute which configures the default com.caplin.datasrc.DSSendManager (a com.caplin.datasrc.SendDirect instance for this DataSource). If a SendDirect instance is not used, this tag has no effect.

Attributes
Name Type Default Required Description

sendMessagesToDisconnectedPeers

boolean

true

No

Specifies whether or not the SendDirect instance should attempt to send messages to Peers that are currently disconnected. If true all messages are sent to all Peers otherwise, if false, messages are only sent to Peers that are currently connected. If a message is sent to a disconnected peer it may be buffered in the Peer’s outgoing message queue and subsequently may still be delivered to the message consumer. Not sending messages to disconnected peers improves performance, particularly if there are high numbers of disconnected peers.

Example
<sendDirect sendMessagesToDisconnectedPeers="true" />

<udpSignal>

Attributes
Name Type Default Required Description

address

string

No

port

int

Yes

<replayManager>

Attributes
Name Type Default Required Description

replayType

string

No

dateString

string

No

dateFormatClass

string

No

fileName

string

No

symbol

string

No

fieldNum

int

No

fieldVal

string

No

<delayManager>

Attributes
Name Type Default Required Description

blockRealTime

boolean

No

batchTime

long

No

batchSize

int

No

<delayChannel>

Attributes
Name Type Default Required Description

prefix

string

No

delayTime

long

No

batchTime

long

No

batchSize

int

No

<messagingManager>

Attributes
Name Type Default Required Description

messageType

string

No

<namespace>

Attributes
Name Type Default Required Description

pattern

string

No

ackPrefix

string

No

<messagingFields>

Attributes
Name Type Default Required Description

classname

string

No

<users>

Attributes
Name Type Default Required Description

classname

string

No

<user>

Attributes
Name Type Default Required Description

username

string

No

password

string

No

classname

string

No