BlackBerry MDS contains built-in flow control used when pushing data to a BlackBerry smartphone.
BlackBerry MDS starts by sending, at most, 5 initial packets. As these packets are acknowledged and more packets are sent, a constant window of no more than 5 pending packets is maintained.
The default packet size depends on the BlackBerry MDS version. The default package size is 29 KB for BlackBerry MDS 1.0, and 8 KB or 2 KB for BlackBerry MDS 1.1.
The packet size is configurable using the IPPP.Datagram.Maxsize parameter in the rimpublic.property file. Thisfile is located on the BlackBerry MDS Server in the following directory:
C:\Program Files\Research In Motion\BlackBerry Enterprise Server\MDS\Servers\SERVER\config
Once you open the rimpublic.property file you can add the IPPP.Datagram.Maxsize parameter and set its value. The following example sets this value to 29 KB:
IPPP.Datagram.Maxsize = 29 696
If BlackBerry MDS has queued five packets and the BlackBerry smartphone does not respond (for example, the BlackBerry smartphone is outside the network coverage area or is turned off), the packets are queued for 10 minutes. This time value can be configured on the BlackBerry® Enterprise Server under Flow Control Timeout. By default, the Flow Control Timeout value is set to10 minutes. This means that after 10 minutes the packets are cancelled and any outstanding packets in BlackBerry MDS are discarded. This event is identified in the MDS-CS log files as error message 30371, "Packet cancelled locally".In BlackBerry Enterprise Server software version 4 this parameter can be found in the BlackBerry Manager under BlackBerry MDS Connection Service -> General -> Flow Control -> Flow Control Timeout. In BlackBerry Enterprise Server software version 5 this parameter can be found in BlackBerry Administration Service under BlackBerry MDS Connection Service -> Servers and components -> BlackBerry Solution topology-> BlackBerry Domain -> Server view -> BES_Server -> BES_Server_MDS-CS - > General -> Flow Control -> Flow Control Timeout.
The advantage of increasing the Datagram.MaxSize parameter is that larger amounts of push data can be sent in a packet. However, if the BlackBerry smartphone is out of the network coverage area, 5 larger packets will be queued. This means more memory is required on the BlackBerry MDS Server. The flow control timeout parameter defines how long data can be queued. A larger flow control timeout will also require more memory in case the BlackBerry smartphone is out of the network coverage area because packets will be queued longer in memory. If both parameters are increased, the impact on memory usage is even greater.