Increasing subscriber performance

The following parameters defined in the configuration file opensubscriber.xml affect subscriber performance.

Table 1-2: Subscriber performance settings.

Parameter

Description

LogLevel

This parameter controls how much information is logged during system operation. Logging information is an expensive operation, and this level should be adjusted to log as little information as possible for effective operation of the system in your operational environment. For optimal performance this value should be set to error or warning.

NumPacketBuffers

Packet buffers are in memory buffers used on the subscriber side to store arriving packets until they are processed by the subscriber. The number of packet buffers is specified on a per data stream channel basis. This parameter should be increased if the message sending rate of the publisher exceeds the message receiving rate of the subscriber. If the subscriber can process data at a rate matching the data sent by the publisher, a value of 20-35 packet buffers per data stream channel is ample to allow for small bursts of increased traffic.

PacketWindowSize

The subscribers may receive network packets in an order other than the order the packets were sent. If a packet is received out of sequence, this parameter determines how many additional packets can be received before a resend request is sent for the missing packet. A very small value can result in requesting resends for packets that will arrive out of order due to network latencies. A very large value will increase the latency that occurs when packets are actually lost over the network.

The packet window size is related to the number of packets cached by the publishers sending data to this subscriber (NumPacketBuffers). The packet window size of a subscriber should be 70-80% of the number of packets cached by the publisher to ensure that the publisher has the ability to send missing packets in response to resend requests. This setting should never be set to a value that exceeds the number of packet buffers allocated to its publisher as this will result in data loss in situations where resends are required.

DataStreamChannelList

This parameter lists the data stream channel definitions for the subscriber. The list should match the data stream channel list defined for the publishers to which this subscriber is subscribed.

The number of data stream channels should be increased if the message sending rate of the publisher exceeds the message receiving rate of the subscriber. It should be noted, however, that a very large number of data channels has a negative impact on the overall system performance as it results in resource contention.