Concepts Guide=en

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 234

DownloadConcepts Guide=en
Open PDF In BrowserView PDF
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 "

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 234
Page Mode                       : UseOutlines
Author                          : 
Title                           : 
Subject                         : 
Creator                         : LaTeX with hyperref package
Producer                        : pdfTeX-1.40.16
Create Date                     : 2019:03:10 10:49:56-05:00
Modify Date                     : 2019:03:10 10:49:56-05:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) kpathsea version 6.2.1
EXIF Metadata provided by EXIF.tools

Navigation menu