amps-python-client 5.3.4.1__zip → 5.3.4.2__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- amps-python-client-5.3.4.2/PKG-INFO +112 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/.buildinfo +4 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_sources/index.rst.txt +36 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/ack-messages.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/content-messages.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/intro.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/logon.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/protocol-reference.html +93 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/publishing.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-delimiters.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-subscribe.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/removing.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/chapters/utilities.html +95 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/genindex.html +97 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/index.html +98 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/objects.inv +6 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/search.html +107 -0
- amps-python-client-5.3.4.2/docs/command-reference/html/searchindex.js +1 -0
- amps-python-client-5.3.4.2/docs/html/.buildinfo +4 -0
- amps-python-client-5.3.4.2/docs/html/code.html +6616 -0
- amps-python-client-5.3.4.2/docs/html/genindex.html +1363 -0
- amps-python-client-5.3.4.2/docs/html/index.html +131 -0
- amps-python-client-5.3.4.2/docs/html/objects.inv +0 -0
- amps-python-client-5.3.4.2/docs/html/py-modindex.html +111 -0
- amps-python-client-5.3.4.2/docs/html/search.html +107 -0
- amps-python-client-5.3.4.2/docs/html/searchindex.js +1 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/deltas.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/error-handling.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/exceptions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/first-program.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/high-availability.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/installing.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/introduction.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.2/docs/python/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python/html/.buildinfo +4 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
- amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
- amps-python-client-5.3.4.2/docs/python/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/advanced-topics.html +447 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-compiler-list.html +92 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-feature-table.html +156 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/creating-commands.html +2882 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/deltas.html +169 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/error-handling.html +745 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/exceptions.html +266 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/first-program.html +526 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/high-availability.html +1017 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/installing.html +264 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/introduction.html +245 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/moving-from-python-lite.html +118 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/performance-tips.html +499 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/queues.html +352 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/sow.html +383 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/subscriptions.html +535 -0
- amps-python-client-5.3.4.2/docs/python/html/chapters/utilities.html +302 -0
- amps-python-client-5.3.4.2/docs/python/html/genindex.html +351 -0
- amps-python-client-5.3.4.2/docs/python/html/index.html +382 -0
- amps-python-client-5.3.4.2/docs/python/html/objects.inv +0 -0
- amps-python-client-5.3.4.2/docs/python/html/search.html +107 -0
- amps-python-client-5.3.4.2/docs/python/html/searchindex.js +1 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/.buildinfo +4 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/crankitup.html +271 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/equipment.html +105 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/genindex.html +97 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/index.html +381 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/objects.inv +0 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/search.html +107 -0
- amps-python-client-5.3.4.2/docs/python-quickstart/html/searchindex.js +1 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/events.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/views.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/.buildinfo +4 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_sources/index.rst.txt +62 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/acks.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/actions.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps-statistics.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_expressions.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_functions.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/conflated_topics.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/constructing-fields.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/daemon.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/delta.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/distribution.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/enrichment.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/events.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/file_format_versions.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/glossary.html +92 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/ha.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/intro.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/logging.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/messageTypes.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/monitoring.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/oof.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/operation.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/pub_sub.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/queues.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/replication.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/securing.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow_queries.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/spark.html +819 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/transports.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/troubleshooting.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/txlog.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/usecases.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/utilities.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/chapters/views.html +94 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/genindex.html +133 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/index.html +96 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/objects.inv +0 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/search.html +106 -0
- amps-python-client-5.3.4.2/docs/user-guide/html/searchindex.js +1 -0
- amps-python-client-5.3.4.2/include/ampspy_bookmarkstore.hpp +63 -0
- amps-python-client-5.3.4.2/include/ampspy_compat.h +63 -0
- amps-python-client-5.3.4.2/include/ampspy_defs.hpp +181 -0
- amps-python-client-5.3.4.2/include/ampspy_recoverypointadapter.hpp +52 -0
- amps-python-client-5.3.4.2/include/ampspy_shims.hpp +113 -0
- amps-python-client-5.3.4.2/include/ampspy_type_object.hpp +242 -0
- amps-python-client-5.3.4.2/include/ampspy_types.hpp +1139 -0
- amps-python-client-5.3.4.2/include/ampspyver.h +30 -0
- amps-python-client-5.3.4.2/index.html +66 -0
- amps-python-client-5.3.4.2/samples/AMPSConsolePublisher.py +59 -0
- amps-python-client-5.3.4.2/samples/AMPSConsoleSubscriber.py +63 -0
- amps-python-client-5.3.4.2/samples/AMPSFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.2/samples/AMPSFIXShredderSubscriber.py +69 -0
- amps-python-client-5.3.4.2/samples/AMPSNVFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.2/samples/AMPSNVFIXShredderSubscriber.py +67 -0
- amps-python-client-5.3.4.2/samples/AMPSPublishForReplay.py +81 -0
- amps-python-client-5.3.4.2/samples/AMPSQueueConsumer.py +69 -0
- amps-python-client-5.3.4.2/samples/AMPSQueuePublisher.py +59 -0
- amps-python-client-5.3.4.2/samples/AMPSSOWConsolePublisher.py +67 -0
- amps-python-client-5.3.4.2/samples/AMPSSOWConsoleSubscriber.py +77 -0
- amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
- amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
- amps-python-client-5.3.4.2/samples/AMPSSubscribeForReplay.py +128 -0
- amps-python-client-5.3.4.2/samples/AMPSUpdateForOOF.py +123 -0
- amps-python-client-5.3.4.2/samples/CompositeMessagePublisher.py +84 -0
- amps-python-client-5.3.4.2/samples/CompositeMessageSubscriber.py +87 -0
- amps-python-client-5.3.4.2/samples/RandomServerChooser.py +66 -0
- amps-python-client-5.3.4.2/samples/sample.xml +335 -0
- amps-python-client-5.3.4.2/setup.py +210 -0
- amps-python-client-5.3.4.2/setup_amps.py +94 -0
- amps-python-client-5.3.4.2/src/ampspy_shims.cpp +214 -0
- amps-python-client-5.3.4.2/src/ampspy_type_object.cpp +495 -0
- amps-python-client-5.3.4.2/src/authenticator.cpp +128 -0
- amps-python-client-5.3.4.2/src/bookmarkstore.cpp +246 -0
- amps-python-client-5.3.4.2/src/client.cpp +2648 -0
- amps-python-client-5.3.4.2/src/client_docs.h +956 -0
- amps-python-client-5.3.4.2/src/cmessagehandler.cpp +161 -0
- amps-python-client-5.3.4.2/src/command.cpp +164 -0
- amps-python-client-5.3.4.2/src/command_docs.h +269 -0
- amps-python-client-5.3.4.2/src/compositemessagebuilder.cpp +113 -0
- amps-python-client-5.3.4.2/src/compositemessageparser.cpp +151 -0
- amps-python-client-5.3.4.2/src/conflatingrecoverypointadapter.cpp +197 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/BlockPublishStore.hpp +2053 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/BlockStore.hpp +677 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/BookmarkStore.hpp +542 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/Buffer.hpp +214 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/Field.hpp +719 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/HAClient.hpp +370 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/HAClientImpl.hpp +460 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MMapStoreBuffer.hpp +290 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryStoreBuffer.hpp +244 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/Message.hpp +1819 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/MessageRouter.hpp +647 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/PublishStore.hpp +158 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooser.hpp +145 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/amps.h +803 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/amps_impl.h +208 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/amps_ssl.h +78 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ampscrc.hpp +210 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ampsplusplus.hpp +8850 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ampsuri.h +84 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h +41 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h.in +41 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/constants.hpp +194 -0
- amps-python-client-5.3.4.2/src/cpp/include/amps/util.hpp +1722 -0
- amps-python-client-5.3.4.2/src/cpp/src/amps_protocol.c +693 -0
- amps-python-client-5.3.4.2/src/cpp/src/amps_ssl.c +489 -0
- amps-python-client-5.3.4.2/src/cpp/src/atfork.c +451 -0
- amps-python-client-5.3.4.2/src/cpp/src/client.c +498 -0
- amps-python-client-5.3.4.2/src/cpp/src/message.c +837 -0
- amps-python-client-5.3.4.2/src/cpp/src/message_generated.h +611 -0
- amps-python-client-5.3.4.2/src/cpp/src/tcp.c +1517 -0
- amps-python-client-5.3.4.2/src/cpp/src/tcps.c +1885 -0
- amps-python-client-5.3.4.2/src/cpp/src/transports.c +129 -0
- amps-python-client-5.3.4.2/src/cpp/src/unix.c +1002 -0
- amps-python-client-5.3.4.2/src/cpp/src/uri.c +301 -0
- amps-python-client-5.3.4.2/src/exponentialdelaystrategy.cpp +137 -0
- amps-python-client-5.3.4.2/src/failedwritehandler.cpp +116 -0
- amps-python-client-5.3.4.2/src/fixbuilder.cpp +146 -0
- amps-python-client-5.3.4.2/src/fixeddelaystrategy.cpp +114 -0
- amps-python-client-5.3.4.2/src/fixshredder.cpp +105 -0
- amps-python-client-5.3.4.2/src/fixshredder_docs.h +38 -0
- amps-python-client-5.3.4.2/src/haclient.cpp +691 -0
- amps-python-client-5.3.4.2/src/haclient_docs.h +186 -0
- amps-python-client-5.3.4.2/src/hybridpublishstore.cpp +137 -0
- amps-python-client-5.3.4.2/src/hybridpublishstore_docs.h +31 -0
- amps-python-client-5.3.4.2/src/memorybookmarkstore.cpp +373 -0
- amps-python-client-5.3.4.2/src/memorybookmarkstore_docs.h +39 -0
- amps-python-client-5.3.4.2/src/memorypublishstore.cpp +160 -0
- amps-python-client-5.3.4.2/src/memorypublishstore_docs.h +32 -0
- amps-python-client-5.3.4.2/src/message.cpp +765 -0
- amps-python-client-5.3.4.2/src/message_docs.h +306 -0
- amps-python-client-5.3.4.2/src/messagestream.cpp +630 -0
- amps-python-client-5.3.4.2/src/messagestream_docs.h +45 -0
- amps-python-client-5.3.4.2/src/mmapbookmarkstore.cpp +422 -0
- amps-python-client-5.3.4.2/src/nvfixbuilder.cpp +160 -0
- amps-python-client-5.3.4.2/src/nvfixbuilder_docs.h +35 -0
- amps-python-client-5.3.4.2/src/nvfixshredder.cpp +99 -0
- amps-python-client-5.3.4.2/src/nvfixshredder_docs.h +43 -0
- amps-python-client-5.3.4.2/src/publishstore.cpp +183 -0
- amps-python-client-5.3.4.2/src/raw_wrapper.cpp +765 -0
- amps-python-client-5.3.4.2/src/reason.cpp +71 -0
- amps-python-client-5.3.4.2/src/recoverypoint.cpp +135 -0
- amps-python-client-5.3.4.2/src/recoverypointadapter.cpp +171 -0
- amps-python-client-5.3.4.2/src/ringbookmarkstore.cpp +360 -0
- amps-python-client-5.3.4.2/src/serverchooser.cpp +245 -0
- amps-python-client-5.3.4.2/src/serverchooser_docs.h +41 -0
- amps-python-client-5.3.4.2/src/sowrecoverypointadapter.cpp +248 -0
- amps-python-client-5.3.4.2/src/store.cpp +62 -0
- amps-python-client-5.3.4.2/src/versioninfo.cpp +175 -0
- amps-python-client-5.3.4.1/PKG-INFO +0 -112
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
- amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
- amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
- amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
- amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
- amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
- amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
- amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
- amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
- amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
- amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
- amps-python-client-5.3.4.1/docs/html/index.html +0 -131
- amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
- amps-python-client-5.3.4.1/docs/html/search.html +0 -107
- amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
- amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
- amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
- amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
- amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
- amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
- amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
- amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
- amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
- amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
- amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
- amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
- amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
- amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
- amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
- amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
- amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
- amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
- amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
- amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
- amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
- amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
- amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
- amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
- amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
- amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
- amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
- amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
- amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
- amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
- amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
- amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
- amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
- amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
- amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
- amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
- amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
- amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
- amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
- amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
- amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
- amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
- amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
- amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
- amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
- amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
- amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
- amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
- amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
- amps-python-client-5.3.4.1/index.html +0 -66
- amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
- amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
- amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
- amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
- amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
- amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
- amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
- amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
- amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
- amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
- amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
- amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
- amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
- amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
- amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
- amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
- amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
- amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
- amps-python-client-5.3.4.1/samples/sample.xml +0 -335
- amps-python-client-5.3.4.1/setup.py +0 -209
- amps-python-client-5.3.4.1/setup_amps.py +0 -94
- amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
- amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
- amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
- amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
- amps-python-client-5.3.4.1/src/client.cpp +0 -2430
- amps-python-client-5.3.4.1/src/client_docs.h +0 -956
- amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
- amps-python-client-5.3.4.1/src/command.cpp +0 -164
- amps-python-client-5.3.4.1/src/command_docs.h +0 -194
- amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
- amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
- amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
- amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
- amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
- amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
- amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
- amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
- amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
- amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
- amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
- amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
- amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
- amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
- amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
- amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
- amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
- amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
- amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
- amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
- amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
- amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
- amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
- amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
- amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
- amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
- amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
- amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
- amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
- amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
- amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
- amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
- amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
- amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
- amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
- amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
- amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
- amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
- amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
- amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
- amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
- amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
- amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
- amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
- amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
- amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
- amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
- amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
- amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
- amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
- amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
- amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
- amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
- amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
- amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
- amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
- amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
- amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
- amps-python-client-5.3.4.1/src/message.cpp +0 -765
- amps-python-client-5.3.4.1/src/message_docs.h +0 -306
- amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
- amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
- amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
- amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
- amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
- amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
- amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
- amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
- amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
- amps-python-client-5.3.4.1/src/reason.cpp +0 -71
- amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
- amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
- amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
- amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
- amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
- amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
- amps-python-client-5.3.4.1/src/store.cpp +0 -62
- amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/HISTORY +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/LICENSE +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/README.md +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/code.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/classic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/default.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/sidebar.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/caution.png +0 -0
- {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.2/docs/python}/html/_images/caution.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/connection_string.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/warning.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/custom.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/include/amps/amps_generated.h +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/amps_protocol_generated.h +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/makefile +0 -0
|
@@ -1,1228 +0,0 @@
|
|
|
1
|
-
.. include:: ../macros.inc
|
|
2
|
-
|
|
3
|
-
.. index:: replication, replication; overview
|
|
4
|
-
|
|
5
|
-
.. _#ha-replication:
|
|
6
|
-
|
|
7
|
-
.. _replication:
|
|
8
|
-
|
|
9
|
-
Replicating Messages Between Instances
|
|
10
|
-
======================================
|
|
11
|
-
|
|
12
|
-
AMPS has the ability to replicate messages to downstream AMPS instances
|
|
13
|
-
once those messages are stored to a transaction log. Replication in AMPS
|
|
14
|
-
involves the configuration of two or more instances designed to share
|
|
15
|
-
some or all of the published messages. With AMPS replication, an
|
|
16
|
-
upstream (or source) instance delivers messages to
|
|
17
|
-
a downstream instance.
|
|
18
|
-
|
|
19
|
-
Replication is typically used to improve the availability of a
|
|
20
|
-
set of AMPS instances by creating a set of servers that hold
|
|
21
|
-
the same messages, where each server can take over for the
|
|
22
|
-
others in the event of a network or server failure.
|
|
23
|
-
|
|
24
|
-
Since AMPS replication operates on individual messages,
|
|
25
|
-
replication is also an efficient way to split and share message
|
|
26
|
-
streams between multiple sites where each downstream site
|
|
27
|
-
may only want a subset of the messages from the upstream
|
|
28
|
-
instances.
|
|
29
|
-
|
|
30
|
-
AMPS replication uses a leaderless, "all nodes hot" model. Any instance
|
|
31
|
-
in a replication fabric can accept publishes and updates at any time,
|
|
32
|
-
and there is no need for a message to be replicated downstream before
|
|
33
|
-
it is delivered to subscribers (unless a subscriber explicitly
|
|
34
|
-
requests otherwise using the ``fully_durable`` option on a
|
|
35
|
-
bookmark replay).
|
|
36
|
-
|
|
37
|
-
.. tip::
|
|
38
|
-
|
|
39
|
-
The only communication between instances of AMPS is
|
|
40
|
-
through replication. AMPS instances do not share
|
|
41
|
-
state through the filesystem or any out-of-band
|
|
42
|
-
communication.
|
|
43
|
-
|
|
44
|
-
AMPS high availability and replication do not rely
|
|
45
|
-
on a quorum or a controller instance. Each instance
|
|
46
|
-
of AMPS processes messages independently. Each
|
|
47
|
-
instance of AMPS manages connections and subscriptions
|
|
48
|
-
locally.
|
|
49
|
-
|
|
50
|
-
AMPS supports two forms of message acknowledgment for replication links:
|
|
51
|
-
*synchronous* and *asynchronous*; these settings control when AMPS considers
|
|
52
|
-
a message persisted. This controls when AMPS sends publishers
|
|
53
|
-
``persisted`` acknowledgments and the point at which AMPS considers
|
|
54
|
-
a message to be fully persisted for bookmark subscribers. These settings do not
|
|
55
|
-
affect when or how messages are replicated, or when or how messages are
|
|
56
|
-
delivered to subscribers unless a subscriber explicitly requests this
|
|
57
|
-
behavior. These settings only affect when AMPS acknowledges to the publisher
|
|
58
|
-
that the message has been persisted. They do not affect the speed of
|
|
59
|
-
replication, the priority of replication, or the guarantees that AMPS
|
|
60
|
-
makes for ensuring that all replicated messages are acknowledged by
|
|
61
|
-
the downstream instance before they can be removed from the transaction
|
|
62
|
-
log.
|
|
63
|
-
|
|
64
|
-
AMPS replication consists of a message stream (or, more precisely, a
|
|
65
|
-
command stream) provided to downstream instances. AMPS replicates
|
|
66
|
-
the messages produced as a result of ``publish`` and ``delta_publish``
|
|
67
|
-
and replicates ``sow_delete`` commands. AMPS does not
|
|
68
|
-
replicate messages produced internally by AMPS, such as the results of
|
|
69
|
-
``Views`` or updates sent to a ``ConflatedTopic``. When replicating
|
|
70
|
-
queues, AMPS also uses the replication connection to send and receive
|
|
71
|
-
administrative commands related to queues, as described in the section
|
|
72
|
-
on :ref:`Replicated Queues <#ug-replicated-queues>`.
|
|
73
|
-
|
|
74
|
-
.. important::
|
|
75
|
-
|
|
76
|
-
60East recommends that any server that participates in replication
|
|
77
|
-
*and* that accepts publishes, SOW deletes, or queue acknowledgments
|
|
78
|
-
directly from applications is configured with at least
|
|
79
|
-
one ``sync`` replication destination.
|
|
80
|
-
|
|
81
|
-
Without at least one destination that uses ``sync`` acknowledgment,
|
|
82
|
-
an AMPS instance could be a single point of failure, resulting in
|
|
83
|
-
possible message loss if the instance has an unrecoverable failure
|
|
84
|
-
(such as a hardware failure) between the time that
|
|
85
|
-
the server acknowledges a command to a client, and the time that
|
|
86
|
-
a replication destination receives and persists the command.
|
|
87
|
-
|
|
88
|
-
Notice that when replicating the results of a ``delta_publish`` command, and
|
|
89
|
-
publishes to a topic that provides preprocessing and enrichment, AMPS
|
|
90
|
-
replicates the fully processed and merged message -- exactly the information
|
|
91
|
-
that is written to the local transaction log and sent to subscribers. AMPS does
|
|
92
|
-
*not* save the original command to the transaction log or replicate the original
|
|
93
|
-
command. Instead, AMPS stores the message produced by the command and replicates that
|
|
94
|
-
message.
|
|
95
|
-
|
|
96
|
-
Replication Basics
|
|
97
|
-
-------------------
|
|
98
|
-
|
|
99
|
-
Before planning an AMPS replication topology, it can be helpful to understand
|
|
100
|
-
the basics of how AMPS replication works. This section presents a general
|
|
101
|
-
overview of the concepts that are discussed in more detail in the following
|
|
102
|
-
sections.
|
|
103
|
-
|
|
104
|
-
* **Replication is point-to-point**. Each replication connection involves exactly two
|
|
105
|
-
AMPS instances: a source (that provides messages) and a destination that receives
|
|
106
|
-
messages.
|
|
107
|
-
* **Replication is always "push" replication**. In AMPS, the source configures a
|
|
108
|
-
destination, and pushes messages to that destination. (Notice that it is possible
|
|
109
|
-
to configure the source to wait for the destination to connect rather than
|
|
110
|
-
actively making an outgoing connection, but replication is still a "push" from
|
|
111
|
-
the source to the destination once that connection is made). The source must be
|
|
112
|
-
configured to push messages to the destination, and
|
|
113
|
-
the source guarantees that all messages to be replicated must be acknowledged
|
|
114
|
-
by the destination before they can be removed from the transaction log.
|
|
115
|
-
* **Replication is one-link by default**. By default, an instance of AMPS
|
|
116
|
-
*only* replicates messages that are published to that instance by a client.
|
|
117
|
-
Optionally, an instance of AMPS can be configured to replicate messages
|
|
118
|
-
that arrive over replication. Adding this configuration is typically
|
|
119
|
-
required if there are more than two instances in a replicated set
|
|
120
|
-
of AMPS instances. See :ref:`#ug-ha-passthrough`
|
|
121
|
-
for details.
|
|
122
|
-
* **Replication relies on the transaction log**. AMPS replicates the commands
|
|
123
|
-
as preserved in the transaction log. This means, for example, that the
|
|
124
|
-
results of delta publishes are replicated as fully-merged messages,
|
|
125
|
-
since fully-merged messages are stored in the transaction log. Likewise,
|
|
126
|
-
if duplicate messages arrive over different paths, only the first message
|
|
127
|
-
to arrive will be stored in the transaction log, and that message is
|
|
128
|
-
the one that will be replicated.
|
|
129
|
-
* **Replication provides a command stream**. In AMPS replication, the server
|
|
130
|
-
replicates the results of ``publish``, ``delta_publish`` and ``sow_delete`` commands
|
|
131
|
-
once those results are written to the transaction log. Each individual command is
|
|
132
|
-
replicated, for low latency and fine-grained control of what is replicated. If a
|
|
133
|
-
command is not in the transaction log (for example, a maintenance action has
|
|
134
|
-
removed the journal that contains that command, or the command is for a topic
|
|
135
|
-
that is not recorded in the transaction log), that command will not be replicated.
|
|
136
|
-
|
|
137
|
-
Replication is intended to guarantee that the command stream for a set of topics
|
|
138
|
-
on one instance is present on the other instance, with the ordering of each
|
|
139
|
-
message source preserved. This means that there can be only *one* connection
|
|
140
|
-
from a given upstream instance to a given downstream instance.
|
|
141
|
-
* **Replication is customizable by topic, message type, and content**. AMPS can be configured to
|
|
142
|
-
replicate the entire transaction log, or any subset of the transaction log. This makes it
|
|
143
|
-
easy to use replication to populate view servers, test environments, or similar instances
|
|
144
|
-
that require only partial views of the source data.
|
|
145
|
-
* **Replication guarantees delivery**. AMPS will not remove a journal file until
|
|
146
|
-
*all* messages in that journal file have been replicated to, and acknowledged by,
|
|
147
|
-
the destination.
|
|
148
|
-
* **Replication is composable**. AMPS is capable of building a sophisticated replication
|
|
149
|
-
topology by composing connections. For example, full replication between two servers
|
|
150
|
-
is two point-to-point connections, one in each direction. The basic point-to-point
|
|
151
|
-
nature of connections makes it easy to reason about a single connection, and the
|
|
152
|
-
composable nature of AMPS replication allows you to build replication networks
|
|
153
|
-
that provide data distribution and high availability for applications across
|
|
154
|
-
data centers and around the globe.
|
|
155
|
-
* **Replication acknowledgment is configurable**. The acknowledgment mode
|
|
156
|
-
provides different guarantees: *async* acknowledgment provides durability
|
|
157
|
-
guarantees for the local instance, whereas *sync* acknowledgment provides
|
|
158
|
-
durability guarantees for the local instance and the downstream instance.
|
|
159
|
-
* **Group** identifies a set of instances that are intended to be fully
|
|
160
|
-
equivalent for the purposes of message contents, application failover,
|
|
161
|
-
and AMPS replication failover. Instances that are not intended to be
|
|
162
|
-
fully equivalent for all of these purposes should be given a different
|
|
163
|
-
``Group`` name, even if they are in the same data center or geographic location,
|
|
164
|
-
or if they would be treated as equivalent for some, but not all, purposes.
|
|
165
|
-
|
|
166
|
-
More details on each of these points is provided in this section.
|
|
167
|
-
|
|
168
|
-
Benefits of Replication
|
|
169
|
-
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
170
|
-
|
|
171
|
-
.. index:: replication; benefits,
|
|
172
|
-
|
|
173
|
-
Replication can serve two purposes in AMPS:
|
|
174
|
-
|
|
175
|
-
1. It can increase the fault-tolerance of AMPS by creating a spare
|
|
176
|
-
instance to cut over to when the primary instance fails.
|
|
177
|
-
2. Replication can be used in message delivery to a remote site.
|
|
178
|
-
|
|
179
|
-
In order to provide fault tolerance and reliable remote site message
|
|
180
|
-
delivery, for the best possible messaging experience, there are some
|
|
181
|
-
guarantees and features that AMPS has implemented. Those features are
|
|
182
|
-
discussed below.
|
|
183
|
-
|
|
184
|
-
Replication in AMPS supports filtering by both topic and by message
|
|
185
|
-
content. This granularity in filtering allows replication sources to
|
|
186
|
-
have complete control over what messages are sent to their downstream
|
|
187
|
-
replication instances.
|
|
188
|
-
|
|
189
|
-
Additionally, replication can improve availability of AMPS by creating a
|
|
190
|
-
redundant instance of an AMPS server. Using replication, all of the
|
|
191
|
-
messages which flow into a primary instance of AMPS can be replicated to
|
|
192
|
-
a secondary spare instance. This way, if the primary instance should
|
|
193
|
-
become unresponsive for any reason, then the secondary AMPS instance can
|
|
194
|
-
be swapped in to begin processing message streams and requests.
|
|
195
|
-
|
|
196
|
-
.. tip::
|
|
197
|
-
|
|
198
|
-
When an AMPS instance is a replication source, that instance
|
|
199
|
-
*guarantees* that messages will not be removed from the
|
|
200
|
-
transaction log until all destinations have acknowledged
|
|
201
|
-
the message.
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
Configuring Replication
|
|
205
|
-
------------------------
|
|
206
|
-
|
|
207
|
-
.. index:: replication; configuration,
|
|
208
|
-
|
|
209
|
-
Replication configuration involves the configuration of two or more
|
|
210
|
-
instances of AMPS. For testing purposes both instances of AMPS can
|
|
211
|
-
reside on the same physical host before deployment into a production
|
|
212
|
-
environment. When running both instances on one machine, the performance
|
|
213
|
-
characteristics will differ from production, so running both instances
|
|
214
|
-
on one machine is more useful for testing configuration correctness than
|
|
215
|
-
testing overall performance.
|
|
216
|
-
|
|
217
|
-
Any instance that is intended to receive messages via replication
|
|
218
|
-
must define an incoming replication transport as one of the
|
|
219
|
-
``Transports`` for the instance. An instance may have only one
|
|
220
|
-
incoming replication transport.
|
|
221
|
-
|
|
222
|
-
Any instance that is intended to replicate messages to another
|
|
223
|
-
instance must specify a ``Replication`` stanza in the
|
|
224
|
-
configuration file with at least one ``Destination``. An
|
|
225
|
-
instance can have multiple ``Destination`` declarations: each
|
|
226
|
-
one defines a single outgoing replication connection.
|
|
227
|
-
|
|
228
|
-
In AMPS replication, instances should only be configured as part
|
|
229
|
-
of the same ``Group`` if they are fully equivalent. That is, not
|
|
230
|
-
only should they contain the same messages, but they should be
|
|
231
|
-
considered failover alternatives for applications and other
|
|
232
|
-
AMPS servers. If two servers are not intended to be fully replicated
|
|
233
|
-
(for example, if there is one-way replication between a production
|
|
234
|
-
server and a test server), they should have different ``Group``
|
|
235
|
-
values.
|
|
236
|
-
|
|
237
|
-
.. caution::
|
|
238
|
-
|
|
239
|
-
It's important to make sure that when running multiple AMPS
|
|
240
|
-
instances on the same host there are no conflicting ports.
|
|
241
|
-
AMPS will emit an error message and will not start properly if
|
|
242
|
-
it detects that a port specified in the configuration file is
|
|
243
|
-
already in use.
|
|
244
|
-
|
|
245
|
-
For the purposes of explaining this example, we're going to assume a
|
|
246
|
-
simple hot-hot replication case where we have two instances of
|
|
247
|
-
AMPS - the first host is named ``amps-1`` and the second host is named
|
|
248
|
-
``amps-2``. Each of the instances are configured to replicate data to
|
|
249
|
-
the other. That is, all messages published to ``amps-1`` are
|
|
250
|
-
replicated to ``amps-2`` and vice versa. This configuration ensures that
|
|
251
|
-
a message published to one instance is available on the other instance in
|
|
252
|
-
the case of a failover (although, of course, the publishers and subscribers
|
|
253
|
-
should also be configured for failover).
|
|
254
|
-
|
|
255
|
-
.. caution::
|
|
256
|
-
|
|
257
|
-
Every instance of AMPS that will participate in replication
|
|
258
|
-
must have a unique ``Name`` among *all* of the instances that
|
|
259
|
-
are part of replication.
|
|
260
|
-
|
|
261
|
-
All instances that have the same ``Group`` must be able to
|
|
262
|
-
be treated as equivalent by AMPS replication and AMPS
|
|
263
|
-
clients.
|
|
264
|
-
|
|
265
|
-
If two instances of AMPS should be treated differently
|
|
266
|
-
(for example, one instance receives publishes while the other
|
|
267
|
-
is a read-only instance that receives one-way replication),
|
|
268
|
-
those instances should be in different groups.
|
|
269
|
-
|
|
270
|
-
We will first show the relevant portion of the configuration used in
|
|
271
|
-
``amps-1``, and then we will show the relevant configuration for
|
|
272
|
-
``amps-2``.
|
|
273
|
-
|
|
274
|
-
.. tip::
|
|
275
|
-
|
|
276
|
-
All topics to be replicated must be recorded in the transaction
|
|
277
|
-
log. The examples below omit the transaction log configuration
|
|
278
|
-
for brevity. Please reference the Transaction Log chapter for
|
|
279
|
-
information on how to configure a transaction log for a topic.
|
|
280
|
-
|
|
281
|
-
.. code-block:: xml
|
|
282
|
-
|
|
283
|
-
<AMPSConfig>
|
|
284
|
-
<Name>amps-1</Name>
|
|
285
|
-
<Group>DataCenter-NYC-1</Group>
|
|
286
|
-
...
|
|
287
|
-
|
|
288
|
-
<Transports>
|
|
289
|
-
<Transport>
|
|
290
|
-
|
|
291
|
-
<!-- The amps-replication transport is required.
|
|
292
|
-
This is a proprietary message format used by
|
|
293
|
-
AMPS to replicate messages between instances.
|
|
294
|
-
This AMPS instance will receive replication messages
|
|
295
|
-
on this transport. The instance can receive
|
|
296
|
-
messages from any number of upstream instances
|
|
297
|
-
on this transport.
|
|
298
|
-
|
|
299
|
-
An instance of AMPS may only define one incoming replication
|
|
300
|
-
transport. -->
|
|
301
|
-
|
|
302
|
-
<Name>amps-replication</Name>
|
|
303
|
-
<Type>amps-replication</Type>
|
|
304
|
-
<InetAddr>10004</InetAddr>
|
|
305
|
-
</Transport>
|
|
306
|
-
|
|
307
|
-
<!--
|
|
308
|
-
Transports for application use also need to
|
|
309
|
-
be defined. An amps-replication transport can
|
|
310
|
-
only be used for replication -->
|
|
311
|
-
|
|
312
|
-
... transports for client use here ...
|
|
313
|
-
|
|
314
|
-
</Transports>
|
|
315
|
-
|
|
316
|
-
...
|
|
317
|
-
|
|
318
|
-
<!-- All replication destinations are defined inside the Replication block. -->
|
|
319
|
-
|
|
320
|
-
<Replication>
|
|
321
|
-
|
|
322
|
-
<!--
|
|
323
|
-
Each individual replication destination defines outgoing
|
|
324
|
-
replication, that is, messages being replicated from
|
|
325
|
-
this instance of AMPS to another instance of AMPS.
|
|
326
|
-
-->
|
|
327
|
-
|
|
328
|
-
<Destination>
|
|
329
|
-
|
|
330
|
-
<!-- The replicated topics and their respective message types are defined here. AMPS
|
|
331
|
-
allows any number of Topic definitions in a Destination. -->
|
|
332
|
-
<Topic>
|
|
333
|
-
<MessageType>fix</MessageType>
|
|
334
|
-
|
|
335
|
-
<!-- The Name definition specifies the name of the topic or topics to be replicated.
|
|
336
|
-
The Name option can be either a specific topic name or a regular expression that
|
|
337
|
-
matches a set of topic names. -->
|
|
338
|
-
<Name>topic</Name>
|
|
339
|
-
|
|
340
|
-
</Topic>
|
|
341
|
-
<Topic>
|
|
342
|
-
<!-- Replicate any topic that uses the JSON message type
|
|
343
|
-
and that starts with /orders -->
|
|
344
|
-
<MessageType>json</MessageType>
|
|
345
|
-
<Name>^/orders/</Name>
|
|
346
|
-
</Topic>
|
|
347
|
-
|
|
348
|
-
<Name>amps-2</Name>
|
|
349
|
-
|
|
350
|
-
<!-- Fully synchronize messages, including messages that
|
|
351
|
-
were not originally published to this instance. -->
|
|
352
|
-
<PassThrough>.*</PassThrough>
|
|
353
|
-
|
|
354
|
-
<!-- The group name of the destination instance (or instances). The name specified
|
|
355
|
-
here must match the Group defined for the remote AMPS instance, or AMPS reports
|
|
356
|
-
an error and refuses to connect to the remote instance. -->
|
|
357
|
-
<Group>DataCenter-NYC-1</Group>
|
|
358
|
-
|
|
359
|
-
<!-- Replication acknowledgment can be either synchronous or
|
|
360
|
-
asynchronous. This does not affect the speed or priority of
|
|
361
|
-
the connection, but does control when this instance will
|
|
362
|
-
acknowledge the message as safely persisted. -->
|
|
363
|
-
|
|
364
|
-
<SyncType>sync</SyncType>
|
|
365
|
-
|
|
366
|
-
<!-- The Transport definition defines the location to which this AMPS instance will
|
|
367
|
-
replicate messages. The InetAddr points to the hostname and port of the
|
|
368
|
-
downstream replication instance. The Type for a replication instance should
|
|
369
|
-
always be amps-replication. -->
|
|
370
|
-
<Transport>
|
|
371
|
-
|
|
372
|
-
<!-- The address, or list of addresses, for the replication destination. -->
|
|
373
|
-
<InetAddr>amps-2-server.example.com:10005</InetAddr>
|
|
374
|
-
<Type>amps-replication</Type>
|
|
375
|
-
</Transport>
|
|
376
|
-
</Destination>
|
|
377
|
-
</Replication>
|
|
378
|
-
|
|
379
|
-
...
|
|
380
|
-
|
|
381
|
-
</AMPSConfig>
|
|
382
|
-
|
|
383
|
-
*Configuration used for amps-1*
|
|
384
|
-
|
|
385
|
-
For the configuration of ``amps-2``, we will use the following example.
|
|
386
|
-
While this example is similar, only the differences between the
|
|
387
|
-
``amps-1`` configuration will be called out.
|
|
388
|
-
|
|
389
|
-
.. _#repl-amps2-config:
|
|
390
|
-
|
|
391
|
-
.. code-block:: xml
|
|
392
|
-
|
|
393
|
-
<AMPSConfig>
|
|
394
|
-
<Name>amps-2</Name>
|
|
395
|
-
<Group>DataCenter-NYC-1</Group>
|
|
396
|
-
|
|
397
|
-
...
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
<Transports>
|
|
401
|
-
|
|
402
|
-
<!-- The amps-replication transport is required
|
|
403
|
-
This is a proprietary message format used by
|
|
404
|
-
AMPS to replicate messages between instances.
|
|
405
|
-
This AMPS instance will receive replication messages
|
|
406
|
-
on this transport. The instance can receive
|
|
407
|
-
messages from any number of upstream instances
|
|
408
|
-
on this transport.
|
|
409
|
-
|
|
410
|
-
An instance of AMPS may only define one incoming replication
|
|
411
|
-
transport. -->
|
|
412
|
-
|
|
413
|
-
<Transport>
|
|
414
|
-
<Name>amps-replication</Name>
|
|
415
|
-
<Type>amps-replication</Type>
|
|
416
|
-
|
|
417
|
-
<!-- The port where amps-2 listens for replication messages matches the port where
|
|
418
|
-
amps-1 is configured to send its replication messages. This AMPS instance will
|
|
419
|
-
receive replication messages on this transport. The instance can receive
|
|
420
|
-
messages from any number of upstream instances on this transport. -->
|
|
421
|
-
<InetAddr>10005</InetAddr>
|
|
422
|
-
</Transport>
|
|
423
|
-
</Transports>
|
|
424
|
-
|
|
425
|
-
...
|
|
426
|
-
|
|
427
|
-
<Replication>
|
|
428
|
-
<Destination>
|
|
429
|
-
|
|
430
|
-
<!-- The Topic definitions for amps-2 match
|
|
431
|
-
the definitions for amps-1 so that these
|
|
432
|
-
topics contain the same messages in the
|
|
433
|
-
transaction log on both instances. -->
|
|
434
|
-
|
|
435
|
-
<Topic>
|
|
436
|
-
<MessageType>fix</MessageType>
|
|
437
|
-
<Name>topic</Name>
|
|
438
|
-
</Topic>
|
|
439
|
-
<Topic>
|
|
440
|
-
<MessageType>json</MessageType>
|
|
441
|
-
<Name>^/orders/</Name>
|
|
442
|
-
</Topic>
|
|
443
|
-
<Name>amps-1</Name>
|
|
444
|
-
|
|
445
|
-
<!-- Fully synchronize messages, including messages that
|
|
446
|
-
were not originally published to this instance. -->
|
|
447
|
-
<PassThrough>.*</PassThrough>
|
|
448
|
-
|
|
449
|
-
<Group>DataCenter-NYC-1</Group>
|
|
450
|
-
|
|
451
|
-
<SyncType>sync</SyncType>
|
|
452
|
-
<Transport>
|
|
453
|
-
|
|
454
|
-
<!-- The replication destination port for amps-2 is configured to send replication
|
|
455
|
-
messages to the same port on which amps-1 is configured to listen for them. -->
|
|
456
|
-
<InetAddr>amps-1-server.example.com:10004</InetAddr>
|
|
457
|
-
<Type>amps-replication</Type>
|
|
458
|
-
</Transport>
|
|
459
|
-
</Destination>
|
|
460
|
-
</Replication>
|
|
461
|
-
|
|
462
|
-
...
|
|
463
|
-
|
|
464
|
-
</AMPSConfig>
|
|
465
|
-
|
|
466
|
-
*Configuration for amps-2*
|
|
467
|
-
|
|
468
|
-
These example configurations replicate the topic named ``topic`` of the message type ``nvfix``
|
|
469
|
-
and any topic of the message type ``json`` that begins with ``/orders/`` between the
|
|
470
|
-
two instances of AMPS. To replicate more topics, these instances could add
|
|
471
|
-
additional ``Topic`` blocks.
|
|
472
|
-
|
|
473
|
-
Sync vs Async Acknowledgment
|
|
474
|
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
475
|
-
|
|
476
|
-
.. _#replication-sync-vs-async:
|
|
477
|
-
|
|
478
|
-
When publishing to a topic that is recorded in the transaction log, it
|
|
479
|
-
is recommended that publishers request a ``persisted`` acknowledgment.
|
|
480
|
-
The ``persisted`` acknowledgment message is how AMPS notifies the
|
|
481
|
-
publisher that a message received by AMPS is considered to be safely
|
|
482
|
-
persisted, as specified in the configuration. (The AMPS client
|
|
483
|
-
libraries automatically request this acknowledgment on each ``publish``
|
|
484
|
-
command when a publish store is present for the client -- that is, any
|
|
485
|
-
time that the client is configured to ensure that the publish is received
|
|
486
|
-
by the AMPS server.)
|
|
487
|
-
|
|
488
|
-
Depending on the replication destination configuration for the AMPS
|
|
489
|
-
instance that receives the message, that ``persisted`` acknowledgment
|
|
490
|
-
message will be delivered to the publisher at different times in the
|
|
491
|
-
replication process.
|
|
492
|
-
|
|
493
|
-
There are two options: *synchronous* or *asynchronous* acknowledgment.
|
|
494
|
-
These two acknowledgment ``SyncType`` options control when
|
|
495
|
-
publishers of messages are sent ``persisted`` acknowledgments.
|
|
496
|
-
|
|
497
|
-
For *synchronous* replication acknowledgments, AMPS will not return a
|
|
498
|
-
``persisted`` acknowledgment to the publisher for a message until the
|
|
499
|
-
message has been stored to the local transaction log, to the SOW, and
|
|
500
|
-
all downstream synchronous replication destinations have acknowledged
|
|
501
|
-
the message. The figure below shows the cycle of a message being
|
|
502
|
-
published in a replicated instance, and the persisted acknowledgment
|
|
503
|
-
message being returned back to the publisher. Notice that, with this
|
|
504
|
-
configuration, the publisher will not receive an acknowledgment if the
|
|
505
|
-
remote destination is unavailable. 60East recommends that when you use
|
|
506
|
-
``sync`` replication, you consider setting a policy for downgrading the
|
|
507
|
-
link when a destination is offline, as described in
|
|
508
|
-
:ref:`#ug-replication-downgrade`.
|
|
509
|
-
|
|
510
|
-
.. _#ha-figure-sync-ack:
|
|
511
|
-
|
|
512
|
-
.. figure:: ../../common/png/HA_sync_ack.png
|
|
513
|
-
:alt: Synchronous acknowledgment -- no acknowledgment to publisher until the downstream instance acknowledges
|
|
514
|
-
|
|
515
|
-
*Sequence for a Connection Using Sync Acknowledgment*
|
|
516
|
-
|
|
517
|
-
For destinations configured with *async* replication acknowledgment,
|
|
518
|
-
an AMPS instance does not require that the destination acknowledge that the
|
|
519
|
-
message is persisted before acknowledging the message to the publisher.
|
|
520
|
-
That is, for *async* acknowledgment, the AMPS instance replicating
|
|
521
|
-
the message sends the ``persisted`` acknowledgment message back
|
|
522
|
-
to the publisher as soon as the message is stored in the local transaction
|
|
523
|
-
log and SOW stores.
|
|
524
|
-
|
|
525
|
-
The acknowledgment type (``SyncType``) has no effect on how an instance of
|
|
526
|
-
AMPS replicates the message to other instances of AMPS. The acknowledgment
|
|
527
|
-
type *only* affects whether an instance of AMPS must receive an acknowledgment
|
|
528
|
-
from that ``Destination`` before it will acknowledge a message as having
|
|
529
|
-
been persisted.
|
|
530
|
-
|
|
531
|
-
The figure below shows the cycle of a message being published with a
|
|
532
|
-
``SyncType`` configuration set to *async* acknowledgment.
|
|
533
|
-
|
|
534
|
-
.. _#ha-figure-async-ack:
|
|
535
|
-
|
|
536
|
-
.. figure:: ../../common/png/HA_async_ack.png
|
|
537
|
-
:alt: Aynchronous acknowledgment -- acknowledgment to publisher immediately, independent of downstream replication
|
|
538
|
-
|
|
539
|
-
*Sequence for a Connection Using Async Acknowledgment*
|
|
540
|
-
|
|
541
|
-
By default, replication destinations do not affect when a message is delivered
|
|
542
|
-
to a subscription. Optionally, a subscriber can request the ``fully_durable``
|
|
543
|
-
option on a bookmark subscription (that is, a replay from the transaction log).
|
|
544
|
-
When the ``fully_durable`` option is specified, AMPS does not deliver a message
|
|
545
|
-
to that subscriber until all replication destinations configured for ``sync``
|
|
546
|
-
acknowledgment have acknowledged the message.
|
|
547
|
-
|
|
548
|
-
.. caution::
|
|
549
|
-
|
|
550
|
-
Every instance of AMPS that accepts publish commands, SOW delete commands
|
|
551
|
-
or allows consumption of messages from queues, should specify at least
|
|
552
|
-
one destination that uses ``sync`` acknowledgment. If a publish or
|
|
553
|
-
queue consumer may fail over between two (or more) instances of AMPS, those
|
|
554
|
-
instances should specify ``sync`` acknowledgment between them to
|
|
555
|
-
prevent a situation where a message could be lost if an instance fails
|
|
556
|
-
immediately after acknowledging a message to a publisher.
|
|
557
|
-
|
|
558
|
-
A destination configured for ``sync`` acknowledgment can be
|
|
559
|
-
downgraded to ``async`` acknowledgment while AMPS is running.
|
|
560
|
-
This can be useful in cases where a server is offline for an
|
|
561
|
-
extended period of time due to hardware failure or persistent
|
|
562
|
-
network issues.
|
|
563
|
-
|
|
564
|
-
.. _#ug-replication-downgrade:
|
|
565
|
-
|
|
566
|
-
Downgrading Acknowledgments for a Destination
|
|
567
|
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
568
|
-
|
|
569
|
-
The AMPS administrative console provides the ability to downgrade a
|
|
570
|
-
replication link from *synchronous* to *asynchronous* acknowledgment.
|
|
571
|
-
This feature is useful to relieve memory or storage pressure on publishers
|
|
572
|
-
should a downstream AMPS instance prove unstable, unresponsive, or be
|
|
573
|
-
experiencing excessive latency to the point that it should be
|
|
574
|
-
considered to be offline.
|
|
575
|
-
|
|
576
|
-
Downgrading a replication link to *asynchronous* means that any
|
|
577
|
-
``persisted`` acknowledgment message that a publisher may be waiting on
|
|
578
|
-
will no longer wait for the downstream instance to confirm that it has
|
|
579
|
-
committed the message to its downstream Transaction Log or SOW store.
|
|
580
|
-
AMPS immediately considers the downstream instance to have acknowledged
|
|
581
|
-
the message for existing messages, which means that if AMPS was waiting
|
|
582
|
-
for acknowledgment from that instance to deliver a ``persisted``
|
|
583
|
-
acknowledgment, AMPS immediately sends the ``persisted``
|
|
584
|
-
acknowledgment when the instance is downgraded.
|
|
585
|
-
|
|
586
|
-
The result of a link being downgraded is:
|
|
587
|
-
|
|
588
|
-
* The number of messages that the publisher must retain is reduced, *but*
|
|
589
|
-
* The downgraded link is unsafe for the publisher to fail over to
|
|
590
|
-
* The downgraded link is unsafe for a bookmark subscriber to fail over to
|
|
591
|
-
|
|
592
|
-
Automatic downgrade is most suitable for a situation where an instance
|
|
593
|
-
should be considered offline or unavailable.
|
|
594
|
-
|
|
595
|
-
.. caution::
|
|
596
|
-
|
|
597
|
-
Downgrading a destination means that this instance will not
|
|
598
|
-
wait for that destination to acknowledge a message
|
|
599
|
-
before acknowledging that message to publishers or
|
|
600
|
-
upstream instances. It does not affect any other
|
|
601
|
-
behavior of the instance.
|
|
602
|
-
|
|
603
|
-
A publisher or queue consumer must not fail over
|
|
604
|
-
from this instance to a destination that has been
|
|
605
|
-
downgraded to ``async`` acknowledgment. This can
|
|
606
|
-
cause message loss, since the upstream instance may
|
|
607
|
-
have acknowledged a message that the downstream
|
|
608
|
-
instance has not yet processed.
|
|
609
|
-
|
|
610
|
-
A bookmark subscriber must not fail over from
|
|
611
|
-
this instance to a destination that has been
|
|
612
|
-
downgraded to ``async`` acknowledgment. This can
|
|
613
|
-
cause replay gaps, since that destination is
|
|
614
|
-
no longer considered when determining whether
|
|
615
|
-
a message is persisted.
|
|
616
|
-
|
|
617
|
-
AMPS can be configured to automatically downgrade a replication link to
|
|
618
|
-
``asynchronous`` if the remote side of the link cannot keep up with
|
|
619
|
-
persisting messages or becomes unresponsive. This option prevents
|
|
620
|
-
unreliable links from holding up publishers, but increases the chances
|
|
621
|
-
of a single instance failure resulting in message loss, as described
|
|
622
|
-
above. AMPS can also be configured to automatically upgrade a
|
|
623
|
-
replication link that has previously been downgraded. If an instance
|
|
624
|
-
is configured to downgrade acknowledgment, it should also
|
|
625
|
-
be configured to upgrade acknowledgment.
|
|
626
|
-
|
|
627
|
-
Automatic downgrade is implemented as an AMPS action. To configure
|
|
628
|
-
automatic downgrade, add the appropriate action to the configuration
|
|
629
|
-
file as shown below:
|
|
630
|
-
|
|
631
|
-
.. code-block:: xml
|
|
632
|
-
|
|
633
|
-
<AMPSConfig>
|
|
634
|
-
...
|
|
635
|
-
<Actions>
|
|
636
|
-
<Action>
|
|
637
|
-
<On>
|
|
638
|
-
<Module>amps-action-on-schedule</Module>
|
|
639
|
-
<Options>
|
|
640
|
-
|
|
641
|
-
<!--This option determines how often AMPS checks whether destinations have fallen
|
|
642
|
-
behind. In this example, AMPS checks destinations every 15 seconds. In most
|
|
643
|
-
cases, 60East recommends setting this to half of the Interval setting. -->
|
|
644
|
-
<Every>15s</Every>
|
|
645
|
-
</Options>
|
|
646
|
-
</On>
|
|
647
|
-
<Do>
|
|
648
|
-
<Module>amps-action-do-downgrade-replication</Module>
|
|
649
|
-
<Options>
|
|
650
|
-
|
|
651
|
-
<!--The maximum amount of time for a destination to fall behind. If AMPS has been
|
|
652
|
-
waiting for an acknowledgment from the destination for longer than the
|
|
653
|
-
Interval, AMPS downgrades the destination. In this example, AMPS downgrades any
|
|
654
|
-
destination for which an acknowledgment has taken longer than 300 seconds. -->
|
|
655
|
-
<Age>300s</Age>
|
|
656
|
-
</Options>
|
|
657
|
-
</Do>
|
|
658
|
-
<Do>
|
|
659
|
-
<Module>amps-action-do-upgrade-replication</Module>
|
|
660
|
-
<Options>
|
|
661
|
-
|
|
662
|
-
<!-- The threshold for upgrading the replication link back to sync
|
|
663
|
-
acknowledgment. If the destination is behind by less than this
|
|
664
|
-
amount, and was previously downgraded to async acknowledgment,
|
|
665
|
-
AMPS will upgrade to sync acknowledgment.
|
|
666
|
-
|
|
667
|
-
-->
|
|
668
|
-
|
|
669
|
-
<Age>10s</Age>
|
|
670
|
-
</Options>
|
|
671
|
-
</Do>
|
|
672
|
-
</Action>
|
|
673
|
-
</Actions>
|
|
674
|
-
...
|
|
675
|
-
</AMPSConfig>
|
|
676
|
-
|
|
677
|
-
In this configuration file, AMPS checks every 15 seconds to see if a
|
|
678
|
-
destination has fallen behind by 300 seconds. If a destination has
|
|
679
|
-
fallen behind by more than 300 seconds, that destination should
|
|
680
|
-
no longer be considered reliable. AMPS downgrades the destination
|
|
681
|
-
to ``async`` acknowledgment. That destination will no longer
|
|
682
|
-
be considered when acknowledging messages to publishers,
|
|
683
|
-
and publishers should not consider that destination to be
|
|
684
|
-
an option for failover until the destination catches up.
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
.. tip::
|
|
688
|
-
|
|
689
|
-
All publishers using a publish store should be able to hold
|
|
690
|
-
a number of messages equal to the number of messages published,
|
|
691
|
-
at peak message volume, for a time period equal to the
|
|
692
|
-
periodicity of the downgrade check plus the threshold for downgrade.
|
|
693
|
-
With the configuration above, a publisher that publishes at a peak
|
|
694
|
-
rate of 10,000 messages per second should, at a minimum, be able
|
|
695
|
-
to allocate a publish store that holds 750,000 messages.
|
|
696
|
-
|
|
697
|
-
In some cases, it is important that a destination maintain a minimum
|
|
698
|
-
number of destinations that use ``sync`` acknowledgment. For those
|
|
699
|
-
cases, an instance-level ``Tuning`` parameter is available that
|
|
700
|
-
will prevent the action from downgrading a connection if doing so
|
|
701
|
-
would reduce the number of destinations that use ``sync`` acknowledgment
|
|
702
|
-
below the configured limit. This parameter does not guarantee whether
|
|
703
|
-
a specific destination will continue using ``sync`` acknowledgment. This
|
|
704
|
-
parameter only limits whether AMPS will downgrade a destination that
|
|
705
|
-
meets downgrade criteria. AMPS will not upgrade a destination that
|
|
706
|
-
has previously been downgraded if a connection is lost, even if
|
|
707
|
-
this means that the number of currently connected destinations that
|
|
708
|
-
use ``sync`` acknowledgment is less than the configured minimum.
|
|
709
|
-
See the *AMPS Configuration Guide* section on instance-level
|
|
710
|
-
parameters for details.
|
|
711
|
-
|
|
712
|
-
Replication Configuration Validation
|
|
713
|
-
---------------------------------------
|
|
714
|
-
|
|
715
|
-
Replication configuration validation helps to ensure that
|
|
716
|
-
any configuration that could result in message loss or inconsistent
|
|
717
|
-
message contents between two instances of AMPS is explicitly
|
|
718
|
-
designed into the replication topology and not the result
|
|
719
|
-
of accidental misconfiguration.
|
|
720
|
-
|
|
721
|
-
Replication can involve coordinating configuration among a large number
|
|
722
|
-
of AMPS instances. It can sometimes be difficult to ensure that all
|
|
723
|
-
of the instances are configured correctly, and to ensure that a
|
|
724
|
-
configuration change for one instance is also made at the replication
|
|
725
|
-
destinations. For example, if a high-availability pair replicates the
|
|
726
|
-
topics ORDERS, INVENTORY, and CUSTOMERS to a remote disaster recovery
|
|
727
|
-
site, but the disaster recovery site only replicates ORDERS and
|
|
728
|
-
INVENTORY back to the high-availability pair, disaster recovery may not
|
|
729
|
-
occur as planned. Likewise, if only one member of the HA pair replicates
|
|
730
|
-
ORDERS to the other member of the pair, the two instances will contain
|
|
731
|
-
different messages, which could cause problems for the system.
|
|
732
|
-
|
|
733
|
-
Starting in the 5.0 release, AMPS automatic replication configuration
|
|
734
|
-
validation makes it easier to keep configuration items consistent across
|
|
735
|
-
a replication fabric.
|
|
736
|
-
|
|
737
|
-
Replication configuration validation happens when a replication
|
|
738
|
-
connection is made between two instances. The validation compares
|
|
739
|
-
the configuration of those two instances. By default, any difference
|
|
740
|
-
in configuration that could result in message loss, different
|
|
741
|
-
behavior between the source instance and the destination instance,
|
|
742
|
-
or different replication guarantees between the source instance
|
|
743
|
-
and the destination instance is reported as an error.
|
|
744
|
-
|
|
745
|
-
.. important::
|
|
746
|
-
|
|
747
|
-
When replication validation reports an error, the reason for the
|
|
748
|
-
error is logged to the event log on the instance that detects
|
|
749
|
-
the problem, and the connection is closed.
|
|
750
|
-
|
|
751
|
-
Automatic configuration validation is enabled for all elements of the
|
|
752
|
-
replication configuration by default. You can turn off validation for
|
|
753
|
-
specific elements of the configuration, as described below.
|
|
754
|
-
|
|
755
|
-
AMPS replication uses a leaderless, "all nodes hot" model. This means
|
|
756
|
-
that no single AMPS instance has a view of the entire replication
|
|
757
|
-
fabric, and a single AMPS instance will always assume that there are
|
|
758
|
-
instances in the replication fabric that it is not aware of. The
|
|
759
|
-
replication validation rules are designed with this assumption. The
|
|
760
|
-
advantage of this assumption is that if instances are added to the
|
|
761
|
-
replication fabric, it is typically only necessary to change
|
|
762
|
-
configuration on the instances that they directly communicate with
|
|
763
|
-
for replication to function as expected. The tradeoff, however, is
|
|
764
|
-
that it is sometimes necessary to configure an instance as though
|
|
765
|
-
it were part of a larger fabric (or exclude a validation rule)
|
|
766
|
-
even in a case where the instance is part of a much simpler
|
|
767
|
-
replication design.
|
|
768
|
-
|
|
769
|
-
Each ``Topic`` in a replication ``Destination`` can configure a unique
|
|
770
|
-
set of validation checks. By default, all of the checks apply to all
|
|
771
|
-
topics in the ``Destination``.
|
|
772
|
-
|
|
773
|
-
When troubleshooting a configuration validation error, it is important
|
|
774
|
-
to look at the AMPS logs on *both* sides of the connection. Typically, the
|
|
775
|
-
AMPS instance that detects the error will log complete information on the
|
|
776
|
-
part of validation that failed and the changes required for the connection
|
|
777
|
-
to succeed, while the other side of the connection will simply note that the
|
|
778
|
-
connection failed validation. This means that if a validation error is reported
|
|
779
|
-
on one instance, but details are not present, the other side of the connection
|
|
780
|
-
detected the error and will have logged relevant details.
|
|
781
|
-
|
|
782
|
-
.. warning::
|
|
783
|
-
|
|
784
|
-
Excluding a validation check directs AMPS to make a
|
|
785
|
-
replication connection that could result in inconsistent
|
|
786
|
-
state or data loss. Use caution when excluding
|
|
787
|
-
validation checks. See the table below for
|
|
788
|
-
details on each validation check.
|
|
789
|
-
|
|
790
|
-
The table below lists aspects of replication that AMPS validates. By default, replication
|
|
791
|
-
validation treats the downstream instance as though it is intended to be a full
|
|
792
|
-
highly-available failover partner for any topic that is replicated. For situations
|
|
793
|
-
where that is not the case, many validation rules can be excluded. For example, if
|
|
794
|
-
the downstream instance is a view server that does not accept publishes and,
|
|
795
|
-
therefore, is not configured to replicate a particular topic back to this instance,
|
|
796
|
-
the ``replicate`` validation check might need to be excluded.
|
|
797
|
-
|
|
798
|
-
AMPS performs the following validation checks:
|
|
799
|
-
|
|
800
|
-
.. include:: ../../common/chapters/ha/rep_validation.inc
|
|
801
|
-
|
|
802
|
-
*Replication Configuration Validation*
|
|
803
|
-
|
|
804
|
-
Notice that, by default, *all* of these checks are applied.
|
|
805
|
-
|
|
806
|
-
The sample below shows how to exclude validation checks for a replication
|
|
807
|
-
destination. In this sample, the ``Topic`` does not require the remote destination
|
|
808
|
-
to replicate back to this instance, and does not require that the remote
|
|
809
|
-
destination enforce the same configuration checks for any downstream
|
|
810
|
-
replication of this topic.
|
|
811
|
-
|
|
812
|
-
.. code-block:: xml
|
|
813
|
-
|
|
814
|
-
<Destination>
|
|
815
|
-
...
|
|
816
|
-
<Topic>
|
|
817
|
-
<MessageType>json</MessageType>
|
|
818
|
-
<Name>MyStuff-VIEW</Name>
|
|
819
|
-
<ExcludeValidation>replicate,cascade</ExcludeValidation>
|
|
820
|
-
</Topic>
|
|
821
|
-
...
|
|
822
|
-
</Destination>
|
|
823
|
-
|
|
824
|
-
Replication Resynchronization
|
|
825
|
-
------------------------------
|
|
826
|
-
|
|
827
|
-
When a replication connection is established between AMPS
|
|
828
|
-
instances, the upstream instance publishes any messages that it
|
|
829
|
-
contains in its transaction log that the downstream instance
|
|
830
|
-
may not have previously received. This process is called
|
|
831
|
-
"replication resync". During resync, the upstream instance
|
|
832
|
-
replays from the transaction log, replicating messages that
|
|
833
|
-
match the ``Topic`` (and, optionally, ``Filter``) specification(s)
|
|
834
|
-
for the downstream ``Destination``.
|
|
835
|
-
|
|
836
|
-
When a replication connection is established between AMPS servers
|
|
837
|
-
that are both version 5.3.3.0 or higher, the servers exchange
|
|
838
|
-
information about the messages present in the transaction log to
|
|
839
|
-
determine the earliest message in the transaction log on the
|
|
840
|
-
upstream instance that is not present on the downstream instance.
|
|
841
|
-
Replication resynchronization will begin at that point. This
|
|
842
|
-
approach to finding the resynchronization point applies
|
|
843
|
-
whether or not these two instances have had a replication
|
|
844
|
-
connection before.
|
|
845
|
-
|
|
846
|
-
For replication between older versions of AMPS, replication
|
|
847
|
-
resynchronization begins at the last point in the upstream
|
|
848
|
-
instance's transaction log that the downstream instance has
|
|
849
|
-
received. For those versions of AMPS, messages from other
|
|
850
|
-
instances are not considered when determining the
|
|
851
|
-
resynchronization point.
|
|
852
|
-
|
|
853
|
-
.. index:: replication; compression,
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
Replication Compression
|
|
857
|
-
------------------------
|
|
858
|
-
|
|
859
|
-
AMPS provides the ability to compress the replication connection. In
|
|
860
|
-
typical use, using replication compression can greatly reduce the
|
|
861
|
-
bandwidth required between AMPS instances.
|
|
862
|
-
|
|
863
|
-
The precise amount of compression that AMPS can achieve depends on the
|
|
864
|
-
content of the replicated messages. Compression is configured at the
|
|
865
|
-
replication source, and does not need to be enabled in the transport
|
|
866
|
-
configuration at the instance receiving the replicated messages.
|
|
867
|
-
|
|
868
|
-
For AMPS instances that are receiving replicated messages, no additional
|
|
869
|
-
configuration is necessary. AMPS automatically recognizes when an
|
|
870
|
-
incoming replication connection uses compression.
|
|
871
|
-
|
|
872
|
-
See the *AMPS Configuration Guide* for enabling compression and choosing
|
|
873
|
-
a compression algorithm.
|
|
874
|
-
|
|
875
|
-
Destination Server Failover
|
|
876
|
-
---------------------------
|
|
877
|
-
|
|
878
|
-
Your replication plan may include replication to a server that is part
|
|
879
|
-
of a highly-available group.
|
|
880
|
-
|
|
881
|
-
There are two common approaches to destination server failover:
|
|
882
|
-
|
|
883
|
-
1. **Wide IP** - AMPS replication works transparently with wide IP and
|
|
884
|
-
many installations use wide IP for destination server failover. The
|
|
885
|
-
advantage of this approach is that it requires no additional
|
|
886
|
-
configuration in AMPS and redundant servers can be added or removed
|
|
887
|
-
from the wide IP group without reconfiguring the instances that
|
|
888
|
-
replicate to the group. A disadvantage to this approach is that failover
|
|
889
|
-
can require several seconds and messages are not replicated during the
|
|
890
|
-
time that it takes for failover to occur.
|
|
891
|
-
|
|
892
|
-
2. **AMPS Failover** - AMPS allows you to specify multiple downstream
|
|
893
|
-
servers in the ``InetAddr`` element of a destination. In this case, AMPS
|
|
894
|
-
treats the defined list of servers as a list of equivalent servers, listed
|
|
895
|
-
in order of priority.
|
|
896
|
-
|
|
897
|
-
When multiple addresses are specified for a destination, each time AMPS
|
|
898
|
-
needs to make a connection to a destination and there is no incoming
|
|
899
|
-
connection from a server in that destination, AMPS starts at the
|
|
900
|
-
beginning of the list and attempts to connect to each address in the
|
|
901
|
-
list. If AMPS is unable to connect to any address in the list, AMPS
|
|
902
|
-
waits for a timeout period, then begins again with the first server on
|
|
903
|
-
the list. Each time AMPS reaches the end of the list without
|
|
904
|
-
establishing a connection, AMPS increases the timeout period. If an incoming
|
|
905
|
-
connection from one of the servers on the list exists, AMPS will use that
|
|
906
|
-
connection for outgoing replication. If multiple incoming connections
|
|
907
|
-
from servers in the list exist, AMPS will choose one of the incoming
|
|
908
|
-
connections to use for outgoing traffic.
|
|
909
|
-
|
|
910
|
-
This capability allows you to easily set up replication to a
|
|
911
|
-
highly-available group. If the server you are replicating to fails over,
|
|
912
|
-
AMPS uses the prioritized list of servers to re-establish a connection.
|
|
913
|
-
|
|
914
|
-
Two-Way Replication
|
|
915
|
-
-------------------
|
|
916
|
-
|
|
917
|
-
Two-way replication, sometimes called *Back Replication*, is a term used
|
|
918
|
-
to describe a replication scenario where there are two instances of AMPS
|
|
919
|
-
-- termed ``AMPS-A`` and ``AMPS-B`` for this example.
|
|
920
|
-
|
|
921
|
-
In a two-way replication configuration, messages that are published to ``AMPS-A``
|
|
922
|
-
are replicated to ``AMPS-B``. Likewise, messages which are published to
|
|
923
|
-
``AMPS-B`` are replicated to ``AMPS-A``. This replication scheme is used
|
|
924
|
-
when both instances of AMPS need to be in sync with each other to handle
|
|
925
|
-
a failover scenario with no loss of messages between them. This way, if
|
|
926
|
-
``AMPS-A`` should fail at any point, applications can immediately fail over
|
|
927
|
-
to the ``AMPS-B`` instance, allowing message flow to resume with as little
|
|
928
|
-
downtime as possible.
|
|
929
|
-
|
|
930
|
-
To enable two-way replication, each instance of AMPS defines
|
|
931
|
-
a replication ``Transport`` to receive incoming replication
|
|
932
|
-
messages. Each instance also defines a replication ``Destination``
|
|
933
|
-
to deliver messages to the other instance.
|
|
934
|
-
|
|
935
|
-
Notice that servers are intended to function as failover partners.
|
|
936
|
-
Since a publisher may fail over between these two instances, the
|
|
937
|
-
``Destination`` on each instance that replicates to the other instance
|
|
938
|
-
is configured to use ``sync`` message acknowledgment. This
|
|
939
|
-
ensures that a publisher does not consider a message to be persisted
|
|
940
|
-
until all of the failover partners have received and persisted the
|
|
941
|
-
message.
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
.. warning::
|
|
945
|
-
|
|
946
|
-
When configuring a set of instances for failover, it is important that
|
|
947
|
-
the instances use ``sync`` message acknowledgment among the set of
|
|
948
|
-
instances that a given client will consider for failover. It should never be
|
|
949
|
-
possible for a publisher to fail over from one instance to another instance
|
|
950
|
-
if the replication link between those instances is configured for ``async``
|
|
951
|
-
acknowledgments.
|
|
952
|
-
|
|
953
|
-
.. index:: replication ; single connection between two servers,
|
|
954
|
-
|
|
955
|
-
Starting with the 5.0 release, when AMPS detects back replication
|
|
956
|
-
between a pair of instances, AMPS will prefer using a single network
|
|
957
|
-
connection between the servers, replicating messages in both directions
|
|
958
|
-
(that is, to both destinations) over a single connection. This can
|
|
959
|
-
be particularly useful for situations where you need to have messages
|
|
960
|
-
replicated, but only one server can initiate a connection. For example,
|
|
961
|
-
when one of the servers is in a DMZ, and cannot make a connection to a
|
|
962
|
-
server within the company. AMPS also allows you to specify a replication
|
|
963
|
-
destination with no InetAddr provided. In this case, the instance will
|
|
964
|
-
replicate once the destination establishes a connection, but will not initiate
|
|
965
|
-
a connection. When both instances specify an InetAddr, AMPS may temporarily
|
|
966
|
-
create two connections between the instances while replication is being established.
|
|
967
|
-
In this case, after detecting that there are two connections active, AMPS will
|
|
968
|
-
close one of the network connections and allow both AMPS instances to use
|
|
969
|
-
the remaining network connection to publish messages to the other instance.
|
|
970
|
-
Notice that using a single network connection is simply an optimization to
|
|
971
|
-
more efficiently use the available sockets. This does not change the way
|
|
972
|
-
messages are replicated or the replication protocol, nor does it change the
|
|
973
|
-
requirement that all messages in a journal are replicated to all destinations
|
|
974
|
-
before a journal can be removed.
|
|
975
|
-
|
|
976
|
-
.. _#ug-ha-passthrough:
|
|
977
|
-
|
|
978
|
-
PassThrough Replication
|
|
979
|
-
-----------------------
|
|
980
|
-
|
|
981
|
-
PassThrough Replication is a term used to describe the ability of an
|
|
982
|
-
AMPS instance to pass along replicated messages to another AMPS
|
|
983
|
-
instance. This allows you to easily keep multiple failover or DR
|
|
984
|
-
destinations in sync from a single AMPS instance. Unless passthrough
|
|
985
|
-
replication is configured, an AMPS instance only replicates messages
|
|
986
|
-
directly published to that instance from an application. By default,
|
|
987
|
-
an instance *does not* re-replicate messages received over replication.
|
|
988
|
-
|
|
989
|
-
PassThrough replication uses the name of the originating AMPS group to
|
|
990
|
-
indicate that messages that arrive at this instance of AMPS directly
|
|
991
|
-
from that group are to be replicated to the specified destination.
|
|
992
|
-
PassThrough replication supports regular expressions to specify groups,
|
|
993
|
-
and allows multiple server groups per destination. Notice that if the
|
|
994
|
-
destination instance does not specify a ``Group`` in its instance config,
|
|
995
|
-
the group name is the ``Name`` of the instance.
|
|
996
|
-
|
|
997
|
-
To ensure that an instance replicates a full copy of its transaction
|
|
998
|
-
log downstream (which is typically the intended result), include
|
|
999
|
-
a ``PassThrough`` configuration item that matches any group name.
|
|
1000
|
-
|
|
1001
|
-
With care, some topologies can use a ``PassThrough`` configuration
|
|
1002
|
-
that only replicates messages directly published to the instance
|
|
1003
|
-
and a subset of messages received over replication.
|
|
1004
|
-
This can result in significant bandwidth reduction in some
|
|
1005
|
-
topologies, but must be configured with care to ensure that
|
|
1006
|
-
messages do not fail to reach all of the instances, since
|
|
1007
|
-
in this case AMPS is configured to replicate only a *part* of
|
|
1008
|
-
the transaction log of the local instance.
|
|
1009
|
-
|
|
1010
|
-
.. code-block:: xml
|
|
1011
|
-
|
|
1012
|
-
<Replication>
|
|
1013
|
-
<Destination>
|
|
1014
|
-
<Name>AMPS2-HKG</Name>
|
|
1015
|
-
<!-- No group specified: this destination is for
|
|
1016
|
-
a server at the same site, and is responsible for
|
|
1017
|
-
populating the specific replication partner. -->
|
|
1018
|
-
<Transport>
|
|
1019
|
-
<Name>amps-replication</Name>
|
|
1020
|
-
<Type>amps-replication</Type>
|
|
1021
|
-
<InetAddr>secondaryhost:10010</InetAddr>
|
|
1022
|
-
</Transport>
|
|
1023
|
-
<Topic>
|
|
1024
|
-
<Name>/rep_topic</Name>
|
|
1025
|
-
<MessageType>fix</MessageType>
|
|
1026
|
-
</Topic>
|
|
1027
|
-
<Topic>
|
|
1028
|
-
<Name>/rep_topic2</Name>
|
|
1029
|
-
<MessageType>fix</MessageType>
|
|
1030
|
-
</Topic>
|
|
1031
|
-
<SyncType>sync</SyncType>
|
|
1032
|
-
|
|
1033
|
-
<!-- Specify which messages received via replication will be replicated
|
|
1034
|
-
to this destination (provided that the Topic and MessageType also match).
|
|
1035
|
-
|
|
1036
|
-
This destination will receive messages that arrive via replication from
|
|
1037
|
-
AMPS instances with a group name that does not contain HKG. Replicated
|
|
1038
|
-
messages from an instance that has a group name that matches HKG will not be
|
|
1039
|
-
sent to this destination.
|
|
1040
|
-
|
|
1041
|
-
Regardless of the PassThrough configuration, all messages published directly
|
|
1042
|
-
to this instance by an AMPS client will be replicated to this destination
|
|
1043
|
-
if the Topic and MessageType match.
|
|
1044
|
-
-->
|
|
1045
|
-
<PassThrough>^((?!HKG).)*$</PassThrough>
|
|
1046
|
-
</Destination>
|
|
1047
|
-
</Replication>
|
|
1048
|
-
|
|
1049
|
-
When a message is eligible for passthrough replication, topic and
|
|
1050
|
-
content filters in the replication destination still apply. The
|
|
1051
|
-
passthrough directive simply means that the message is eligible for
|
|
1052
|
-
replication from this instance if it comes from an instance in the
|
|
1053
|
-
specified group.
|
|
1054
|
-
|
|
1055
|
-
AMPS protects against loops in passthrough replication by tracking the
|
|
1056
|
-
instance names or group names that a message has passed through. AMPS
|
|
1057
|
-
does not allow a message to travel through the same instance and group name
|
|
1058
|
-
more than once.
|
|
1059
|
-
|
|
1060
|
-
.. caution::
|
|
1061
|
-
|
|
1062
|
-
When using passthrough, AMPS will not send a message to an
|
|
1063
|
-
instance that the message has already traveled through
|
|
1064
|
-
to protect against replication loops.
|
|
1065
|
-
|
|
1066
|
-
If an instance replicates a queue (distributed queue) or a group local queue, it
|
|
1067
|
-
*must also* provide passthrough for any incoming replication group that replicates that
|
|
1068
|
-
topic (even if the incoming replication connection is from the same group that this
|
|
1069
|
-
instance belongs to). The reason for this is simple: AMPS must ensure that messages
|
|
1070
|
-
for a replicated queue, including acknowledgments and transfer messages, are able
|
|
1071
|
-
to reach every instance that hosts the queue if possible, even if a network connection
|
|
1072
|
-
fails or an instance goes offline. Therefore, this instance must pass through messages
|
|
1073
|
-
received from other instances that affect the queue.
|
|
1074
|
-
|
|
1075
|
-
Guarantees on Ordering
|
|
1076
|
-
----------------------
|
|
1077
|
-
|
|
1078
|
-
For each publisher, on a single topic, AMPS is guaranteed to deliver
|
|
1079
|
-
messages to subscribers in the same order that the messages were
|
|
1080
|
-
published by the original publisher. This guarantee holds true
|
|
1081
|
-
regardless of how many publishers or how many subscribers are connected
|
|
1082
|
-
to AMPS at any one time.
|
|
1083
|
-
|
|
1084
|
-
For each instance, AMPS is guaranteed to deliver messages in the order
|
|
1085
|
-
in which the messages were received by the instance, regardless of
|
|
1086
|
-
whether a message is received directly from a publisher or indirectly
|
|
1087
|
-
via replication. The message order for the instance is recorded in the
|
|
1088
|
-
transaction log, and is guaranteed to remain consistent across server
|
|
1089
|
-
restarts.
|
|
1090
|
-
|
|
1091
|
-
These guarantees mean that subscribers will not spend unnecessary CPU
|
|
1092
|
-
cycles checking timestamps or other message content to verify which
|
|
1093
|
-
message is the most recent, or reordering messages during playback. This
|
|
1094
|
-
frees up subscriber resources to do more important work.
|
|
1095
|
-
|
|
1096
|
-
AMPS preserves an absolute order across topics for a single subscription
|
|
1097
|
-
for all topics *except* views, queues, and conflated topics.
|
|
1098
|
-
Applications often rely on this behavior to correlate the times at which
|
|
1099
|
-
messages to different topics were processed by AMPS. See
|
|
1100
|
-
:ref:`#pub-sub-ordering` for more information.
|
|
1101
|
-
|
|
1102
|
-
Replication Security
|
|
1103
|
-
--------------------
|
|
1104
|
-
|
|
1105
|
-
AMPS allows authorization and entitlement to be configured on
|
|
1106
|
-
replication destinations. For the instance that receives connections,
|
|
1107
|
-
you simply configure ``Authentication`` and ``Entitlement`` for the transport
|
|
1108
|
-
definition for the destination, as shown below:
|
|
1109
|
-
|
|
1110
|
-
.. code-block:: xml
|
|
1111
|
-
|
|
1112
|
-
<Transports>
|
|
1113
|
-
<Transport>
|
|
1114
|
-
<Name>amps-replication</Name>
|
|
1115
|
-
<Type>amps-replication</Type>
|
|
1116
|
-
<InetAddr>10005</InetAddr>
|
|
1117
|
-
|
|
1118
|
-
<!-- Specifies the entitlement module to use to check permissions for incoming
|
|
1119
|
-
connections. The module specified must be defined in the Modules section of the
|
|
1120
|
-
config file, or be one of the default modules provided by AMPS. This snippet
|
|
1121
|
-
uses the default module provided by AMPS for example purposes. -->
|
|
1122
|
-
<Entitlement>
|
|
1123
|
-
<Module>amps-default-entitlement-module</Module>
|
|
1124
|
-
</Entitlement>
|
|
1125
|
-
|
|
1126
|
-
<!-- Specifies the authentication module to use to verify identity for incoming
|
|
1127
|
-
connections. The module specified must be defined in the Modules section of the
|
|
1128
|
-
config file, or be one of the default modules provided by AMPS. This snippet
|
|
1129
|
-
uses the default module provided by AMPS for example purposes. -->
|
|
1130
|
-
<Authentication>
|
|
1131
|
-
<Module>amps-default-authentication-module</Module>
|
|
1132
|
-
</Authentication>
|
|
1133
|
-
</Transport>
|
|
1134
|
-
...
|
|
1135
|
-
</Transports>
|
|
1136
|
-
|
|
1137
|
-
For incoming connections, configuration is the same as for other types
|
|
1138
|
-
of transports.
|
|
1139
|
-
|
|
1140
|
-
For connections from AMPS to replication destinations, you can configure
|
|
1141
|
-
an ``Authenticator`` module for the destination transport. ``Authenticator``
|
|
1142
|
-
modules provide credentials for outgoing connections from AMPS. For
|
|
1143
|
-
authentication protocols that require a challenge and response, the
|
|
1144
|
-
``Authenticator`` module handles the responses for the instance requesting
|
|
1145
|
-
access.
|
|
1146
|
-
|
|
1147
|
-
.. code-block:: xml
|
|
1148
|
-
|
|
1149
|
-
<Replication>
|
|
1150
|
-
<Destination>
|
|
1151
|
-
<Topic>
|
|
1152
|
-
<MessageType>fix</MessageType>
|
|
1153
|
-
<Name>topic</Name>
|
|
1154
|
-
</Topic>
|
|
1155
|
-
<Name>amps-1</Name>
|
|
1156
|
-
<SyncType>async</SyncType>
|
|
1157
|
-
<Transport>
|
|
1158
|
-
<InetAddr>amps-1-server.example.com:10004</InetAddr>
|
|
1159
|
-
<Type>amps-replication</Type>
|
|
1160
|
-
|
|
1161
|
-
<!-- Specifies the authenticator module to use to provide credentials for the
|
|
1162
|
-
outgoing connection. The module specified must be defined in the Modules section
|
|
1163
|
-
of the config file, or be one of the default modules provided by AMPS. This
|
|
1164
|
-
snippet uses the default module provided by AMPS for example purposes. -->
|
|
1165
|
-
|
|
1166
|
-
<Authenticator>
|
|
1167
|
-
<Module>amps-default-authenticator-module</Module>
|
|
1168
|
-
</Authenticator>
|
|
1169
|
-
</Transport>
|
|
1170
|
-
</Destination>
|
|
1171
|
-
</Replication>
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
Understanding Replication Message Routing
|
|
1175
|
-
------------------------------------------
|
|
1176
|
-
|
|
1177
|
-
An instance of AMPS will replicate a message to a given ``Destination`` when
|
|
1178
|
-
all of the following conditions are met (and there is an active replication
|
|
1179
|
-
connection to the ``Destination``):
|
|
1180
|
-
|
|
1181
|
-
1. The message must be recorded in the transaction log for this instance (that is,
|
|
1182
|
-
the topic that the message is published to must be recorded in the transaction
|
|
1183
|
-
log with the appropriate message type).
|
|
1184
|
-
|
|
1185
|
-
2. The AMPS instance must be configured to replicate messages with that
|
|
1186
|
-
topic and message type to the ``Destination``. (If a content filter
|
|
1187
|
-
is included in the replication configuration, the message must
|
|
1188
|
-
also match the content filter.)
|
|
1189
|
-
|
|
1190
|
-
3. The message must *either* have been directly published to this instance, or
|
|
1191
|
-
if the message was received via replication, the ``Destination`` must specify
|
|
1192
|
-
a ``PassThrough`` rule that matches the AMPS instance that this instance
|
|
1193
|
-
received the message from.
|
|
1194
|
-
|
|
1195
|
-
4. The message must not have previously passed through the ``Destination``
|
|
1196
|
-
being replicated to; replication loops are not permitted.
|
|
1197
|
-
|
|
1198
|
-
Each instance that receives a message evaluates the conditions above for each
|
|
1199
|
-
``Destination``. The same process is followed when replaying messages from
|
|
1200
|
-
the transaction log while resynchronizing the downstream replication
|
|
1201
|
-
destination.
|
|
1202
|
-
|
|
1203
|
-
To verify that a given set of configurations replicates the appropriate
|
|
1204
|
-
messages, start at each instance that will receive publishes and trace the
|
|
1205
|
-
possible replication paths, applying these rules. If, at any time, applying
|
|
1206
|
-
these rules creates a situation where a message does not reach an instance
|
|
1207
|
-
of AMPS that is intended to receive the message, revise the rules (typically,
|
|
1208
|
-
by adjusting the topics replicated to a ``Destination`` or the
|
|
1209
|
-
``PassThrough`` configuration for a ``Destination``) until
|
|
1210
|
-
messages reach the intended instances regardless of route.
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
Maximum Downstream Destinations
|
|
1214
|
-
--------------------------------
|
|
1215
|
-
|
|
1216
|
-
AMPS has support for up to 64 downstream destinations
|
|
1217
|
-
that use synchronous acknowledgment. There is no
|
|
1218
|
-
explicit limit on the number of downstream
|
|
1219
|
-
destinations that use asynchronous (immediate)
|
|
1220
|
-
acknowledgment.
|
|
1221
|
-
|
|
1222
|
-
.. include:: ./queue_replication.inc
|
|
1223
|
-
|
|
1224
|
-
.. include:: ./bootstrap.inc
|
|
1225
|
-
|
|
1226
|
-
.. include:: ./replication_best_practices.inc
|
|
1227
|
-
|
|
1228
|
-
|