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,978 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
6
|
-
<head>
|
|
7
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
8
|
-
|
|
9
|
-
<title>26. Highly Available AMPS Installations — AMPS User Guide develop documentation</title>
|
|
10
|
-
|
|
11
|
-
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
|
|
12
|
-
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
|
13
|
-
|
|
14
|
-
<script type="text/javascript">
|
|
15
|
-
var DOCUMENTATION_OPTIONS = {
|
|
16
|
-
URL_ROOT: '../',
|
|
17
|
-
VERSION: 'develop',
|
|
18
|
-
COLLAPSE_INDEX: false,
|
|
19
|
-
FILE_SUFFIX: '.html',
|
|
20
|
-
HAS_SOURCE: true,
|
|
21
|
-
SOURCELINK_SUFFIX: '.txt'
|
|
22
|
-
};
|
|
23
|
-
</script>
|
|
24
|
-
<script type="text/javascript" src="../_static/jquery.js"></script>
|
|
25
|
-
<script type="text/javascript" src="../_static/underscore.js"></script>
|
|
26
|
-
<script type="text/javascript" src="../_static/doctools.js"></script>
|
|
27
|
-
<link rel="index" title="Index" href="../genindex.html" />
|
|
28
|
-
<link rel="search" title="Search" href="../search.html" />
|
|
29
|
-
<link rel="next" title="27. Operation and Deployment" href="operation.html" />
|
|
30
|
-
<link rel="prev" title="25. Replicating Messages Between Instances" href="replication.html" />
|
|
31
|
-
|
|
32
|
-
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
|
36
|
-
|
|
37
|
-
</head>
|
|
38
|
-
<body role="document">
|
|
39
|
-
<div class="document">
|
|
40
|
-
|
|
41
|
-
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
42
|
-
<div class="sphinxsidebarwrapper">
|
|
43
|
-
<p class="logo"><a href="../index.html">
|
|
44
|
-
<img class="logo" src="../_static/flag_logo.png" alt="Logo"/>
|
|
45
|
-
</a></p>
|
|
46
|
-
<h3><a href="../index.html">Table Of Contents</a></h3>
|
|
47
|
-
<ul>
|
|
48
|
-
<li><a class="reference internal" href="#">26. Highly Available AMPS Installations</a><ul>
|
|
49
|
-
<li><a class="reference internal" href="#overview-of-amps-high-availability">Overview of AMPS High Availability</a></li>
|
|
50
|
-
<li><a class="reference internal" href="#high-availability-scenarios">High Availability Scenarios</a><ul>
|
|
51
|
-
<li><a class="reference internal" href="#failover-scenario">Failover Scenario</a></li>
|
|
52
|
-
<li><a class="reference internal" href="#geographic-replication">Geographic Replication</a></li>
|
|
53
|
-
<li><a class="reference internal" href="#geographic-replication-with-high-availability">Geographic Replication with High Availability</a></li>
|
|
54
|
-
<li><a class="reference internal" href="#complex-replication-hub-and-spoke-topology">Complex Replication: Hub and Spoke Topology</a></li>
|
|
55
|
-
</ul>
|
|
56
|
-
</li>
|
|
57
|
-
<li><a class="reference internal" href="#high-availability">High Availability</a><ul>
|
|
58
|
-
<li><a class="reference internal" href="#guaranteed-publishing">Guaranteed Publishing</a></li>
|
|
59
|
-
<li><a class="reference internal" href="#durable-publication-and-subscriptions">Durable Publication and Subscriptions</a></li>
|
|
60
|
-
<li><a class="reference internal" href="#heartbeat-in-high-availability">Heartbeat in High Availability</a></li>
|
|
61
|
-
<li><a class="reference internal" href="#ug-slow-client-management">Slow Client Management and Capacity Limits</a><ul>
|
|
62
|
-
<li><a class="reference internal" href="#resource-pool-policies">Resource Pool Policies</a></li>
|
|
63
|
-
<li><a class="reference internal" href="#individual-client-policies">Individual Client Policies</a></li>
|
|
64
|
-
</ul>
|
|
65
|
-
</li>
|
|
66
|
-
</ul>
|
|
67
|
-
</li>
|
|
68
|
-
<li><a class="reference internal" href="#configuring-slow-client-offlining">Configuring Slow Client Offlining</a></li>
|
|
69
|
-
<li><a class="reference internal" href="#message-ordering-and-replication">Message Ordering and Replication</a></li>
|
|
70
|
-
</ul>
|
|
71
|
-
</li>
|
|
72
|
-
</ul>
|
|
73
|
-
<div class="relations">
|
|
74
|
-
<h3>Related Topics</h3>
|
|
75
|
-
<ul>
|
|
76
|
-
<li><a href="../index.html">Documentation overview</a><ul>
|
|
77
|
-
<li>Previous: <a href="replication.html" title="previous chapter">25. Replicating Messages Between Instances</a></li>
|
|
78
|
-
<li>Next: <a href="operation.html" title="next chapter">27. Operation and Deployment</a></li>
|
|
79
|
-
</ul></li>
|
|
80
|
-
</ul>
|
|
81
|
-
</div>
|
|
82
|
-
<div id="searchbox" style="display: none" role="search">
|
|
83
|
-
<h3>Quick search</h3>
|
|
84
|
-
<form class="search" action="../search.html" method="get">
|
|
85
|
-
<div><input type="text" name="q" /></div>
|
|
86
|
-
<div><input type="submit" value="Go" /></div>
|
|
87
|
-
<input type="hidden" name="check_keywords" value="yes" />
|
|
88
|
-
<input type="hidden" name="area" value="default" />
|
|
89
|
-
</form>
|
|
90
|
-
</div>
|
|
91
|
-
<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
<div class="documentwrapper">
|
|
95
|
-
<div class="bodywrapper">
|
|
96
|
-
<div class="body" role="main">
|
|
97
|
-
|
|
98
|
-
<div class="section" id="highly-available-amps-installations">
|
|
99
|
-
<span id="ha"></span><span id="ug-ha"></span><span id="index-0"></span><h1>26. Highly Available AMPS Installations<a class="headerlink" href="#highly-available-amps-installations" title="Permalink to this headline">¶</a></h1>
|
|
100
|
-
<p>This chapter discusses how the features of AMPS help to
|
|
101
|
-
build systems that provide high availability.</p>
|
|
102
|
-
<p>In AMPS, a high availability strategy typically combines
|
|
103
|
-
the design of the replication topology, the HA features
|
|
104
|
-
in the client libraries, and the needs of the
|
|
105
|
-
applications.</p>
|
|
106
|
-
<div class="section" id="overview-of-amps-high-availability">
|
|
107
|
-
<span id="common-ha-overview"></span><h2>Overview of AMPS High Availability<a class="headerlink" href="#overview-of-amps-high-availability" title="Permalink to this headline">¶</a></h2>
|
|
108
|
-
<p>AMPS is designed for high performance, mission-critical applications.
|
|
109
|
-
Those systems typically need to meet availability guarantees. To reach
|
|
110
|
-
those availability guarantees, systems need to be fault tolerant. It’s
|
|
111
|
-
not realistic to expect that networks will never fail, components will
|
|
112
|
-
never need to be replaced, or that servers will never need maintenance.
|
|
113
|
-
For high availability, you build applications that are fault tolerant:
|
|
114
|
-
that keep working as designed even when part of the system fails or is
|
|
115
|
-
taken offline for maintenance. AMPS is designed with this approach in
|
|
116
|
-
mind. It assumes that components will occasionally fail or need
|
|
117
|
-
maintenance, and helps you to build systems that meet their guarantees
|
|
118
|
-
even when part of the system is offline.</p>
|
|
119
|
-
<p>When you plan for high availability, the first step is to ensure that
|
|
120
|
-
each part of your system has the ability to continue running and
|
|
121
|
-
delivering correct results if any other part of the system fails. You
|
|
122
|
-
also ensure that each part of your system can be independently restarted
|
|
123
|
-
without affecting the other parts of the system.</p>
|
|
124
|
-
<p>The AMPS server includes the following features that help ensure high
|
|
125
|
-
availability:</p>
|
|
126
|
-
<ul class="simple">
|
|
127
|
-
<li><strong>Transaction logging</strong> writes messages to persistent storage. In
|
|
128
|
-
AMPS, the transaction log is not only the definitive record of what
|
|
129
|
-
messages have been processed, it is also fully queryable by clients.
|
|
130
|
-
Highly available systems make use of this capability to keep a
|
|
131
|
-
consistent view of messages for all subscribers and publishers. The
|
|
132
|
-
AMPS transaction log is described in detail in <a class="reference internal" href="txlog.html#ug-txlog"><span class="std std-ref">Transactional Messaging and Bookmark Subscriptions</span></a>.</li>
|
|
133
|
-
<li><strong>Replication</strong> allows AMPS instances to copy messages between
|
|
134
|
-
instances. AMPS replication is peer-to-peer, and any number of AMPS
|
|
135
|
-
instances can replicate to any number of AMPS instances. Replication
|
|
136
|
-
can be filtered by topic. By default, AMPS instances only replicate
|
|
137
|
-
messages published to that instance. An AMPS instance can also
|
|
138
|
-
replicate messages received via replication using passthrough
|
|
139
|
-
replication: the ability for instances to pass replication messages
|
|
140
|
-
to other AMPS instances.</li>
|
|
141
|
-
<li><strong>Heartbeat monitoring</strong> to actively detect when a connection is
|
|
142
|
-
lost. Each client configures the heartbeat interval for that
|
|
143
|
-
connection.</li>
|
|
144
|
-
</ul>
|
|
145
|
-
<div class="admonition tip">
|
|
146
|
-
<p class="first admonition-title">Tip</p>
|
|
147
|
-
<p>The only communication between instances of AMPS is
|
|
148
|
-
through replication. AMPS instances do not share
|
|
149
|
-
state through the filesystem or any out-of-band
|
|
150
|
-
communication.</p>
|
|
151
|
-
<p class="last">AMPS high availability and replication do not rely
|
|
152
|
-
on a quorum or a controller instance. Each instance
|
|
153
|
-
of AMPS processes messages independently. Each
|
|
154
|
-
instance of AMPS manages connections and subscriptions
|
|
155
|
-
locally.</p>
|
|
156
|
-
</div>
|
|
157
|
-
<p>The AMPS client libraries include the following features to help ensure
|
|
158
|
-
high availability:</p>
|
|
159
|
-
<ul>
|
|
160
|
-
<li><p class="first"><strong>Heartbeat monitoring</strong> to actively detect when a connection is
|
|
161
|
-
lost. As mentioned above, the interval for the heartbeat is
|
|
162
|
-
configurable on a connection-by-connection basis. The interval for
|
|
163
|
-
heartbeat can be set by the client, allowing you to configure a
|
|
164
|
-
longer timeout on higher latency connections or less critical
|
|
165
|
-
operations, and a lower timeout on fast connections or for clients
|
|
166
|
-
that must detect failover quickly.</p>
|
|
167
|
-
</li>
|
|
168
|
-
<li><p class="first"><strong>Automatic reconnection and failover</strong> allows clients to
|
|
169
|
-
automatically reconnect when disconnection occurs, and to locate and
|
|
170
|
-
connect to an active instance.</p>
|
|
171
|
-
</li>
|
|
172
|
-
<li><p class="first"><strong>Reliable publication</strong> from clients, including an optional
|
|
173
|
-
persistent message store. This allows message publication to survive
|
|
174
|
-
client restarts as well as server failover.</p>
|
|
175
|
-
</li>
|
|
176
|
-
<li><p class="first"><strong>Subscription recovery and transaction log playback</strong> allows
|
|
177
|
-
clients to recover the state of their messaging after restarts.</p>
|
|
178
|
-
<p>When used with a regular subscription or a sow and subscribe, the
|
|
179
|
-
HAClient can restore the subscription at the point the client
|
|
180
|
-
reconnects to AMPS.</p>
|
|
181
|
-
<p>When used with a bookmark subscription, the HAClient can provide the
|
|
182
|
-
ability to resume at the point the client lost the connection. These
|
|
183
|
-
features guarantee that clients receive all messages published in the
|
|
184
|
-
order published, including messages received while the clients were
|
|
185
|
-
offline. Replay and resumable subscription features are provided by
|
|
186
|
-
the transaction log, as described in <a class="reference internal" href="txlog.html#ug-txlog"><span class="std std-ref">Transactional Messaging and Bookmark Subscriptions</span></a>.</p>
|
|
187
|
-
</li>
|
|
188
|
-
</ul>
|
|
189
|
-
<p>For details on each client library, see the developer’s guide for that
|
|
190
|
-
library. Further samples can be found in the client distributions,
|
|
191
|
-
available from the 60East website at <a class="reference external" href="http://www.crankuptheamps.com/develop">http://www.crankuptheamps.com/develop</a>.</p>
|
|
192
|
-
</div>
|
|
193
|
-
<div class="section" id="high-availability-scenarios">
|
|
194
|
-
<h2>High Availability Scenarios<a class="headerlink" href="#high-availability-scenarios" title="Permalink to this headline">¶</a></h2>
|
|
195
|
-
<p>You design your high availability strategy to meet the needs of your
|
|
196
|
-
application, your business, and your network. This section describes
|
|
197
|
-
commonly-deployed scenarios for high availability.</p>
|
|
198
|
-
<div class="section" id="failover-scenario">
|
|
199
|
-
<h3>Failover Scenario<a class="headerlink" href="#failover-scenario" title="Permalink to this headline">¶</a></h3>
|
|
200
|
-
<p>One of the most common scenarios is for two AMPS instances to replicate
|
|
201
|
-
to each other. This replication is synchronous, so that both instances
|
|
202
|
-
persist a message before AMPS acknowledges the message to the publisher.
|
|
203
|
-
This makes a hot-hot pair. In the figure below, any messages published
|
|
204
|
-
to <code class="docutils literal"><span class="pre">important_topic</span></code> are replicated across instances, so both
|
|
205
|
-
instances have the messages for <code class="docutils literal"><span class="pre">important_topic</span></code>.</p>
|
|
206
|
-
<img alt="../_images/Hot-Hot-Replication.png" src="../_images/Hot-Hot-Replication.png" />
|
|
207
|
-
<p>Two connections are shown in the diagram to demonstrate the
|
|
208
|
-
required configuration. However, because these instances
|
|
209
|
-
replicate to each other, AMPS can optimize this replication
|
|
210
|
-
topology to use a single network connection (although AMPS
|
|
211
|
-
treats this as two one-way connections that happen to share
|
|
212
|
-
a single network connection.)</p>
|
|
213
|
-
<p>Since AMPS replication is peer-to-peer, clients can
|
|
214
|
-
connect to either instance of AMPS when both are running.
|
|
215
|
-
With this configuration, clients are configured with Instance 1 and Instance 2 as
|
|
216
|
-
equivalent server addresses. If a client cannot connect to one instance,
|
|
217
|
-
it tries the other. Given that both instances contain the same messages for
|
|
218
|
-
<code class="docutils literal"><span class="pre">important_topic</span></code>, there is no functional difference in which instance
|
|
219
|
-
a client connects to from the point of view of a publisher or subscriber.
|
|
220
|
-
Each instance will contain the same messages for replicated topics. Messages
|
|
221
|
-
can be published to either instance of AMPS at any time, and those
|
|
222
|
-
messages will be replicated to the other instance.</p>
|
|
223
|
-
<p>Since these instances are intended to be equivalent message sources
|
|
224
|
-
(that is – a client may fail over from one instance to another instance),
|
|
225
|
-
these instances are configured to use <code class="docutils literal"><span class="pre">sync</span></code> acknowledgment to publishers.
|
|
226
|
-
What that means is that, when a message is published to one of these instances,
|
|
227
|
-
that instance does not acknowledge the message to the publisher as persisted
|
|
228
|
-
until both instances have written the message to disk (although the message can
|
|
229
|
-
be delivered to subscribers once it is persisted locally). This means that
|
|
230
|
-
a publisher using a publish store can fail over to either of these
|
|
231
|
-
servers without risk of message loss.</p>
|
|
232
|
-
<p>When a subscriber uses a bookmark store to manage bookmark replay,
|
|
233
|
-
that subscriber can fail over safely between instances along any
|
|
234
|
-
set of replication links that use <code class="docutils literal"><span class="pre">sync</span></code> replication without
|
|
235
|
-
risk of message loss. However, a subscriber that uses bookmark replay
|
|
236
|
-
should not fail over along a path that includes a replication link
|
|
237
|
-
that uses <code class="docutils literal"><span class="pre">async</span></code> acknowledgment, since an instance of AMPS
|
|
238
|
-
will not consider that link when determining if a message is persisted.</p>
|
|
239
|
-
</div>
|
|
240
|
-
<div class="section" id="geographic-replication">
|
|
241
|
-
<h3>Geographic Replication<a class="headerlink" href="#geographic-replication" title="Permalink to this headline">¶</a></h3>
|
|
242
|
-
<p>AMPS is well suited for replicating messages to different regions, so
|
|
243
|
-
clients in those regions are able to quickly receive and publish
|
|
244
|
-
messages to a local instance. In this case, each region replicates all
|
|
245
|
-
messages on the topic of interest to the other two regions. A variation
|
|
246
|
-
on this strategy is to use a region tag in the content, and use content
|
|
247
|
-
filtering so that each replicates messages intended for use in the other
|
|
248
|
-
regions or worldwide.</p>
|
|
249
|
-
<img alt="../_images/GeoRepl.png" src="../_images/GeoRepl.png" />
|
|
250
|
-
<p>For this scenario, an AMPS instance in each region replicates to an
|
|
251
|
-
instance in the two other regions. To reduce the memory and storage
|
|
252
|
-
required for publishers, replication between the regions uses
|
|
253
|
-
<code class="docutils literal"><span class="pre">async</span></code> acknowledgment, so that once an instance in one region
|
|
254
|
-
has persisted the message, the message is acknowledged back to the
|
|
255
|
-
publisher.</p>
|
|
256
|
-
<p>In this case, clients in each region connect <em>only</em> to the AMPS instance in
|
|
257
|
-
that region. Bandwidth within regions is conserved, because each message
|
|
258
|
-
is replicated once to the region, regardless of how many subscribers in
|
|
259
|
-
that region will receive the message. Further, publishers are able to
|
|
260
|
-
publish the message once to a local instance over a relatively fast
|
|
261
|
-
network connection rather than having to publish messages multiple times
|
|
262
|
-
to multiple regions.</p>
|
|
263
|
-
<p>To configure this scenario, the AMPS instances in each region are
|
|
264
|
-
configured to forward messages to known instances in the other two
|
|
265
|
-
regions.</p>
|
|
266
|
-
</div>
|
|
267
|
-
<div class="section" id="geographic-replication-with-high-availability">
|
|
268
|
-
<h3>Geographic Replication with High Availability<a class="headerlink" href="#geographic-replication-with-high-availability" title="Permalink to this headline">¶</a></h3>
|
|
269
|
-
<p>Combining the first two scenarios allows your application to distribute
|
|
270
|
-
messages as required and to have high availability in each region. This
|
|
271
|
-
involves having two or more servers in each region, as shown in the
|
|
272
|
-
figure below.</p>
|
|
273
|
-
<img alt="../_images/replication_scenario_with_ha.png" src="../_images/replication_scenario_with_ha.png" />
|
|
274
|
-
<p>Each region is configured as a group, indicating that the instances
|
|
275
|
-
within that region should be treated as equivalent, and are intended
|
|
276
|
-
to have the same topics and messages. Within each group, the instances
|
|
277
|
-
replicate to each other using <code class="docutils literal"><span class="pre">sync</span></code> acknowledgments, to ensure that
|
|
278
|
-
publishers can fail over between the instances. Because a client in a
|
|
279
|
-
given region does not connect to a server outside the region, we can
|
|
280
|
-
configure the replication links between the regions to use <code class="docutils literal"><span class="pre">async</span></code>
|
|
281
|
-
acknowledgment, which could potentially reduce the amount of time
|
|
282
|
-
that an application publishing to AMPS must store outgoing messages
|
|
283
|
-
before receiving an acknowledgment that a given message is persisted.
|
|
284
|
-
(Setting these links to use <code class="docutils literal"><span class="pre">async</span></code> acknowledgment does not affect
|
|
285
|
-
the speed of replication or change the behavior of replication in
|
|
286
|
-
any other way – this setting only specifies when an instance of AMPS
|
|
287
|
-
acknowledges the message as persisted.)</p>
|
|
288
|
-
<p>The figure below shows the expanded detail of the configuration for these servers.</p>
|
|
289
|
-
<img alt="../_images/chicago_group.png" src="../_images/chicago_group.png" />
|
|
290
|
-
<p>The instances in each region are configured to be part of a group for
|
|
291
|
-
that region, since these instances are intended to have the same topics
|
|
292
|
-
and messages. Within a region, the instances replicate to each other
|
|
293
|
-
using <code class="docutils literal"><span class="pre">sync</span></code> acknowledgment. Replication connections to instances
|
|
294
|
-
at the remote site use <code class="docutils literal"><span class="pre">async</span></code> acknowledgment.
|
|
295
|
-
The instances use the replication downgrade action to ensure that
|
|
296
|
-
publishers do not retain an unworkably large number of messages
|
|
297
|
-
in the event that one of the instances goes offline. As with all
|
|
298
|
-
connections where instances replicate to each other, this replication
|
|
299
|
-
is configured as one connection in each direction, although AMPS may
|
|
300
|
-
optimize this to a single network connection.</p>
|
|
301
|
-
<p>Each instance at a site ensures that it provides passthrough replication
|
|
302
|
-
to the other instance for both the local group and the remote groups. To
|
|
303
|
-
optimize bandwidth, the instances at a site <em>may</em> only provide passthrough
|
|
304
|
-
to the remote instance for the local group. This ensures that once a
|
|
305
|
-
message arrives at the local group (either from a remote group or over
|
|
306
|
-
replication from a remote group), it is fully distributed to the local
|
|
307
|
-
group. To optimize bandwidth, at the risk of slightly increasing the
|
|
308
|
-
chances of message loss if an entire region goes offline, each instance
|
|
309
|
-
at a site only passes through messages from the local group to remote
|
|
310
|
-
sites. This configuration balances
|
|
311
|
-
fault-tolerance and performance, and attempts to minimize the
|
|
312
|
-
bandwidth consumed between the sites.</p>
|
|
313
|
-
<p>Each instance at a site replicates to the remote sites. The instance
|
|
314
|
-
specifies one <code class="docutils literal"><span class="pre">Destination</span></code> for each remote site, with the servers at
|
|
315
|
-
the remote site listed as failover equivalents for the remote site. With
|
|
316
|
-
the passthrough configuration, this ensures that each message is
|
|
317
|
-
delivered to each remote site exactly once. Whichever server at the
|
|
318
|
-
remote site receives the message, distributes it to the other server
|
|
319
|
-
using passthrough replication. Notice that some features of AMPS,
|
|
320
|
-
such as distributed queues (though not LocalQueue or GroupLocalQueue),
|
|
321
|
-
require full passthrough to ensure correct delivery of messages.</p>
|
|
322
|
-
<p>With this configuration, publishers at each site publish to a
|
|
323
|
-
local AMPS instance, and subscribers subscribe to messages from their
|
|
324
|
-
local AMPS instances. Both publishers and subscribers use the high
|
|
325
|
-
availability features of the AMPS client libraries to ensure that if the
|
|
326
|
-
primary local AMPS instance fails, they automatically fail over to the
|
|
327
|
-
other instance. Replication is used to deliver both high availability
|
|
328
|
-
and disaster recovery. In the table below, each row represents a
|
|
329
|
-
replication destination. Servers in brackets are represented as sets of
|
|
330
|
-
<code class="docutils literal"><span class="pre">InetAddr</span></code> elements in the <code class="docutils literal"><span class="pre">Destination</span></code> definition.</p>
|
|
331
|
-
<table border="1" class="docutils" id="id2">
|
|
332
|
-
<caption><span class="caption-text"><em>Geographic Replication with HA Destinations</em></span><a class="headerlink" href="#id2" title="Permalink to this table">¶</a></caption>
|
|
333
|
-
<colgroup>
|
|
334
|
-
<col width="25%" />
|
|
335
|
-
<col width="25%" />
|
|
336
|
-
<col width="25%" />
|
|
337
|
-
<col width="25%" />
|
|
338
|
-
</colgroup>
|
|
339
|
-
<thead valign="bottom">
|
|
340
|
-
<tr class="row-odd"><th class="head">Server</th>
|
|
341
|
-
<th class="head">Group</th>
|
|
342
|
-
<th class="head">Destinations</th>
|
|
343
|
-
<th class="head">PassThrough</th>
|
|
344
|
-
</tr>
|
|
345
|
-
</thead>
|
|
346
|
-
<tbody valign="top">
|
|
347
|
-
<tr class="row-even"><td>Chicago 1</td>
|
|
348
|
-
<td>Chicago</td>
|
|
349
|
-
<td><ul class="first last simple">
|
|
350
|
-
<li>Chicago 2 / sync ack</li>
|
|
351
|
-
</ul>
|
|
352
|
-
</td>
|
|
353
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
354
|
-
</tr>
|
|
355
|
-
<tr class="row-odd"><td> </td>
|
|
356
|
-
<td> </td>
|
|
357
|
-
<td><ul class="first last simple">
|
|
358
|
-
<li>[NewYork 1, NewYork 2] / async ack</li>
|
|
359
|
-
</ul>
|
|
360
|
-
</td>
|
|
361
|
-
<td>Chicago</td>
|
|
362
|
-
</tr>
|
|
363
|
-
<tr class="row-even"><td> </td>
|
|
364
|
-
<td> </td>
|
|
365
|
-
<td><ul class="first last simple">
|
|
366
|
-
<li>[London 1, London 2] / async ack</li>
|
|
367
|
-
</ul>
|
|
368
|
-
</td>
|
|
369
|
-
<td>Chicago</td>
|
|
370
|
-
</tr>
|
|
371
|
-
<tr class="row-odd"><td>Chicago 2</td>
|
|
372
|
-
<td>Chicago</td>
|
|
373
|
-
<td><ul class="first last simple">
|
|
374
|
-
<li>Chicago 1 / sync ack</li>
|
|
375
|
-
</ul>
|
|
376
|
-
</td>
|
|
377
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
378
|
-
</tr>
|
|
379
|
-
<tr class="row-even"><td> </td>
|
|
380
|
-
<td> </td>
|
|
381
|
-
<td><ul class="first last simple">
|
|
382
|
-
<li>[NewYork 1, NewYork 2] / async ack</li>
|
|
383
|
-
</ul>
|
|
384
|
-
</td>
|
|
385
|
-
<td>Chicago</td>
|
|
386
|
-
</tr>
|
|
387
|
-
<tr class="row-odd"><td> </td>
|
|
388
|
-
<td> </td>
|
|
389
|
-
<td><ul class="first last simple">
|
|
390
|
-
<li>[London 1, London 2] / async ack</li>
|
|
391
|
-
</ul>
|
|
392
|
-
</td>
|
|
393
|
-
<td>Chicago</td>
|
|
394
|
-
</tr>
|
|
395
|
-
<tr class="row-even"><td>NewYork 1</td>
|
|
396
|
-
<td>NewYork</td>
|
|
397
|
-
<td><ul class="first last simple">
|
|
398
|
-
<li>NewYork 2 / sync ack</li>
|
|
399
|
-
</ul>
|
|
400
|
-
</td>
|
|
401
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
402
|
-
</tr>
|
|
403
|
-
<tr class="row-odd"><td> </td>
|
|
404
|
-
<td> </td>
|
|
405
|
-
<td><ul class="first last simple">
|
|
406
|
-
<li>[Chicago 1, Chicago 2] / async ack</li>
|
|
407
|
-
</ul>
|
|
408
|
-
</td>
|
|
409
|
-
<td>NewYork</td>
|
|
410
|
-
</tr>
|
|
411
|
-
<tr class="row-even"><td> </td>
|
|
412
|
-
<td> </td>
|
|
413
|
-
<td><ul class="first last simple">
|
|
414
|
-
<li>[London 1, London 2] / async ack</li>
|
|
415
|
-
</ul>
|
|
416
|
-
</td>
|
|
417
|
-
<td>NewYork</td>
|
|
418
|
-
</tr>
|
|
419
|
-
<tr class="row-odd"><td>NewYork 2</td>
|
|
420
|
-
<td>NewYork</td>
|
|
421
|
-
<td><ul class="first last simple">
|
|
422
|
-
<li>NewYork 1 / sync ack</li>
|
|
423
|
-
</ul>
|
|
424
|
-
</td>
|
|
425
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
426
|
-
</tr>
|
|
427
|
-
<tr class="row-even"><td> </td>
|
|
428
|
-
<td> </td>
|
|
429
|
-
<td><ul class="first last simple">
|
|
430
|
-
<li>[Chicago 1, Chicago 2] / async ack</li>
|
|
431
|
-
</ul>
|
|
432
|
-
</td>
|
|
433
|
-
<td>NewYork</td>
|
|
434
|
-
</tr>
|
|
435
|
-
<tr class="row-odd"><td> </td>
|
|
436
|
-
<td> </td>
|
|
437
|
-
<td><ul class="first last simple">
|
|
438
|
-
<li>[London 1, London 2] / async ack</li>
|
|
439
|
-
</ul>
|
|
440
|
-
</td>
|
|
441
|
-
<td>NewYork</td>
|
|
442
|
-
</tr>
|
|
443
|
-
<tr class="row-even"><td>London 1</td>
|
|
444
|
-
<td>London</td>
|
|
445
|
-
<td><ul class="first last simple">
|
|
446
|
-
<li>London 2 / sync ack</li>
|
|
447
|
-
</ul>
|
|
448
|
-
</td>
|
|
449
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
450
|
-
</tr>
|
|
451
|
-
<tr class="row-odd"><td> </td>
|
|
452
|
-
<td> </td>
|
|
453
|
-
<td><ul class="first last simple">
|
|
454
|
-
<li>[Chicago 1, Chicago 2] / async ack</li>
|
|
455
|
-
</ul>
|
|
456
|
-
</td>
|
|
457
|
-
<td>London</td>
|
|
458
|
-
</tr>
|
|
459
|
-
<tr class="row-even"><td> </td>
|
|
460
|
-
<td> </td>
|
|
461
|
-
<td><ul class="first last simple">
|
|
462
|
-
<li>[NewYork 1, NewYork 2] / async ack</li>
|
|
463
|
-
</ul>
|
|
464
|
-
</td>
|
|
465
|
-
<td>London</td>
|
|
466
|
-
</tr>
|
|
467
|
-
<tr class="row-odd"><td>London 2</td>
|
|
468
|
-
<td>London</td>
|
|
469
|
-
<td><ul class="first last simple">
|
|
470
|
-
<li>London 1 / sync ack</li>
|
|
471
|
-
</ul>
|
|
472
|
-
</td>
|
|
473
|
-
<td><code class="docutils literal"><span class="pre">.*</span></code></td>
|
|
474
|
-
</tr>
|
|
475
|
-
<tr class="row-even"><td> </td>
|
|
476
|
-
<td> </td>
|
|
477
|
-
<td><ul class="first last simple">
|
|
478
|
-
<li>[Chicago 1, Chicago 2] / async ack</li>
|
|
479
|
-
</ul>
|
|
480
|
-
</td>
|
|
481
|
-
<td>London</td>
|
|
482
|
-
</tr>
|
|
483
|
-
<tr class="row-odd"><td> </td>
|
|
484
|
-
<td> </td>
|
|
485
|
-
<td><ul class="first last simple">
|
|
486
|
-
<li>[NewYork 1, NewYork 2] / async ack</li>
|
|
487
|
-
</ul>
|
|
488
|
-
</td>
|
|
489
|
-
<td>London</td>
|
|
490
|
-
</tr>
|
|
491
|
-
</tbody>
|
|
492
|
-
</table>
|
|
493
|
-
<div class="admonition warning">
|
|
494
|
-
<p class="first admonition-title">Warning</p>
|
|
495
|
-
<p class="last">In a configuration like the one above, an application must only be allowed
|
|
496
|
-
to fail over to other instances in its own region. Since replication
|
|
497
|
-
to other regions use <code class="docutils literal"><span class="pre">async</span></code> acknowledgment, a publisher may
|
|
498
|
-
have received an acknowledgment that a given message is persisted
|
|
499
|
-
before it is stored in instances in the other regions, or a subscriber
|
|
500
|
-
may have received a persisted acknowledgment for a message that has
|
|
501
|
-
not yet been persisted in other regions.</p>
|
|
502
|
-
</div>
|
|
503
|
-
</div>
|
|
504
|
-
<div class="section" id="complex-replication-hub-and-spoke-topology">
|
|
505
|
-
<h3>Complex Replication: Hub and Spoke Topology<a class="headerlink" href="#complex-replication-hub-and-spoke-topology" title="Permalink to this headline">¶</a></h3>
|
|
506
|
-
<p>For more complex replication topologies, or in a situation where an
|
|
507
|
-
installation may want to scale out to accommodate an ever-increasing
|
|
508
|
-
number of subscribers, consider using a “hub and spoke” topology.</p>
|
|
509
|
-
<p>This topology is particularly useful in cases where a large
|
|
510
|
-
number of applications need to operate over the same data, but
|
|
511
|
-
the applications themselves are largely independent of each other,
|
|
512
|
-
where data is consumed in a different region or different
|
|
513
|
-
organization than where the data originates, or in cases where
|
|
514
|
-
given applications require intensive CPU or memory resources
|
|
515
|
-
to work with the data, whereas other applications using the
|
|
516
|
-
same data do not require these resources. For example,
|
|
517
|
-
if two applications have different CPU-intensive views
|
|
518
|
-
over the same data, isolating those applications into
|
|
519
|
-
separate application instances can help to reduce the
|
|
520
|
-
resources required for any one instance.</p>
|
|
521
|
-
<p>In this topology, replication is handled by AMPS instances dedicated
|
|
522
|
-
to managing replication, as shown in the diagram below. In this
|
|
523
|
-
strategy, each instance has one of three distinct roles:</p>
|
|
524
|
-
<ul>
|
|
525
|
-
<li><p class="first">An <em>ingestion</em> instance accepts messages from a publisher into
|
|
526
|
-
the AMPS replication fabric. All ingestion instances replicate
|
|
527
|
-
to each other (using <code class="docutils literal"><span class="pre">sync</span></code> acknowledgment) and replicate
|
|
528
|
-
to the hub (also using <code class="docutils literal"><span class="pre">sync</span></code> acknowledgment).</p>
|
|
529
|
-
<p>The ingestion instances do not define a state of the world.</p>
|
|
530
|
-
</li>
|
|
531
|
-
<li><p class="first">One or more <em>hub</em> instances that accept messages from the
|
|
532
|
-
ingestion instances and replicate those messages to the
|
|
533
|
-
application instances.</p>
|
|
534
|
-
<p>The hub instances do not replicate back to the ingestion
|
|
535
|
-
instances, and they do not define a state of the world.</p>
|
|
536
|
-
</li>
|
|
537
|
-
<li><p class="first">The <em>application</em> instances provide messages to
|
|
538
|
-
applications that use the messages.</p>
|
|
539
|
-
<p>These instances do not replicate back to the
|
|
540
|
-
hub instances. If an application will use
|
|
541
|
-
multiple instances, these instances replicate
|
|
542
|
-
to each other using <code class="docutils literal"><span class="pre">sync</span></code> acknowledgment.</p>
|
|
543
|
-
<p>The application instances define the state of the
|
|
544
|
-
world as needed – any Topics, Views,
|
|
545
|
-
ConflatedTopics, LocalQueues, or GroupLocalQueues
|
|
546
|
-
that the application will use.</p>
|
|
547
|
-
<p>Different applications may use different
|
|
548
|
-
application instances: each application instance
|
|
549
|
-
only needs to define the state of the world
|
|
550
|
-
that the applications that use that instance
|
|
551
|
-
need.</p>
|
|
552
|
-
</li>
|
|
553
|
-
</ul>
|
|
554
|
-
<p>This architecture provides decoupling between publishers and
|
|
555
|
-
applications, and decoupling between different applications that
|
|
556
|
-
use the same message stream.</p>
|
|
557
|
-
<p>This topology also reduces the risk and expense of adding
|
|
558
|
-
more instances for application use. Only the “hub” instances
|
|
559
|
-
need to be updated to add or remove application instances.
|
|
560
|
-
Since the “hub” maintains only messages for replication (no
|
|
561
|
-
state of the world is defined on the “hub” instances), adding
|
|
562
|
-
or removing a destination at the hub instance is very efficient.
|
|
563
|
-
Recovery times for the hub are very quick since the only
|
|
564
|
-
state that needs to be recovered is the state of the
|
|
565
|
-
transaction log itself.</p>
|
|
566
|
-
<p>In the simplest configuration, the “hub” instance or instances
|
|
567
|
-
simply pass through all messages and all topics to all
|
|
568
|
-
downstream instances, leaving the application
|
|
569
|
-
instances to determine what topics should be replicated.
|
|
570
|
-
In more sophisticated configurations, the “hub” instances can
|
|
571
|
-
direct topics for specific applications to a specific set of
|
|
572
|
-
instances.</p>
|
|
573
|
-
<p>The hub and spoke topology has the following advantages:</p>
|
|
574
|
-
<ul class="simple">
|
|
575
|
-
<li>Easy to add and remove instances to a replication fabric.</li>
|
|
576
|
-
<li>Allows the ability to create autonomous groups of instances
|
|
577
|
-
servicing a given application.</li>
|
|
578
|
-
<li>High resilience to failures within the application
|
|
579
|
-
instances.</li>
|
|
580
|
-
<li>In many situations, reduces the bandwidth required
|
|
581
|
-
to keep a large number of instances up to date
|
|
582
|
-
(as compared with direct replication between the
|
|
583
|
-
instances).</li>
|
|
584
|
-
</ul>
|
|
585
|
-
<p>The hub and spoke topology has the following limitations:</p>
|
|
586
|
-
<ul class="simple">
|
|
587
|
-
<li>In some topologies, may have higher latency for active
|
|
588
|
-
publishes.</li>
|
|
589
|
-
<li>Does <em>not</em> support fully distributed queues (use
|
|
590
|
-
local queues or group local queues on a subset of
|
|
591
|
-
instances instead).</li>
|
|
592
|
-
<li>Requires an instance of AMPS (or two, for HA) that
|
|
593
|
-
does not have client activity.</li>
|
|
594
|
-
<li>Requires exclusion of replication validation to
|
|
595
|
-
the hub instance.</li>
|
|
596
|
-
</ul>
|
|
597
|
-
<p>The diagram below shows an example of the hub and spoke topology:</p>
|
|
598
|
-
<img alt="../_images/replication_hub.png" src="../_images/replication_hub.png" />
|
|
599
|
-
</div>
|
|
600
|
-
</div>
|
|
601
|
-
<div class="section" id="high-availability">
|
|
602
|
-
<h2>High Availability<a class="headerlink" href="#high-availability" title="Permalink to this headline">¶</a></h2>
|
|
603
|
-
<p>AMPS High Availability, which includes multi-site replication and the
|
|
604
|
-
transaction log, is designed to provide long uptimes and speedy recovery
|
|
605
|
-
from disasters. Replication allows deployments to improve upon the
|
|
606
|
-
already rock-solid stability of AMPS. Additionally, AMPS journaling
|
|
607
|
-
provides the persisted state necessary to make sure that client recovery
|
|
608
|
-
is fast, painless, and error free.</p>
|
|
609
|
-
<div class="section" id="guaranteed-publishing">
|
|
610
|
-
<span id="ug-guaranteed-publishing"></span><h3>Guaranteed Publishing<a class="headerlink" href="#guaranteed-publishing" title="Permalink to this headline">¶</a></h3>
|
|
611
|
-
<p id="index-1">An interruption in service while publishing messages could be disastrous
|
|
612
|
-
if the publisher doesn’t know which message was last persisted to AMPS.
|
|
613
|
-
To prevent this from happening, AMPS has support for <em>guaranteed
|
|
614
|
-
publishing</em>.</p>
|
|
615
|
-
<p>With guaranteed publishing, the AMPS client library is responsible for
|
|
616
|
-
retaining and retransmitting the message until the server acknowledges that
|
|
617
|
-
the message has been successfully persisted to the server and has been
|
|
618
|
-
acknowledged as persisted by any replication destinations that are configured
|
|
619
|
-
for synchronous replication. This means that each message always has at least
|
|
620
|
-
one part of the system (either the client library or the AMPS server)
|
|
621
|
-
responsible for persisting the message, and if failover occurs, that part
|
|
622
|
-
of the system can retain and recover the message as necessary.</p>
|
|
623
|
-
<p>An important part of guaranteed publishing is to be able to uniquely identify
|
|
624
|
-
messages. In AMPS, the unique identifier for a message is a <em>bookmark</em>, which
|
|
625
|
-
is formed from a combination of a number derived from the client name and
|
|
626
|
-
a <em>sequence number</em> managed by the client. A sequence number is simply an
|
|
627
|
-
ever-increasing number assigned by a publisher to any operation that
|
|
628
|
-
changes the state of persistent storage in AMPS (that is, <code class="docutils literal"><span class="pre">publish</span></code> or
|
|
629
|
-
<code class="docutils literal"><span class="pre">sow_delete</span></code> commands).</p>
|
|
630
|
-
<p>The AMPS clients automatically manage sequence numbers when applications
|
|
631
|
-
use the named methods or the <code class="docutils literal"><span class="pre">Command</span></code> interface. The libraries set the
|
|
632
|
-
sequence number on each published message, ensure that the sequence number
|
|
633
|
-
increases as appropriate, and initialize the sequence number at <code class="docutils literal"><span class="pre">logon</span></code>
|
|
634
|
-
using information retrieved from the server acknowledgment of the <code class="docutils literal"><span class="pre">logon</span></code>
|
|
635
|
-
command. The sequence number is also used for acknowledgments. The
|
|
636
|
-
<code class="docutils literal"><span class="pre">persisted</span></code> acknowledgment returned in response to a
|
|
637
|
-
<code class="docutils literal"><span class="pre">publish</span></code> command contains the sequence number of the last message persisted
|
|
638
|
-
rather than the <code class="docutils literal"><span class="pre">CommandId</span></code> of the publish command message (for more details see <a class="reference internal" href="acks.html#ug-ack-conflation"><span class="std std-ref">Ack Conflation</span></a>).</p>
|
|
639
|
-
<p>The <code class="docutils literal"><span class="pre">logon</span></code> command supports a <code class="docutils literal"><span class="pre">processed</span></code> acknowledgment message,
|
|
640
|
-
which will return the <code class="docutils literal"><span class="pre">Sequence</span></code> of the last record that AMPS has
|
|
641
|
-
persisted. When the <code class="docutils literal"><span class="pre">processed</span></code> acknowledgment message is returned to
|
|
642
|
-
the publisher, the <code class="docutils literal"><span class="pre">Sequence</span></code> corresponds to the last message
|
|
643
|
-
persisted by AMPS. The publisher can then use that sequence to determine
|
|
644
|
-
if it needs to 1) re-publish messages that were not persisted by AMPS,
|
|
645
|
-
or 2) continue publishing messages from where it left off. Acknowledging
|
|
646
|
-
persisted messages across logon sessions allows AMPS to guarantee
|
|
647
|
-
publishing. The HAClient classes in the AMPS clients manage sequence
|
|
648
|
-
numbers, including setting a meaningful initial sequence number based on
|
|
649
|
-
the response from the <code class="docutils literal"><span class="pre">logon</span></code> command, automatically.</p>
|
|
650
|
-
<div class="admonition tip">
|
|
651
|
-
<p class="first admonition-title">Tip</p>
|
|
652
|
-
<p class="last">It is recommended as a best practice that all publishers request
|
|
653
|
-
a <code class="docutils literal"><span class="pre">processed</span></code> acknowledgment message with every <code class="docutils literal"><span class="pre">logon</span></code>
|
|
654
|
-
command. This ensures that the <code class="docutils literal"><span class="pre">Sequence</span></code> returned in the
|
|
655
|
-
acknowledgment message matches the publisher’s last published
|
|
656
|
-
message. The 60East AMPS clients do this automatically when
|
|
657
|
-
using the named logon methods. If you are building the command
|
|
658
|
-
yourself or using a custom client, you may need to add this
|
|
659
|
-
request to the command yourself.</p>
|
|
660
|
-
</div>
|
|
661
|
-
<p>In addition to the acknowledgment messages, AMPS also keeps track of the
|
|
662
|
-
published messages from a client based on the client’s name. The client
|
|
663
|
-
name is set during the <code class="docutils literal"><span class="pre">logon</span></code> command, so to set a consistent client
|
|
664
|
-
name, it is necessary for an application to log on to AMPS. A logon is
|
|
665
|
-
required by default in AMPS versions 5.0 and later, and optional by
|
|
666
|
-
default in AMPS versions previous to 5.0.</p>
|
|
667
|
-
<div class="admonition important">
|
|
668
|
-
<p class="first admonition-title">Important</p>
|
|
669
|
-
<p>All publishers must set a unique client name field when logging
|
|
670
|
-
on to AMPS. This allows AMPS to correlate the sequence numbers
|
|
671
|
-
of incoming publish messages to a specific client, which is
|
|
672
|
-
required for reliable publishing, replication, and duplicate
|
|
673
|
-
detection in the server. In the event that multiple publishers
|
|
674
|
-
have the same client name, AMPS can no longer reliably correlate
|
|
675
|
-
messages using the publish sequence number and client name.</p>
|
|
676
|
-
<p class="last">When a transaction log is enabled for AMPS, it is an error for
|
|
677
|
-
two clients to connect to an instance with the same name.</p>
|
|
678
|
-
</div>
|
|
679
|
-
</div>
|
|
680
|
-
<div class="section" id="durable-publication-and-subscriptions">
|
|
681
|
-
<h3>Durable Publication and Subscriptions<a class="headerlink" href="#durable-publication-and-subscriptions" title="Permalink to this headline">¶</a></h3>
|
|
682
|
-
<p id="index-2">The AMPS client libraries include features to enable durable
|
|
683
|
-
subscription and durable publication. In this chapter we’ve covered how
|
|
684
|
-
publishing messages to a transaction log persists them. We’ve also
|
|
685
|
-
covered how the transaction log can be queried (subscribed) with a
|
|
686
|
-
bookmark for replay. Now, putting these two features together yields
|
|
687
|
-
<em>durable subscriptions</em>.</p>
|
|
688
|
-
<p>A <em>durable subscriber</em> is one that receives all messages published to a
|
|
689
|
-
topic (including a regular expression topic), even when the subscriber
|
|
690
|
-
is offline. In AMPS this is accomplished through the use of the bookmark
|
|
691
|
-
subscription on a client.</p>
|
|
692
|
-
<p>Implementation of a <em>durable subscription</em> in AMPS is accomplished on
|
|
693
|
-
the client by persisting the last observed bookmark field received from
|
|
694
|
-
a subscription. This enables a client to recover and resubscribe from
|
|
695
|
-
the exact point in the transaction log where it left off.</p>
|
|
696
|
-
<p>A durable publisher maintains a persistent record of messages published
|
|
697
|
-
until AMPS acknowledges that the message has been persisted.
|
|
698
|
-
Implementation of a durable publisher in AMPS is accomplished on the
|
|
699
|
-
client by persisting outgoing messages until AMPS sends a <code class="docutils literal"><span class="pre">persisted</span></code>
|
|
700
|
-
acknowledgment that says that this message, or a later message, has
|
|
701
|
-
been persisted. At that point, the publishers can remove the message
|
|
702
|
-
from the persistent store. Should the publisher restart, or should AMPS
|
|
703
|
-
fail over, the publisher can re-send messages from the persistent store.
|
|
704
|
-
AMPS uses the sequence number in the message to discard any duplicates.
|
|
705
|
-
This helps ensure that no messages are lost, and provides
|
|
706
|
-
fault-tolerance for publishers.</p>
|
|
707
|
-
<p>The AMPS C++, Java, C# and Python clients each provide different
|
|
708
|
-
implementations of persistent subscriptions and persistent publication.
|
|
709
|
-
Please refer to the <em>High Availability</em> chapter of the <em>Client
|
|
710
|
-
Development Guide</em> for the language of your choice to see how this
|
|
711
|
-
feature is implemented.</p>
|
|
712
|
-
</div>
|
|
713
|
-
<div class="section" id="heartbeat-in-high-availability">
|
|
714
|
-
<h3>Heartbeat in High Availability<a class="headerlink" href="#heartbeat-in-high-availability" title="Permalink to this headline">¶</a></h3>
|
|
715
|
-
<p id="index-3">Use of the heartbeat feature allows your application to quickly recover
|
|
716
|
-
from detected connection failures. By default, connection failure
|
|
717
|
-
detection occurs when AMPS receives an operating system error on the
|
|
718
|
-
connection. This default method may result in unpredictable delays in
|
|
719
|
-
detecting a connection failure on the client, particularly when failures
|
|
720
|
-
in network routing hardware occur, and the client primarily acts as a
|
|
721
|
-
subscriber.</p>
|
|
722
|
-
<p>The heartbeat feature of the AMPS server and the AMPS clients allows
|
|
723
|
-
connection failure to be detected quickly. Heartbeats ensure that
|
|
724
|
-
regular messages are sent between the AMPS client and server on a
|
|
725
|
-
predictable schedule. The AMPS server assumes disconnection has occurred
|
|
726
|
-
if these regular heartbeats cease, ensuring disconnection is detected in
|
|
727
|
-
a timely manner.</p>
|
|
728
|
-
<p>Heartbeats are initialized by the AMPS client by sending a <code class="docutils literal"><span class="pre">heartbeat</span></code>
|
|
729
|
-
message to the AMPS server. To enable heartbeats in your application,
|
|
730
|
-
refer to the <em>High Availability</em> chapter in the Developer Guide for your
|
|
731
|
-
specific client language.</p>
|
|
732
|
-
</div>
|
|
733
|
-
<div class="section" id="ug-slow-client-management">
|
|
734
|
-
<span id="index-4"></span><span id="id1"></span><h3>Slow Client Management and Capacity Limits<a class="headerlink" href="#ug-slow-client-management" title="Permalink to this headline">¶</a></h3>
|
|
735
|
-
<p>AMPS provides the ability to manage memory consumption for clients to
|
|
736
|
-
prevent slow clients, or clients that require large amounts of state, to
|
|
737
|
-
disrupt service to the instance.</p>
|
|
738
|
-
<p>Sometimes, AMPS can publish messages faster than an individual client
|
|
739
|
-
can consume messages, particularly in applications where the pattern of
|
|
740
|
-
messages includes “bursts” of messages. Clients that are unable to
|
|
741
|
-
consume messages faster or equal to the rate messages are being sent to
|
|
742
|
-
them are “slow clients”. By default, AMPS queues messages for a slow
|
|
743
|
-
client in memory to grant the slow client the opportunity to catch up.
|
|
744
|
-
However, scenarios may arise where a client can be over-subscribed to
|
|
745
|
-
the point that the client cannot consume messages as fast as messages
|
|
746
|
-
are being sent to it. In particular, this can happen with the results of
|
|
747
|
-
a large SOW query, where AMPS generates all of the messages for the
|
|
748
|
-
query much faster than the network can transmit the messages.</p>
|
|
749
|
-
<p>Some features, such as conflated subscriptions, aggregated
|
|
750
|
-
subscriptions and pagination require AMPS to buffer messages in memory
|
|
751
|
-
for extended periods of time. Without a way to set limits on memory
|
|
752
|
-
consumption, subscribers using these features could cause AMPS to exceed
|
|
753
|
-
available memory and reduce performance or exit.</p>
|
|
754
|
-
<p>Memory capacity limits, typically called <em>slow client management</em>, are
|
|
755
|
-
one of the ways that AMPS prevents slow clients, or clients that consume
|
|
756
|
-
large amounts of memory, from disrupting service to other clients connected
|
|
757
|
-
to the instance. 60East recommends enabling slow client management for
|
|
758
|
-
instances that serve high message volume or are mission critical.</p>
|
|
759
|
-
<p>There are two methods that AMPS uses for managing slow clients to
|
|
760
|
-
minimize the effect of slow clients on the AMPS instance:</p>
|
|
761
|
-
<ol class="arabic simple">
|
|
762
|
-
<li><em>Client Offlining</em> - When client offlining occurs, AMPS buffers the
|
|
763
|
-
messages for that client to disk. This relieves pressure on memory,
|
|
764
|
-
while allowing the client to continue processing messages.</li>
|
|
765
|
-
<li><em>Disconnection</em> - When disconnection occurs, AMPS closes the client
|
|
766
|
-
connection, which immediately ends any subscriptions, in-progress
|
|
767
|
-
<code class="docutils literal"><span class="pre">sow</span></code> queries, or other commands from that client. AMPS also
|
|
768
|
-
removes any offlined messages for that client.</li>
|
|
769
|
-
</ol>
|
|
770
|
-
<p>AMPS provides resource pool protection, to protect the capacity of the
|
|
771
|
-
instance as a whole, and client-level protection, to identify
|
|
772
|
-
unresponsive clients.</p>
|
|
773
|
-
<div class="section" id="resource-pool-policies">
|
|
774
|
-
<h4>Resource Pool Policies<a class="headerlink" href="#resource-pool-policies" title="Permalink to this headline">¶</a></h4>
|
|
775
|
-
<p>AMPS uses resource pools for memory and disk consumption for clients.
|
|
776
|
-
When the memory limit is exceeded, AMPS chooses a client to be offlined.
|
|
777
|
-
When the disk limit is exceeded, AMPS chooses a client to be
|
|
778
|
-
disconnected.</p>
|
|
779
|
-
<p>When choosing which client will be offlined or disconnected, AMPS
|
|
780
|
-
identifies the client that uses the largest amount of resources (memory
|
|
781
|
-
and/or disk). That client will be offlined or disconnected. The memory
|
|
782
|
-
consumption calculated for a client includes both buffered messages and
|
|
783
|
-
memory used to support features such as conflated subscriptions and aggregated
|
|
784
|
-
subscriptions.</p>
|
|
785
|
-
<p>AMPS allows you to use a global resource pool for the entire instance, a
|
|
786
|
-
resource pool for each transport, or any combination of the two
|
|
787
|
-
approaches. By default, AMPS configures a global resource pool that is
|
|
788
|
-
shared across all transports. When an individual transport specifies a
|
|
789
|
-
different setting for a resource pool, that transport receives an
|
|
790
|
-
individual resource pool. For example, you might set high resource
|
|
791
|
-
limits for a particular transport that serves a mission-critical
|
|
792
|
-
application, allowing connections from that application to consume more
|
|
793
|
-
resources than connections for less important applications.</p>
|
|
794
|
-
<p>The following table shows resource pool options for slow client
|
|
795
|
-
management:</p>
|
|
796
|
-
<table border="1" class="docutils" id="id3">
|
|
797
|
-
<caption><span class="caption-text"><em>Slow Client: Resource Pool Policies</em></span><a class="headerlink" href="#id3" title="Permalink to this table">¶</a></caption>
|
|
798
|
-
<colgroup>
|
|
799
|
-
<col width="50%" />
|
|
800
|
-
<col width="50%" />
|
|
801
|
-
</colgroup>
|
|
802
|
-
<thead valign="bottom">
|
|
803
|
-
<tr class="row-odd"><th class="head">Element</th>
|
|
804
|
-
<th class="head">Description</th>
|
|
805
|
-
</tr>
|
|
806
|
-
</thead>
|
|
807
|
-
<tbody valign="top">
|
|
808
|
-
<tr class="row-even"><td><code class="docutils literal"><span class="pre">MessageMemoryLimit</span></code></td>
|
|
809
|
-
<td><p class="first">The total amount of memory to
|
|
810
|
-
allocate to messages before
|
|
811
|
-
offlining clients.</p>
|
|
812
|
-
<p class="last">Default: 10% of total host memory or
|
|
813
|
-
10% of the amount of host memory
|
|
814
|
-
AMPS is allowed to consume (as
|
|
815
|
-
reported by <code class="docutils literal"><span class="pre">ulimit</span> <span class="pre">-m</span></code> ),
|
|
816
|
-
whichever is <em>lowest</em>.</p>
|
|
817
|
-
</td>
|
|
818
|
-
</tr>
|
|
819
|
-
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">MessageDiskLimit</span></code></td>
|
|
820
|
-
<td><p class="first">The total amount of disk space to
|
|
821
|
-
allocate to messages before
|
|
822
|
-
disconnecting clients.</p>
|
|
823
|
-
<p class="last">Default: 1GB or the amount specified
|
|
824
|
-
in the <code class="docutils literal"><span class="pre">MessageMemoryLimit</span></code>,
|
|
825
|
-
whichever is <em>highest</em>.</p>
|
|
826
|
-
</td>
|
|
827
|
-
</tr>
|
|
828
|
-
<tr class="row-even"><td><code class="docutils literal"><span class="pre">MessageDiskPath</span></code></td>
|
|
829
|
-
<td><p class="first">The path to use to write offline
|
|
830
|
-
files.</p>
|
|
831
|
-
<p class="last">Default: <code class="docutils literal"><span class="pre">/var/tmp</span></code></p>
|
|
832
|
-
</td>
|
|
833
|
-
</tr>
|
|
834
|
-
</tbody>
|
|
835
|
-
</table>
|
|
836
|
-
</div>
|
|
837
|
-
<div class="section" id="individual-client-policies">
|
|
838
|
-
<h4>Individual Client Policies<a class="headerlink" href="#individual-client-policies" title="Permalink to this headline">¶</a></h4>
|
|
839
|
-
<p>AMPS also allows you to set policies that apply to individual clients.
|
|
840
|
-
These policies are applied to clients independently of the instance
|
|
841
|
-
level policies. For example, a client that exceeds the capacity limit
|
|
842
|
-
for an individual client will be disconnected, even if the instance
|
|
843
|
-
overall has enough capacity to hold messages for the client.</p>
|
|
844
|
-
<p>As with the Resource Pool Policies, Transports can either use
|
|
845
|
-
instance-level settings or create settings specific to that transport.</p>
|
|
846
|
-
<p>The following table shows the client level options for slow client
|
|
847
|
-
management:</p>
|
|
848
|
-
<table border="1" class="docutils" id="id4">
|
|
849
|
-
<caption><span class="caption-text"><em>Slow Client: Individual Client Policies</em></span><a class="headerlink" href="#id4" title="Permalink to this table">¶</a></caption>
|
|
850
|
-
<colgroup>
|
|
851
|
-
<col width="50%" />
|
|
852
|
-
<col width="50%" />
|
|
853
|
-
</colgroup>
|
|
854
|
-
<thead valign="bottom">
|
|
855
|
-
<tr class="row-odd"><th class="head">Element</th>
|
|
856
|
-
<th class="head">Description</th>
|
|
857
|
-
</tr>
|
|
858
|
-
</thead>
|
|
859
|
-
<tbody valign="top">
|
|
860
|
-
<tr class="row-even"><td><code class="docutils literal"><span class="pre">ClientMessageAgeLimit</span></code></td>
|
|
861
|
-
<td><p class="first">The maximum amount of time for the
|
|
862
|
-
client to lag behind. If a message
|
|
863
|
-
for the client has been held longer
|
|
864
|
-
than this time, the client will be
|
|
865
|
-
disconnected. This parameter is an
|
|
866
|
-
AMPS time interval (for example,
|
|
867
|
-
<code class="docutils literal"><span class="pre">30s</span></code> for 30 seconds, or <code class="docutils literal"><span class="pre">1h</span></code>
|
|
868
|
-
for 1 hour).</p>
|
|
869
|
-
<p>Notice that this policy applies to
|
|
870
|
-
<em>all</em> messages and <em>all</em> connections.</p>
|
|
871
|
-
<p>If you have applications that will
|
|
872
|
-
consume large result sets (SOW
|
|
873
|
-
queries) over low-bandwidth
|
|
874
|
-
network connections, consider
|
|
875
|
-
creating a separate transport with
|
|
876
|
-
the age limit set higher to
|
|
877
|
-
allow those operations to complete.</p>
|
|
878
|
-
<p class="last">Default: No age limit</p>
|
|
879
|
-
</td>
|
|
880
|
-
</tr>
|
|
881
|
-
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">ClientMaxCapacity</span></code></td>
|
|
882
|
-
<td><p class="first">The amount of available capacity a
|
|
883
|
-
single client can consume. Before a
|
|
884
|
-
client is offlined, this limit
|
|
885
|
-
applies to the
|
|
886
|
-
<code class="docutils literal"><span class="pre">MessageMemoryLimit</span></code>. After a
|
|
887
|
-
client is offlined, this limit
|
|
888
|
-
applies to the <code class="docutils literal"><span class="pre">MessageDiskLimit</span></code>.
|
|
889
|
-
This parameter is a percentage of
|
|
890
|
-
the total.</p>
|
|
891
|
-
<p class="last">Default: <code class="docutils literal"><span class="pre">50%</span></code> (previous versions
|
|
892
|
-
defaulted to <code class="docutils literal"><span class="pre">100%</span></code>)</p>
|
|
893
|
-
</td>
|
|
894
|
-
</tr>
|
|
895
|
-
</tbody>
|
|
896
|
-
</table>
|
|
897
|
-
<p>Client offlining can require careful configuration, particularly in
|
|
898
|
-
situations where applications retrieve large result sets from SOW
|
|
899
|
-
queries when the application starts up. More information on tuning slow
|
|
900
|
-
client offlining for AMPS is available in
|
|
901
|
-
<a class="reference internal" href="operation.html#ug-ops-client-offlining"><span class="std std-ref">Slow Client Offlining for Large Result Sets</span></a>.</p>
|
|
902
|
-
</div>
|
|
903
|
-
</div>
|
|
904
|
-
</div>
|
|
905
|
-
<div class="section" id="configuring-slow-client-offlining">
|
|
906
|
-
<h2>Configuring Slow Client Offlining<a class="headerlink" href="#configuring-slow-client-offlining" title="Permalink to this headline">¶</a></h2>
|
|
907
|
-
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt"><AMPSConfig></span>
|
|
908
|
-
...
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
<span class="nt"><MessageMemoryLimit></span>10GB<span class="nt"></MessageMemoryLimit></span>
|
|
912
|
-
<span class="nt"><MessageDiskPath></span>/mnt/fastio/AMPS/offline<span class="nt"></MessageDiskPath></span>
|
|
913
|
-
<span class="nt"><ClientMessageAgeLimit></span>30s<span class="nt"></ClientMessageAgeLimit></span>
|
|
914
|
-
|
|
915
|
-
...
|
|
916
|
-
|
|
917
|
-
<span class="nt"><Transports></span>
|
|
918
|
-
<span class="c"><!-- This transport shares the 10GB MessageMemoryLimit</span>
|
|
919
|
-
<span class="c"> defined for the instance. --></span>
|
|
920
|
-
<span class="nt"><Transport></span>
|
|
921
|
-
<span class="nt"><Name></span>regular-tcp<span class="nt"></Name></span>
|
|
922
|
-
<span class="nt"><Type></span>tcp<span class="nt"></Type></span>
|
|
923
|
-
<span class="nt"><InetAddr></span>9007<span class="nt"></InetAddr></span>
|
|
924
|
-
<span class="nt"></Transport></span>
|
|
925
|
-
|
|
926
|
-
<span class="c"><!-- This transport shares the 10GB MessageMemoryLimit</span>
|
|
927
|
-
<span class="c"> defined for the instance. --></span>
|
|
928
|
-
<span class="nt"><Transport></span>
|
|
929
|
-
<span class="nt"><Name></span>low-priority-tcp<span class="nt"></Name></span>
|
|
930
|
-
<span class="nt"><Type></span>tcp<span class="nt"></Type></span>
|
|
931
|
-
<span class="nt"><InetAddr></span>9010<span class="nt"></InetAddr></span>
|
|
932
|
-
<span class="nt"><MessageType></span>bson<span class="nt"></MessageType></span>
|
|
933
|
-
|
|
934
|
-
<span class="c"><!-- However, this transport does not allow clients to fall as far behind as the</span>
|
|
935
|
-
<span class="c"> instance-level setting, and does not allow a single client to use more than</span>
|
|
936
|
-
<span class="c"> 10% of the 10GB limit. --></span>
|
|
937
|
-
<span class="nt"><ClientMessageAgeLimit></span>15s<span class="nt"></ClientMessageAgeLimit></span>
|
|
938
|
-
<span class="nt"><ClientMaxCapacity></span>10%<span class="nt"></ClientMaxCapacity></span>
|
|
939
|
-
<span class="nt"></Transport></span>
|
|
940
|
-
<span class="nt"></Transports></span>
|
|
941
|
-
|
|
942
|
-
<span class="nt"></AMPSConfig></span>
|
|
943
|
-
</pre></div>
|
|
944
|
-
</div>
|
|
945
|
-
</div>
|
|
946
|
-
<div class="section" id="message-ordering-and-replication">
|
|
947
|
-
<h2>Message Ordering and Replication<a class="headerlink" href="#message-ordering-and-replication" title="Permalink to this headline">¶</a></h2>
|
|
948
|
-
<p>AMPS uses the name of the publisher and the sequence number assigned by
|
|
949
|
-
the publisher to ensure that messages from each publisher are published
|
|
950
|
-
in order. However, AMPS does not enforce order across publishers. This
|
|
951
|
-
means that, in a failover situation, messages from different
|
|
952
|
-
publishers may be interleaved in a different order on different servers,
|
|
953
|
-
even though the message stream from each publisher is preserved in
|
|
954
|
-
order. Each instance preserves the order in which messages were
|
|
955
|
-
processed by that instance and enforces that order.</p>
|
|
956
|
-
</div>
|
|
957
|
-
</div>
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
</div>
|
|
961
|
-
</div>
|
|
962
|
-
</div>
|
|
963
|
-
<div class="clearer"></div>
|
|
964
|
-
</div>
|
|
965
|
-
<div class="footer">
|
|
966
|
-
©2023 60East Technologies, Inc. (version develop).
|
|
967
|
-
|
|
968
|
-
|
|
|
969
|
-
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.3</a>
|
|
970
|
-
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
|
|
971
|
-
|
|
972
|
-
</div>
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
</body>
|
|
978
|
-
</html>
|