Concepts Guide=en
User Manual:
Open the PDF directly: View PDF .
Page Count: 234
Ultra Messaging (Version 6.12)
Concepts Guide
Copyright (C) 2004-2019, Informatica Corporation. All Rights Reserved.
Contents
1
Introduction
5
2
Fundamental Concepts
7
2.1
2.2
Topic Structure and Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.1
Message Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.2
Topic Resolution Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.3
Topic Resolution Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Messaging Reliability
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2.1
Head Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2.2
Leading Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2.3
Tail Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3
Persistence
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4
Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.5
UM Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.6
Late Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.7
Request/Response
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.8
UM Transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.8.1
Transport Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.8.2
Multi-Transport Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.9
Event Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.10
Rate Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.10.1 Transport Rate Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.10.2 Topic Resolution Rate Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.11
Operational Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.12
Immediate Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.13
Context Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.14
Topic Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.15
Source Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.15.1 Source String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.15.2 Source Configuration and Transport Sessions . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.15.3 Zero Object Delivery (Source) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4
CONTENTS
2.16
Receiver Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.16.1 Receiver Configuration and Transport Sessions . . . . . . . . . . . . . . . . . . . . . . . .
21
2.16.2 UM Wildcard Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.16.3 Transport Services Provider Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.16.4 UM Hot Failover Across Contexts Objects
. . . . . . . . . . . . . . . . . . . . . . . . . . .
22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.17
Event Queue Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.18
Message Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.18.1 Message Object Deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.18.2 Message Object Retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.19.1 Webmon Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.16.5 Zero Object Delivery
2.19
3
Transport Types
27
3.1
Transport TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2
Transport LBT-RU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.3
Transport LBT-RM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.4
Transport LBT-IPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.4.1
LBT-IPC Shared Memory Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.4.2
Sources and LBT-IPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.4.3
Receivers and LBT-IPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.4.4
Similarities with Other UM Transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.4.5
Differences from Other UM Transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.4.6
Sending to Both Local and Remote Receivers . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.4.7
LBT-IPC Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.4.8
Required privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4.9
Host Resource Usage and Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.4.10 LBT-IPC Resource Manager
3.5
3.6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Transport LBT-SMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.5.1
Sources and LBT-SMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.5.2
Sending over LBT-SMX with Native APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.5.3
Sending over LBT-SMX with Existing APIs . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.5.4
Receivers and LBT-SMX
38
3.5.5
Similarities Between LBT-SMX and Other UM Transports
. . . . . . . . . . . . . . . . . . .
38
3.5.6
Differences Between LBT-SMX and Other UM Transports . . . . . . . . . . . . . . . . . . .
39
3.5.7
LBT-SMX Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.5.8
Java Code Examples for LBT-SMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.5.9
.NET Code Examples for LBT-SMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.5.10 LBT-SMX Resource Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
Transport Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONTENTS
4
4.1
4.2
4.3
4.4
5
5.1
5
Topic Resolution Description
49
TR Protocol Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.1.1
Multicast UDP TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.1.2
Unicast UDP TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.1.3
TCP TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
UDP-Based Topic Resolution Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
4.2.1
Sources Advertise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.2.2
Receivers Query
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.2.3
Wildcard Receiver Topic Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.2.4
Initial Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.2.5
Sustaining Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.2.6
Quiescent Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
4.2.7
Store (context) Name Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
4.2.8
UDP Topic Resolution Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . .
57
4.2.9
Unicast Topic Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.2.10 Network Address Translation (NAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.2.11 Example NAT Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
UDP-Based Topic Resolution Strategies
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.3.1
Default TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.3.2
Query-Centric TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.3.3
Known Query Threshold TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.3.4
Advertise-Centric TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
TCP-Based Topic Resolution Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.4.1
TCP-Based TR and Fault Tolerance
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.4.2
TCP-Based TR Version Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.4.3
TCP-Based TR Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.4.4
SRS Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
Architecture
UM Software Stack
67
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Delivery Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.2
Embedded Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.3
Sequential Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.4
Message Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.4.1
Implicit Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.4.2
Intelligent Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.4.3
Application Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.4.4
Explicit Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.4.5
Adaptive Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
Message Fragmentation and Reassembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
5.1.1
5.5
6
CONTENTS
5.5.1
Datagram Max Size and Network MTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.5.2
Datagrams and Kernel Bypass Network Drivers . . . . . . . . . . . . . . . . . . . . . . . .
74
Ordered Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.6.1
Sequence Number Order, Fragments Reassembled (Default Mode) . . . . . . . . . . . . . .
75
5.6.2
Arrival Order, Fragments Reassembled . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.6.3
Arrival Order, Fragments Not Reassembled
. . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.7
Loss Detection Using TSNIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.8
Receiver Keepalive Using Session Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.9
Extended Messaging Example
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.6
6
6.1
6.2
6.3
6.4
5.9.1
Example: First Message
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.9.2
Example: Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.9.3
Example: UM Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.9.4
Example: Loss Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.9.5
Example: Unrecoverable Loss
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
5.9.6
Example: Transport Deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
UM Features
83
Transport Services Provider (XSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
6.1.1
XSP Handles Transport Sessions, Not Topics
. . . . . . . . . . . . . . . . . . . . . . . . .
83
6.1.2
XSP Threading Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
6.1.3
XSP Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
6.1.4
Other XSP Operations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
6.1.5
XSP Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
Using Late Join
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
6.2.1
Late Join With Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.2.2
Late Join Options Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.2.3
Using Default Late Join Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.2.4
Specifying a Range of Messages to Retransmit
. . . . . . . . . . . . . . . . . . . . . . . .
91
6.2.5
Retransmitting Only Recent Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.2.6
Configuring Late Join for Large Numbers of Messages . . . . . . . . . . . . . . . . . . . . .
93
Off-Transport Recovery (OTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
6.3.1
OTR with Sequence Number Ordered Delivery . . . . . . . . . . . . . . . . . . . . . . . . .
94
6.3.2
OTR With Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
6.3.3
OTR Options Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
Encrypted TCP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
6.4.1
TLS Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
6.4.2
TLS Backwards Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
6.4.3
TLS Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
6.4.4
TLS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
6.4.5
TLS Options Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
CONTENTS
6.5
6.6
6.7
6.8
7
7.1
7.2
7.3
7
6.4.6
TLS and Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
6.4.7
TLS and Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
6.4.8
TLS and the Dynamic Routing Option (DRO) . . . . . . . . . . . . . . . . . . . . . . . . . .
98
6.4.9
TLS and Compression
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
Compressed TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
6.5.1
Compression Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
6.5.2
Compression and Persistence
6.5.3
Compression and Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5.4
Compression and the Dynamic Routing Option (DRO) . . . . . . . . . . . . . . . . . . . . . 100
6.5.5
Compression and Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.6
Version Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
High-resolution Timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.6.1
Timestamp Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.6.2
Timestamp Configuration Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Unicast Immediate Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.7.1
UIM Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.7.2
Receiving a UIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.7.3
Sending a UIM
6.7.4
UIM Connection Management
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Multicast Immediate Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.8.1
Temporary Transport Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.8.2
MIM Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.8.3
Receiving Immediate Messages
6.8.4
MIM and Wildcard Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.8.5
MIM Loss Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.8.6
MIM Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.8.7
MIM Example Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
UM Objects
109
Message Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.1.1
Message Properties Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.2
Smart Sources and Message Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.3
Smart Source Message Properties Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Request/Response Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2.1
Request Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2.2
Response Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.2.3
TCP Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2.4
Request/Response Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2.5
Request/Response Example Applications
Self Describing Messaging
. . . . . . . . . . . . . . . . . . . . . . . . . . . 114
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8
7.4
7.5
7.6
7.7
7.8
8
8.1
CONTENTS
Pre-Defined Messages
7.4.1
Typical PDM Usage Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.4.2
Getting Started with PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.4.3
Using the PDM API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.4.4
Migrating from SDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Sending to Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.5.1
Source String from Receive Event
7.5.2
Source String from Source Notification Function . . . . . . . . . . . . . . . . . . . . . . . . 131
7.5.3
Sending to Source Readiness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.6.1
Spectrum Performance Advantages
7.6.2
Spectrum Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.6.3
Smart Sources and Spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Hot Failover (HF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.7.1
Implementing Hot Failover Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.7.2
Implementing Hot Failover Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.7.3
Implementing Hot Failover Wildcard Receivers . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.7.4
Java and .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.7.5
Using Hot Failover with Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.7.6
Hot Failover Intentional Gap Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.7.7
Hot Failover Optional Messages
7.7.8
Using Hot Failover with Ordered Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.7.9
Hot Failover Across Multiple Contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Daemon Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.8.1
Daemon Statistics Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.8.2
Daemon Statistics Binary Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.8.3
Daemon Statistics Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.8.4
Daemon Statistics Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.8.5
Daemon Statistics Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Advanced Optimizations
143
Receive Buffer Recycling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Receive Buffer Recycling Restrictions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Single Receiving Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.2.1
8.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.1.1
8.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Single Receiving Thread Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
lbm_context_process_events_ex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.3.1
Context Lock Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.3.2
Context Lock Reduction Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.3.3
Gettimeofday Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.3.4
Gettimeofday Reduction Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
CONTENTS
8.4
Receive Multiple Datagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.5
8.4.1
Receive Multiple Datagrams Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.4.2
Receive Multiple Datagrams Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Smart Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.6
8.5.1
Smart Source Message Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.5.2
Smart Sources and Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
8.5.3
Smart Sources Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.5.4
Smart Source Defensive Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.5.5
Smart Sources Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Zero-Copy Send API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
8.7
9
9
8.6.1
Zero-Copy Send Compatibility
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8.6.2
Zero-Copy Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Comparison of Zero Copy and Smart Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Man Pages for SRS
155
9.1
SRS Man Page
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.2
Srsds Man Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
10 SRS Configuration File
10.1
SRS Configuration Elements
159
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.1.1 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.1.2 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.1.3 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . 161
10.1.4 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.1.5 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . . . . 162
10.1.6 SRS Element "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
10.1.7 SRS Element "