amps-python-client 5.3.4.1__zip → 5.3.4.3__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.3/LICENSE +168 -0
- amps-python-client-5.3.4.3/PKG-INFO +112 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/.buildinfo +4 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_sources/index.rst.txt +36 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/ack-messages.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/content-messages.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/intro.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/logon.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/protocol-reference.html +93 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/publishing.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-delimiters.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/query-subscribe.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/removing.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/chapters/utilities.html +95 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/genindex.html +97 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/index.html +98 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/objects.inv +6 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/search.html +107 -0
- amps-python-client-5.3.4.3/docs/command-reference/html/searchindex.js +1 -0
- amps-python-client-5.3.4.3/docs/html/.buildinfo +4 -0
- amps-python-client-5.3.4.3/docs/html/code.html +6851 -0
- amps-python-client-5.3.4.3/docs/html/genindex.html +1363 -0
- amps-python-client-5.3.4.3/docs/html/index.html +131 -0
- amps-python-client-5.3.4.3/docs/html/objects.inv +0 -0
- amps-python-client-5.3.4.3/docs/html/py-modindex.html +111 -0
- amps-python-client-5.3.4.3/docs/html/search.html +107 -0
- amps-python-client-5.3.4.3/docs/html/searchindex.js +1 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/deltas.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/error-handling.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/exceptions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/first-program.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/high-availability.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/installing.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/introduction.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.3/docs/python/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python/html/.buildinfo +4 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
- amps-python-client-5.3.4.3/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
- amps-python-client-5.3.4.3/docs/python/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/advanced-topics.html +447 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-compiler-list.html +92 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/cpp-feature-table.html +156 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/creating-commands.html +2882 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/deltas.html +169 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/error-handling.html +745 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/exceptions.html +266 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/first-program.html +526 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/high-availability.html +1017 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/installing.html +264 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/introduction.html +245 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/moving-from-python-lite.html +118 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/performance-tips.html +499 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/queues.html +352 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/sow.html +383 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/subscriptions.html +535 -0
- amps-python-client-5.3.4.3/docs/python/html/chapters/utilities.html +302 -0
- amps-python-client-5.3.4.3/docs/python/html/genindex.html +351 -0
- amps-python-client-5.3.4.3/docs/python/html/index.html +382 -0
- amps-python-client-5.3.4.3/docs/python/html/objects.inv +0 -0
- amps-python-client-5.3.4.3/docs/python/html/search.html +107 -0
- amps-python-client-5.3.4.3/docs/python/html/searchindex.js +1 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/.buildinfo +4 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/crankitup.html +271 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/chapters/equipment.html +105 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/genindex.html +97 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/index.html +381 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/objects.inv +0 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/search.html +107 -0
- amps-python-client-5.3.4.3/docs/python-quickstart/html/searchindex.js +1 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/events.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/chapters/views.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/environment.pickle +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/doctrees/index.doctree +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/.buildinfo +4 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_sources/index.rst.txt +62 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/_static/custom.css +161 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/acks.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/actions.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps-statistics.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_expressions.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/amps_functions.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/conflated_topics.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/constructing-fields.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/daemon.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/delta.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/distribution.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/enrichment.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/events.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/file_format_versions.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/glossary.html +92 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/ha.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/intro.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/logging.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/messageTypes.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/monitoring.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/oof.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/operation.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/pub_sub.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/queues.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/replication.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/securing.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/sow_queries.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/spark.html +819 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/transports.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/troubleshooting.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/txlog.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/usecases.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/utilities.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/chapters/views.html +94 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/genindex.html +133 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/index.html +96 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/objects.inv +0 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/search.html +106 -0
- amps-python-client-5.3.4.3/docs/user-guide/html/searchindex.js +1 -0
- amps-python-client-5.3.4.3/include/ampspy_bookmarkstore.hpp +63 -0
- amps-python-client-5.3.4.3/include/ampspy_compat.h +63 -0
- amps-python-client-5.3.4.3/include/ampspy_defs.hpp +181 -0
- amps-python-client-5.3.4.3/include/ampspy_recoverypointadapter.hpp +52 -0
- amps-python-client-5.3.4.3/include/ampspy_shims.hpp +113 -0
- amps-python-client-5.3.4.3/include/ampspy_type_object.hpp +242 -0
- amps-python-client-5.3.4.3/include/ampspy_types.hpp +1139 -0
- amps-python-client-5.3.4.3/include/ampspyver.h +30 -0
- amps-python-client-5.3.4.3/index.html +66 -0
- amps-python-client-5.3.4.3/samples/AMPSConsolePublisher.py +59 -0
- amps-python-client-5.3.4.3/samples/AMPSConsoleSubscriber.py +63 -0
- amps-python-client-5.3.4.3/samples/AMPSFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.3/samples/AMPSFIXShredderSubscriber.py +69 -0
- amps-python-client-5.3.4.3/samples/AMPSNVFIXBuilderPublisher.py +71 -0
- amps-python-client-5.3.4.3/samples/AMPSNVFIXShredderSubscriber.py +67 -0
- amps-python-client-5.3.4.3/samples/AMPSPublishForReplay.py +81 -0
- amps-python-client-5.3.4.3/samples/AMPSQueueConsumer.py +69 -0
- amps-python-client-5.3.4.3/samples/AMPSQueuePublisher.py +59 -0
- amps-python-client-5.3.4.3/samples/AMPSSOWConsolePublisher.py +67 -0
- amps-python-client-5.3.4.3/samples/AMPSSOWConsoleSubscriber.py +77 -0
- amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
- amps-python-client-5.3.4.3/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
- amps-python-client-5.3.4.3/samples/AMPSSubscribeForReplay.py +128 -0
- amps-python-client-5.3.4.3/samples/AMPSUpdateForOOF.py +123 -0
- amps-python-client-5.3.4.3/samples/CompositeMessagePublisher.py +84 -0
- amps-python-client-5.3.4.3/samples/CompositeMessageSubscriber.py +87 -0
- amps-python-client-5.3.4.3/samples/RandomServerChooser.py +66 -0
- amps-python-client-5.3.4.3/samples/sample.xml +335 -0
- amps-python-client-5.3.4.3/setup.py +210 -0
- amps-python-client-5.3.4.3/setup_amps.py +94 -0
- amps-python-client-5.3.4.3/src/ampspy_shims.cpp +214 -0
- amps-python-client-5.3.4.3/src/ampspy_type_object.cpp +495 -0
- amps-python-client-5.3.4.3/src/authenticator.cpp +128 -0
- amps-python-client-5.3.4.3/src/bookmarkstore.cpp +246 -0
- amps-python-client-5.3.4.3/src/client.cpp +2648 -0
- amps-python-client-5.3.4.3/src/client_docs.h +1210 -0
- amps-python-client-5.3.4.3/src/cmessagehandler.cpp +161 -0
- amps-python-client-5.3.4.3/src/command.cpp +164 -0
- amps-python-client-5.3.4.3/src/command_docs.h +274 -0
- amps-python-client-5.3.4.3/src/compositemessagebuilder.cpp +113 -0
- amps-python-client-5.3.4.3/src/compositemessageparser.cpp +151 -0
- amps-python-client-5.3.4.3/src/conflatingrecoverypointadapter.cpp +197 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/BlockPublishStore.hpp +2050 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/BlockStore.hpp +674 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/BookmarkStore.hpp +542 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/Buffer.hpp +214 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/Field.hpp +723 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/HAClient.hpp +370 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/HAClientImpl.hpp +460 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MMapStoreBuffer.hpp +297 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MemoryStoreBuffer.hpp +247 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/Message.hpp +1827 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/MessageRouter.hpp +647 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/PublishStore.hpp +158 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooser.hpp +156 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/amps.h +815 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/amps_impl.h +220 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/amps_ssl.h +78 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ampscrc.hpp +208 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ampsplusplus.hpp +8846 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ampsuri.h +84 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h +41 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/ampsver.h.in +41 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/constants.hpp +194 -0
- amps-python-client-5.3.4.3/src/cpp/include/amps/util.hpp +1722 -0
- amps-python-client-5.3.4.3/src/cpp/src/amps_protocol.c +693 -0
- amps-python-client-5.3.4.3/src/cpp/src/amps_ssl.c +565 -0
- amps-python-client-5.3.4.3/src/cpp/src/atfork.c +484 -0
- amps-python-client-5.3.4.3/src/cpp/src/client.c +498 -0
- amps-python-client-5.3.4.3/src/cpp/src/message.c +837 -0
- amps-python-client-5.3.4.3/src/cpp/src/message_generated.h +611 -0
- amps-python-client-5.3.4.3/src/cpp/src/tcp.c +1683 -0
- amps-python-client-5.3.4.3/src/cpp/src/tcps.c +2005 -0
- amps-python-client-5.3.4.3/src/cpp/src/transports.c +129 -0
- amps-python-client-5.3.4.3/src/cpp/src/unix.c +1063 -0
- amps-python-client-5.3.4.3/src/cpp/src/uri.c +301 -0
- amps-python-client-5.3.4.3/src/exponentialdelaystrategy.cpp +131 -0
- amps-python-client-5.3.4.3/src/failedwritehandler.cpp +116 -0
- amps-python-client-5.3.4.3/src/fixbuilder.cpp +146 -0
- amps-python-client-5.3.4.3/src/fixeddelaystrategy.cpp +115 -0
- amps-python-client-5.3.4.3/src/fixshredder.cpp +105 -0
- amps-python-client-5.3.4.3/src/fixshredder_docs.h +38 -0
- amps-python-client-5.3.4.3/src/haclient.cpp +691 -0
- amps-python-client-5.3.4.3/src/haclient_docs.h +200 -0
- amps-python-client-5.3.4.3/src/hybridpublishstore.cpp +137 -0
- amps-python-client-5.3.4.3/src/hybridpublishstore_docs.h +31 -0
- amps-python-client-5.3.4.3/src/memorybookmarkstore.cpp +373 -0
- amps-python-client-5.3.4.3/src/memorybookmarkstore_docs.h +39 -0
- amps-python-client-5.3.4.3/src/memorypublishstore.cpp +160 -0
- amps-python-client-5.3.4.3/src/memorypublishstore_docs.h +32 -0
- amps-python-client-5.3.4.3/src/message.cpp +765 -0
- amps-python-client-5.3.4.3/src/message_docs.h +306 -0
- amps-python-client-5.3.4.3/src/messagestream.cpp +630 -0
- amps-python-client-5.3.4.3/src/messagestream_docs.h +45 -0
- amps-python-client-5.3.4.3/src/mmapbookmarkstore.cpp +422 -0
- amps-python-client-5.3.4.3/src/nvfixbuilder.cpp +160 -0
- amps-python-client-5.3.4.3/src/nvfixbuilder_docs.h +35 -0
- amps-python-client-5.3.4.3/src/nvfixshredder.cpp +99 -0
- amps-python-client-5.3.4.3/src/nvfixshredder_docs.h +43 -0
- amps-python-client-5.3.4.3/src/publishstore.cpp +183 -0
- amps-python-client-5.3.4.3/src/raw_wrapper.cpp +765 -0
- amps-python-client-5.3.4.3/src/reason.cpp +71 -0
- amps-python-client-5.3.4.3/src/recoverypoint.cpp +135 -0
- amps-python-client-5.3.4.3/src/recoverypointadapter.cpp +171 -0
- amps-python-client-5.3.4.3/src/ringbookmarkstore.cpp +360 -0
- amps-python-client-5.3.4.3/src/serverchooser.cpp +245 -0
- amps-python-client-5.3.4.3/src/serverchooser_docs.h +41 -0
- amps-python-client-5.3.4.3/src/sowrecoverypointadapter.cpp +248 -0
- amps-python-client-5.3.4.3/src/store.cpp +62 -0
- amps-python-client-5.3.4.3/src/versioninfo.cpp +175 -0
- amps-python-client-5.3.4.1/LICENSE +0 -157
- 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.3}/HISTORY +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/README.md +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/command-reference/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/command-reference/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/command-reference/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/code.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/classic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/default.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/sidebar.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/caution.png +0 -0
- {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.3/docs/python}/html/_images/caution.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/connection_string.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/important.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/tip.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_images/warning.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/python/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery-3.1.0.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore-1.3.1.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/python-quickstart/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/python-quickstart/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/python-quickstart/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/custom.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/resources/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/alabaster.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/basic.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-bright.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment-close.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/comment.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/doctools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/down.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/file.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/flag_logo.svg +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/user-guide/html/_static/jquery.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/minus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/plus.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/pygments.css +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/searchtools.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/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.3}/docs/user-guide/html/_static/underscore.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up-pressed.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/up.png +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/docs/user-guide/html/_static/websupport.js +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/include/amps/amps_generated.h +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/amps_protocol_generated.h +0 -0
- {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.3}/src/cpp/src/makefile +0 -0
|
@@ -1,1038 +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>7. State of the World (SOW) — 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="8. SOW Queries" href="sow_queries.html" />
|
|
30
|
-
<link rel="prev" title="6. Constructing Fields" href="constructing-fields.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="#">7. State of the World (SOW)</a><ul>
|
|
49
|
-
<li><a class="reference internal" href="#how-does-the-state-of-the-world-work">How Does the State of the World Work?</a></li>
|
|
50
|
-
<li><a class="reference internal" href="#queries">Queries</a></li>
|
|
51
|
-
<li><a class="reference internal" href="#sow-keys">SOW Keys</a><ul>
|
|
52
|
-
<li><a class="reference internal" href="#amps-generated-sow-keys">AMPS-Generated SOW Keys</a><ul>
|
|
53
|
-
<li><a class="reference internal" href="#using-enrichment-with-sow-keys">Using Enrichment with SOW Keys</a></li>
|
|
54
|
-
<li><a class="reference internal" href="#customizing-amps-generated-sow-keys">Customizing AMPS-Generated SOW Keys</a></li>
|
|
55
|
-
</ul>
|
|
56
|
-
</li>
|
|
57
|
-
<li><a class="reference internal" href="#user-generated-sow-keys">User-Generated SOW Keys</a></li>
|
|
58
|
-
</ul>
|
|
59
|
-
</li>
|
|
60
|
-
<li><a class="reference internal" href="#sow-indexing">SOW Indexing</a></li>
|
|
61
|
-
<li><a class="reference internal" href="#removing-sow-records">Removing SOW Records</a></li>
|
|
62
|
-
<li><a class="reference internal" href="#sow-message-expiration">SOW Message Expiration</a><ul>
|
|
63
|
-
<li><a class="reference internal" href="#usage">Usage</a><ul>
|
|
64
|
-
<li><a class="reference internal" href="#enabling-expiration-for-a-topic">Enabling Expiration for a Topic</a></li>
|
|
65
|
-
<li><a class="reference internal" href="#setting-expiration-for-a-message">Setting Expiration for a Message</a></li>
|
|
66
|
-
</ul>
|
|
67
|
-
</li>
|
|
68
|
-
<li><a class="reference internal" href="#example-message-lifecycle">Example Message Lifecycle</a><ul>
|
|
69
|
-
<li><a class="reference internal" href="#recovery-and-expiration">Recovery and Expiration</a></li>
|
|
70
|
-
<li><a class="reference internal" href="#replication-and-expiration">Replication and Expiration</a></li>
|
|
71
|
-
</ul>
|
|
72
|
-
</li>
|
|
73
|
-
</ul>
|
|
74
|
-
</li>
|
|
75
|
-
<li><a class="reference internal" href="#sow-maintenance">SOW Maintenance</a></li>
|
|
76
|
-
<li><a class="reference internal" href="#efficiently-configuring-single-message-topics">Efficiently Configuring Single-Message Topics</a><ul>
|
|
77
|
-
<li><a class="reference internal" href="#when-to-use-a-pattern-in-a-topic">When to Use a Pattern in a Topic</a></li>
|
|
78
|
-
<li><a class="reference internal" href="#limitations-and-differences-between-topics-with-and-without-pattern">Limitations and Differences Between Topics With and Without Pattern</a></li>
|
|
79
|
-
<li><a class="reference internal" href="#configuration-file-precedence">Configuration File Precedence</a></li>
|
|
80
|
-
<li><a class="reference internal" href="#entitlements-for-topics-with-a-pattern">Entitlements for Topics with a Pattern</a></li>
|
|
81
|
-
</ul>
|
|
82
|
-
</li>
|
|
83
|
-
<li><a class="reference internal" href="#configuration">Configuration</a></li>
|
|
84
|
-
</ul>
|
|
85
|
-
</li>
|
|
86
|
-
</ul>
|
|
87
|
-
<div class="relations">
|
|
88
|
-
<h3>Related Topics</h3>
|
|
89
|
-
<ul>
|
|
90
|
-
<li><a href="../index.html">Documentation overview</a><ul>
|
|
91
|
-
<li>Previous: <a href="constructing-fields.html" title="previous chapter">6. Constructing Fields</a></li>
|
|
92
|
-
<li>Next: <a href="sow_queries.html" title="next chapter">8. SOW Queries</a></li>
|
|
93
|
-
</ul></li>
|
|
94
|
-
</ul>
|
|
95
|
-
</div>
|
|
96
|
-
<div id="searchbox" style="display: none" role="search">
|
|
97
|
-
<h3>Quick search</h3>
|
|
98
|
-
<form class="search" action="../search.html" method="get">
|
|
99
|
-
<div><input type="text" name="q" /></div>
|
|
100
|
-
<div><input type="submit" value="Go" /></div>
|
|
101
|
-
<input type="hidden" name="check_keywords" value="yes" />
|
|
102
|
-
<input type="hidden" name="area" value="default" />
|
|
103
|
-
</form>
|
|
104
|
-
</div>
|
|
105
|
-
<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
<div class="documentwrapper">
|
|
109
|
-
<div class="bodywrapper">
|
|
110
|
-
<div class="body" role="main">
|
|
111
|
-
|
|
112
|
-
<div class="section" id="state-of-the-world-sow">
|
|
113
|
-
<span id="sow"></span><span id="ug-sow"></span><span id="index-0"></span><h1>7. State of the World (SOW)<a class="headerlink" href="#state-of-the-world-sow" title="Permalink to this headline">¶</a></h1>
|
|
114
|
-
<p>One of the core features of AMPS is the ability to persist the most
|
|
115
|
-
recent update for each distinct message published to a given topic. The
|
|
116
|
-
State of the World (SOW) can be thought of as a database where messages
|
|
117
|
-
published to AMPS are filtered into topics, and where the topics store
|
|
118
|
-
the latest update to each distinct message. The SOW gives subscribers
|
|
119
|
-
the ability to quickly resolve any differences between their data
|
|
120
|
-
and updated data in the SOW by querying the current state of a topic
|
|
121
|
-
or any set of messages inside a topic. Topics recorded in the SOW are
|
|
122
|
-
also used for caching data, providing “point in time” snapshots of
|
|
123
|
-
active data flows, providing key/value stores over data flows, and so on.
|
|
124
|
-
Topics recorded in the SOW are the underlying sources for AMPS aggregation
|
|
125
|
-
and analytics capabilities, and the ability to store the previous state
|
|
126
|
-
of a message is the foundation of advanced messaging features such as
|
|
127
|
-
delta messaging and out of focus notifications.</p>
|
|
128
|
-
<p>AMPS also provides the ability to keep historical snapshots of the
|
|
129
|
-
contents of the SOW, which allows subscribers to query the contents
|
|
130
|
-
of the SOW at a particular point in time and replay changes from
|
|
131
|
-
that point in time.</p>
|
|
132
|
-
<p>AMPS can maintain the SOW for a topic in a persistent file, which will
|
|
133
|
-
be available across restarts of the AMPS server. The SOW can also be
|
|
134
|
-
<em>transient</em>, in which case the state of the SOW does not persist across
|
|
135
|
-
server restarts.</p>
|
|
136
|
-
<p>Topics do not keep the current values in the SOW by default. To provide
|
|
137
|
-
this capability for a topic, you must configure AMPS to maintain the
|
|
138
|
-
topic in the SOW by adding a definition for the <code class="docutils literal"><span class="pre">Topic</span></code> to the
|
|
139
|
-
<code class="docutils literal"><span class="pre">SOW</span></code> section of the AMPS configuration file.</p>
|
|
140
|
-
<div class="section" id="how-does-the-state-of-the-world-work">
|
|
141
|
-
<h2>How Does the State of the World Work?<a class="headerlink" href="#how-does-the-state-of-the-world-work" title="Permalink to this headline">¶</a></h2>
|
|
142
|
-
<p>Much like tables in a relational database, topics in the AMPS SOW
|
|
143
|
-
persist the most recent update for each message. AMPS identifies a
|
|
144
|
-
message by using a unique key for the message. The SOW key for a
|
|
145
|
-
given message is similar to the primary key in a relational database:
|
|
146
|
-
each value of the key is a unique message. The first time a message
|
|
147
|
-
is received with a particular SOW key, AMPS adds the message to the SOW.
|
|
148
|
-
Subsequent messages with the same SOW key value update the message.</p>
|
|
149
|
-
<p>There are several ways to create a SOW key for a message:</p>
|
|
150
|
-
<ul class="simple">
|
|
151
|
-
<li>Most applications specify that AMPS assigns a SOW key based on the
|
|
152
|
-
content of the message. The fields to use for the key are specified
|
|
153
|
-
in the SOW topic definition, and consist of one or more XPath
|
|
154
|
-
expressions. AMPS finds the specified fields in the message and
|
|
155
|
-
computes a SOW key based on the name of the topic and the values in
|
|
156
|
-
these fields. 60East recommends this approach unless an application
|
|
157
|
-
has a specific need for a different approach.</li>
|
|
158
|
-
<li>A topic can also be configured to require that a publisher provide a
|
|
159
|
-
SOW key for each message when publishing the message to AMPS.</li>
|
|
160
|
-
<li>AMPS also supports the ability for custom SOW key generation logic to
|
|
161
|
-
be defined in an AMPS module, which will be invoked to generate the
|
|
162
|
-
SOW key for each message. While these SOW keys are generated
|
|
163
|
-
automatically by AMPS, rather than being provided by the publisher,
|
|
164
|
-
the logic to generate these keys is provided by the module, and the
|
|
165
|
-
configuration required (if any) is determined by the module.</li>
|
|
166
|
-
</ul>
|
|
167
|
-
<p>The following diagrams demonstrate how the SOW works, using a SOW topic
|
|
168
|
-
that is configured to have AMPS determine the SOW key based on the
|
|
169
|
-
<code class="docutils literal"><span class="pre">/orderId</span></code> field within the message. As each message comes in, AMPS
|
|
170
|
-
uses the contents of the <code class="docutils literal"><span class="pre">/orderId</span></code> field to generate a SOW key for
|
|
171
|
-
the message. The SOW key is used to identify unique records in the SOW,
|
|
172
|
-
so AMPS will store a distinct record for each distinct <code class="docutils literal"><span class="pre">/orderId</span></code>
|
|
173
|
-
value published to this topic. The calculated SOW key will be returned
|
|
174
|
-
in the <code class="docutils literal"><span class="pre">SowKey</span></code> header of messages received from the topic in the SOW.</p>
|
|
175
|
-
<div class="figure" id="fig-sow-ex1">
|
|
176
|
-
<a class="reference internal image-reference" href="../_images/sow_overview_1.svg"><img alt="../_images/sow_overview_1.svg" src="../_images/sow_overview_1.svg" width="75.0%" /></a>
|
|
177
|
-
</div>
|
|
178
|
-
<p><em>A SOW topic named ORDERS with a key definition of /orderId</em></p>
|
|
179
|
-
<p>In <a class="reference internal" href="#fig-sow-ex1"><span class="std std-ref">the diagram above</span></a>, two messages are published where neither of the
|
|
180
|
-
messages have matching keys existing in the <code class="docutils literal"><span class="pre">ORDERS</span></code> topic, the
|
|
181
|
-
messages are both inserted as new messages. Some time after these
|
|
182
|
-
messages are processed, an update comes in for the order with an
|
|
183
|
-
<code class="docutils literal"><span class="pre">orderId</span></code> of <code class="docutils literal"><span class="pre">2</span></code>. This message changes the price from 120 to 95.
|
|
184
|
-
Since the incoming message has an <code class="docutils literal"><span class="pre">orderId</span></code> of 2, this matches an
|
|
185
|
-
existing record and overwrites the existing message for the same SOW
|
|
186
|
-
key, as seen in <a class="reference internal" href="#fig-sow-ex2"><span class="std std-ref">the following diagram</span></a>. AMPS replaces the entire record
|
|
187
|
-
with the contents of the update.</p>
|
|
188
|
-
<div class="figure" id="fig-sow-ex2">
|
|
189
|
-
<a class="reference internal image-reference" href="../_images/sow_overview_2.svg"><img alt="../_images/sow_overview_2.svg" src="../_images/sow_overview_2.svg" width="75.0%" /></a>
|
|
190
|
-
</div>
|
|
191
|
-
<p><em>Updating the IBM record by matching incoming message keys</em></p>
|
|
192
|
-
<p>Although the SOW key is derived from the content of the message in many
|
|
193
|
-
cases, the SOW key is distinct from the content of the message. Each
|
|
194
|
-
record in a SOW topic has a distinct SOW key, which is stored with the
|
|
195
|
-
record. The SOW stores the full message in the message type format for
|
|
196
|
-
performance. There is no re-serialization required to send a message
|
|
197
|
-
to subscribers.</p>
|
|
198
|
-
<p>By default, a topic recorded in the SOW is <em>persistent</em>. For these topics,
|
|
199
|
-
AMPS stores the contents of the SOW for that topic in a dedicated,
|
|
200
|
-
memory-mapped file. This means that the total SOW does not need to fit into
|
|
201
|
-
memory, and that the contents of the SOW database are maintained across
|
|
202
|
-
server restarts. You can also define a <em>transient</em> SOW topic, which does not
|
|
203
|
-
store the contents of the SOW to a persisted file.</p>
|
|
204
|
-
<p id="index-1">The SOW file is separate from the transaction log, and you do not
|
|
205
|
-
need to configure a transaction log to use a SOW. When a transaction
|
|
206
|
-
log is present that covers the SOW topic, on restart AMPS uses the
|
|
207
|
-
transaction log to keep the SOW up to date. When the latest transaction
|
|
208
|
-
in the SOW is more recent than the last transaction in the transaction
|
|
209
|
-
log (for example, if the transaction log has been deleted), AMPS takes
|
|
210
|
-
no action. If the transaction log has newer transactions than the SOW,
|
|
211
|
-
AMPS replays those transactions into the SOW to bring the SOW file up
|
|
212
|
-
to date. If the SOW file is missing or damaged, AMPS rebuilds the SOW
|
|
213
|
-
by replaying the transaction log from the beginning of the log.</p>
|
|
214
|
-
<div class="admonition important">
|
|
215
|
-
<p class="first admonition-title">Important</p>
|
|
216
|
-
<p class="last">When a SOW topic is <code class="docutils literal"><span class="pre">persistent</span></code>, each topic must be stored in
|
|
217
|
-
a separate file. Only one instance of AMPS can access a given
|
|
218
|
-
file; the same copy of the SOW file <em>cannot</em> be used by multiple
|
|
219
|
-
instances of AMPS.</p>
|
|
220
|
-
</div>
|
|
221
|
-
<p>When the SOW for a topic is <em>transient</em>, AMPS does not store the
|
|
222
|
-
SOW for this topic across restarts. In this case, AMPS will synchronize
|
|
223
|
-
the SOW with the transaction log when the server starts by default.
|
|
224
|
-
You can use the <cite>RecoveryPoint</cite> configuration option to specify that the
|
|
225
|
-
topic should have only new publishes, or should recover from a specific
|
|
226
|
-
point in time (for example, you could use an environment variable
|
|
227
|
-
to provide a timestamp to the <cite>RecoveryPoint</cite> so that AMPS
|
|
228
|
-
recovers only the last day’s worth of messages.)</p>
|
|
229
|
-
</div>
|
|
230
|
-
<div class="section" id="queries">
|
|
231
|
-
<h2>Queries<a class="headerlink" href="#queries" title="Permalink to this headline">¶</a></h2>
|
|
232
|
-
<p id="index-2">At any point in time, applications can issue SOW queries to retrieve all
|
|
233
|
-
of the messages that match a given topic and content filter. When a
|
|
234
|
-
query is executed, AMPS will test each message in the SOW against the
|
|
235
|
-
content filter specified and all messages matching the filter will be
|
|
236
|
-
returned to the client. The topic can be a literal topic name or a
|
|
237
|
-
regular expression pattern. For more information on issuing queries,
|
|
238
|
-
please see <a class="reference external" href="sow_queries.html#sow-queries">SOW Queries</a>.</p>
|
|
239
|
-
<span class="target" id="ug-generating-sow-keys"></span></div>
|
|
240
|
-
<div class="section" id="sow-keys">
|
|
241
|
-
<span id="index-3"></span><h2>SOW Keys<a class="headerlink" href="#sow-keys" title="Permalink to this headline">¶</a></h2>
|
|
242
|
-
<p>This section describes AMPS SOW keys in detail, including information on
|
|
243
|
-
how AMPS generates SOW keys and considerations for applications that
|
|
244
|
-
generate SOW keys. An individual SOW topic may use either AMPS-generated
|
|
245
|
-
SOW keys or user-generated SOW keys. Every message in the SOW must use
|
|
246
|
-
the same type of key generation.</p>
|
|
247
|
-
<p>Regardless of how the SOW key is generated, AMPS creates an opaque value
|
|
248
|
-
from the SOW key and uses this value for efficient lookup internally.
|
|
249
|
-
For SOW keys that AMPS generates, this opaque value is returned in the
|
|
250
|
-
message header for SOW messages and is used in commands that reference
|
|
251
|
-
SOW keys. When the SOW key is provided with a message, AMPS returns the
|
|
252
|
-
original value in the SOW key header, and the original value is used in
|
|
253
|
-
commands that reference SOW keys.</p>
|
|
254
|
-
<p>For topics that have a SOW key (including views and conflated topics),
|
|
255
|
-
commands that directly use the SOW for a topic (for example, <code class="docutils literal"><span class="pre">sow</span></code>,
|
|
256
|
-
<code class="docutils literal"><span class="pre">sow_and_subscribe</span></code>, <code class="docutils literal"><span class="pre">sow_delete</span></code>) can provide a SOW key, or a set
|
|
257
|
-
of SOW keys with the command. When a set of SOW keys is provided with
|
|
258
|
-
one of these commands, the command will only operate on messages that
|
|
259
|
-
have a SOW key in the provided set.</p>
|
|
260
|
-
<div class="section" id="amps-generated-sow-keys">
|
|
261
|
-
<h3>AMPS-Generated SOW Keys<a class="headerlink" href="#amps-generated-sow-keys" title="Permalink to this headline">¶</a></h3>
|
|
262
|
-
<p>AMPS-generated SOW keys are often the easiest and most reliable way to
|
|
263
|
-
define the SOW key for a message. The advantages of this approach are
|
|
264
|
-
that AMPS handles all of the mechanics of generating the key, the key
|
|
265
|
-
will always match the data in the message, and there is no need for a
|
|
266
|
-
publisher to be concerned with how AMPS assigns the key. The publisher
|
|
267
|
-
simply publishes messages, and AMPS handles all of the details.</p>
|
|
268
|
-
<p>AMPS generates SOW keys based on the message content when you define one
|
|
269
|
-
or more <code class="docutils literal"><span class="pre">Key</span></code> fields in the SOW configuration. For example, if your
|
|
270
|
-
SOW tracks unique orders that are identified by an <code class="docutils literal"><span class="pre">orderId</span></code> field in
|
|
271
|
-
the message, you could provide the following <code class="docutils literal"><span class="pre">Key</span></code> element in your SOW
|
|
272
|
-
configuration:</p>
|
|
273
|
-
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt"><Key></span>/orderId<span class="nt"></Key></span>
|
|
274
|
-
</pre></div>
|
|
275
|
-
</div>
|
|
276
|
-
<p>This configuration item tells AMPS to use that field of the message to
|
|
277
|
-
generate SOW keys. AMPS supports composite SOW keys when multiple <code class="docutils literal"><span class="pre">Key</span></code>
|
|
278
|
-
elements are provided. For example, the following configuration
|
|
279
|
-
specifies that every unique combination of <code class="docutils literal"><span class="pre">/orderId</span></code> and
|
|
280
|
-
<code class="docutils literal"><span class="pre">/customerId</span></code> is a unique record in the SOW:</p>
|
|
281
|
-
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt"><Key></span>/orderId<span class="nt"></Key></span>
|
|
282
|
-
<span class="nt"><Key></span>/customerId<span class="nt"></Key></span>
|
|
283
|
-
</pre></div>
|
|
284
|
-
</div>
|
|
285
|
-
<p>When AMPS generates a key, it creates the key based on the <em>key domain</em>
|
|
286
|
-
(which is the name of the topic by default) and the values of the fields
|
|
287
|
-
specified as SOW keys. AMPS concatenates these values together with a
|
|
288
|
-
unique separator and then calculates a checksum over the value. This
|
|
289
|
-
ensures that different values create different keys, and ensures that
|
|
290
|
-
records in different topics have different keys.</p>
|
|
291
|
-
<p>In some cases, you may need AMPS to calculate consistent SOW key values
|
|
292
|
-
for identical messages even when the messages are published to different
|
|
293
|
-
topics. The SOW topic definition allows you to set an explicit key
|
|
294
|
-
domain in the configuration, which AMPS will use instead of the topic
|
|
295
|
-
name when generating SOW keys. For example, if your application uses the
|
|
296
|
-
<code class="docutils literal"><span class="pre">orderId</span></code> field of a message as a SOW key in both a <code class="docutils literal"><span class="pre">ShippingStatus</span></code>
|
|
297
|
-
topic and an <code class="docutils literal"><span class="pre">OpenOrders</span></code> topic, having AMPS generate a consistent key
|
|
298
|
-
for the same <code class="docutils literal"><span class="pre">orderId</span></code> value may make it easier to correlate messages
|
|
299
|
-
from those topics in your application. By setting the same <code class="docutils literal"><span class="pre">KeyDomain</span></code>
|
|
300
|
-
value in the Topic configuration for those SOW topics, you can ensure
|
|
301
|
-
that AMPS generates consistent SOW keys for the same order ID across
|
|
302
|
-
topics.</p>
|
|
303
|
-
<p>An application should treat SOW keys generated with the AMPS default SOW
|
|
304
|
-
key generator as opaque tokens. The value of a generated SOW key is
|
|
305
|
-
guaranteed to be consistent for the same fields, values, and key domain.
|
|
306
|
-
However, an application should not make assumptions as to the specific
|
|
307
|
-
value that the AMPS default key generator will produce from a given set
|
|
308
|
-
of values. If an application requires a specific value for the SOW key,
|
|
309
|
-
the application should generate a SOW key, as described in the following
|
|
310
|
-
section.</p>
|
|
311
|
-
<div class="section" id="using-enrichment-with-sow-keys">
|
|
312
|
-
<h4>Using Enrichment with SOW Keys<a class="headerlink" href="#using-enrichment-with-sow-keys" title="Permalink to this headline">¶</a></h4>
|
|
313
|
-
<p>The preprocessor phase of AMPS enrichment occurs before AMPS generates
|
|
314
|
-
SOW keys for a message. You can use this phase of enrichment to
|
|
315
|
-
construct fields that are then used to generate the SOW key for a message.</p>
|
|
316
|
-
</div>
|
|
317
|
-
<div class="section" id="customizing-amps-generated-sow-keys">
|
|
318
|
-
<h4>Customizing AMPS-Generated SOW Keys<a class="headerlink" href="#customizing-amps-generated-sow-keys" title="Permalink to this headline">¶</a></h4>
|
|
319
|
-
<p>AMPS allows you to customize how the server generates SOW keys for a
|
|
320
|
-
topic. To customize SOW key generation, you implement a SOW key
|
|
321
|
-
generator module and specify that the module should be used to generate
|
|
322
|
-
keys for that SOW topic.</p>
|
|
323
|
-
<p>To use a custom SOW key generator, you first load the module in the
|
|
324
|
-
<code class="docutils literal"><span class="pre">Modules</span></code> section of the configuration file, then specify the module
|
|
325
|
-
as the <code class="docutils literal"><span class="pre">KeyGenerator</span></code> for the SOW topic.</p>
|
|
326
|
-
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt"><AMPSConfig></span>
|
|
327
|
-
...
|
|
328
|
-
|
|
329
|
-
<span class="c"><!-- load the module --></span>
|
|
330
|
-
<span class="nt"><Modules></span>
|
|
331
|
-
<span class="nt"><Module></span>
|
|
332
|
-
<span class="nt"><Name></span>key-generator<span class="nt"></Name></span>
|
|
333
|
-
<span class="nt"><Library></span>libmy_key_generator.so<span class="nt"></Library></span>
|
|
334
|
-
<span class="nt"></Module></span>
|
|
335
|
-
<span class="nt"></Modules></span>
|
|
336
|
-
|
|
337
|
-
<span class="c"><!-- use the module to generate keys --></span>
|
|
338
|
-
<span class="nt"><SOW></span>
|
|
339
|
-
<span class="nt"><Topic></span>
|
|
340
|
-
<span class="nt"><Name></span>custom-keyed-sow<span class="nt"></Name></span>
|
|
341
|
-
<span class="nt"><FileName></span>./sow/%n.sow<span class="nt"></FileName></span>
|
|
342
|
-
<span class="nt"><KeyGenerator></span>
|
|
343
|
-
<span class="nt"><Module></span>key-generator<span class="nt"></Module></span>
|
|
344
|
-
<span class="nt"><Options></span>
|
|
345
|
-
<span class="nt"><OptionOne></span>module-specific-option<span class="nt"></OptionOne></span>
|
|
346
|
-
<span class="nt"><OptionTwo></span>another-specific-option<span class="nt"></OptionTwo></span>
|
|
347
|
-
<span class="nt"></Options></span>
|
|
348
|
-
<span class="nt"></KeyGenerator></span>
|
|
349
|
-
<span class="nt"></Topic></span>
|
|
350
|
-
<span class="nt"></SOW></span>
|
|
351
|
-
|
|
352
|
-
...
|
|
353
|
-
<span class="nt"></AMPSConfig></span>
|
|
354
|
-
</pre></div>
|
|
355
|
-
</div>
|
|
356
|
-
<p>For information on implementing a custom SOW key generator, contact
|
|
357
|
-
60East support for the AMPS Server SDK.</p>
|
|
358
|
-
</div>
|
|
359
|
-
</div>
|
|
360
|
-
<div class="section" id="user-generated-sow-keys">
|
|
361
|
-
<h3>User-Generated SOW Keys<a class="headerlink" href="#user-generated-sow-keys" title="Permalink to this headline">¶</a></h3>
|
|
362
|
-
<p>AMPS allows applications to explicitly generate and assign SOW keys. In
|
|
363
|
-
this case, the publisher calculates the SOW key for the message and
|
|
364
|
-
includes that key in the message when it is published. AMPS does not
|
|
365
|
-
interpret the data in the message to decide whether the message is
|
|
366
|
-
unique: AMPS uses only the value of the SOW key.</p>
|
|
367
|
-
<p>When using a user-generated SOW key, applications should consider the
|
|
368
|
-
following:</p>
|
|
369
|
-
<ul class="simple">
|
|
370
|
-
<li>All publishers should use a consistent method for generating SOW Keys</li>
|
|
371
|
-
<li>SOW Keys must contain only characters that are valid in Base64
|
|
372
|
-
encoding</li>
|
|
373
|
-
<li>The application must ensure that messages intended to be logically
|
|
374
|
-
different do not receive the same SOW key</li>
|
|
375
|
-
</ul>
|
|
376
|
-
<p>User-generated SOW keys are particularly useful for the <code class="docutils literal"><span class="pre">binary</span></code>
|
|
377
|
-
message type. For this message type, AMPS does not parse the message, so
|
|
378
|
-
providing an explicit SOW key allows you to create a SOW that contains
|
|
379
|
-
only <code class="docutils literal"><span class="pre">binary</span></code> messages.</p>
|
|
380
|
-
<p>To specify that AMPS will require publishers to this topic to submit
|
|
381
|
-
the SOW key, the <code class="docutils literal"><span class="pre">Topic</span></code> configuration does not specify any <code class="docutils literal"><span class="pre">Key</span></code>
|
|
382
|
-
fields and does not specify a <code class="docutils literal"><span class="pre">KeyGenerator</span></code> for the topic.</p>
|
|
383
|
-
</div>
|
|
384
|
-
</div>
|
|
385
|
-
<div class="section" id="sow-indexing">
|
|
386
|
-
<span id="ug-sow-indexing"></span><span id="index-4"></span><h2>SOW Indexing<a class="headerlink" href="#sow-indexing" title="Permalink to this headline">¶</a></h2>
|
|
387
|
-
<p>AMPS maintains indexes over SOW topics, views, and conflated topics to
|
|
388
|
-
improve query efficiency. There are two types of indexes available:</p>
|
|
389
|
-
<ol class="arabic simple">
|
|
390
|
-
<li><em>Memo indexes</em> are created automatically when AMPS needs to use a
|
|
391
|
-
particular field for a query. These indexes maintain the value of a
|
|
392
|
-
key, and can be used for any type of query, including regular
|
|
393
|
-
expression queries, range queries, and comparisons such as less than
|
|
394
|
-
or greater than. You can also request that AMPS pre-create an index
|
|
395
|
-
of this type with the <code class="docutils literal"><span class="pre">Index</span></code> directive of the SOW topic
|
|
396
|
-
configuration.</li>
|
|
397
|
-
<li><em>Hash indexes</em> are defined by the configuration for the topic,
|
|
398
|
-
view or conflated topic. These indexes
|
|
399
|
-
maintain a hash derived from the values provided for the fields in
|
|
400
|
-
the key. When the topic is configured so that AMPS generates the SOW
|
|
401
|
-
key, AMPS automatically creates a hash index that contains all of the
|
|
402
|
-
fields in the SOW Key. You can create any number of hash indexes for
|
|
403
|
-
a SOW topic, with any combination of fields. Hash index queries are
|
|
404
|
-
significantly faster than queries using memo indexes.</li>
|
|
405
|
-
</ol>
|
|
406
|
-
<p>A hash index can be created using any XPath Identifier in the
|
|
407
|
-
message. For example, if you are using a <code class="docutils literal"><span class="pre">composite-local</span></code> message
|
|
408
|
-
type, you can create a hash index using fields from any part of the
|
|
409
|
-
message. If you are using an <code class="docutils literal"><span class="pre">xml</span></code> message, you can create a
|
|
410
|
-
hash index that uses the XML attributes.</p>
|
|
411
|
-
<p>The values of hash indexes are always evaluated as strings. Hash
|
|
412
|
-
indexes are only used for exact matches on the value of the fields or with
|
|
413
|
-
the <code class="docutils literal"><span class="pre">IN</span></code> operator, and only for queries that use the exact set of fields
|
|
414
|
-
in the hash index. Other operators or functions (for example,
|
|
415
|
-
<code class="docutils literal"><span class="pre">LIKE</span></code>, <code class="docutils literal"><span class="pre">!=</span></code>, <code class="docutils literal"><span class="pre">BETWEEN</span></code>, <code class="docutils literal"><span class="pre">IS</span> <span class="pre">NULL</span></code>, <code class="docutils literal"><span class="pre">IS</span> <span class="pre">NOT</span> <span class="pre">NULL</span></code>, and so
|
|
416
|
-
on) cannot use the hash index.</p>
|
|
417
|
-
<p>For example, if your configuration specifies a hash index that uses
|
|
418
|
-
the fields <code class="docutils literal"><span class="pre">/address/postalCode</span></code> and <code class="docutils literal"><span class="pre">/customerType</span></code>, a filter
|
|
419
|
-
such as <code class="docutils literal"><span class="pre">/address/postalCode</span> <span class="pre">=</span> <span class="pre">'99705'</span> <span class="pre">AND</span> <span class="pre">/customerType</span> <span class="pre">=</span> <span class="pre">'retail'</span></code> will
|
|
420
|
-
use the hash index. A filter such as <code class="docutils literal"><span class="pre">/address/postalCode</span> <span class="pre">=</span> <span class="pre">'99705'</span> <span class="pre">AND</span>
|
|
421
|
-
<span class="pre">/customerType</span> <span class="pre">LIKE</span> <span class="pre">'retail|remainder'</span></code> will not use the hash index, since
|
|
422
|
-
this filter uses the <code class="docutils literal"><span class="pre">LIKE</span></code> operator rather than exact matching.</p>
|
|
423
|
-
<p>Starting with AMPS 5.3.1.0, AMPS will also use a hash index for a
|
|
424
|
-
compound filter if the <em>first</em> clause in the filter is an <code class="docutils literal"><span class="pre">IN</span></code>
|
|
425
|
-
operator that can use a hash index <em>and</em> the other comparisons
|
|
426
|
-
in the filter are evaluated using the <code class="docutils literal"><span class="pre">AND</span></code> operator. In this
|
|
427
|
-
case, AMPS evaluates the <code class="docutils literal"><span class="pre">IN</span></code> clause first, and executes the
|
|
428
|
-
rest of the expression against the results of the <code class="docutils literal"><span class="pre">IN</span></code> clause.
|
|
429
|
-
For example, a filter like <code class="docutils literal"><span class="pre">/id</span> <span class="pre">IN</span> <span class="pre">('jon',</span> <span class="pre">'jim',</span> <span class="pre">'joy')</span> <span class="pre">AND</span>
|
|
430
|
-
<span class="pre">/price</span> <span class="pre">></span> <span class="pre">50</span></code> will use a hash index to find matching records for
|
|
431
|
-
<code class="docutils literal"><span class="pre">/id</span></code> and then compare the matching records to the rest of the
|
|
432
|
-
filter (in this case, a numeric comparison on <code class="docutils literal"><span class="pre">/price</span></code>). (Notice
|
|
433
|
-
that this optimization is not available if the other comparisons use
|
|
434
|
-
the <code class="docutils literal"><span class="pre">OR</span></code> operator.)</p>
|
|
435
|
-
<p>AMPS uses a hash index for filters where possible. If the filter
|
|
436
|
-
does not meet the requirements for using a hash index, AMPS uses
|
|
437
|
-
memo indexes for the fields in the filter if those are available. If
|
|
438
|
-
one or more of the required memo indexes is not available, AMPS
|
|
439
|
-
creates the indexes during the query.</p>
|
|
440
|
-
<p>If your application frequently uses queries for an exact match on a
|
|
441
|
-
specific set of fields (for example, retrieving a set of customers by
|
|
442
|
-
the <code class="docutils literal"><span class="pre">/address/postalCode</span></code> field), creating a hash index can
|
|
443
|
-
significantly improve the speed of those queries.</p>
|
|
444
|
-
</div>
|
|
445
|
-
<div class="section" id="removing-sow-records">
|
|
446
|
-
<span id="ug-sow-delete"></span><span id="index-5"></span><h2>Removing SOW Records<a class="headerlink" href="#removing-sow-records" title="Permalink to this headline">¶</a></h2>
|
|
447
|
-
<p>AMPS allows applications to explicitly remove records from a SOW topic
|
|
448
|
-
using the <code class="docutils literal"><span class="pre">sow_delete</span></code> command.</p>
|
|
449
|
-
<p>When removing records from a SOW, there are three different ways to
|
|
450
|
-
indicate which message, or messages, will be deleted:</p>
|
|
451
|
-
<ol class="arabic simple">
|
|
452
|
-
<li>Using a content filter. AMPS will delete all messages in the SOW that
|
|
453
|
-
match the content filter. To delete every message in the SOW, use the
|
|
454
|
-
special filter <code class="docutils literal"><span class="pre">1=1</span></code> to indicate that the filter is true for every
|
|
455
|
-
message, regardless of the contents of the message. (In essence,
|
|
456
|
-
AMPS runs a query to locate the records to be deleted, and then
|
|
457
|
-
deletes the matching records.)</li>
|
|
458
|
-
<li>Using the SOW key assigned to the message. AMPS accepts a list of SOW
|
|
459
|
-
keys, and will remove the messages indicated by those SOW keys.</li>
|
|
460
|
-
<li>Using message data. The application provides message data with the
|
|
461
|
-
<code class="docutils literal"><span class="pre">sow_delete</span></code> command. AMPS parses the message data to determine the
|
|
462
|
-
SOW key for the record that would be updated if the command were
|
|
463
|
-
a <code class="docutils literal"><span class="pre">publish</span></code>, and deletes that record (if one exists). Notice that
|
|
464
|
-
if the topic is configured so that publishers must provide the
|
|
465
|
-
SOW key, the key cannot be derived from the data, which means
|
|
466
|
-
that using message data to delete messages may not produce
|
|
467
|
-
the expected results.</li>
|
|
468
|
-
</ol>
|
|
469
|
-
<p>When a record is removed from the SOW, AMPS sends an out-of-focus (OOF)
|
|
470
|
-
message to any subscriptions that have requested OOF notifications. AMPS
|
|
471
|
-
also updates any views that use the SOW topic, and the record will be
|
|
472
|
-
removed from conflated topics at the next conflation interval.</p>
|
|
473
|
-
<p>When the SOW is configured with the <code class="docutils literal"><span class="pre">History</span></code> option to enable
|
|
474
|
-
historical queries, the <code class="docutils literal"><span class="pre">sow_delete</span></code> command removes the message from
|
|
475
|
-
the current set of messages in the SOW. The command does not remove
|
|
476
|
-
previously-saved versions of the message: the historical state of the
|
|
477
|
-
SOW is unaffected by the <code class="docutils literal"><span class="pre">sow_delete</span></code>.</p>
|
|
478
|
-
<p>The most efficient way to delete a specific message or specific set of
|
|
479
|
-
messages is to use the SOW key that AMPS assigns, when that key is
|
|
480
|
-
available. You can provide these keys in the <code class="docutils literal"><span class="pre">SowKeys</span></code> header (a delete
|
|
481
|
-
by keys), or by providing a filter expression that will be evaluated as
|
|
482
|
-
a query on the primary key or a hash index. See the <a class="reference internal" href="#ug-sow-indexing"><span class="std std-ref">SOW Indexing</span></a> section for details on how AMPS determines if a hash index or primary key can be used for a filter.</p>
|
|
483
|
-
<p>When the SOW delete provides an example message to be deleted, AMPS parses
|
|
484
|
-
that message to determine the SOW key and then uses that to key to delete
|
|
485
|
-
the message, which is also relatively efficient.</p>
|
|
486
|
-
<div class="admonition tip">
|
|
487
|
-
<p class="first admonition-title">Tip</p>
|
|
488
|
-
<p>Deleting a message from the SOW means that AMPS can
|
|
489
|
-
reuse the space that the message consumed, but AMPS
|
|
490
|
-
does not reduce the size of the storage for the topic
|
|
491
|
-
when a message is removed. Typically, SOW topics
|
|
492
|
-
in production reach a steady state based on the
|
|
493
|
-
number of messages that are typically present
|
|
494
|
-
at any given time: it is most efficient to
|
|
495
|
-
simply make the space available for new messages.</p>
|
|
496
|
-
<p class="last">To reduce the size of a file used to persist
|
|
497
|
-
a topic in the SOW after messages are removed, use the
|
|
498
|
-
<a class="reference internal" href="actions.html#ug-actions-do-compact-sow"><span class="std std-ref">compact SOW action</span></a>.
|
|
499
|
-
Running this operation will typically reduce throughput
|
|
500
|
-
to the topic being compacted during the process of
|
|
501
|
-
compacting the topic, so this should only be done
|
|
502
|
-
during a maintenance window or when reducing
|
|
503
|
-
(or pausing) throughput to the topic would have
|
|
504
|
-
less impact on the application than leaving
|
|
505
|
-
the SOW file at its current size.</p>
|
|
506
|
-
</div>
|
|
507
|
-
</div>
|
|
508
|
-
<div class="section" id="sow-message-expiration">
|
|
509
|
-
<span id="index-6"></span><h2>SOW Message Expiration<a class="headerlink" href="#sow-message-expiration" title="Permalink to this headline">¶</a></h2>
|
|
510
|
-
<p>By default, a topic in the SOW stores all distinct records until a record is
|
|
511
|
-
explicitly deleted. For scenarios where message persistence needs to be
|
|
512
|
-
limited in duration, AMPS provides the ability to set a time limit on
|
|
513
|
-
the lifespan of SOW topic messages. This limit on duration is known as
|
|
514
|
-
message expiration and can be thought of as a “Time to Live” feature for
|
|
515
|
-
messages stored in a SOW topic.</p>
|
|
516
|
-
<div class="section" id="usage">
|
|
517
|
-
<h3>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h3>
|
|
518
|
-
<p>Expiration on SOW topics is disabled by default. For AMPS to expire
|
|
519
|
-
messages in a SOW topic, you must explicitly enable expiration on the
|
|
520
|
-
SOW topic.</p>
|
|
521
|
-
<p>There are two ways message expiration time can be set. First, a topic
|
|
522
|
-
recorded in the SOW can specify a default lifespan for all messages
|
|
523
|
-
stored for that topic. Second, each message can provide an expiration as
|
|
524
|
-
part of the message header.</p>
|
|
525
|
-
<p>AMPS stores the expiration time for each message individually, as a
|
|
526
|
-
property of the message in the SOW. The expiration for a given message
|
|
527
|
-
is first determined based on the message expiration specified in the
|
|
528
|
-
message header. If a message has no expiration specified in the header,
|
|
529
|
-
then the message will inherit the expiration setting for the topic
|
|
530
|
-
expiration. If there is no message expiration and no topic expiration,
|
|
531
|
-
then it is implicit that a SOW topic message will not expire. When an
|
|
532
|
-
expiration of 0 is provided in the message header, this indicates that
|
|
533
|
-
AMPS should not provide expiration for this message.</p>
|
|
534
|
-
<div class="section" id="enabling-expiration-for-a-topic">
|
|
535
|
-
<h4>Enabling Expiration for a Topic<a class="headerlink" href="#enabling-expiration-for-a-topic" title="Permalink to this headline">¶</a></h4>
|
|
536
|
-
<p>AMPS configuration supports the ability to specify a default message
|
|
537
|
-
expiration for all messages in a single SOW topic. Below is an example
|
|
538
|
-
of a configuration section for a SOW topic definition with an
|
|
539
|
-
expiration. <a class="reference internal" href="#ug-sow"><span class="std std-ref">State of the World (SOW)</span></a> has more detail on how to configure the
|
|
540
|
-
SOW topic.</p>
|
|
541
|
-
<div class="highlight-XML" id="topic-expiration-example"><div class="highlight"><pre><span></span><span class="nt"><SOW></span>
|
|
542
|
-
<span class="nt"><Topic></span>
|
|
543
|
-
<span class="nt"><Name></span>ORDERS<span class="nt"></Name></span>
|
|
544
|
-
<span class="nt"><FileName></span>sow/%n.sow<span class="nt"></FileName></span>
|
|
545
|
-
|
|
546
|
-
<span class="nt"><Expiration></span>30s<span class="nt"></Expiration></span>
|
|
547
|
-
|
|
548
|
-
<span class="nt"><Key></span>/55<span class="nt"></Key></span>
|
|
549
|
-
<span class="nt"><Key></span>/109<span class="nt"></Key></span>
|
|
550
|
-
<span class="nt"><MessageType></span>fix<span class="nt"></MessageType></span>
|
|
551
|
-
<span class="nt"></Topic></span>
|
|
552
|
-
<span class="nt"></SOW></span>
|
|
553
|
-
</pre></div>
|
|
554
|
-
</div>
|
|
555
|
-
<p><em>Topic Expiration</em></p>
|
|
556
|
-
<p>In this case, messages with no lifetime specified on the message have a
|
|
557
|
-
30 second lifetime in the SOW. When a message arrives and that message
|
|
558
|
-
has an expiration set, the message expiration on the publish
|
|
559
|
-
overrides the default expiration for the topic. Each publish or
|
|
560
|
-
delta publish that arrives, including an update to an existing
|
|
561
|
-
message, updates the expiration time.</p>
|
|
562
|
-
<p>AMPS also allows you to enable expiration on a SOW topic, but to only
|
|
563
|
-
expire messages that have message-level expiration set:</p>
|
|
564
|
-
<div class="highlight-XML" id="topic-expiration-no-interval-example"><div class="highlight"><pre><span></span><span class="nt"><SOW></span>
|
|
565
|
-
<span class="nt"><Topic></span>
|
|
566
|
-
<span class="nt"><Name></span>ORDERS<span class="nt"></Name></span>
|
|
567
|
-
<span class="nt"><FileName></span>sow/%n.sow<span class="nt"></FileName></span>
|
|
568
|
-
|
|
569
|
-
<span class="nt"><Expiration></span>enabled<span class="nt"></Expiration></span>
|
|
570
|
-
|
|
571
|
-
<span class="nt"><Key></span>/55<span class="nt"></Key></span>
|
|
572
|
-
<span class="nt"><Key></span>/109<span class="nt"></Key></span>
|
|
573
|
-
<span class="nt"><MessageType></span>fix<span class="nt"></MessageType></span>
|
|
574
|
-
<span class="nt"></Topic></span>
|
|
575
|
-
<span class="nt"></SOW></span>
|
|
576
|
-
</pre></div>
|
|
577
|
-
</div>
|
|
578
|
-
<p><em>Topic Expiration</em></p>
|
|
579
|
-
<p>With this configuration file, expiration is enabled for the topic. The
|
|
580
|
-
message lifetime is specified on each individual message. When
|
|
581
|
-
expiration is disabled for a SOW topic, AMPS preserves any message
|
|
582
|
-
expiration set on an individual message but does not expire messages.</p>
|
|
583
|
-
<p>AMPS processes expirations during startup when SOW expiration is
|
|
584
|
-
enabled. This means that any record in the SOW which needs to be expired
|
|
585
|
-
will be expired as AMPS starts. Notice that if expiration has been disabled
|
|
586
|
-
in the configuration file, AMPS will not process expiration for the topic.</p>
|
|
587
|
-
</div>
|
|
588
|
-
<div class="section" id="setting-expiration-for-a-message">
|
|
589
|
-
<h4>Setting Expiration for a Message<a class="headerlink" href="#setting-expiration-for-a-message" title="Permalink to this headline">¶</a></h4>
|
|
590
|
-
<p>When expiration is enabled for a topic in the SOW, each message
|
|
591
|
-
published to that topic expires at the configured time by default.</p>
|
|
592
|
-
<p>Individual messages have the ability to specify the expiration for that
|
|
593
|
-
individual message. When an expiration time is provided on a message,
|
|
594
|
-
that value overrides the default expiration set for the topic. For
|
|
595
|
-
example, the SOW configuration for a topic might specify an expiration
|
|
596
|
-
of 5 minutes for a pending order. For large orders, however, a publisher
|
|
597
|
-
might explicitly prevent messages from expiring by providing a <code class="docutils literal"><span class="pre">0</span></code> for
|
|
598
|
-
the expiration time when publishing the message.</p>
|
|
599
|
-
<p>AMPS does not process expiration for any messages in a topic recorded in
|
|
600
|
-
the SOW unless expiration is enabled for the topic. When expiration is
|
|
601
|
-
not configured for a topic, messages published to that topic do not
|
|
602
|
-
expire, regardless of the expiration setting on an individual message.</p>
|
|
603
|
-
</div>
|
|
604
|
-
</div>
|
|
605
|
-
<div class="section" id="example-message-lifecycle">
|
|
606
|
-
<h3>Example Message Lifecycle<a class="headerlink" href="#example-message-lifecycle" title="Permalink to this headline">¶</a></h3>
|
|
607
|
-
<p>When a message arrives, AMPS calculates the expiration time for the
|
|
608
|
-
message and stores a timestamp at which the message expires in the SOW
|
|
609
|
-
with the message. When the message contains an expiration time, AMPS
|
|
610
|
-
uses that time to create the timestamp. When the message does not
|
|
611
|
-
include an expiration time, but the topic contains an expiration time,
|
|
612
|
-
AMPS uses the topic expiration for the message. Otherwise, there is no
|
|
613
|
-
expiration set on the message, and AMPS records a timestamp value that
|
|
614
|
-
indicates no expiration.</p>
|
|
615
|
-
<p>Messages in the SOW topic can receive updates before expiration. When a
|
|
616
|
-
message is updated, the message’s expiration lifespan is reset. For
|
|
617
|
-
example, a message is first published to a SOW topic with an expiration
|
|
618
|
-
of 45 seconds. The message is updated 15 seconds after publication of
|
|
619
|
-
the initial message, and the update resets the expiration to a new 45
|
|
620
|
-
second lifespan. This process can continue for the entire lifespan of
|
|
621
|
-
the message, causing a new 45 second lifespan renewal for the message
|
|
622
|
-
with every update.</p>
|
|
623
|
-
<p>If a message expires, then the message is deleted from the SOW topic.
|
|
624
|
-
This event will trigger delete processing to be executed for the
|
|
625
|
-
message, similar to the process of executing a <code class="docutils literal"><span class="pre">sow_delete</span></code> command on
|
|
626
|
-
a message stored in a SOW topic.</p>
|
|
627
|
-
<div class="section" id="recovery-and-expiration">
|
|
628
|
-
<h4>Recovery and Expiration<a class="headerlink" href="#recovery-and-expiration" title="Permalink to this headline">¶</a></h4>
|
|
629
|
-
<p>When using message expiration, one common scenario is that the message
|
|
630
|
-
has an expiration set, but the AMPS instance is shut down during the
|
|
631
|
-
lifetime of the message.</p>
|
|
632
|
-
<p>To handle such a scenario, AMPS calculates and stores a timestamp for
|
|
633
|
-
the expiration, as described above. Therefore, if the AMPS instance is
|
|
634
|
-
shutdown, upon recovery the engine will check to see which messages
|
|
635
|
-
have expired since the occurrence of the shutdown. Any expired messages
|
|
636
|
-
will be removed from the topic as soon as possible.</p>
|
|
637
|
-
<p>Notice that, because the timestamp is stored with each message, changing
|
|
638
|
-
the default expiration of a SOW topic does not affect the lifetime of
|
|
639
|
-
messages already in the SOW. Those timestamps have already been
|
|
640
|
-
calculated, and AMPS does not recalculate them when the instance is
|
|
641
|
-
restarted or when the defaults on the SOW topic change. If expiration is
|
|
642
|
-
not enabled for the topic after the configuration change, AMPS does not
|
|
643
|
-
process expirations for that topic and messages will not expire.</p>
|
|
644
|
-
</div>
|
|
645
|
-
<div class="section" id="replication-and-expiration">
|
|
646
|
-
<h4>Replication and Expiration<a class="headerlink" href="#replication-and-expiration" title="Permalink to this headline">¶</a></h4>
|
|
647
|
-
<p>Because the expiration time is stored as an attribute of each
|
|
648
|
-
individual message, that expiration time is replicated with the
|
|
649
|
-
message. A downstream instance that receives the message via
|
|
650
|
-
replication does not reset or change the expiration time that
|
|
651
|
-
is stamped on the message.</p>
|
|
652
|
-
<p>Expiration processing happens on each individual instance.
|
|
653
|
-
The fact that a message has expired is not replicated (this
|
|
654
|
-
is not necessary, since the message expiration is stored as
|
|
655
|
-
a part of the message, so each individual instance can manage
|
|
656
|
-
expiration locally).</p>
|
|
657
|
-
</div>
|
|
658
|
-
</div>
|
|
659
|
-
</div>
|
|
660
|
-
<div class="section" id="sow-maintenance">
|
|
661
|
-
<span id="index-7"></span><h2>SOW Maintenance<a class="headerlink" href="#sow-maintenance" title="Permalink to this headline">¶</a></h2>
|
|
662
|
-
<p>Applications that store topics in the SOW must consider the ongoing
|
|
663
|
-
storage needs and file management for the SOW.</p>
|
|
664
|
-
<p>There are two aspects to SOW maintenance:</p>
|
|
665
|
-
<ol class="arabic simple">
|
|
666
|
-
<li>Ensuring that the host system has enough capacity to efficiently
|
|
667
|
-
store and manage the topics in the SOW. Capacity planning guidelines
|
|
668
|
-
are discussed in
|
|
669
|
-
<a class="reference internal" href="operation.html#operation-deployment-capacity-planning"><span class="std std-ref">Operation and Deployment</span></a>
|
|
670
|
-
in the operations section of this Guide.</li>
|
|
671
|
-
<li>Setting and implementing a data retention policy for the contents of
|
|
672
|
-
each topic in the SOW.</li>
|
|
673
|
-
</ol>
|
|
674
|
-
<p>The data retention policy for a topic in the SOW is determined by the
|
|
675
|
-
needs of your application. Consider the following questions:</p>
|
|
676
|
-
<ul>
|
|
677
|
-
<li><p class="first">Does the topic have a data set that tends to stay at a consistent
|
|
678
|
-
size? If so, there may be no need to explicitly manage data
|
|
679
|
-
retention. Many AMPS applications have topics that fall into this
|
|
680
|
-
category.</p>
|
|
681
|
-
<p>For example, an application that uses a SOW topic to track the
|
|
682
|
-
current price of a specific set of ticker symbols has little need to
|
|
683
|
-
set a data retention policy. The SOW will always contain the same
|
|
684
|
-
number of records (one for each ticker symbol), and those records
|
|
685
|
-
will always contain data of a consistent size. The application may
|
|
686
|
-
choose to remove a record when a symbol is removed from the set, but
|
|
687
|
-
otherwise rely on publishers to keep the data current.</p>
|
|
688
|
-
</li>
|
|
689
|
-
<li><p class="first">Is the data only valid for a specific period of time after the data
|
|
690
|
-
is published? If so, SOW expiration may be a good way to manage the
|
|
691
|
-
SOW.</p>
|
|
692
|
-
<p>For example, an application that needs to ensure that quotes are
|
|
693
|
-
removed from the system after 10 minutes from the time the quote is
|
|
694
|
-
published could use SOW expiration to remove records after 10
|
|
695
|
-
minutes.</p>
|
|
696
|
-
</li>
|
|
697
|
-
<li><p class="first">Is the data valid until a certain condition becomes true? If so,
|
|
698
|
-
having the application remove records from the SOW or using AMPS
|
|
699
|
-
actions may be a good way to manage the SOW.</p>
|
|
700
|
-
<p>For example, an application that needs to clear the state of the SOW
|
|
701
|
-
every 24 hours during a maintenance window could use an action to
|
|
702
|
-
remove those records. An application that can determine when a record
|
|
703
|
-
is no longer needed can remove the record immediately, which means
|
|
704
|
-
that the topic only contains data that the application needs at any
|
|
705
|
-
given time.</p>
|
|
706
|
-
</li>
|
|
707
|
-
</ul>
|
|
708
|
-
<p>Regardless of the approach an application takes, 60East recommends that
|
|
709
|
-
every application that uses a SOW consider capacity and explicitly
|
|
710
|
-
consider the data retention needs of each topic and the
|
|
711
|
-
application.</p>
|
|
712
|
-
</div>
|
|
713
|
-
<div class="section" id="efficiently-configuring-single-message-topics">
|
|
714
|
-
<span id="ug-regular-expression-topics"></span><h2>Efficiently Configuring Single-Message Topics<a class="headerlink" href="#efficiently-configuring-single-message-topics" title="Permalink to this headline">¶</a></h2>
|
|
715
|
-
<p>AMPS provides a way to easily define a set of related SOW topics by specifying
|
|
716
|
-
a <code class="docutils literal"><span class="pre">Pattern</span></code> element in the <code class="docutils literal"><span class="pre">Topic</span></code> configuration. When this element is
|
|
717
|
-
present, AMPS creates a container SOW topic that can include a number
|
|
718
|
-
of concrete topics. A publish to a topic name that matches the
|
|
719
|
-
<code class="docutils literal"><span class="pre">Pattern</span></code> will be treated as an individual SOW topic within the container
|
|
720
|
-
topic that defines the pattern. The definition of each individual topic
|
|
721
|
-
(for example, the <code class="docutils literal"><span class="pre">Key</span></code> values defined, the hash indexes defined, and so on)
|
|
722
|
-
is defined by the container <code class="docutils literal"><span class="pre">Topic</span></code>, and is the same for
|
|
723
|
-
every individual topic within the container SOW topic.</p>
|
|
724
|
-
<p>Using this approach creates a single physical topic (that is, the container
|
|
725
|
-
is a <em>single</em> in-memory SOW topic and, when the topic is persisted,
|
|
726
|
-
a single file) that contains records for any number of individual
|
|
727
|
-
topic names. The topics within the container maintain the last value
|
|
728
|
-
of each individual record within <em>each</em> of the topics. Publishers
|
|
729
|
-
and subscribers can use these topics as though the topics were each
|
|
730
|
-
configured individually as a <code class="docutils literal"><span class="pre">Topic</span></code> in the AMPS configuration file
|
|
731
|
-
(with some minor behavioral differences resulting from all of the
|
|
732
|
-
topics and messages being stored in the same data structure, as described
|
|
733
|
-
in the following sections).</p>
|
|
734
|
-
<p>Although AMPS treats every topic within the container SOW topic as
|
|
735
|
-
a distinct topic for the purposes of publishing and subscribing,
|
|
736
|
-
AMPS manages those topics as records within a single SOW object. When the overall
|
|
737
|
-
SOW topic is persisted, every message for an individual topic
|
|
738
|
-
is stored within the same file. Likewise, the overall SOW topic
|
|
739
|
-
is treated as a single topic in memory (including for monitoring and statistics
|
|
740
|
-
purposes). In cases where an application has a large number of topics
|
|
741
|
-
and each topic has a small number of messages (typically, in cases where
|
|
742
|
-
each topic has only a single message), using a <code class="docutils literal"><span class="pre">Pattern</span></code> can
|
|
743
|
-
use considerably less memory than individual <code class="docutils literal"><span class="pre">Topic</span></code> entries for the same
|
|
744
|
-
number of topics and messages.</p>
|
|
745
|
-
<div class="admonition tip">
|
|
746
|
-
<p class="first admonition-title">Tip</p>
|
|
747
|
-
<p>60East recommends using a <code class="docutils literal"><span class="pre">Pattern</span></code> for a topic in situations
|
|
748
|
-
where an existing system uses topic names rather than
|
|
749
|
-
content filtering, and it is not practical to adjust
|
|
750
|
-
the system. For example, when migrating a legacy
|
|
751
|
-
system that distinguishes orders for different customers
|
|
752
|
-
using different topic names rather than using the content
|
|
753
|
-
of the message (such as using topic names
|
|
754
|
-
<code class="docutils literal"><span class="pre">/orders/customerA</span></code> and <code class="docutils literal"><span class="pre">/orders/customerB</span></code> rather
|
|
755
|
-
than including a <code class="docutils literal"><span class="pre">customer</span></code> field on the message),
|
|
756
|
-
creating a SOW topic using a <code class="docutils literal"><span class="pre">Pattern</span></code> of <code class="docutils literal"><span class="pre">^/orders/</span></code>
|
|
757
|
-
might be the most straightforward way to adapt the system to
|
|
758
|
-
AMPS.</p>
|
|
759
|
-
<p class="last">For a small number of topics, or cases where an
|
|
760
|
-
individual topic would have a large number of
|
|
761
|
-
entries, 60East recommends using individual topics
|
|
762
|
-
rather than specifying a <code class="docutils literal"><span class="pre">Pattern</span></code>.</p>
|
|
763
|
-
</div>
|
|
764
|
-
<div class="section" id="when-to-use-a-pattern-in-a-topic">
|
|
765
|
-
<h3>When to Use a Pattern in a Topic<a class="headerlink" href="#when-to-use-a-pattern-in-a-topic" title="Permalink to this headline">¶</a></h3>
|
|
766
|
-
<p>The <code class="docutils literal"><span class="pre">Pattern</span></code> element allows you to define a large number
|
|
767
|
-
of SOW topics that will hold a small number or records (typically, only
|
|
768
|
-
one record per topic) while minimizing the memory and storage overhead
|
|
769
|
-
for each topic. This can be especially helpful when migrating
|
|
770
|
-
a system that uses topic-based routing to AMPS, since you can easily
|
|
771
|
-
create a large number of topics (hundreds or thousands) without
|
|
772
|
-
having to explicitly specify each one in the AMPS configuration file
|
|
773
|
-
in cases where it is important to query the last value of each topic.</p>
|
|
774
|
-
<p>Consider using the <code class="docutils literal"><span class="pre">Pattern</span></code> element in cases where:</p>
|
|
775
|
-
<ul class="simple">
|
|
776
|
-
<li>You need to be able to query the current value of a
|
|
777
|
-
record (or topic). If you do <em>not</em> need to query current
|
|
778
|
-
values, there is no need to define topics in the
|
|
779
|
-
SOW at all (consider using ad hoc topics instead).</li>
|
|
780
|
-
<li>The information that determines whether a given message
|
|
781
|
-
is unique is not contained in the message itself. If that
|
|
782
|
-
information is already present in the data, it is more
|
|
783
|
-
efficient to use a <code class="docutils literal"><span class="pre">Topic</span></code> with the unique property
|
|
784
|
-
configured as a <code class="docutils literal"><span class="pre">Key</span></code>.</li>
|
|
785
|
-
<li>The messages have the same structure, and are the same
|
|
786
|
-
logical type of message. Messages that are different types,
|
|
787
|
-
or that have different structures, would typically be
|
|
788
|
-
represented in different topics.</li>
|
|
789
|
-
<li>Your application requires a large number of topics, or
|
|
790
|
-
you do not know the topics in advance, such that it is
|
|
791
|
-
impractical to define the topics using individual <code class="docutils literal"><span class="pre">Topic</span></code>
|
|
792
|
-
declarations.</li>
|
|
793
|
-
<li>Each unique topic will have a small number of messages
|
|
794
|
-
(ideally, only one message per topic).</li>
|
|
795
|
-
<li>Your application does not require historical point in
|
|
796
|
-
time query, or enrichment on the messages.</li>
|
|
797
|
-
<li>All of the topics to be managed together have the same general
|
|
798
|
-
set of permissions. AMPS does not support applying different
|
|
799
|
-
entitlements to individual topics within an overall SOW
|
|
800
|
-
topic (some limited workarounds are available through
|
|
801
|
-
content filters).</li>
|
|
802
|
-
</ul>
|
|
803
|
-
<p>If any of the above considerations are not true, consider
|
|
804
|
-
using a set of <code class="docutils literal"><span class="pre">Topic</span></code> declarations rather than
|
|
805
|
-
using the <code class="docutils literal"><span class="pre">Pattern</span></code> element in a single <code class="docutils literal"><span class="pre">Topic</span></code>.</p>
|
|
806
|
-
<p>Container topics are most commonly used when adapting a
|
|
807
|
-
system that did not support content filtering
|
|
808
|
-
(content-based routing) to an AMPS-based application
|
|
809
|
-
in cases where the message data itself does not contain
|
|
810
|
-
enough information to support content-based routing.
|
|
811
|
-
Applications designed for AMPS most frequently use a
|
|
812
|
-
<code class="docutils literal"><span class="pre">Topic</span></code> and content filtering rather specifying a
|
|
813
|
-
<code class="docutils literal"><span class="pre">Pattern</span></code> for a <code class="docutils literal"><span class="pre">Topic</span></code> and providing routing
|
|
814
|
-
information in the topic name.</p>
|
|
815
|
-
</div>
|
|
816
|
-
<div class="section" id="limitations-and-differences-between-topics-with-and-without-pattern">
|
|
817
|
-
<h3>Limitations and Differences Between Topics With and Without Pattern<a class="headerlink" href="#limitations-and-differences-between-topics-with-and-without-pattern" title="Permalink to this headline">¶</a></h3>
|
|
818
|
-
<p>For most purposes, topics that use a <code class="docutils literal"><span class="pre">Pattern</span></code> work just like any other
|
|
819
|
-
topic defined using the <code class="docutils literal"><span class="pre">Topic</span></code> directive. However, there are some
|
|
820
|
-
differences in behavior, as outlined below:</p>
|
|
821
|
-
<ul class="simple">
|
|
822
|
-
<li>When an application issues a <code class="docutils literal"><span class="pre">sow</span></code> or <code class="docutils literal"><span class="pre">sow_and_subscribe</span></code>
|
|
823
|
-
that uses a regular expression for the topic name, messages
|
|
824
|
-
from topics within a topic that uses <code class="docutils literal"><span class="pre">Pattern</span></code>
|
|
825
|
-
are delivered between a <em>single</em> <code class="docutils literal"><span class="pre">group_begin</span></code> and
|
|
826
|
-
<code class="docutils literal"><span class="pre">group_end</span></code> pair. Messages from any
|
|
827
|
-
topic name within the topic may be delivered in any order
|
|
828
|
-
within the query results. Each message will indicate which
|
|
829
|
-
topic within the topic it originated from.</li>
|
|
830
|
-
<li>A topic that uses <code class="docutils literal"><span class="pre">Pattern</span></code> <em>cannot</em> be the underlying topic
|
|
831
|
-
for a view.</li>
|
|
832
|
-
<li>A topic that uses <code class="docutils literal"><span class="pre">Pattern</span></code> can be the underlying topic
|
|
833
|
-
for a conflated topic, but the conflated topic must be
|
|
834
|
-
configured to use such a topic.</li>
|
|
835
|
-
<li>All of the topic names within the topic must have the
|
|
836
|
-
same permissions.</li>
|
|
837
|
-
</ul>
|
|
838
|
-
</div>
|
|
839
|
-
<div class="section" id="configuration-file-precedence">
|
|
840
|
-
<h3>Configuration File Precedence<a class="headerlink" href="#configuration-file-precedence" title="Permalink to this headline">¶</a></h3>
|
|
841
|
-
<p>AMPS allows you to define a standalone topic, view, queue, or
|
|
842
|
-
conflated topic with a <code class="docutils literal"><span class="pre">Name</span></code> that matches the <code class="docutils literal"><span class="pre">Pattern</span></code>
|
|
843
|
-
of the <code class="docutils literal"><span class="pre">Topic</span></code>. To do so, however, that definition must
|
|
844
|
-
appear in the configuration file <strong>before</strong> the definition of
|
|
845
|
-
the topic that uses the <code class="docutils literal"><span class="pre">Pattern</span></code>. The topic, view, queue,
|
|
846
|
-
or conflated topic will be configured as though
|
|
847
|
-
the topic that defined the <code class="docutils literal"><span class="pre">Pattern</span></code> is not present.</p>
|
|
848
|
-
<p>For example, the following <code class="docutils literal"><span class="pre">SOW</span></code> configuration creates
|
|
849
|
-
a <code class="docutils literal"><span class="pre">Topic</span></code> named <code class="docutils literal"><span class="pre">/orders/specialHandling</span></code> and a
|
|
850
|
-
<code class="docutils literal"><span class="pre">Topic</span></code> with a <code class="docutils literal"><span class="pre">Pattern</span></code> that matches <code class="docutils literal"><span class="pre">^/orders/</span></code>. The
|
|
851
|
-
<code class="docutils literal"><span class="pre">/orders/specialHandling</span></code> topic adds preprocessing, and
|
|
852
|
-
could also, in principle, have different permissions than
|
|
853
|
-
the topic names that are matched by the <code class="docutils literal"><span class="pre">Pattern</span></code>.</p>
|
|
854
|
-
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt"><SOW></span>
|
|
855
|
-
<span class="nt"><Topic></span>
|
|
856
|
-
<span class="nt"><Name></span>/orders/specialHandling<span class="nt"></Name></span>
|
|
857
|
-
<span class="nt"><MessageType></span>json<span class="nt"></MessageType></span>
|
|
858
|
-
<span class="nt"><Key></span>/orderId<span class="nt"></Key></span>
|
|
859
|
-
<span class="nt"><Preprocessing></span>
|
|
860
|
-
<span class="nt"><Field></span>COALESCE(/orderId,
|
|
861
|
-
CONCAT(/customerName, /customerSerialNumber)) as /orderId<span class="nt"></Field></span>
|
|
862
|
-
<span class="nt"></Preprocessing></span>
|
|
863
|
-
<span class="nt"><FileName></span>./sow/%n.sow<span class="nt"></FileName></span>
|
|
864
|
-
<span class="nt"></Topic></span>
|
|
865
|
-
|
|
866
|
-
<span class="c"><!-- Regular expression topic since this definition</span>
|
|
867
|
-
<span class="c"> has a Pattern directive. --></span>
|
|
868
|
-
|
|
869
|
-
<span class="nt"><Topic></span>
|
|
870
|
-
<span class="nt"><Name></span>RegexOrders<span class="nt"></Name></span>
|
|
871
|
-
<span class="nt"><Pattern></span>^/orders/<span class="nt"></Pattern></span>
|
|
872
|
-
<span class="nt"><MessageType></span>json<span class="nt"></MessageType></span>
|
|
873
|
-
<span class="nt"><Key></span>/orderId<span class="nt"></Key></span>
|
|
874
|
-
<span class="nt"><FileName></span>./sow/%n.sow<span class="nt"></FileName></span>
|
|
875
|
-
<span class="nt"></Topic></span>
|
|
876
|
-
<span class="nt"></SOW></span>
|
|
877
|
-
</pre></div>
|
|
878
|
-
</div>
|
|
879
|
-
<p>With these definitions, a publish to the following topic names
|
|
880
|
-
would produce the following results:</p>
|
|
881
|
-
<table border="1" class="docutils">
|
|
882
|
-
<colgroup>
|
|
883
|
-
<col width="50%" />
|
|
884
|
-
<col width="50%" />
|
|
885
|
-
</colgroup>
|
|
886
|
-
<thead valign="bottom">
|
|
887
|
-
<tr class="row-odd"><th class="head"><strong>Message Published to Topic</strong></th>
|
|
888
|
-
<th class="head"><strong>Results</strong></th>
|
|
889
|
-
</tr>
|
|
890
|
-
</thead>
|
|
891
|
-
<tbody valign="top">
|
|
892
|
-
<tr class="row-even"><td><code class="docutils literal"><span class="pre">/orders/specialHandling</span></code></td>
|
|
893
|
-
<td>Matches <code class="docutils literal"><span class="pre">Topic</span></code> definition.
|
|
894
|
-
Stored in the <code class="docutils literal"><span class="pre">Topic</span></code>.
|
|
895
|
-
The <code class="docutils literal"><span class="pre">Preprocessing</span></code> directive runs
|
|
896
|
-
and creates the <code class="docutils literal"><span class="pre">/orderId</span></code> from the
|
|
897
|
-
<code class="docutils literal"><span class="pre">/customerName</span></code> and
|
|
898
|
-
<code class="docutils literal"><span class="pre">/customerSerialNumber</span></code> if there is
|
|
899
|
-
no <code class="docutils literal"><span class="pre">/orderId</span></code> already present.</td>
|
|
900
|
-
</tr>
|
|
901
|
-
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">/orders/RHAT</span></code></td>
|
|
902
|
-
<td>Matches the regular expression topic
|
|
903
|
-
definition, stored in the regular
|
|
904
|
-
expression topic.</td>
|
|
905
|
-
</tr>
|
|
906
|
-
<tr class="row-even"><td><code class="docutils literal"><span class="pre">/orders/specialHandling/oops</span></code></td>
|
|
907
|
-
<td>Matches the regular expression topic
|
|
908
|
-
definition, stored in the regular
|
|
909
|
-
expression topic. Notice
|
|
910
|
-
that a <code class="docutils literal"><span class="pre">Topic</span></code> definition is an
|
|
911
|
-
<em>exact</em> match on the topic name, not a
|
|
912
|
-
pattern match.</td>
|
|
913
|
-
</tr>
|
|
914
|
-
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">/customer/orders/timothy_someone</span></code></td>
|
|
915
|
-
<td>Does not match either the <code class="docutils literal"><span class="pre">Topic</span></code> or
|
|
916
|
-
the regular expression topic. Not
|
|
917
|
-
included in the SOW.</td>
|
|
918
|
-
</tr>
|
|
919
|
-
</tbody>
|
|
920
|
-
</table>
|
|
921
|
-
</div>
|
|
922
|
-
<div class="section" id="entitlements-for-topics-with-a-pattern">
|
|
923
|
-
<h3>Entitlements for Topics with a Pattern<a class="headerlink" href="#entitlements-for-topics-with-a-pattern" title="Permalink to this headline">¶</a></h3>
|
|
924
|
-
<p>AMPS considers permissions for all of the individual topics within
|
|
925
|
-
the container SOW topic to be identical. When checking permissions for
|
|
926
|
-
the topic with an entitlement module, AMPS requests that the module provide
|
|
927
|
-
permissions for the <code class="docutils literal"><span class="pre">Pattern</span></code> specified in the topic.
|
|
928
|
-
Any topic name included in the container will use the permissions,
|
|
929
|
-
entitlement filter, and entitlement select list specified by the module
|
|
930
|
-
for that <code class="docutils literal"><span class="pre">Pattern</span></code>.</p>
|
|
931
|
-
<p>If it becomes necessary to restrict access to individual topics within
|
|
932
|
-
the container topic, there are two approaches that you can take:</p>
|
|
933
|
-
<ol class="arabic simple">
|
|
934
|
-
<li>Create a new topic with a <code class="docutils literal"><span class="pre">Pattern</span></code> that
|
|
935
|
-
specifies the topics that require different permissions, and
|
|
936
|
-
apply the permissions to that topic.</li>
|
|
937
|
-
<li>Provide an entitlement filter that uses the <code class="docutils literal"><span class="pre">TOPIC_NAME()</span></code>
|
|
938
|
-
function to restrict access to specific topic names; for example,
|
|
939
|
-
<code class="docutils literal"><span class="pre">TOPIC_NAME()</span> <span class="pre">IN</span> <span class="pre">('/orders/RHAT',</span> <span class="pre">'/orders/MSFT',</span> <span class="pre">'/orders/IBM')</span></code>.
|
|
940
|
-
Using this method is less efficient than providing permissions
|
|
941
|
-
for those topics (either as standalone topics, or for a
|
|
942
|
-
regular expression topic containing exactly those three topics),
|
|
943
|
-
but this approach can be a good option in cases
|
|
944
|
-
where subscribers typically subscribe only to the topics they
|
|
945
|
-
are entitled to, different subscribers have substantially different
|
|
946
|
-
sets of entitlements, or there are no logical or convenient groupings
|
|
947
|
-
that can be used to separate the topics into several
|
|
948
|
-
regular expression topic declarations.</li>
|
|
949
|
-
</ol>
|
|
950
|
-
</div>
|
|
951
|
-
</div>
|
|
952
|
-
<div class="section" id="configuration">
|
|
953
|
-
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2>
|
|
954
|
-
<p id="index-8">Topics where SOW persistence is desired are individually configured
|
|
955
|
-
within the <code class="docutils literal"><span class="pre">SOW</span></code> section of the configuration file. Each topic will be
|
|
956
|
-
defined with a <code class="docutils literal"><span class="pre">Topic</span></code> section enclosed within <code class="docutils literal"><span class="pre">SOW</span></code>. The <em>AMPS
|
|
957
|
-
Configuration Reference</em> contains a description of the attributes that
|
|
958
|
-
can be configured per topic. <code class="docutils literal"><span class="pre">TopicMetaData</span></code> is a synonym for <code class="docutils literal"><span class="pre">SOW</span></code>
|
|
959
|
-
provided for compatibility with previous versions of AMPS. Likewise,
|
|
960
|
-
<code class="docutils literal"><span class="pre">TopicDefinition</span></code> is a synonym for the <code class="docutils literal"><span class="pre">Topic</span></code> element of the SOW
|
|
961
|
-
section, provided for compatibility with versions of AMPS prior to 5.0.</p>
|
|
962
|
-
<p>For the set of configuration options available in a SOW topic, see <a class="reference external" href="../../../configuration/html/chapters/sow.html#sow-topic">SOW/Topic</a> in the <a class="reference external" href="../../../configuration/html/index.html">AMPS Configuration Reference</a>.</p>
|
|
963
|
-
<p>The SOW cofiguration below, is an example of using <code class="docutils literal"><span class="pre">Topic</span></code> to add a SOW
|
|
964
|
-
topic to the AMPS configuration. One topic named <code class="docutils literal"><span class="pre">ORDERS</span></code> is defined as
|
|
965
|
-
having key <code class="docutils literal"><span class="pre">/invoice</span></code>, <code class="docutils literal"><span class="pre">/customerId</span></code> and <code class="docutils literal"><span class="pre">MessageType</span></code>
|
|
966
|
-
of <code class="docutils literal"><span class="pre">json</span></code>. The persistence file for this topic is saved in the
|
|
967
|
-
<code class="docutils literal"><span class="pre">sow/ORDERS.json.sow</span></code> file. For every message published to the
|
|
968
|
-
<code class="docutils literal"><span class="pre">ORDERS</span></code> topic, a unique key will be assigned to each record with a
|
|
969
|
-
unique combination of the fields <code class="docutils literal"><span class="pre">/invoice</span></code> and <code class="docutils literal"><span class="pre">/customerId</span></code>. A
|
|
970
|
-
second topic named <code class="docutils literal"><span class="pre">ALERTS</span></code> is also defined with a <code class="docutils literal"><span class="pre">MessageType</span></code> of
|
|
971
|
-
<code class="docutils literal"><span class="pre">xml</span></code> keyed off of <code class="docutils literal"><span class="pre">/client/id</span></code>. The SOW persistence file for
|
|
972
|
-
<code class="docutils literal"><span class="pre">ALERTS</span></code> is saved in the <code class="docutils literal"><span class="pre">sow/ALERTS.xml.sow</span></code> file.</p>
|
|
973
|
-
<div class="highlight-XML" id="sow-topic-config"><div class="highlight"><pre><span></span><span class="nt"><SOW></span>
|
|
974
|
-
<span class="nt"><Topic></span>
|
|
975
|
-
<span class="nt"><Name></span>ORDERS<span class="nt"></Name></span>
|
|
976
|
-
<span class="nt"><FileName></span>sow/%n.sow<span class="nt"></FileName></span>
|
|
977
|
-
<span class="nt"><Key></span>/invoice<span class="nt"></Key></span>
|
|
978
|
-
<span class="nt"><Key></span>/customerId<span class="nt"></Key></span>
|
|
979
|
-
<span class="nt"><MessageType></span>json<span class="nt"></MessageType></span>
|
|
980
|
-
<span class="nt"><SlabSize></span>1MB<span class="nt"></SlabSize></span>
|
|
981
|
-
<span class="nt"><HashIndex></span>
|
|
982
|
-
<span class="nt"><Key></span>/region<span class="nt"></Key></span>
|
|
983
|
-
<span class="nt"></HashIndex></span>
|
|
984
|
-
<span class="nt"></Topic></span>
|
|
985
|
-
|
|
986
|
-
<span class="nt"><Topic></span>
|
|
987
|
-
<span class="nt"><Name></span>ALERTS<span class="nt"></Name></span>
|
|
988
|
-
<span class="nt"><FileName></span>sow/%n.sow<span class="nt"></FileName></span>
|
|
989
|
-
<span class="nt"><Key></span>/client/id<span class="nt"></Key></span>
|
|
990
|
-
<span class="nt"><MessageType></span>xml<span class="nt"></MessageType></span>
|
|
991
|
-
<span class="c"><!-- Pregenerate an index for the /alert/type element. This is seldom necessary,</span>
|
|
992
|
-
<span class="c"> since AMPS will generate the index when it is needed, but the directive is included here</span>
|
|
993
|
-
<span class="c"> for example purposes. --></span>
|
|
994
|
-
<span class="nt"><Index></span>/alert/type<span class="nt"></Index></span>
|
|
995
|
-
<span class="nt"></Topic></span>
|
|
996
|
-
<span class="nt"></SOW></span>
|
|
997
|
-
</pre></div>
|
|
998
|
-
</div>
|
|
999
|
-
<p><em>Sample SOW Configuration</em></p>
|
|
1000
|
-
<div class="admonition tip">
|
|
1001
|
-
<p class="first admonition-title">Tip</p>
|
|
1002
|
-
<p>Topics are scoped by their message type.</p>
|
|
1003
|
-
<p>For example, two topics named Orders can be created: one which
|
|
1004
|
-
supports <code class="docutils literal"><span class="pre">MessageType</span></code> of <code class="docutils literal"><span class="pre">json</span></code> and another which supports
|
|
1005
|
-
<code class="docutils literal"><span class="pre">MessageType</span></code> of <code class="docutils literal"><span class="pre">xml</span></code>.</p>
|
|
1006
|
-
<p>Each of the <code class="docutils literal"><span class="pre">MessageType</span></code> entries that are defined for the
|
|
1007
|
-
<code class="docutils literal"><span class="pre">Orders</span></code> topic will require that <code class="docutils literal"><span class="pre">Transport</span></code> in the
|
|
1008
|
-
configuration file can accept messages of that type. Otherwise,
|
|
1009
|
-
there is no way for a publisher to publish messages of that type
|
|
1010
|
-
to this instance or for a subscriber to receive messages of that
|
|
1011
|
-
type from this instance.</p>
|
|
1012
|
-
<p class="last">This means that messages published to the <code class="docutils literal"><span class="pre">Orders</span></code> topic must
|
|
1013
|
-
know the type of message they are sending (<code class="docutils literal"><span class="pre">json</span></code> or <code class="docutils literal"><span class="pre">xml</span></code>)
|
|
1014
|
-
and the port defined by the transport.</p>
|
|
1015
|
-
</div>
|
|
1016
|
-
</div>
|
|
1017
|
-
</div>
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
</div>
|
|
1021
|
-
</div>
|
|
1022
|
-
</div>
|
|
1023
|
-
<div class="clearer"></div>
|
|
1024
|
-
</div>
|
|
1025
|
-
<div class="footer">
|
|
1026
|
-
©2023 60East Technologies, Inc. (version develop).
|
|
1027
|
-
|
|
1028
|
-
|
|
|
1029
|
-
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.5.3</a>
|
|
1030
|
-
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
|
|
1031
|
-
|
|
1032
|
-
</div>
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
</body>
|
|
1038
|
-
</html>
|