Relay Product Listener

« Back to receiving

The relay product listener provides a method for relaying products to subsequent (typically remote) receivers for additional distribution. This listener relies on configuring a list of senders to use for the relay. In addition to the standard listener properties, this type of listener accepts the following specific properties:

senders
A comma separated list of separate configuration sub-sections defining ProductSender implementations to use during relay.

Retry Behavior

The relay product listener has built in redundancy with the properties maxTries and retryDelay. maxTries being how many times the relay will attempt to send a product if it fails. retryDelay being the time between resend attempts. For a given PDL Java process, the client will attempt to resend a product up to the configured maxTries. If the expires time of the notification stored in a receiver’s NotificationIndex is still valid (default expires time of a newly created JsonNotification is 33 days) then on restart of the Java process, the relay product listener will attempt to send any products it has not already sent in the NotificationIndex up to maxTries again.

Example configuration

Note: This is a fully configured RelayProductListener using default values for optional parameters

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
listeners = relay_listener

[relay_listener]
type = gov.usgs.earthquake.distribution.RelayProductListener

# the following configuration parameters are supported by all listeners

cleanupInterval = 3600000
concurrentProducts = 1
excludePaths =
excludeSources =
excludeTypes =
includeActuals = true
includeDevelopments = false
includeInternals = false
includePaths =
includeScenarios = false
includeSources =
includeTests = false
includeTypes =
listenerIndex = listener_index
maxTries = 1
processDuplicates = false
retryDelay = 300000
timeout = 0

# the following configuration parameters are specific to an ExternalNotificationListener

senders = realtime_sender, sender_prod01

[listener_index]
type = gov.usgs.earthquake.aws.JsonNotificationIndex
table = listener_index

[realtime_sender]
type = gov.usgs.earthquake.aws.AwsProductSender
url = https://earthquake.usgs.gov
sendProductPath = /pdl/east/products/{urn}
getUploadUrlsPath = /pdl/east/products/{urn}/uploads
privateKey = ./realtime-private-key
signProducts = true

[sender_prod01]
type = gov.usgs.earthquake.distribution.SocketProductSender
host = prod01-pdl01.cr.usgs.gov
port = 11235



Last modified: Mon Jun 9 21:30:25 UTC 2025