amps-python-client 5.3.4.1__zip → 5.3.4.2__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. amps-python-client-5.3.4.2/PKG-INFO +112 -0
  2. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  3. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  4. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  5. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  6. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  7. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  8. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  9. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  10. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  11. amps-python-client-5.3.4.2/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  12. amps-python-client-5.3.4.2/docs/command-reference/doctrees/environment.pickle +0 -0
  13. amps-python-client-5.3.4.2/docs/command-reference/doctrees/index.doctree +0 -0
  14. amps-python-client-5.3.4.2/docs/command-reference/html/.buildinfo +4 -0
  15. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +8 -0
  16. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +8 -0
  17. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/intro.rst.txt +8 -0
  18. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/logon.rst.txt +8 -0
  19. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +8 -0
  20. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/publishing.rst.txt +8 -0
  21. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +8 -0
  22. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +8 -0
  23. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/removing.rst.txt +8 -0
  24. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/chapters/utilities.rst.txt +8 -0
  25. amps-python-client-5.3.4.2/docs/command-reference/html/_sources/index.rst.txt +36 -0
  26. amps-python-client-5.3.4.2/docs/command-reference/html/_static/custom.css +161 -0
  27. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/ack-messages.html +95 -0
  28. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/content-messages.html +95 -0
  29. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/intro.html +95 -0
  30. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/logon.html +95 -0
  31. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/protocol-reference.html +93 -0
  32. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/publishing.html +95 -0
  33. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-delimiters.html +95 -0
  34. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/query-subscribe.html +95 -0
  35. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/removing.html +95 -0
  36. amps-python-client-5.3.4.2/docs/command-reference/html/chapters/utilities.html +95 -0
  37. amps-python-client-5.3.4.2/docs/command-reference/html/genindex.html +97 -0
  38. amps-python-client-5.3.4.2/docs/command-reference/html/index.html +98 -0
  39. amps-python-client-5.3.4.2/docs/command-reference/html/objects.inv +6 -0
  40. amps-python-client-5.3.4.2/docs/command-reference/html/search.html +107 -0
  41. amps-python-client-5.3.4.2/docs/command-reference/html/searchindex.js +1 -0
  42. amps-python-client-5.3.4.2/docs/html/.buildinfo +4 -0
  43. amps-python-client-5.3.4.2/docs/html/code.html +6616 -0
  44. amps-python-client-5.3.4.2/docs/html/genindex.html +1363 -0
  45. amps-python-client-5.3.4.2/docs/html/index.html +131 -0
  46. amps-python-client-5.3.4.2/docs/html/objects.inv +0 -0
  47. amps-python-client-5.3.4.2/docs/html/py-modindex.html +111 -0
  48. amps-python-client-5.3.4.2/docs/html/search.html +107 -0
  49. amps-python-client-5.3.4.2/docs/html/searchindex.js +1 -0
  50. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  51. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  52. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  53. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  54. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/deltas.doctree +0 -0
  55. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  56. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  57. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/first-program.doctree +0 -0
  58. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  59. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/installing.doctree +0 -0
  60. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/introduction.doctree +0 -0
  61. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  62. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  63. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/queues.doctree +0 -0
  64. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/sow.doctree +0 -0
  65. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  66. amps-python-client-5.3.4.2/docs/python/doctrees/chapters/utilities.doctree +0 -0
  67. amps-python-client-5.3.4.2/docs/python/doctrees/environment.pickle +0 -0
  68. amps-python-client-5.3.4.2/docs/python/doctrees/index.doctree +0 -0
  69. amps-python-client-5.3.4.2/docs/python/html/.buildinfo +4 -0
  70. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/advanced-topics.rst.txt +398 -0
  71. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +26 -0
  72. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/creating-commands.rst.txt +159 -0
  73. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/deltas.rst.txt +79 -0
  74. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/error-handling.rst.txt +481 -0
  75. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/exceptions.rst.txt +123 -0
  76. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/first-program.rst.txt +168 -0
  77. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/high-availability.rst.txt +879 -0
  78. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/installing.rst.txt +184 -0
  79. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/introduction.rst.txt +50 -0
  80. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +32 -0
  81. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/performance-tips.rst.txt +432 -0
  82. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/queues.rst.txt +282 -0
  83. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/sow.rst.txt +294 -0
  84. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/subscriptions.rst.txt +374 -0
  85. amps-python-client-5.3.4.2/docs/python/html/_sources/chapters/utilities.rst.txt +214 -0
  86. amps-python-client-5.3.4.2/docs/python/html/_static/custom.css +161 -0
  87. amps-python-client-5.3.4.2/docs/python/html/chapters/advanced-topics.html +447 -0
  88. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-compiler-list.html +92 -0
  89. amps-python-client-5.3.4.2/docs/python/html/chapters/cpp-feature-table.html +156 -0
  90. amps-python-client-5.3.4.2/docs/python/html/chapters/creating-commands.html +2882 -0
  91. amps-python-client-5.3.4.2/docs/python/html/chapters/deltas.html +169 -0
  92. amps-python-client-5.3.4.2/docs/python/html/chapters/error-handling.html +745 -0
  93. amps-python-client-5.3.4.2/docs/python/html/chapters/exceptions.html +266 -0
  94. amps-python-client-5.3.4.2/docs/python/html/chapters/first-program.html +526 -0
  95. amps-python-client-5.3.4.2/docs/python/html/chapters/high-availability.html +1017 -0
  96. amps-python-client-5.3.4.2/docs/python/html/chapters/installing.html +264 -0
  97. amps-python-client-5.3.4.2/docs/python/html/chapters/introduction.html +245 -0
  98. amps-python-client-5.3.4.2/docs/python/html/chapters/moving-from-python-lite.html +118 -0
  99. amps-python-client-5.3.4.2/docs/python/html/chapters/performance-tips.html +499 -0
  100. amps-python-client-5.3.4.2/docs/python/html/chapters/queues.html +352 -0
  101. amps-python-client-5.3.4.2/docs/python/html/chapters/sow.html +383 -0
  102. amps-python-client-5.3.4.2/docs/python/html/chapters/subscriptions.html +535 -0
  103. amps-python-client-5.3.4.2/docs/python/html/chapters/utilities.html +302 -0
  104. amps-python-client-5.3.4.2/docs/python/html/genindex.html +351 -0
  105. amps-python-client-5.3.4.2/docs/python/html/index.html +382 -0
  106. amps-python-client-5.3.4.2/docs/python/html/objects.inv +0 -0
  107. amps-python-client-5.3.4.2/docs/python/html/search.html +107 -0
  108. amps-python-client-5.3.4.2/docs/python/html/searchindex.js +1 -0
  109. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  110. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  111. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/environment.pickle +0 -0
  112. amps-python-client-5.3.4.2/docs/python-quickstart/doctrees/index.doctree +0 -0
  113. amps-python-client-5.3.4.2/docs/python-quickstart/html/.buildinfo +4 -0
  114. amps-python-client-5.3.4.2/docs/python-quickstart/html/_static/custom.css +161 -0
  115. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/crankitup.html +271 -0
  116. amps-python-client-5.3.4.2/docs/python-quickstart/html/chapters/equipment.html +105 -0
  117. amps-python-client-5.3.4.2/docs/python-quickstart/html/genindex.html +97 -0
  118. amps-python-client-5.3.4.2/docs/python-quickstart/html/index.html +381 -0
  119. amps-python-client-5.3.4.2/docs/python-quickstart/html/objects.inv +0 -0
  120. amps-python-client-5.3.4.2/docs/python-quickstart/html/search.html +107 -0
  121. amps-python-client-5.3.4.2/docs/python-quickstart/html/searchindex.js +1 -0
  122. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  123. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  124. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  125. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  126. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  127. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  128. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  129. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  130. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  131. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  132. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  133. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  134. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  135. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  136. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  137. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  138. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  139. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  140. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  141. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  142. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  143. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  144. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  145. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  146. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  147. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  148. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  149. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  150. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  151. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  152. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  153. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  154. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  155. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  156. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  157. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  158. amps-python-client-5.3.4.2/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  159. amps-python-client-5.3.4.2/docs/user-guide/doctrees/environment.pickle +0 -0
  160. amps-python-client-5.3.4.2/docs/user-guide/doctrees/index.doctree +0 -0
  161. amps-python-client-5.3.4.2/docs/user-guide/html/.buildinfo +4 -0
  162. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/acks.rst.txt +8 -0
  163. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/actions.rst.txt +8 -0
  164. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +8 -0
  165. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +8 -0
  166. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +8 -0
  167. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +8 -0
  168. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +8 -0
  169. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +8 -0
  170. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +8 -0
  171. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/daemon.rst.txt +8 -0
  172. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/delta.rst.txt +8 -0
  173. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/distribution.rst.txt +8 -0
  174. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +8 -0
  175. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/events.rst.txt +8 -0
  176. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +8 -0
  177. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/glossary.rst.txt +8 -0
  178. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/ha.rst.txt +8 -0
  179. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +8 -0
  180. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/intro.rst.txt +8 -0
  181. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/logging.rst.txt +8 -0
  182. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +8 -0
  183. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +8 -0
  184. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/oof.rst.txt +8 -0
  185. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/operation.rst.txt +8 -0
  186. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +8 -0
  187. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/queues.rst.txt +8 -0
  188. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/replication.rst.txt +8 -0
  189. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/securing.rst.txt +8 -0
  190. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow.rst.txt +8 -0
  191. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +8 -0
  192. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/transports.rst.txt +8 -0
  193. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +8 -0
  194. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/txlog.rst.txt +8 -0
  195. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/usecases.rst.txt +8 -0
  196. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/utilities.rst.txt +8 -0
  197. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/chapters/views.rst.txt +8 -0
  198. amps-python-client-5.3.4.2/docs/user-guide/html/_sources/index.rst.txt +62 -0
  199. amps-python-client-5.3.4.2/docs/user-guide/html/_static/custom.css +161 -0
  200. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/acks.html +94 -0
  201. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/actions.html +94 -0
  202. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps-statistics.html +94 -0
  203. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_expressions.html +94 -0
  204. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/amps_functions.html +94 -0
  205. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/auxiliary_modules.html +94 -0
  206. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/config-file-shortcuts.html +94 -0
  207. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/conflated_topics.html +94 -0
  208. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/constructing-fields.html +94 -0
  209. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/daemon.html +94 -0
  210. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/delta.html +94 -0
  211. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/distribution.html +94 -0
  212. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/enrichment.html +94 -0
  213. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/events.html +94 -0
  214. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/file_format_versions.html +94 -0
  215. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/glossary.html +92 -0
  216. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/ha.html +94 -0
  217. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/installing_and_starting.html +94 -0
  218. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/intro.html +94 -0
  219. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/logging.html +94 -0
  220. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/messageTypes.html +94 -0
  221. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/monitoring.html +94 -0
  222. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/oof.html +94 -0
  223. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/operation.html +94 -0
  224. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/pub_sub.html +94 -0
  225. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/queues.html +94 -0
  226. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/replication.html +94 -0
  227. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/securing.html +94 -0
  228. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow.html +94 -0
  229. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/sow_queries.html +94 -0
  230. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/spark.html +819 -0
  231. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/transports.html +94 -0
  232. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/troubleshooting.html +94 -0
  233. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/txlog.html +94 -0
  234. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/usecases.html +94 -0
  235. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/utilities.html +94 -0
  236. amps-python-client-5.3.4.2/docs/user-guide/html/chapters/views.html +94 -0
  237. amps-python-client-5.3.4.2/docs/user-guide/html/genindex.html +133 -0
  238. amps-python-client-5.3.4.2/docs/user-guide/html/index.html +96 -0
  239. amps-python-client-5.3.4.2/docs/user-guide/html/objects.inv +0 -0
  240. amps-python-client-5.3.4.2/docs/user-guide/html/search.html +106 -0
  241. amps-python-client-5.3.4.2/docs/user-guide/html/searchindex.js +1 -0
  242. amps-python-client-5.3.4.2/include/ampspy_bookmarkstore.hpp +63 -0
  243. amps-python-client-5.3.4.2/include/ampspy_compat.h +63 -0
  244. amps-python-client-5.3.4.2/include/ampspy_defs.hpp +181 -0
  245. amps-python-client-5.3.4.2/include/ampspy_recoverypointadapter.hpp +52 -0
  246. amps-python-client-5.3.4.2/include/ampspy_shims.hpp +113 -0
  247. amps-python-client-5.3.4.2/include/ampspy_type_object.hpp +242 -0
  248. amps-python-client-5.3.4.2/include/ampspy_types.hpp +1139 -0
  249. amps-python-client-5.3.4.2/include/ampspyver.h +30 -0
  250. amps-python-client-5.3.4.2/index.html +66 -0
  251. amps-python-client-5.3.4.2/samples/AMPSConsolePublisher.py +59 -0
  252. amps-python-client-5.3.4.2/samples/AMPSConsoleSubscriber.py +63 -0
  253. amps-python-client-5.3.4.2/samples/AMPSFIXBuilderPublisher.py +71 -0
  254. amps-python-client-5.3.4.2/samples/AMPSFIXShredderSubscriber.py +69 -0
  255. amps-python-client-5.3.4.2/samples/AMPSNVFIXBuilderPublisher.py +71 -0
  256. amps-python-client-5.3.4.2/samples/AMPSNVFIXShredderSubscriber.py +67 -0
  257. amps-python-client-5.3.4.2/samples/AMPSPublishForReplay.py +81 -0
  258. amps-python-client-5.3.4.2/samples/AMPSQueueConsumer.py +69 -0
  259. amps-python-client-5.3.4.2/samples/AMPSQueuePublisher.py +59 -0
  260. amps-python-client-5.3.4.2/samples/AMPSSOWConsolePublisher.py +67 -0
  261. amps-python-client-5.3.4.2/samples/AMPSSOWConsoleSubscriber.py +77 -0
  262. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeConsoleSubscriber.py +79 -0
  263. amps-python-client-5.3.4.2/samples/AMPSSOWandSubscribeWithOOF.py +108 -0
  264. amps-python-client-5.3.4.2/samples/AMPSSubscribeForReplay.py +128 -0
  265. amps-python-client-5.3.4.2/samples/AMPSUpdateForOOF.py +123 -0
  266. amps-python-client-5.3.4.2/samples/CompositeMessagePublisher.py +84 -0
  267. amps-python-client-5.3.4.2/samples/CompositeMessageSubscriber.py +87 -0
  268. amps-python-client-5.3.4.2/samples/RandomServerChooser.py +66 -0
  269. amps-python-client-5.3.4.2/samples/sample.xml +335 -0
  270. amps-python-client-5.3.4.2/setup.py +210 -0
  271. amps-python-client-5.3.4.2/setup_amps.py +94 -0
  272. amps-python-client-5.3.4.2/src/ampspy_shims.cpp +214 -0
  273. amps-python-client-5.3.4.2/src/ampspy_type_object.cpp +495 -0
  274. amps-python-client-5.3.4.2/src/authenticator.cpp +128 -0
  275. amps-python-client-5.3.4.2/src/bookmarkstore.cpp +246 -0
  276. amps-python-client-5.3.4.2/src/client.cpp +2648 -0
  277. amps-python-client-5.3.4.2/src/client_docs.h +956 -0
  278. amps-python-client-5.3.4.2/src/cmessagehandler.cpp +161 -0
  279. amps-python-client-5.3.4.2/src/command.cpp +164 -0
  280. amps-python-client-5.3.4.2/src/command_docs.h +269 -0
  281. amps-python-client-5.3.4.2/src/compositemessagebuilder.cpp +113 -0
  282. amps-python-client-5.3.4.2/src/compositemessageparser.cpp +151 -0
  283. amps-python-client-5.3.4.2/src/conflatingrecoverypointadapter.cpp +197 -0
  284. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockPublishStore.hpp +2053 -0
  285. amps-python-client-5.3.4.2/src/cpp/include/amps/BlockStore.hpp +677 -0
  286. amps-python-client-5.3.4.2/src/cpp/include/amps/BookmarkStore.hpp +542 -0
  287. amps-python-client-5.3.4.2/src/cpp/include/amps/Buffer.hpp +214 -0
  288. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageBuilder.hpp +174 -0
  289. amps-python-client-5.3.4.2/src/cpp/include/amps/CompositeMessageParser.hpp +151 -0
  290. amps-python-client-5.3.4.2/src/cpp/include/amps/DefaultServerChooser.hpp +162 -0
  291. amps-python-client-5.3.4.2/src/cpp/include/amps/Field.hpp +719 -0
  292. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClient.hpp +370 -0
  293. amps-python-client-5.3.4.2/src/cpp/include/amps/HAClientImpl.hpp +460 -0
  294. amps-python-client-5.3.4.2/src/cpp/include/amps/HybridPublishStore.hpp +481 -0
  295. amps-python-client-5.3.4.2/src/cpp/include/amps/LoggedBookmarkStore.hpp +1256 -0
  296. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapBookmarkStore.hpp +1283 -0
  297. amps-python-client-5.3.4.2/src/cpp/include/amps/MMapStoreBuffer.hpp +290 -0
  298. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryBookmarkStore.hpp +1628 -0
  299. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryPublishStore.hpp +66 -0
  300. amps-python-client-5.3.4.2/src/cpp/include/amps/MemoryStoreBuffer.hpp +244 -0
  301. amps-python-client-5.3.4.2/src/cpp/include/amps/MemorySubscriptionManager.hpp +850 -0
  302. amps-python-client-5.3.4.2/src/cpp/include/amps/Message.hpp +1819 -0
  303. amps-python-client-5.3.4.2/src/cpp/include/amps/MessageRouter.hpp +647 -0
  304. amps-python-client-5.3.4.2/src/cpp/include/amps/PublishStore.hpp +158 -0
  305. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategy.hpp +106 -0
  306. amps-python-client-5.3.4.2/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +317 -0
  307. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPoint.hpp +323 -0
  308. amps-python-client-5.3.4.2/src/cpp/include/amps/RecoveryPointAdapter.hpp +501 -0
  309. amps-python-client-5.3.4.2/src/cpp/include/amps/RingBookmarkStore.hpp +669 -0
  310. amps-python-client-5.3.4.2/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +494 -0
  311. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooser.hpp +145 -0
  312. amps-python-client-5.3.4.2/src/cpp/include/amps/ServerChooserImpl.hpp +95 -0
  313. amps-python-client-5.3.4.2/src/cpp/include/amps/amps.h +803 -0
  314. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_impl.h +208 -0
  315. amps-python-client-5.3.4.2/src/cpp/include/amps/amps_ssl.h +78 -0
  316. amps-python-client-5.3.4.2/src/cpp/include/amps/ampscrc.hpp +210 -0
  317. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsplusplus.hpp +8850 -0
  318. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsuri.h +84 -0
  319. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h +41 -0
  320. amps-python-client-5.3.4.2/src/cpp/include/amps/ampsver.h.in +41 -0
  321. amps-python-client-5.3.4.2/src/cpp/include/amps/constants.hpp +194 -0
  322. amps-python-client-5.3.4.2/src/cpp/include/amps/util.hpp +1722 -0
  323. amps-python-client-5.3.4.2/src/cpp/src/amps_protocol.c +693 -0
  324. amps-python-client-5.3.4.2/src/cpp/src/amps_ssl.c +489 -0
  325. amps-python-client-5.3.4.2/src/cpp/src/atfork.c +451 -0
  326. amps-python-client-5.3.4.2/src/cpp/src/client.c +498 -0
  327. amps-python-client-5.3.4.2/src/cpp/src/message.c +837 -0
  328. amps-python-client-5.3.4.2/src/cpp/src/message_generated.h +611 -0
  329. amps-python-client-5.3.4.2/src/cpp/src/tcp.c +1517 -0
  330. amps-python-client-5.3.4.2/src/cpp/src/tcps.c +1885 -0
  331. amps-python-client-5.3.4.2/src/cpp/src/transports.c +129 -0
  332. amps-python-client-5.3.4.2/src/cpp/src/unix.c +1002 -0
  333. amps-python-client-5.3.4.2/src/cpp/src/uri.c +301 -0
  334. amps-python-client-5.3.4.2/src/exponentialdelaystrategy.cpp +137 -0
  335. amps-python-client-5.3.4.2/src/failedwritehandler.cpp +116 -0
  336. amps-python-client-5.3.4.2/src/fixbuilder.cpp +146 -0
  337. amps-python-client-5.3.4.2/src/fixeddelaystrategy.cpp +114 -0
  338. amps-python-client-5.3.4.2/src/fixshredder.cpp +105 -0
  339. amps-python-client-5.3.4.2/src/fixshredder_docs.h +38 -0
  340. amps-python-client-5.3.4.2/src/haclient.cpp +691 -0
  341. amps-python-client-5.3.4.2/src/haclient_docs.h +186 -0
  342. amps-python-client-5.3.4.2/src/hybridpublishstore.cpp +137 -0
  343. amps-python-client-5.3.4.2/src/hybridpublishstore_docs.h +31 -0
  344. amps-python-client-5.3.4.2/src/memorybookmarkstore.cpp +373 -0
  345. amps-python-client-5.3.4.2/src/memorybookmarkstore_docs.h +39 -0
  346. amps-python-client-5.3.4.2/src/memorypublishstore.cpp +160 -0
  347. amps-python-client-5.3.4.2/src/memorypublishstore_docs.h +32 -0
  348. amps-python-client-5.3.4.2/src/message.cpp +765 -0
  349. amps-python-client-5.3.4.2/src/message_docs.h +306 -0
  350. amps-python-client-5.3.4.2/src/messagestream.cpp +630 -0
  351. amps-python-client-5.3.4.2/src/messagestream_docs.h +45 -0
  352. amps-python-client-5.3.4.2/src/mmapbookmarkstore.cpp +422 -0
  353. amps-python-client-5.3.4.2/src/nvfixbuilder.cpp +160 -0
  354. amps-python-client-5.3.4.2/src/nvfixbuilder_docs.h +35 -0
  355. amps-python-client-5.3.4.2/src/nvfixshredder.cpp +99 -0
  356. amps-python-client-5.3.4.2/src/nvfixshredder_docs.h +43 -0
  357. amps-python-client-5.3.4.2/src/publishstore.cpp +183 -0
  358. amps-python-client-5.3.4.2/src/raw_wrapper.cpp +765 -0
  359. amps-python-client-5.3.4.2/src/reason.cpp +71 -0
  360. amps-python-client-5.3.4.2/src/recoverypoint.cpp +135 -0
  361. amps-python-client-5.3.4.2/src/recoverypointadapter.cpp +171 -0
  362. amps-python-client-5.3.4.2/src/ringbookmarkstore.cpp +360 -0
  363. amps-python-client-5.3.4.2/src/serverchooser.cpp +245 -0
  364. amps-python-client-5.3.4.2/src/serverchooser_docs.h +41 -0
  365. amps-python-client-5.3.4.2/src/sowrecoverypointadapter.cpp +248 -0
  366. amps-python-client-5.3.4.2/src/store.cpp +62 -0
  367. amps-python-client-5.3.4.2/src/versioninfo.cpp +175 -0
  368. amps-python-client-5.3.4.1/PKG-INFO +0 -112
  369. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/ack-messages.doctree +0 -0
  370. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/content-messages.doctree +0 -0
  371. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/intro.doctree +0 -0
  372. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/logon.doctree +0 -0
  373. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/protocol-reference.doctree +0 -0
  374. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/publishing.doctree +0 -0
  375. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-delimiters.doctree +0 -0
  376. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/query-subscribe.doctree +0 -0
  377. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/removing.doctree +0 -0
  378. amps-python-client-5.3.4.1/docs/command-reference/doctrees/chapters/utilities.doctree +0 -0
  379. amps-python-client-5.3.4.1/docs/command-reference/doctrees/environment.pickle +0 -0
  380. amps-python-client-5.3.4.1/docs/command-reference/doctrees/index.doctree +0 -0
  381. amps-python-client-5.3.4.1/docs/command-reference/html/.buildinfo +0 -4
  382. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/ack-messages.rst.txt +0 -32
  383. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/content-messages.rst.txt +0 -27
  384. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/intro.rst.txt +0 -43
  385. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/logon.rst.txt +0 -231
  386. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/protocol-reference.rst.txt +0 -1474
  387. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/publishing.rst.txt +0 -25
  388. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-delimiters.rst.txt +0 -12
  389. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/query-subscribe.rst.txt +0 -23
  390. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/removing.rst.txt +0 -6
  391. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/chapters/utilities.rst.txt +0 -13
  392. amps-python-client-5.3.4.1/docs/command-reference/html/_sources/index.rst.txt +0 -56
  393. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css +0 -192
  394. amps-python-client-5.3.4.1/docs/command-reference/html/_static/custom.css.backup +0 -161
  395. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/ack-messages.html +0 -417
  396. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/content-messages.html +0 -417
  397. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/intro.html +0 -126
  398. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/logon.html +0 -295
  399. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/protocol-reference.html +0 -1190
  400. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/publishing.html +0 -436
  401. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-delimiters.html +0 -173
  402. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/query-subscribe.html +0 -2123
  403. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/removing.html +0 -299
  404. amps-python-client-5.3.4.1/docs/command-reference/html/chapters/utilities.html +0 -287
  405. amps-python-client-5.3.4.1/docs/command-reference/html/genindex.html +0 -97
  406. amps-python-client-5.3.4.1/docs/command-reference/html/index.html +0 -138
  407. amps-python-client-5.3.4.1/docs/command-reference/html/objects.inv +0 -0
  408. amps-python-client-5.3.4.1/docs/command-reference/html/search.html +0 -107
  409. amps-python-client-5.3.4.1/docs/command-reference/html/searchindex.js +0 -1
  410. amps-python-client-5.3.4.1/docs/html/.buildinfo +0 -4
  411. amps-python-client-5.3.4.1/docs/html/code.html +0 -6503
  412. amps-python-client-5.3.4.1/docs/html/genindex.html +0 -1361
  413. amps-python-client-5.3.4.1/docs/html/index.html +0 -131
  414. amps-python-client-5.3.4.1/docs/html/objects.inv +0 -0
  415. amps-python-client-5.3.4.1/docs/html/py-modindex.html +0 -111
  416. amps-python-client-5.3.4.1/docs/html/search.html +0 -107
  417. amps-python-client-5.3.4.1/docs/html/searchindex.js +0 -1
  418. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/advanced-topics.doctree +0 -0
  419. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-compiler-list.doctree +0 -0
  420. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/cpp-feature-table.doctree +0 -0
  421. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/creating-commands.doctree +0 -0
  422. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/deltas.doctree +0 -0
  423. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/error-handling.doctree +0 -0
  424. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/exceptions.doctree +0 -0
  425. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/first-program.doctree +0 -0
  426. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/high-availability.doctree +0 -0
  427. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/installing.doctree +0 -0
  428. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/introduction.doctree +0 -0
  429. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/moving-from-python-lite.doctree +0 -0
  430. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/performance-tips.doctree +0 -0
  431. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/queues.doctree +0 -0
  432. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/sow.doctree +0 -0
  433. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/subscriptions.doctree +0 -0
  434. amps-python-client-5.3.4.1/docs/python/doctrees/chapters/utilities.doctree +0 -0
  435. amps-python-client-5.3.4.1/docs/python/doctrees/environment.pickle +0 -0
  436. amps-python-client-5.3.4.1/docs/python/doctrees/index.doctree +0 -0
  437. amps-python-client-5.3.4.1/docs/python/html/.buildinfo +0 -4
  438. amps-python-client-5.3.4.1/docs/python/html/_images/caution.svg +0 -25
  439. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/advanced-topics.rst.txt +0 -398
  440. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/cpp-feature-table.rst.txt +0 -26
  441. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/creating-commands.rst.txt +0 -159
  442. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/deltas.rst.txt +0 -79
  443. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/error-handling.rst.txt +0 -482
  444. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/exceptions.rst.txt +0 -128
  445. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/first-program.rst.txt +0 -142
  446. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/high-availability.rst.txt +0 -876
  447. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/installing.rst.txt +0 -184
  448. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/introduction.rst.txt +0 -50
  449. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/moving-from-python-lite.rst.txt +0 -32
  450. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/performance-tips.rst.txt +0 -434
  451. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/queues.rst.txt +0 -282
  452. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/sow.rst.txt +0 -292
  453. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/subscriptions.rst.txt +0 -374
  454. amps-python-client-5.3.4.1/docs/python/html/_sources/chapters/utilities.rst.txt +0 -214
  455. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css +0 -192
  456. amps-python-client-5.3.4.1/docs/python/html/_static/custom.css.backup +0 -161
  457. amps-python-client-5.3.4.1/docs/python/html/chapters/advanced-topics.html +0 -447
  458. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-compiler-list.html +0 -92
  459. amps-python-client-5.3.4.1/docs/python/html/chapters/cpp-feature-table.html +0 -156
  460. amps-python-client-5.3.4.1/docs/python/html/chapters/creating-commands.html +0 -2837
  461. amps-python-client-5.3.4.1/docs/python/html/chapters/deltas.html +0 -169
  462. amps-python-client-5.3.4.1/docs/python/html/chapters/error-handling.html +0 -746
  463. amps-python-client-5.3.4.1/docs/python/html/chapters/exceptions.html +0 -272
  464. amps-python-client-5.3.4.1/docs/python/html/chapters/first-program.html +0 -499
  465. amps-python-client-5.3.4.1/docs/python/html/chapters/high-availability.html +0 -1014
  466. amps-python-client-5.3.4.1/docs/python/html/chapters/installing.html +0 -264
  467. amps-python-client-5.3.4.1/docs/python/html/chapters/introduction.html +0 -245
  468. amps-python-client-5.3.4.1/docs/python/html/chapters/moving-from-python-lite.html +0 -118
  469. amps-python-client-5.3.4.1/docs/python/html/chapters/performance-tips.html +0 -499
  470. amps-python-client-5.3.4.1/docs/python/html/chapters/queues.html +0 -352
  471. amps-python-client-5.3.4.1/docs/python/html/chapters/sow.html +0 -381
  472. amps-python-client-5.3.4.1/docs/python/html/chapters/subscriptions.html +0 -535
  473. amps-python-client-5.3.4.1/docs/python/html/chapters/utilities.html +0 -302
  474. amps-python-client-5.3.4.1/docs/python/html/genindex.html +0 -351
  475. amps-python-client-5.3.4.1/docs/python/html/index.html +0 -380
  476. amps-python-client-5.3.4.1/docs/python/html/objects.inv +0 -0
  477. amps-python-client-5.3.4.1/docs/python/html/search.html +0 -107
  478. amps-python-client-5.3.4.1/docs/python/html/searchindex.js +0 -1
  479. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/crankitup.doctree +0 -0
  480. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/chapters/equipment.doctree +0 -0
  481. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/environment.pickle +0 -0
  482. amps-python-client-5.3.4.1/docs/python-quickstart/doctrees/index.doctree +0 -0
  483. amps-python-client-5.3.4.1/docs/python-quickstart/html/.buildinfo +0 -4
  484. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css +0 -192
  485. amps-python-client-5.3.4.1/docs/python-quickstart/html/_static/custom.css.backup +0 -161
  486. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/crankitup.html +0 -271
  487. amps-python-client-5.3.4.1/docs/python-quickstart/html/chapters/equipment.html +0 -105
  488. amps-python-client-5.3.4.1/docs/python-quickstart/html/genindex.html +0 -97
  489. amps-python-client-5.3.4.1/docs/python-quickstart/html/index.html +0 -382
  490. amps-python-client-5.3.4.1/docs/python-quickstart/html/objects.inv +0 -0
  491. amps-python-client-5.3.4.1/docs/python-quickstart/html/search.html +0 -107
  492. amps-python-client-5.3.4.1/docs/python-quickstart/html/searchindex.js +0 -1
  493. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/acks.doctree +0 -0
  494. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/actions.doctree +0 -0
  495. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps-statistics.doctree +0 -0
  496. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_expressions.doctree +0 -0
  497. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/amps_functions.doctree +0 -0
  498. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/auxiliary_modules.doctree +0 -0
  499. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/config-file-shortcuts.doctree +0 -0
  500. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/conflated_topics.doctree +0 -0
  501. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/constructing-fields.doctree +0 -0
  502. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/daemon.doctree +0 -0
  503. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/delta.doctree +0 -0
  504. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/distribution.doctree +0 -0
  505. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/enrichment.doctree +0 -0
  506. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/events.doctree +0 -0
  507. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/file_format_versions.doctree +0 -0
  508. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/glossary.doctree +0 -0
  509. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/ha.doctree +0 -0
  510. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/installing_and_starting.doctree +0 -0
  511. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/intro.doctree +0 -0
  512. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/logging.doctree +0 -0
  513. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/messageTypes.doctree +0 -0
  514. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/monitoring.doctree +0 -0
  515. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/oof.doctree +0 -0
  516. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/operation.doctree +0 -0
  517. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/pub_sub.doctree +0 -0
  518. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/queues.doctree +0 -0
  519. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/replication.doctree +0 -0
  520. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/securing.doctree +0 -0
  521. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow.doctree +0 -0
  522. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/sow_queries.doctree +0 -0
  523. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/spark.doctree +0 -0
  524. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/transports.doctree +0 -0
  525. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/troubleshooting.doctree +0 -0
  526. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/txlog.doctree +0 -0
  527. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/usecases.doctree +0 -0
  528. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/utilities.doctree +0 -0
  529. amps-python-client-5.3.4.1/docs/user-guide/doctrees/chapters/views.doctree +0 -0
  530. amps-python-client-5.3.4.1/docs/user-guide/doctrees/environment.pickle +0 -0
  531. amps-python-client-5.3.4.1/docs/user-guide/doctrees/index.doctree +0 -0
  532. amps-python-client-5.3.4.1/docs/user-guide/html/.buildinfo +0 -4
  533. amps-python-client-5.3.4.1/docs/user-guide/html/_images/AMPS-Queues-Intro.svg +0 -1330
  534. amps-python-client-5.3.4.1/docs/user-guide/html/_images/GeoRepl.png +0 -0
  535. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_async_ack.png +0 -0
  536. amps-python-client-5.3.4.1/docs/user-guide/html/_images/HA_sync_ack.png +0 -0
  537. amps-python-client-5.3.4.1/docs/user-guide/html/_images/Hot-Hot-Replication.png +0 -0
  538. amps-python-client-5.3.4.1/docs/user-guide/html/_images/MessageOrdering.svg +0 -235
  539. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF5.png +0 -0
  540. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF6.png +0 -0
  541. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF7.png +0 -0
  542. amps-python-client-5.3.4.1/docs/user-guide/html/_images/OOF8.png +0 -0
  543. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub1.svg +0 -1
  544. amps-python-client-5.3.4.1/docs/user-guide/html/_images/PubSub2.svg +0 -1
  545. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWAndSubscribeAndReplace.svg +0 -684
  546. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery1.svg +0 -402
  547. amps-python-client-5.3.4.1/docs/user-guide/html/_images/SOWQuery2.svg +0 -505
  548. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig1.svg +0 -1
  549. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig2.svg +0 -1
  550. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig3.svg +0 -1
  551. amps-python-client-5.3.4.1/docs/user-guide/html/_images/UseCaseFig4.svg +0 -1
  552. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.png +0 -0
  553. amps-python-client-5.3.4.1/docs/user-guide/html/_images/caution.svg +0 -25
  554. amps-python-client-5.3.4.1/docs/user-guide/html/_images/chicago_group.png +0 -0
  555. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_original_messages.png +0 -0
  556. amps-python-client-5.3.4.1/docs/user-guide/html/_images/delta_update_message.png +0 -0
  557. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.png +0 -0
  558. amps-python-client-5.3.4.1/docs/user-guide/html/_images/important.svg +0 -25
  559. amps-python-client-5.3.4.1/docs/user-guide/html/_images/inline_view_conflation.svg +0 -1
  560. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_pub.png +0 -0
  561. amps-python-client-5.3.4.1/docs/user-guide/html/_images/paginated_subs_sub.png +0 -0
  562. amps-python-client-5.3.4.1/docs/user-guide/html/_images/queue_usage_overview.svg +0 -627
  563. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_hub.png +0 -0
  564. amps-python-client-5.3.4.1/docs/user-guide/html/_images/replication_scenario_with_ha.png +0 -0
  565. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_1.svg +0 -248
  566. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_overview_2.svg +0 -183
  567. amps-python-client-5.3.4.1/docs/user-guide/html/_images/sow_update_sequence.svg +0 -1
  568. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.png +0 -0
  569. amps-python-client-5.3.4.1/docs/user-guide/html/_images/tip.svg +0 -31
  570. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.png +0 -0
  571. amps-python-client-5.3.4.1/docs/user-guide/html/_images/warning.svg +0 -23
  572. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/acks.rst.txt +0 -232
  573. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/actions.rst.txt +0 -111
  574. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps-statistics.rst.txt +0 -358
  575. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_expressions.rst.txt +0 -83
  576. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/amps_functions.rst.txt +0 -11
  577. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/auxiliary_modules.rst.txt +0 -86
  578. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/config-file-shortcuts.rst.txt +0 -9
  579. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/conflated_topics.rst.txt +0 -111
  580. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/constructing-fields.rst.txt +0 -269
  581. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/daemon.rst.txt +0 -232
  582. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/delta.rst.txt +0 -556
  583. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/distribution.rst.txt +0 -186
  584. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/enrichment.rst.txt +0 -191
  585. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/events.rst.txt +0 -39
  586. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/file_format_versions.rst.txt +0 -203
  587. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/glossary.rst.txt +0 -101
  588. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/ha.rst.txt +0 -465
  589. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/installing_and_starting.rst.txt +0 -23
  590. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/intro.rst.txt +0 -116
  591. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/logging.rst.txt +0 -34
  592. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/messageTypes.rst.txt +0 -1398
  593. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/monitoring.rst.txt +0 -326
  594. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/oof.rst.txt +0 -312
  595. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/operation.rst.txt +0 -27
  596. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/pub_sub.rst.txt +0 -49
  597. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/queues.rst.txt +0 -1351
  598. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/replication.rst.txt +0 -1228
  599. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/securing.rst.txt +0 -657
  600. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow.rst.txt +0 -57
  601. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/sow_queries.rst.txt +0 -25
  602. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/transports.rst.txt +0 -291
  603. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/troubleshooting.rst.txt +0 -517
  604. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/txlog.rst.txt +0 -62
  605. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/usecases.rst.txt +0 -21
  606. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/utilities.rst.txt +0 -62
  607. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/chapters/views.rst.txt +0 -175
  608. amps-python-client-5.3.4.1/docs/user-guide/html/_sources/index.rst.txt +0 -110
  609. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css +0 -192
  610. amps-python-client-5.3.4.1/docs/user-guide/html/_static/custom.css.backup +0 -161
  611. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/acks.html +0 -289
  612. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/actions.html +0 -3782
  613. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps-statistics.html +0 -439
  614. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_expressions.html +0 -1552
  615. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/amps_functions.html +0 -1626
  616. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/auxiliary_modules.html +0 -2548
  617. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/config-file-shortcuts.html +0 -508
  618. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/conflated_topics.html +0 -328
  619. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/constructing-fields.html +0 -447
  620. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/daemon.html +0 -295
  621. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/delta.html +0 -609
  622. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/distribution.html +0 -246
  623. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/enrichment.html +0 -264
  624. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/events.html +0 -449
  625. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/file_format_versions.html +0 -229
  626. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/glossary.html +0 -215
  627. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/ha.html +0 -978
  628. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/installing_and_starting.html +0 -357
  629. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/intro.html +0 -572
  630. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/logging.html +0 -972
  631. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/messageTypes.html +0 -1280
  632. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/monitoring.html +0 -718
  633. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/oof.html +0 -341
  634. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/operation.html +0 -1515
  635. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/pub_sub.html +0 -934
  636. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/queues.html +0 -1767
  637. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/replication.html +0 -1777
  638. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/securing.html +0 -697
  639. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow.html +0 -1038
  640. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/sow_queries.html +0 -621
  641. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/spark.html +0 -819
  642. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/transports.html +0 -352
  643. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/troubleshooting.html +0 -530
  644. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/txlog.html +0 -1013
  645. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/usecases.html +0 -288
  646. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/utilities.html +0 -133
  647. amps-python-client-5.3.4.1/docs/user-guide/html/chapters/views.html +0 -1120
  648. amps-python-client-5.3.4.1/docs/user-guide/html/genindex.html +0 -1261
  649. amps-python-client-5.3.4.1/docs/user-guide/html/index.html +0 -163
  650. amps-python-client-5.3.4.1/docs/user-guide/html/objects.inv +0 -0
  651. amps-python-client-5.3.4.1/docs/user-guide/html/search.html +0 -106
  652. amps-python-client-5.3.4.1/docs/user-guide/html/searchindex.js +0 -1
  653. amps-python-client-5.3.4.1/include/ampspy_bookmarkstore.hpp +0 -63
  654. amps-python-client-5.3.4.1/include/ampspy_compat.h +0 -63
  655. amps-python-client-5.3.4.1/include/ampspy_defs.hpp +0 -181
  656. amps-python-client-5.3.4.1/include/ampspy_recoverypointadapter.hpp +0 -52
  657. amps-python-client-5.3.4.1/include/ampspy_shims.hpp +0 -113
  658. amps-python-client-5.3.4.1/include/ampspy_type_object.hpp +0 -242
  659. amps-python-client-5.3.4.1/include/ampspy_types.hpp +0 -1139
  660. amps-python-client-5.3.4.1/include/ampspyver.h +0 -30
  661. amps-python-client-5.3.4.1/index.html +0 -66
  662. amps-python-client-5.3.4.1/samples/AMPSConsolePublisher.py +0 -59
  663. amps-python-client-5.3.4.1/samples/AMPSConsoleSubscriber.py +0 -63
  664. amps-python-client-5.3.4.1/samples/AMPSFIXBuilderPublisher.py +0 -71
  665. amps-python-client-5.3.4.1/samples/AMPSFIXShredderSubscriber.py +0 -69
  666. amps-python-client-5.3.4.1/samples/AMPSNVFIXBuilderPublisher.py +0 -71
  667. amps-python-client-5.3.4.1/samples/AMPSNVFIXShredderSubscriber.py +0 -67
  668. amps-python-client-5.3.4.1/samples/AMPSPublishForReplay.py +0 -81
  669. amps-python-client-5.3.4.1/samples/AMPSQueueConsumer.py +0 -69
  670. amps-python-client-5.3.4.1/samples/AMPSQueuePublisher.py +0 -59
  671. amps-python-client-5.3.4.1/samples/AMPSSOWConsolePublisher.py +0 -67
  672. amps-python-client-5.3.4.1/samples/AMPSSOWConsoleSubscriber.py +0 -77
  673. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeConsoleSubscriber.py +0 -79
  674. amps-python-client-5.3.4.1/samples/AMPSSOWandSubscribeWithOOF.py +0 -108
  675. amps-python-client-5.3.4.1/samples/AMPSSubscribeForReplay.py +0 -128
  676. amps-python-client-5.3.4.1/samples/AMPSUpdateForOOF.py +0 -123
  677. amps-python-client-5.3.4.1/samples/CompositeMessagePublisher.py +0 -84
  678. amps-python-client-5.3.4.1/samples/CompositeMessageSubscriber.py +0 -87
  679. amps-python-client-5.3.4.1/samples/RandomServerChooser.py +0 -41
  680. amps-python-client-5.3.4.1/samples/sample.xml +0 -335
  681. amps-python-client-5.3.4.1/setup.py +0 -209
  682. amps-python-client-5.3.4.1/setup_amps.py +0 -94
  683. amps-python-client-5.3.4.1/src/ampspy_shims.cpp +0 -203
  684. amps-python-client-5.3.4.1/src/ampspy_type_object.cpp +0 -484
  685. amps-python-client-5.3.4.1/src/authenticator.cpp +0 -128
  686. amps-python-client-5.3.4.1/src/bookmarkstore.cpp +0 -238
  687. amps-python-client-5.3.4.1/src/client.cpp +0 -2430
  688. amps-python-client-5.3.4.1/src/client_docs.h +0 -956
  689. amps-python-client-5.3.4.1/src/cmessagehandler.cpp +0 -151
  690. amps-python-client-5.3.4.1/src/command.cpp +0 -164
  691. amps-python-client-5.3.4.1/src/command_docs.h +0 -194
  692. amps-python-client-5.3.4.1/src/compositemessagebuilder.cpp +0 -111
  693. amps-python-client-5.3.4.1/src/compositemessageparser.cpp +0 -146
  694. amps-python-client-5.3.4.1/src/conflatingrecoverypointadapter.cpp +0 -194
  695. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockPublishStore.hpp +0 -2053
  696. amps-python-client-5.3.4.1/src/cpp/include/amps/BlockStore.hpp +0 -677
  697. amps-python-client-5.3.4.1/src/cpp/include/amps/BookmarkStore.hpp +0 -542
  698. amps-python-client-5.3.4.1/src/cpp/include/amps/Buffer.hpp +0 -214
  699. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageBuilder.hpp +0 -174
  700. amps-python-client-5.3.4.1/src/cpp/include/amps/CompositeMessageParser.hpp +0 -151
  701. amps-python-client-5.3.4.1/src/cpp/include/amps/DefaultServerChooser.hpp +0 -162
  702. amps-python-client-5.3.4.1/src/cpp/include/amps/Field.hpp +0 -719
  703. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClient.hpp +0 -370
  704. amps-python-client-5.3.4.1/src/cpp/include/amps/HAClientImpl.hpp +0 -460
  705. amps-python-client-5.3.4.1/src/cpp/include/amps/HybridPublishStore.hpp +0 -481
  706. amps-python-client-5.3.4.1/src/cpp/include/amps/LoggedBookmarkStore.hpp +0 -1255
  707. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapBookmarkStore.hpp +0 -1283
  708. amps-python-client-5.3.4.1/src/cpp/include/amps/MMapStoreBuffer.hpp +0 -290
  709. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryBookmarkStore.hpp +0 -1622
  710. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryPublishStore.hpp +0 -66
  711. amps-python-client-5.3.4.1/src/cpp/include/amps/MemoryStoreBuffer.hpp +0 -244
  712. amps-python-client-5.3.4.1/src/cpp/include/amps/MemorySubscriptionManager.hpp +0 -850
  713. amps-python-client-5.3.4.1/src/cpp/include/amps/Message.hpp +0 -1819
  714. amps-python-client-5.3.4.1/src/cpp/include/amps/MessageRouter.hpp +0 -618
  715. amps-python-client-5.3.4.1/src/cpp/include/amps/PublishStore.hpp +0 -158
  716. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategy.hpp +0 -106
  717. amps-python-client-5.3.4.1/src/cpp/include/amps/ReconnectDelayStrategyImpl.hpp +0 -317
  718. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPoint.hpp +0 -323
  719. amps-python-client-5.3.4.1/src/cpp/include/amps/RecoveryPointAdapter.hpp +0 -501
  720. amps-python-client-5.3.4.1/src/cpp/include/amps/RingBookmarkStore.hpp +0 -669
  721. amps-python-client-5.3.4.1/src/cpp/include/amps/SOWRecoveryPointAdapter.hpp +0 -490
  722. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooser.hpp +0 -145
  723. amps-python-client-5.3.4.1/src/cpp/include/amps/ServerChooserImpl.hpp +0 -95
  724. amps-python-client-5.3.4.1/src/cpp/include/amps/amps.h +0 -775
  725. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_impl.h +0 -204
  726. amps-python-client-5.3.4.1/src/cpp/include/amps/amps_ssl.h +0 -78
  727. amps-python-client-5.3.4.1/src/cpp/include/amps/ampscrc.hpp +0 -210
  728. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsplusplus.hpp +0 -8817
  729. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsuri.h +0 -84
  730. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h +0 -41
  731. amps-python-client-5.3.4.1/src/cpp/include/amps/ampsver.h.in +0 -41
  732. amps-python-client-5.3.4.1/src/cpp/include/amps/constants.hpp +0 -194
  733. amps-python-client-5.3.4.1/src/cpp/include/amps/util.hpp +0 -1692
  734. amps-python-client-5.3.4.1/src/cpp/src/amps_protocol.c +0 -688
  735. amps-python-client-5.3.4.1/src/cpp/src/amps_ssl.c +0 -489
  736. amps-python-client-5.3.4.1/src/cpp/src/atfork.c +0 -446
  737. amps-python-client-5.3.4.1/src/cpp/src/client.c +0 -483
  738. amps-python-client-5.3.4.1/src/cpp/src/message.c +0 -837
  739. amps-python-client-5.3.4.1/src/cpp/src/message_generated.h +0 -611
  740. amps-python-client-5.3.4.1/src/cpp/src/tcp.c +0 -1489
  741. amps-python-client-5.3.4.1/src/cpp/src/tcps.c +0 -1894
  742. amps-python-client-5.3.4.1/src/cpp/src/transports.c +0 -123
  743. amps-python-client-5.3.4.1/src/cpp/src/unix.c +0 -984
  744. amps-python-client-5.3.4.1/src/cpp/src/uri.c +0 -301
  745. amps-python-client-5.3.4.1/src/exponentialdelaystrategy.cpp +0 -137
  746. amps-python-client-5.3.4.1/src/failedwritehandler.cpp +0 -116
  747. amps-python-client-5.3.4.1/src/fixbuilder.cpp +0 -146
  748. amps-python-client-5.3.4.1/src/fixeddelaystrategy.cpp +0 -114
  749. amps-python-client-5.3.4.1/src/fixshredder.cpp +0 -105
  750. amps-python-client-5.3.4.1/src/fixshredder_docs.h +0 -38
  751. amps-python-client-5.3.4.1/src/haclient.cpp +0 -691
  752. amps-python-client-5.3.4.1/src/haclient_docs.h +0 -132
  753. amps-python-client-5.3.4.1/src/hybridpublishstore.cpp +0 -137
  754. amps-python-client-5.3.4.1/src/hybridpublishstore_docs.h +0 -31
  755. amps-python-client-5.3.4.1/src/memorybookmarkstore.cpp +0 -373
  756. amps-python-client-5.3.4.1/src/memorybookmarkstore_docs.h +0 -39
  757. amps-python-client-5.3.4.1/src/memorypublishstore.cpp +0 -160
  758. amps-python-client-5.3.4.1/src/memorypublishstore_docs.h +0 -32
  759. amps-python-client-5.3.4.1/src/message.cpp +0 -765
  760. amps-python-client-5.3.4.1/src/message_docs.h +0 -306
  761. amps-python-client-5.3.4.1/src/messagestream.cpp +0 -623
  762. amps-python-client-5.3.4.1/src/messagestream_docs.h +0 -45
  763. amps-python-client-5.3.4.1/src/mmapbookmarkstore.cpp +0 -422
  764. amps-python-client-5.3.4.1/src/nvfixbuilder.cpp +0 -160
  765. amps-python-client-5.3.4.1/src/nvfixbuilder_docs.h +0 -33
  766. amps-python-client-5.3.4.1/src/nvfixshredder.cpp +0 -99
  767. amps-python-client-5.3.4.1/src/nvfixshredder_docs.h +0 -39
  768. amps-python-client-5.3.4.1/src/publishstore.cpp +0 -183
  769. amps-python-client-5.3.4.1/src/raw_wrapper.cpp +0 -756
  770. amps-python-client-5.3.4.1/src/reason.cpp +0 -71
  771. amps-python-client-5.3.4.1/src/recoverypoint.cpp +0 -135
  772. amps-python-client-5.3.4.1/src/recoverypointadapter.cpp +0 -171
  773. amps-python-client-5.3.4.1/src/ringbookmarkstore.cpp +0 -360
  774. amps-python-client-5.3.4.1/src/serverchooser.cpp +0 -245
  775. amps-python-client-5.3.4.1/src/serverchooser_docs.h +0 -39
  776. amps-python-client-5.3.4.1/src/sowrecoverypointadapter.cpp +0 -248
  777. amps-python-client-5.3.4.1/src/store.cpp +0 -62
  778. amps-python-client-5.3.4.1/src/versioninfo.cpp +0 -175
  779. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/HISTORY +0 -0
  780. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/LICENSE +0 -0
  781. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/README.md +0 -0
  782. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/ajax-loader.gif +0 -0
  783. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/alabaster.css +0 -0
  784. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/basic.css +0 -0
  785. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-bright.png +0 -0
  786. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment-close.png +0 -0
  787. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/comment.png +0 -0
  788. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/doctools.js +0 -0
  789. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down-pressed.png +0 -0
  790. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/down.png +0 -0
  791. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/file.png +0 -0
  792. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.png +0 -0
  793. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/flag_logo.svg +0 -0
  794. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery-3.1.0.js +0 -0
  795. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/jquery.js +0 -0
  796. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/minus.png +0 -0
  797. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/plus.png +0 -0
  798. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/pygments.css +0 -0
  799. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/searchtools.js +0 -0
  800. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore-1.3.1.js +0 -0
  801. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/underscore.js +0 -0
  802. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up-pressed.png +0 -0
  803. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/up.png +0 -0
  804. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/command-reference/html/_static/websupport.js +0 -0
  805. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/code.rst.txt +0 -0
  806. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_sources/index.rst.txt +0 -0
  807. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/ajax-loader.gif +0 -0
  808. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/basic.css +0 -0
  809. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/classic.css +0 -0
  810. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-bright.png +0 -0
  811. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment-close.png +0 -0
  812. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/comment.png +0 -0
  813. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/default.css +0 -0
  814. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/doctools.js +0 -0
  815. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down-pressed.png +0 -0
  816. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/down.png +0 -0
  817. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/file.png +0 -0
  818. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery-3.1.0.js +0 -0
  819. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/jquery.js +0 -0
  820. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/minus.png +0 -0
  821. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/plus.png +0 -0
  822. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/pygments.css +0 -0
  823. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/searchtools.js +0 -0
  824. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/sidebar.js +0 -0
  825. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore-1.3.1.js +0 -0
  826. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/underscore.js +0 -0
  827. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up-pressed.png +0 -0
  828. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/up.png +0 -0
  829. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/html/_static/websupport.js +0 -0
  830. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/caution.png +0 -0
  831. {amps-python-client-5.3.4.1/docs/command-reference → amps-python-client-5.3.4.2/docs/python}/html/_images/caution.svg +0 -0
  832. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/connection_string.svg +0 -0
  833. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.png +0 -0
  834. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/important.svg +0 -0
  835. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.png +0 -0
  836. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/tip.svg +0 -0
  837. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_images/warning.png +0 -0
  838. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/chapters/cpp-compiler-list.rst.txt +0 -0
  839. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_sources/index.rst.txt +0 -0
  840. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/ajax-loader.gif +0 -0
  841. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/alabaster.css +0 -0
  842. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/basic.css +0 -0
  843. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-bright.png +0 -0
  844. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment-close.png +0 -0
  845. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/comment.png +0 -0
  846. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/doctools.js +0 -0
  847. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down-pressed.png +0 -0
  848. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/down.png +0 -0
  849. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/file.png +0 -0
  850. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.png +0 -0
  851. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/flag_logo.svg +0 -0
  852. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery-3.1.0.js +0 -0
  853. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/jquery.js +0 -0
  854. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/minus.png +0 -0
  855. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/plus.png +0 -0
  856. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/pygments.css +0 -0
  857. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/searchtools.js +0 -0
  858. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore-1.3.1.js +0 -0
  859. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/underscore.js +0 -0
  860. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up-pressed.png +0 -0
  861. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/up.png +0 -0
  862. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python/html/_static/websupport.js +0 -0
  863. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/crankitup.rst.txt +0 -0
  864. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/chapters/equipment.rst.txt +0 -0
  865. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_sources/index.rst.txt +0 -0
  866. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/ajax-loader.gif +0 -0
  867. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/alabaster.css +0 -0
  868. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/basic.css +0 -0
  869. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-bright.png +0 -0
  870. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment-close.png +0 -0
  871. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/comment.png +0 -0
  872. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/doctools.js +0 -0
  873. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down-pressed.png +0 -0
  874. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/down.png +0 -0
  875. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/file.png +0 -0
  876. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.png +0 -0
  877. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/flag_logo.svg +0 -0
  878. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery-3.1.0.js +0 -0
  879. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/jquery.js +0 -0
  880. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/minus.png +0 -0
  881. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/plus.png +0 -0
  882. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/pygments.css +0 -0
  883. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/searchtools.js +0 -0
  884. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore-1.3.1.js +0 -0
  885. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/underscore.js +0 -0
  886. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up-pressed.png +0 -0
  887. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/up.png +0 -0
  888. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/python-quickstart/html/_static/websupport.js +0 -0
  889. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/custom.css +0 -0
  890. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/resources/flag_logo.svg +0 -0
  891. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_sources/chapters/spark.rst.txt +0 -0
  892. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/ajax-loader.gif +0 -0
  893. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/alabaster.css +0 -0
  894. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/basic.css +0 -0
  895. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-bright.png +0 -0
  896. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment-close.png +0 -0
  897. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/comment.png +0 -0
  898. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/doctools.js +0 -0
  899. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down-pressed.png +0 -0
  900. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/down.png +0 -0
  901. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/file.png +0 -0
  902. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.png +0 -0
  903. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/flag_logo.svg +0 -0
  904. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery-3.1.0.js +0 -0
  905. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/jquery.js +0 -0
  906. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/minus.png +0 -0
  907. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/plus.png +0 -0
  908. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/pygments.css +0 -0
  909. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/searchtools.js +0 -0
  910. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore-1.3.1.js +0 -0
  911. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/underscore.js +0 -0
  912. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up-pressed.png +0 -0
  913. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/up.png +0 -0
  914. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/docs/user-guide/html/_static/websupport.js +0 -0
  915. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/include/amps/amps_generated.h +0 -0
  916. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/amps_protocol_generated.h +0 -0
  917. {amps-python-client-5.3.4.1 → amps-python-client-5.3.4.2}/src/cpp/src/makefile +0 -0
@@ -1,1351 +0,0 @@
1
- .. |tip| image:: ../../common/svg/tip.svg
2
-
3
- .. _#ug-queues:
4
-
5
- .. _queues:
6
-
7
- Message Queues
8
- ==============
9
-
10
- .. index:: queuing, message queues,
11
-
12
- AMPS includes high performance queuing built on
13
- the AMPS messaging engine and transaction log. AMPS message queues
14
- combine elements of classic message queuing with the advanced messaging
15
- features of AMPS, including content filtering, aggregation and
16
- projection, historical replay, and so on. This chapter presents an
17
- overview of queues.
18
-
19
- AMPS message queues help you easily solve some common messaging
20
- problems:
21
-
22
- - Ensuring that a message is only processed once.
23
-
24
- - Distributing tasks across workers in a fair manner.
25
-
26
- - Ensuring that a message is delivered to and processed by a worker.
27
-
28
- - Ensuring that when a worker fails to process a message, that message
29
- is redelivered.
30
-
31
- - Setting limits for retries in processing a message, and taking an
32
- action when those limits are exceeded (such as moving the message to
33
- a dead-letter queue).
34
-
35
- While it's possible to create applications with these properties by
36
- using the other features of AMPS, message queues provide these functions
37
- built into the AMPS server. In addition, message queues allow you to:
38
-
39
- - Replicate messages between AMPS instances while preserving delivery
40
- guarantees.
41
-
42
- - Create views and aggregates based on the current contents of a queue.
43
-
44
- - Filter messages into and out of a queue.
45
-
46
- - Provide a single published message to multiple queues.
47
-
48
- - Aggregate multiple topics into a single queue.
49
-
50
-
51
- .. tip::
52
-
53
- Use message queues when it is important to ensure that a message
54
- is processed once, by a single consumer. When it is important to
55
- distribute messages to a number of consumers, use the AMPS
56
- publish/subscribe delivery model rather than a message queue.
57
-
58
- The following diagram illustrates a simple usage of a queue to
59
- distribute work across three consumers:
60
-
61
- .. image:: ../../common/chapters/queues/svg/queue_usage_overview.svg
62
- :width: 80.0%
63
-
64
- This diagram shows a simple use of AMPS queues to distribute work. In
65
- the diagram, the transaction log is configured to record a topic named
66
- ``Work``. AMPS is also configured with a queue named ``WorkToDo``,
67
- which is based on the underlying topic ``Work``. The publisher publishes
68
- three messages to the topic ``Work``, and AMPS includes those messages
69
- in the ``WorkToDo`` queue. Each message is delivered to one of the three
70
- subscribers to the ``WorkToDo`` queue. Unlike pub/sub messaging, each
71
- subscriber only receives one message, and each message is delivered to
72
- only one subscriber.
73
-
74
- Notice that, even though AMPS provides queue semantics over the
75
- ``WorkToDo`` topic, the messages are recorded in the transaction log
76
- once, in the ``Work`` topic. Other subscribers could subscribe to the
77
- ``Work`` topic to receive the full stream of messages, or do a bookmark
78
- replay over the ``Work`` topic to recreate the message flow or audit the
79
- messages published to that topic.
80
-
81
- Also notice that, while the ``Work`` topic (the underlying topic) must be
82
- recorded in the transaction log, there is no need to define the ``Work`` topic
83
- in the SOW section of the configuration file. Queues use the transaction log to
84
- determine which messages to enqueue, and when a message is acknowledged, the
85
- acknowledgment is also recorded in the transaction log.
86
-
87
- Getting Started with AMPS Queues
88
- ---------------------------------
89
-
90
- .. _AMPS Configuration Reference: ../../../configuration/html/index.html
91
-
92
- To add a simple queue to AMPS, add the following options to your
93
- configuration file.
94
-
95
- First, create a transaction log that will record the messages for the
96
- queue and the state of the queue, as described in
97
- :ref:`#ug-txlog`.
98
- You add the transaction log
99
- entry if your AMPS configuration does not already have one. Otherwise,
100
- you can simply add a ``Topic`` statement or modify an existing ``Topic``
101
- statement to record the messages. The sample below captures any JSON
102
- messages published to the ``Work`` topic, and also tracks the state of the queue itself:
103
-
104
- .. code-block:: xml
105
-
106
- <AMPSConfig>
107
- ...
108
-
109
- <TransactionLog>
110
- <JournalDirectory>./journals</JournalDirectory>
111
- <Topic>
112
- <Name>Work</Name>
113
- <MessageType>json</MessageType>
114
- </Topic>
115
- <Topic>
116
- <Name>WorkToDo</Name>
117
- <MessageType>json</MessageType>
118
- </Topic>
119
- </TransactionLog>
120
-
121
- ...
122
- </AMPSConfig>
123
-
124
- Next, declare the queue topic itself. Queues are defined in the SOW
125
- element of the ``AMPSConfig`` file, as shown below:
126
-
127
- .. code-block:: xml
128
-
129
- <AMPSConfig>
130
- ...
131
-
132
- <SOW>
133
- <Queue>
134
- <Name>WorkToDo</Name>
135
- <MessageType>json</MessageType>
136
- <Semantics>at-most-once</Semantics>
137
- <UnderlyingTopic>Work</UnderlyingTopic>
138
- </Queue>
139
- </SOW>
140
-
141
- ...
142
- </AMPSConfig>
143
-
144
- These simple configuration changes create an AMPS message queue. Notice
145
- that the ``Topic`` for the queue in this case is ``WorkToDo``, which
146
- includes every message published to the underlying topic ``Work``. You
147
- could also use a regular expression to include messages to more than one
148
- topic, or leave out the ``UnderlyingTopic`` to include only messages
149
- published to the topic with the same name as the queue.
150
-
151
- This simple queue provides each message that arrives for the queue to at
152
- most one subscriber. After AMPS delivers the message to one subscriber,
153
- AMPS removes the message from the queue without waiting for the
154
- subscriber to acknowledge the message.
155
-
156
- While it's easy to create a simple queue, AMPS offers a rich queuing
157
- model that is designed to meet a wide variety of queuing needs. The
158
- options are described in the following sections and the `AMPS Configuration Reference`_.
159
-
160
- Queue Replication Types
161
- ^^^^^^^^^^^^^^^^^^^^^^^
162
-
163
- AMPS supports three different replication types for a queue. The
164
- configuration tag used to define a queue specifies the replication
165
- type for the queue.
166
-
167
- .. list-table:: *Queue replication types*
168
- :header-rows: 1
169
-
170
- * - **Configuration Tag**
171
-
172
- - **Replication Type**
173
-
174
- - **Description**
175
-
176
- * - ``Queue``
177
-
178
-
179
- - Distributed queue
180
-
181
-
182
- - Fully distributed queue.
183
-
184
-
185
- * - ``LocalQueue``
186
-
187
-
188
- - Local queue
189
-
190
-
191
- - Queue exists on a single
192
- instance, delivery guarantees
193
- only apply to that instance.
194
-
195
- Cannot be replicated.
196
-
197
- * - ``GroupLocalQueue``
198
-
199
-
200
- - Queue replicated
201
- to specific instances,
202
- most often in the
203
- same replication
204
- ``Group``
205
-
206
-
207
- - Distributed queue on a
208
- specific set of instances.
209
-
210
- In version 5.3.4 and
211
- higher, the instances that
212
- contain the queue must all
213
- be in the same ``Group``
214
- *or* define the same
215
- ``GroupLocalQueueDomain``
216
- tag.
217
-
218
- In earlier versions of
219
- AMPS, every queue with
220
- the same name in the
221
- replication fabric is
222
- treated as an instance of
223
- the same queue and must
224
- have the same definition
225
- and the same
226
- ``InitialOwner``.
227
-
228
-
229
- By default, AMPS queues are *distributed queues*. That is, if the queue
230
- topic or the underlying topics are replicated, AMPS provides the queue
231
- delivery guarantees (that is, ``at-most-once`` or ``at-least-once`` delivery)
232
- as though all of the instances were delivering
233
- messages from a single queue.
234
-
235
-
236
- AMPS provides local queues (where each instance has a separate,
237
- independent queue) when a queue is defined with the ``LocalQueue`` tag. In
238
- this case, AMPS does not allow replication of the queue topic, and all
239
- management of the queue is local to the individual instance.
240
-
241
- AMPS also supports distributed queues that are restricted to a set of
242
- instances within a mesh of replicated instances. These queues are defined
243
- with the ``GroupLocalQueue`` tag, to indicate that the queue is
244
- restricted to a subset of the servers involved in replication. In this
245
- case, only the servers that define the ``GroupLocalQueue`` participate in
246
- message delivery for the queue. In addition, the group must choose the
247
- instance that will initially own messages for the queue, as described in
248
- the section on distributed queues and :ref:`queue message ownership <#ug-queue-message-ownership>`.
249
- In version 5.3.4 and later, the identity of a ``GroupLocalQueue`` is defined
250
- by the ``Name`` of the queue combined with the ``GroupLocalQueueDomain``,
251
- if one is set, or the ``Group`` of the AMPS instance if the definition
252
- does not include a ``GroupLocalQueueDomain`` tag.
253
- In previous versions of AMPS, the identity of the queue is determined only
254
- by the ``Name`` of the group local queue, regardless of the instance that
255
- defines the queue.
256
-
257
- .. tip::
258
-
259
- When defining a ``GroupLocalQueue``, the instances that participate
260
- in the queue do not need to be in the same replication group:
261
- any instance in a replicated mesh that defines the queue can
262
- host an instance of the queue, regardless of whether the instance
263
- is in the same replication group or not. However, if the instances
264
- that host the queue are in different groups, the queue definitions
265
- should set the same ``GroupLocalQueueDomain`` to be considered
266
- to be the same queue.
267
-
268
- Each instance of AMPS manages its own subscriptions and backlog,
269
- regardless of the replication model. Delivery guarantees are
270
- provided by managing the ownership of each message in the queue,
271
- as described in the :ref:`#ug-replicated-queues` section. Only messages
272
- owned by the current instance will be delivered to subscribers,
273
- and only the subscriptions on the current instance are considered
274
- for delivery fairness and limits such as ``MaxBacklog`` (the overall
275
- limit for leases from the queue).
276
-
277
- Understanding AMPS Queuing
278
- ---------------------------
279
-
280
- AMPS message queues take advantage of the full historical and
281
- transactional power of the AMPS engine. Each queue is implemented as a
282
- view over an underlying topic or set of topics. Each of the underlying
283
- topics must be recorded in a transaction log. Publishers publish to the
284
- underlying topic, and the messages are recorded in the transaction log.
285
- Consumers simply subscribe to the queue. AMPS tracks which messages have
286
- been delivered to subscribers and which messages have been processed by
287
- subscribers. AMPS delivers the next available message to the next
288
- subscriber.
289
-
290
- Unlike traditional queues, which require consumers to poll for messages,
291
- AMPS queues use a subscription model. In this model, each queue consumer
292
- requests that AMPS provide messages from the queue. The consumer can
293
- also request a maximum number of messages to have outstanding from the
294
- queue at any given time, referred to as the backlog for that consumer.
295
- When a message is available, and the consumer has fewer messages
296
- outstanding than the backlog for that consumer, AMPS delivers the
297
- message to the consumer. This improves latency and conserves bandwidth,
298
- since there is no need for consumers to repeatedly poll the queue to see
299
- if work is available. In addition, the server maintains an overall view
300
- of the consumers, which allows the server to control message
301
- distribution strategies to optimize for latency, optimize to
302
- deliver to clients with the most unused capacity, or optimize for
303
- general fairness.
304
-
305
- The following diagram presents a simplified view of an AMPS queue:
306
-
307
- .. image:: ../../common/chapters/queues/svg/AMPS-Queues-Intro.svg
308
-
309
- As the diagram indicates, a queue tracks a set of messages in the
310
- transaction log. The messages the queue is currently tracking are
311
- considered to be in the queue. When the queue delivers a message, it
312
- marks the message as having been delivered (shown as *leased* in the
313
- diagram above). Messages that have been processed are no longer tracked
314
- by the queue (for example, the message for the order 1 in the diagram
315
- above). When a message has been delivered and processed, that event is
316
- recorded in the transaction log to ensure that the queue meets the
317
- delivery guarantees even across restarts of AMPS.
318
-
319
- Since queues are implemented as views over underlying topics, AMPS
320
- allows you to create any number of queues over the same underlying
321
- topic. Each queue tracks messages to the topic independently, and can
322
- have different policies for delivery and fairness. When a queue topic
323
- has a different name than the underlying topic, you can subscribe to the
324
- underlying topic directly, and that subscription is to the underlying
325
- (non-queue) topic. When a queue topic has the same name as the
326
- underlying topic (the default), all subscriptions to that topic are to
327
- the queue. (Notice that bookmark subscriptions to a queue are pub/sub
328
- subscriptions that replay from the underlying topic in the transaction log,
329
- so the behavior in that case is the same as if the subscription was directly
330
- to the underlying topic.)
331
-
332
- Likewise, AMPS queues work seamlessly with the AMPS entitlement system.
333
- Permissions to queues are managed the same way permissions are managed
334
- to any other topic, as described in the
335
- :ref:`Entitlement <#ug-entitlement>` section of the *AMPS User Guide*.
336
-
337
- While a message is in a queue, AMPS does not retain an extra copy of the message.
338
- Instead, AMPS retains in memory a small data structure indicating
339
- the state of the message and the position of the message in the transaction log.
340
- The amount of memory consumed by a queue is approximately 200 bytes per message,
341
- regardless of the size of the messages.
342
-
343
- AMPS queues provide a variety of options to help you tailor the behavior
344
- of each queue to meet your application's needs.
345
-
346
- Delivery Semantics
347
- ^^^^^^^^^^^^^^^^^^
348
-
349
- AMPS queues deliver a message to a single subscriber at a time. In the
350
- most common case, a message is delivered to exactly one subscriber, and that
351
- subscriber processes the message.
352
-
353
- In the case that a subscriber does not successfully process a message,
354
- AMPS provides two delivery semantics to precisely specify the handling of
355
- the unprocessed message:
356
-
357
- - With ``at-least-once`` delivery, AMPS delivers the message to one
358
- subscriber at a time, and expects that subscriber to explicitly
359
- remove the message from the queue when the message has been received
360
- and processed. With this guarantee, each message from the queue must
361
- be processed within a specified timeout, or lease period. AMPS tracks
362
- the amount of time since the message was sent to the subscriber. If
363
- the subscriber has not responded by removing the message within the
364
- lease period, AMPS revokes the lease and the message is available to
365
- another subscriber. AMPS allows you to set limits on the number of
366
- times a message is made available to another subscriber, using the
367
- ``MaxCancels`` and ``MaxDeliveries`` configuration options.
368
-
369
- In this model, receiving a message is the equivalent of a
370
- non-destructive get from a traditional queue. To acknowledge and
371
- remove the message, a subscriber uses the ``sow_delete`` command with
372
- the bookmark of the message.
373
-
374
- Leases are broken and messages are returned to the queue if the lease
375
- holder disconnects from AMPS. This ensures that, if a message
376
- processor fails or loses its connection to AMPS, the message can
377
- immediately be processed by another message processor.
378
-
379
- - With ``at-most-once`` delivery, AMPS removes the message from the
380
- queue as soon as the message is sent to a subscriber. However, the
381
- subscriber still needs to acknowledge that the message was processed,
382
- so that AMPS can track the subscription backlog, as described below.
383
-
384
- In this model, receiving a message is the equivalent of a destructive
385
- get from a traditional queue. The message is immediately removed by
386
- AMPS, and is no longer available in the queue.
387
-
388
- Choosing Delivery Semantics to Handle Failures
389
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
390
-
391
- Regardless of the delivery semantics you choose, during typical message
392
- processing from a queue, AMPS delivers each message in the queue to a single
393
- subscriber, with no duplicates or redelivery.
394
-
395
- The difference between ``at-most-once`` and ``at-least-once`` semantics is
396
- important in cases where a failure happens. With ``at-most-once`` delivery,
397
- the message will not be redelivered even if the subscriber fails to process
398
- the message. With ``at-least-once`` delivery, the message will be redelivered
399
- to subscribers until the message is either explicitly acknowledged, explicitly
400
- removed, or expired based on the queue policy for expiration or retries.
401
-
402
- With either setting, a message is delivered exactly once, to a single subscriber,
403
- during normal processing.
404
-
405
- Consider the following recommendations when deciding how you would like AMPS to
406
- handle cases where the subscriber that receives the message fails to process the
407
- message:
408
-
409
- 1. For ephemeral or lower-value data, where message loss in the case of failure is
410
- preferable to duplicating message delivery, consider ``at-most-once`` semantics.
411
- For example, processing a stream of events from sensors might fall into this
412
- category: each message should be processed once, in order, during normal operation,
413
- but missing a single data point from time to time may be less disruptive than
414
- reconciling duplicates.
415
- 2. For higher value data, where duplicate message delivery in the event of failure is preferable
416
- to message loss, consider ``at-least-once`` semantics. For example, if inserting the same
417
- data into a database twice would simply be an in-place update of the same record with the
418
- same information, having a duplicate insert happen occasionally in the event of failure
419
- may be preferable to losing a message when a failure occurs.
420
- 3. For higher value data, where manual intervention is required to reconcile messages
421
- when there is a question as to whether the message has been correctly processed,
422
- consider using ``at-least-once`` message delivery with a ``MaxDeliveries`` setting
423
- and an action to move failed messages to a dead-letter queue for manual reconciliation.
424
- 4. For higher value data that is part of a transactional dataflow, where processors
425
- maintain state, it can be useful to include information about the message processed
426
- in the transaction. This can be used with ``at-least-once`` messaging to guarantee that
427
- the message is only processed once: if a processor receives a message that is already
428
- marked as processed in the transactional store, the processor knows that the message
429
- has already been acted on and should be acknowledged without further processing.
430
- This is the most common pattern used to produce the result that each message is
431
- processed "exactly once". This pattern involves additional overhead and processing,
432
- trading off increased work in the application for stronger guarantees that a message
433
- is only processed one time.
434
-
435
- Subscription Backlog
436
- ^^^^^^^^^^^^^^^^^^^^
437
-
438
- For efficiency, queues in AMPS use a push model of delivery, providing
439
- messages to consumers when the message becomes available rather than
440
- requiring the consumer to poll the queue. To manage the workload among
441
- consumers, AMPS queues keep track of a *subscription backlog*. This
442
- backlog is the number of messages that have been provided to an
443
- individual subscription that have not yet been acknowledged. This
444
- backlog helps AMPS provide strong delivery guarantees while still
445
- optimizing for high throughput processing. AMPS calculates the
446
- subscription backlog for each subscription by calculating the
447
- *minimum* of the following:
448
-
449
- - The *minimum* ``MaxPerSubscriptionBacklog`` setting for the queues
450
- matched by the subscription
451
-
452
- *or*
453
-
454
- - The ``max_backlog`` specified on the subscribe command
455
-
456
- Notice that, if a subscriber does not provide a ``max_backlog`` on a
457
- subscription, AMPS defaults to a ``max_backlog`` of ``1``. In practical
458
- terms, this means that an application must explicitly specify a backlog
459
- to be able to receive more than one message from a queue at a time,
460
- regardless of the queue configuration.
461
-
462
- Subscribers request a ``max_backlog`` by adding the request to the
463
- options string of the ``subscribe`` command. For example, to request a
464
- ``max_backlog`` of 10, a subscriber includes ``max_backlog=10`` in the
465
- options for the command.
466
-
467
- .. tip::
468
- To improve concurrency for subscribers, 60East recommends using a
469
- backlog of at least ``2``. This allows efficient pipelined delivery, as
470
- the consumer can be processing one message while the previous message is
471
- being acknowledged. With a ``max_backlog`` higher than ``1``, the
472
- consumer never needs to be stopped waiting for the next message from the
473
- queue.
474
-
475
- Delivery Fairness
476
- ^^^^^^^^^^^^^^^^^^
477
-
478
- When a queue provides ``at-least-once`` delivery, AMPS provides three
479
- different algorithms for distributing messages among subscribers. Each
480
- algorithm has different performance and fairness guarantees. For
481
- ``at-most-once`` delivery, AMPS supports only the ``round-robin`` method
482
- of distributing messages.
483
-
484
- .. list-table:: *Message delivery strategies*
485
- :header-rows: 1
486
-
487
- * - Algorithm
488
-
489
- - Description
490
-
491
- * - ``fast``
492
-
493
-
494
- - This strategy optimizes for the lowest latency.
495
-
496
- AMPS delivers the message to the first subscription found that does not have a full
497
- backlog. With this algorithm, AMPS tries to minimize the time spent determining which
498
- subscription receives the message without attempting to distribute messages fairly
499
- across subscriptions.
500
-
501
- * - ``round-robin``
502
-
503
-
504
- - This strategy optimizes for general fairness across subscriptions.
505
-
506
- AMPS delivers the message to the next available subscription that does not have a full
507
- backlog. With this algorithm, AMPS delivers messages evenly among the subscribers
508
- that have space in their backlog.
509
-
510
- * - ``proportional``
511
-
512
-
513
- - This strategy optimizes for delivery to subscriptions with the most unused capacity.
514
-
515
- AMPS delivers the message to the subscription that has the highest proportion of
516
- backlog capacity unused. AMPS determines this by taking the ratio of unacknowledged
517
- messages to the maximum backlog.
518
-
519
- For example, if there are three active subscribers for the queue, with backlog settings
520
- and outstanding messages as follows:
521
-
522
- * Subscriber ``Inky``: ``max_backlog=2``, currently leased 1 message
523
-
524
- * Subscriber ``Blinky``: ``max_backlog=4``, currently leased 3 messages
525
-
526
- * Subscriber ``Clyde``: ``max_backlog=10``, currently leased 4 messages
527
-
528
- In this case, with ``proportional`` delivery, a new message for the queue will be
529
- delivered to Clyde, since that subscriber has only filled 40% of the backlog, as
530
- compared with 50% for Inky and 75% for Blinky.
531
-
532
- If more than one subscription has the same unused capacity, AMPS delivers the
533
- message to the first subscription found with that capacity.
534
-
535
-
536
-
537
- AMPS defaults to ``proportional`` delivery for ``at-least-once`` queues
538
- and defaults to ``round-robin`` (the only valid delivery model) for
539
- ``at-most-once`` queues.
540
-
541
- .. tip::
542
-
543
- Each instance of AMPS manages delivery strategy from among the
544
- messages that it currently owns and the subscriptions that are
545
- present on that instance.
546
-
547
- Delivery strategies apply only to a single instance, and are
548
- not applied across instances.
549
-
550
- Acknowledging Messages
551
- ^^^^^^^^^^^^^^^^^^^^^^^
552
-
553
- Subscribers must acknowledge each message to indicate to AMPS that a
554
- message has been processed. The point at which a subscriber acknowledges
555
- a message depends on the exact processing that the subscriber performs
556
- and the processing guarantees for the application. In general,
557
- applications acknowledge messages at the point at which the processing
558
- has a result that is durable and which would require an explicit action
559
- (such as another message) to change.
560
-
561
- Some common points at which to acknowledge a message are:
562
-
563
- - When processing is fully completed.
564
-
565
- - When work is performed that would require a compensating action (that
566
- is, when information is committed to a database or forwarded to a
567
- downstream system).
568
-
569
- - When work is submitted to a processor that is guaranteed to either
570
- succeed or explicitly indicate failure.
571
-
572
- To acknowledge a message, the subscriber typically uses the acknowledge
573
- convenience methods in the AMPS client. These commands issue a
574
- ``sow_delete`` command with the bookmark from the message to
575
- acknowledge. AMPS allows subscribers to acknowledge multiple messages
576
- simultaneously by providing a comma-delimited list of bookmarks in the
577
- ``sow_delete`` command: the AMPS clients provide facilities to batch
578
- acknowledgments for efficiency.
579
-
580
- AMPS allows an application to acknowledge messages by providing a filter on a
581
- ``sow_delete`` command. In this case, the ``sow_delete`` acknowledges all
582
- messages that match the filter, regardless of whether the application that
583
- sends the command has a current lease on a given message or not. (The
584
- ``Leasing`` parameter on the queue specifies whether AMPS allows a client to
585
- successfully acknowledge messages that it does not currently have leased.)
586
-
587
- For queues that use the ``at-least-once`` delivery model, there are two
588
- additional options available for acknowledging messages.
589
-
590
- * **To return a message to the queue without processing it**, the
591
- subscriber provides the ``cancel`` option on the acknowledgment.
592
- In this case, AMPS returns the message to the queue just as though
593
- the lease had expired. If the message is eligible for redelivery
594
- (that is, it has not exceeded the maximum time or maximum cancels
595
- configured for the queue), it is redelivered. Otherwise, the
596
- message is expired from the queue. The ``MaxCancels`` option
597
- allows you to configure how many times a message can be returned
598
- to the queue for redelivery before AMPS expires the message.
599
- * **To immediately remove a message from the queue**, the subscriber
600
- provides the ``expire`` option. In this case, AMPS does not return
601
- the message to the queue for redelivery, but instead immediately
602
- expires the message from the queue and triggers any configured
603
- ``amps-action-on-sow-expire-message`` actions that monitor the
604
- queue. The ``expire`` option can be especially helpful if your
605
- application can determine that the message cannot be successfully
606
- processed (for example, the message is unparseable or contains
607
- invalid data).
608
-
609
- Options for acknowledging messages delivered from ``at-least-once`` queues:
610
-
611
- .. list-table:: *Acknowledgement options*
612
- :header-rows: 1
613
-
614
- * - **Option**
615
-
616
-
617
- - **Result**
618
-
619
-
620
- * - <none>
621
-
622
-
623
- - Message is considered to be successfully processed
624
- and removed from the queue.
625
-
626
- * - ``cancel``
627
-
628
-
629
- - Message is returned to the queue. The count of cancels
630
- for this message is incremented, and if the count
631
- is greater than the configured ``MaxCancels`` for the
632
- queue, the message is expired.
633
-
634
- * - ``expire``
635
-
636
- - Message is immediately expired from the queue.
637
-
638
-
639
- For ``at-most-once`` queues, these options to acknowledgments have no effect,
640
- since the message is guaranteed not to be redelivered even if processing fails.
641
-
642
- Persisting Metadata for Queues
643
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
644
-
645
- A queue can, optionally, save the state of the queue as
646
- metadata in the journal directory. This can reduce the
647
- active memory footprint required for large queues, since
648
- the state of the queue can be paged out if necessary.
649
- This can also potentially improve recovery time if there
650
- are a large number of unacknowledged messages in the queue
651
- when AMPS starts. To persist metadata for a queue,
652
- set the ``FileBackedMetadata`` option to ``enabled``
653
- for the queue.
654
-
655
- .. tip::
656
-
657
- When ``FileBackedMetadata`` is enabled, queue
658
- state that is not currently needed can be paged
659
- out to the file. This can substantially reduce
660
- the active memory needed for large queues that
661
- are infrequently used.
662
-
663
- Notice that the state will only be paged
664
- out as necessary. While this option increases
665
- AMPS ability to manage queue state in
666
- low-memory situations, AMPS will still
667
- retain state in memory if memory is
668
- available to improve performance.
669
-
670
- Optional Message Delivery Behaviors
671
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
672
-
673
- AMPS queues provide the following optional message delivery behaviors:
674
-
675
- * A ``Priority`` can be specified for a queue, in which case
676
- AMPS delivers messages in priority order rather than the
677
- order in which the instance received the messages.
678
-
679
- * A ``BarrierExpression`` can be specified to provide a
680
- synchronization point. When a message matches the
681
- expression, all previous messages must be
682
- acknowledged before AMPS will deliver the message
683
- that matches the expression, or subsequent messages.
684
-
685
- These options are described in more detail in the
686
- :ref:`Advanced Queue Configuration<#ug-queues-advanced>` section below.
687
-
688
- Message Flow for Queues
689
- ^^^^^^^^^^^^^^^^^^^^^^^
690
-
691
- The message flow for AMPS queues is as follows. The message flow differs
692
- depending on whether the queue is configured for ``at-most-once``
693
- delivery or ``at-least-once`` delivery.
694
-
695
- When the queue is configured for ``at-most-once`` delivery:
696
-
697
- 1. A publisher publishes a message to an underlying topic.
698
-
699
- 2. The message becomes available in the queue.
700
-
701
- 3. For a message that is not a barrier message, the message is published to a subscriber when:
702
-
703
- - There is a subscription that matches the message, and the
704
- subscriber is entitled to see the message
705
-
706
- - The message is the oldest message in the queue that matches the
707
- subscription (if no ``Priority`` is specified for the queue)
708
- or it has the highest priority value for messages in the queue
709
- and is the oldest message at that priority (if ``Priority``
710
- is specified).
711
-
712
- - The subscription has remaining capacity in its backlog
713
-
714
- - The subscription is the next subscription to receive the message
715
- as determined by the delivery fairness for the queue
716
-
717
- AMPS removes the message from the queue when the message is
718
- published.
719
-
720
- 4. For a message that is a barrier message, AMPS does not deliver the message
721
- until all previous messages have been acknowledged. AMPS does not deliver
722
- messages after the barrier message until the barrier message has been
723
- delivered.
724
-
725
- 5. If no subscription has requested the message, and the message has
726
- been in the queue longer than the ``Expiration`` time, AMPS removes
727
- the message from the queue. With AMPS queues, message expiration is
728
- considered to be a normal way for the message to leave the queue, and
729
- is not considered an error.
730
-
731
- 6. The subscriber processes the message, and acknowledges the message
732
- when processing is finished to indicate to AMPS that the subscriber
733
- has capacity for another message.
734
-
735
- When the queue is configured for ``at-least-once`` delivery:
736
-
737
- 1. A publisher publishes a message to an underlying topic.
738
-
739
- 2. The message becomes available in the queue.
740
-
741
- 3. For a message that is not a barrier message, the message is published to a subscriber when:
742
-
743
- - There is a subscription that matches the message
744
-
745
- - The message is the oldest message in the queue that matches the
746
- subscription (if no ``Priority`` is specified for the queue) or
747
- it has the highest priority value for messages in the queue
748
- and is the oldest message at that priority (if ``Priority``
749
- is specified).
750
- - The subscription has remaining capacity in its backlog
751
-
752
- - The subscription is the next subscription to receive a message as
753
- determined by the delivery fairness for the queue
754
-
755
- AMPS calculates the lease time for the message and provides that time
756
- to the subscriber along with the message.
757
-
758
- 4. For a message that is a barrier message (that is, the queue
759
- has a ``BarrierExpression`` specified and the message matches
760
- that expression), AMPS does not deliver the message
761
- until all previous messages have been acknowledged. AMPS will not deliver
762
- messages after the barrier message until the barrier message is delivered.
763
-
764
- 5. If the message has been in the queue longer than the ``Expiration``
765
- time, and there is no current lease on the message, AMPS removes the
766
- message from the queue.
767
-
768
- 6. If a subscriber has received the message, but has not removed the
769
- message from the queue at the time the lease expires, AMPS returns
770
- the message to the queue if the message has been in the queue less
771
- than the ``Expiration`` time, and it has been delivered fewer than
772
- the ``MaxDeliveries`` limit. If the message has been in the queue
773
- longer than the ``Expiration`` time or has been delivered more than
774
- the number of times specified by ``MaxDeliveries``, AMPS removes the
775
- message from the queue when the lease expires.
776
-
777
- 7. The subscriber processes the message, and removes the message from
778
- the queue by acknowledging the message (which is translated by the
779
- AMPS client into the appropriate ``sow_delete`` command).
780
-
781
- Startup and Recovery for Queues
782
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
783
-
784
- When the metadata for a queue is not persisted to a file,
785
- or if that file is not fully up to date with the transaction
786
- log, AMPS recovers the current state of a queue from the
787
- transaction log when the instance starts.
788
-
789
- The point at which AMPS chooses to start recovery
790
- for a given queue is as follows:
791
-
792
- * If this is a new queue,
793
- or the configured ``RecoveryPoint`` for the queue
794
- has changed since the last time AMPS started,
795
- begin queue recovery at the configured recovery
796
- point. (This defaults to the beginning of the
797
- transaction log if no explicit ``RecoveryPoint`` is
798
- configured for the queue.)
799
-
800
- * Otherwise, start from the most recent point in
801
- the transaction log at which all previous messages
802
- have been acknowledged. This recovery point is
803
- stored in the ``queues.ack`` file in the journal
804
- directory for all queues in the instance. If that
805
- recovery point is older than the journals currently
806
- available, begin from the beginning of the
807
- transaction log.
808
-
809
- To recover the state of the queue, AMPS proceeds through
810
- the journal file from the recovery point and restores
811
- the state of the queue based on the operations in the
812
- transaction log for that queue.
813
-
814
- AMPS determines the oldest recovery point for all of
815
- the queues in the instance, and reads journals
816
- from that point forward to the end of the transaction log.
817
- AMPS rebuilds the state of each queue as the replay progresses
818
- past the recovery point for that queue.
819
-
820
-
821
- Advanced Messaging and Queues
822
- -----------------------------
823
-
824
- Queues are implemented as AMPS topics which lets you use the advanced
825
- messaging features of AMPS to create your queues and provide insight
826
- into your queues. For example, consumers can use content filtering to
827
- select the messages from the queue that they want to consume. You can
828
- use content filters to select only a subset of messages published to an
829
- underlying topic to populate the queue. You can even create a view that
830
- aggregates data from multiple topics, and use that view as the
831
- underlying topic for the queue. Since messages for queues are recorded
832
- in the transaction log, you can easily replay the messages that the
833
- queue provided to subscribers by using a bookmark subscription.
834
-
835
- Querying Queues as a View
836
- ^^^^^^^^^^^^^^^^^^^^^^^^^
837
-
838
- For each queue, AMPS provides a view of the currently available
839
- messages. Applications can query this queue just as though it were a
840
- view. For example, if you have a queue named ``PendingOrders``, you can
841
- see the currently available messages in the queue by querying the queue
842
- as though it were a view, with a ``sow`` command.
843
-
844
- A query of a queue is *read-only*. AMPS does not lease the returned
845
- messages to the querying application, or remove them from the queue.
846
-
847
-
848
- .. _#ug-sow-underlying-queue:
849
-
850
- Topic in the State of the World as an Underlying Topic for a Queue
851
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
852
-
853
- AMPS fully supports a topic that maintains a SOW as an underlying topic
854
- for a queue. Since a queue records every individual publish to a topic
855
- (rather than simply preserving the current state of a distinct message
856
- identified by a SOW key), each publish to the SOW topic creates a new
857
- message in the queue.
858
-
859
- AMPS does not provide Out-of-Focus messages to the queue. Only publish
860
- messages are added to the queue.
861
-
862
- Deleting a message from an underlying topic that maintains a SOW does
863
- not remove the corresponding messages from the queue. Likewise, when a
864
- message expires from the SOW, it is not removed from the queue.
865
-
866
- When a message is published to a topic in the SOW, and that topic uses
867
- expiration, the message is stamped with the expiration value
868
- set for the topic before being written to the transaction log.
869
- This means that the message will have the same expiration in the queue.
870
-
871
- Delta Messaging with Queues
872
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
873
-
874
- AMPS delta subscriptions rely on being able to determine the last state
875
- of a message delivered on a subscription and providing a set of changes
876
- to the subscriber. With AMPS queues, AMPS treats each update to a SOW
877
- record as a new message, so there's no previous state that would
878
- generate a delta message. When an underlying topic of a queue is a SOW
879
- topic, AMPS supports delta publish to that underlying topic. The full,
880
- merged message is added to the queue.
881
-
882
- AMPS allows delta subscriptions to a queue, but treats each message as a
883
- new publish and delivers the full message.
884
-
885
- Views and Aggregated Subscriptions over Queues
886
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
887
-
888
- AMPS fully supports creating a view or an aggregated subscription with a
889
- queue as an underlying topic. In both cases, AMPS operates on the
890
- messages that are currently available in the queue. When a message is
891
- leased, that message is no longer available to the queue and does not
892
- appear in the view or the aggregated subscription. If the message is
893
- returned to the queue, then the message is again available to the view
894
- or aggregated subscription. When a message expires, that message is no
895
- longer available in the view or aggregated subscription.
896
-
897
- Views and aggregated subscriptions are considered to be a query of the
898
- queue, so they are *read-only*. Views and aggregated subscriptions do
899
- not lease messages from the queue and do not affect message delivery.
900
-
901
- Views over queues can be useful to show constantly-updated aggregates of
902
- the activity in the queue. For example, you could create an aggregate
903
- that shows the total value of unprocessed orders currently in the queue.
904
-
905
- Bookmark Subscriptions to Queues
906
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
907
-
908
- A queue itself supports `at_most_once` or `at_least_once` delivery.
909
- It does not provide a way to replay messages once a subscriber
910
- has acknowledged the message.
911
-
912
- To support replay of messages from a queue, AMPS translates a
913
- bookmark subscription to a queue to be a bookmark subscription
914
- to the underlying topic for the queue. This allows you to replay
915
- messages from the underlying topic *without* queue delivery semantics.
916
- That is, a bookmark subscription to a queue becomes a
917
- publish/subscribe bookmark subscription to the underlying topic,
918
- *not* a subscription to the queue. Messages from this subscription do
919
- not have ``at-most-once`` or ``at-least-once`` delivery, and do not need
920
- to be acknowledged. The subscription is a publish/subscribe bookmark
921
- subscription, just as though there was no queue for the topic.
922
-
923
- To get queuing semantics, do not include a bookmark on subscriptions to
924
- a queue.
925
-
926
- Queue Subscriptions Compared to Bookmark Replays
927
- ------------------------------------------------
928
-
929
- At first glance, a subscription to a queue can look very similar to a bookmark
930
- replay. In both cases, messages are provided in order from the transaction log.
931
- In both cases, a message that is not processed can be retrieved and redelivered.
932
- In both cases, AMPS allows a subscription to exactly specify the
933
- messages of interest using content filtering.
934
-
935
- There are a few main differences:
936
-
937
- * **Delivery Model**
938
-
939
- With a bookmark subscription, a message from a given topic can be delivered
940
- to any number of subscribers and processed multiple times. A given
941
- subscriber can replay the same messages any number of times, if needed.
942
-
943
- With a queue subscription, the server guarantees that once a message
944
- is processed, it is not delivered from that topic again.
945
-
946
- * **Delivery Limits**
947
-
948
- With a bookmark subscription, by default AMPS will deliver messages to the
949
- subscription as fast as the physical hardware, disk, and network
950
- allow.
951
-
952
- With a queue subscription, AMPS intentionally limits the number of messages
953
- delivered to a subscriber, to help ensure that messages are processed in a
954
- timely manner. Since each message should be delivered only once, delivering
955
- every message to a single subscriber would run the risk of having a slow consumer
956
- holding messages that it is unable to process, while a faster consumer sits idle.
957
-
958
- - **Acknowledgment**
959
-
960
- With a bookmark subscription, the application and client libraries are
961
- responsible for tracking which messages have been processed and providing
962
- the correct recovery point. There is no state stored in the AMPS server
963
- as to which messages have been consumed by a given subscription.
964
-
965
- With a queue subscription, the AMPS server tracks whether a given message
966
- has been processed. A queue subscriber must notify the server that it
967
- is finished with a given message and is ready for more work. The AMPS
968
- client libraries contain support for making this process easy, as well
969
- as the ability to batch acknowledgments to provide high throughput
970
- while maintaining efficient processing and the guarantees for queues.
971
-
972
- Replacing Queue Subscriptions
973
- -----------------------------
974
-
975
- Queues support the ``replace`` option for subscriptions. As with
976
- subscriptions to other topics, queue subscriptions can replace the
977
- content filter, the topic, the options, or all of the above. Replacement
978
- is atomic. The queue consumer is guaranteed that, after the replace
979
- occurs, only messages that match the new subscription will be delivered.
980
-
981
- Replacing queue subscriptions differs from unsubscribing and
982
- resubscribing with new parameters in two ways:
983
-
984
- 1. AMPS does not break message leases or adjust the number of
985
- currently-unacknowledged messages for the subscription, even if the
986
- messages no longer match the current subscription. AMPS makes no
987
- assumptions about the state of the messages, and requires the
988
- subscriber to acknowledge them or allow the lease to expire.
989
-
990
- 2. AMPS may change the maximum backlog for the subscription if either
991
- the ``max_backlog`` option *or* the topic for the subscription has
992
- changed. AMPS adjusts the backlog using the same logic as when the
993
- subscription was entered: the maximum backlog will be the smaller of
994
- the option set by the consumer or the limit on the queue. This can
995
- result in a situation where the consumer has more messages leased
996
- than the current maximum for the subscription, and no new messages
997
- will be delivered until that number drops below the current maximum.
998
-
999
- For example, if the consumer has a requested ``max_backlog`` of 10 and
1000
- updates a subscription from a queue with a configured maximum of 10
1001
- to a queue with a configured maximum of 5, the new backlog for the
1002
- subscription will be 5. However, the consumer may still have 10
1003
- messages outstanding.
1004
-
1005
- In all other ways, AMPS behaves as though the replaced subscription was
1006
- a new subscription to the queue.
1007
-
1008
- .. index:: dead-letter queue, poison message handling
1009
-
1010
- Handling Unprocessed Messages
1011
- -----------------------------
1012
-
1013
- Queuing applications occasionally encounter data that cannot be successfully
1014
- processed or completed. AMPS allows you to configure actions that occur when
1015
- a message expires from a message queue. You can create a dead-letter queue or
1016
- topic by using the ``amps-action-on-sow-expire-message`` action in conjunction
1017
- with the ``MaxCancels`` and ``MaxDeliveries`` options and the ``cancel``
1018
- and ``expire`` options on the ``sow_delete`` command.
1019
-
1020
- As an example, suppose your queue ``Jobs`` is used to coordinate computation
1021
- jobs, and in the rare case where a job cannot be completed successfully, you
1022
- would like AMPS to automatically move the job to another queue, ``FailedJobs``.
1023
- AMPS provides ``MaxCancels`` and ``MaxDeliveries`` options to specify how many
1024
- attempts it should make to deliver a message to a subscriber:
1025
-
1026
- .. code-block:: xml
1027
-
1028
- <AMPSConfig>
1029
- ...
1030
-
1031
- <SOW>
1032
- <Queue>
1033
- <Name>Jobs</Name>
1034
- <MessageType>json</MessageType>
1035
- <MaxCancels>3</MaxCancels>
1036
- <MaxDeliveries>10</MaxDeliveries>
1037
- </Queue>
1038
- <Queue>
1039
- <Name>FailedJobs</Name>
1040
- <MessageType>json</MessageType>
1041
- </Queue>
1042
- </SOW>
1043
- </AMPSConfig>
1044
-
1045
- In this configuration, AMPS will automatically expire a message from ``Jobs``
1046
- on the 3rd time it receives a ``sow_delete`` with the ``cancel`` operation
1047
- for that message, or after the 10th unsuccessful delivery of the message.
1048
- By default, expiring a message simply means the message is removed from the
1049
- queue, but in this case, we also want the ``FailedJobs`` queue to receive
1050
- the message so that it can be manually reviewed later. To accomplish this,
1051
- AMPS provides the ``amps-action-on-sow-expire-message`` action which can be
1052
- configured to do so:
1053
-
1054
- .. code-block:: xml
1055
-
1056
- <AMPSConfig>
1057
- ...
1058
- <Actions>
1059
- <Action>
1060
- <On>
1061
- <Module>amps-action-on-sow-expire-message</Module>
1062
- <Options>
1063
- <Topic>Jobs</Topic>
1064
- <MessageType>json</MessageType>
1065
- </Options>
1066
- </On>
1067
- <Do>
1068
- <Module>amps-action-do-publish-message</Module>
1069
- <Options>
1070
- <Topic>FailedJobs</Topic>
1071
- <MessageType>json</MessageType>
1072
- <Data>{ "message": {{AMPS_DATA}}, "reason": "{{AMPS_REASON}}" }</Data>
1073
- </Options>
1074
- </Do>
1075
- </Action>
1076
- </Actions>
1077
- ...
1078
- </AMPSConfig>
1079
-
1080
- With this action configured, any expired message from ``Jobs`` will result in a
1081
- message automatically published to ``FailedJobs`` containing the original
1082
- message inside the ``message`` element, and an AMPS-supplied reason code in
1083
- the ``reason`` field.
1084
-
1085
-
1086
- .. _#ug-queues-advanced:
1087
-
1088
- Advanced Queue Configuration
1089
- ----------------------------
1090
-
1091
- This section describes more advanced configuration settings for
1092
- AMPS message queues.
1093
-
1094
- Using Multiple Underlying Topics
1095
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1096
-
1097
- AMPS queues can contain messages from any number of underlying topics. This provides
1098
- a flexible delivery model, and allows applications to populate multiple queues
1099
- with a single publish to AMPS, which simplifies publisher code, reduces bandwidth,
1100
- and ensures that the message is provided to all queues from the same point in
1101
- the message stream.
1102
-
1103
- To create a queue that includes messages from underlying topics, you provide a
1104
- regular expression that matches the set of topic names that contain messages for
1105
- the queue. You also provide a ``DefaultPublishTarget`` that specifies the topic
1106
- name for AMPS to use when a message is published directly to the queue topic.
1107
-
1108
- For example, you might configure a set of topics as follows:
1109
-
1110
- .. code-block:: xml
1111
-
1112
- <SOW>
1113
- ...
1114
- <Queue>
1115
- <Name>ORDERS_ANALYTICS</Name>
1116
- <MessageType>json</MessageType>
1117
- <UnderlyingTopic>^ORDERS$|^ORDERS_ANALYTICS_DIRECT$</UnderlyingTopic>
1118
- <DefaultPublishTarget>ORDERS_ANALYTICS_DIRECT</DefaultPublishTarget>
1119
- </Queue>
1120
- <Queue>
1121
- <Name>ORDERS_RISK</Name>
1122
- <MessageType>json</MessageType>
1123
- <UnderlyingTopic>^ORDERS$|^ORDERS_RISK_DIRECT$</UnderlyingTopic>
1124
- <DefaultPublishTarget>ORDERS_RISK_DIRECT</DefaultPublishTarget>
1125
- </Queue>
1126
- ...
1127
- </SOW>
1128
-
1129
- In this case, when a message is published to the ``ORDERS`` topic, both the
1130
- ``ORDERS_ANALYTICS`` and the ``ORDERS_RISK`` queues deliver the message.
1131
- However, a publisher can also publish directly to each queue by publishing
1132
- a message to the ``_DIRECT`` topic for that queue. Furthermore, any publish
1133
- to the name of the queue will be routed to the appropriate ``_DIRECT`` topic.
1134
-
1135
- The following table demonstrates how messages are provided to topics with
1136
- this configuration:
1137
-
1138
- .. list-table::
1139
- :header-rows: 1
1140
-
1141
- * - Publish To
1142
-
1143
- - Results
1144
-
1145
- * - ``ORDERS``
1146
-
1147
-
1148
- - Both ``ORDERS_ANALYTICS`` and ``ORDERS_RISK`` enqueue the
1149
- message, since ``ORDERS`` matches the ``UnderlyingTopic`` of
1150
- both queues.
1151
-
1152
- * - ``ORDERS_ANALYTICS``
1153
-
1154
-
1155
- - The message is published to the ``DefaultPublishTarget``
1156
- of ``ORDERS_ANALYTICS``, which is ``ORDERS_ANALYTICS_DIRECT``.
1157
- The message is then enqueued to ``ORDERS_ANALYTICS``, since
1158
- ``ORDERS_ANALYTICS_DIRECT`` matches the ``UnderlyingTopic`` of
1159
- ``ORDERS_ANALYTICS``.
1160
-
1161
- * - ``ORDERS_RISK``
1162
-
1163
-
1164
- - The message is published to the ``DefaultPublishTarget``
1165
- of ``ORDERS_RISK``, which is ``ORDERS_RISK_DIRECT``.
1166
- The message is then enqueued to ``ORDERS_RISK``, since
1167
- ``ORDERS_RISK_DIRECT`` matches the ``UnderlyingTopic``
1168
- ``ORDERS_RISK``.
1169
-
1170
- * - ``ORDERS_ANALYTICS_DIRECT``
1171
-
1172
-
1173
- - The message is published to ``ORDERS_ANALYTICS_DIRECT``,
1174
- and is then enqueued to ``ORDERS_ANALYTICS``.
1175
-
1176
- * - ``ORDERS_RISK_DIRECT``
1177
-
1178
-
1179
- - The message is published to ``ORDERS_RISK_DIRECT``,
1180
- and is then enqueued to ``ORDERS_RISK``.
1181
-
1182
-
1183
-
1184
- Priority Queues
1185
- ^^^^^^^^^^^^^^^
1186
-
1187
- AMPS includes the ability to specify that messages from a queue are delivered
1188
- in order of *priority* rather than being delivered strictly in publication order.
1189
- To enable prioritization on a ``Queue``, add the ``Priority`` tag to the queue
1190
- configuration and specify the field or expression to use to set the priority.
1191
- When a queue definition specifies ``Priority``, AMPS orders delivery based on
1192
- a descending sort of the value calculated for the ``Priority`` rather than
1193
- in descending order of age.
1194
-
1195
- ``Priority`` expressions use the same grammar as other expressions in AMPS, as
1196
- described in :ref:`#ug-amps-expressions`. The results of the ``Priority`` expression
1197
- are interpreted as an ``unsigned long``. That is, the result should be a positive
1198
- integer that can be represented in 64 bits. Non-numeric values or ``NULL`` are treated
1199
- as ``NaN``, and have the lowest priority.
1200
-
1201
- For example, to create a queue that delivers messages in order of the product of
1202
- the price and quantity specified in the message, you could use the following
1203
- queue definition:
1204
-
1205
- .. code-block:: xml
1206
-
1207
- <AMPSConfig>
1208
- ...
1209
- <!-- Other configuration, including
1210
- recording that OrderPriority
1211
- and Orders are recorded in the
1212
- transaction log.
1213
- -->
1214
-
1215
- <SOW>
1216
- ...
1217
- <Queue>
1218
- <Name>OrderPriority</Name>
1219
- <MessageType>json</MessageType>
1220
- <Semantics>at-least-once</Semantics>
1221
- <UnderlyingTopic>Orders</UnderlyingTopic>
1222
- <Priority>/price * /qty</Priority>
1223
- </Queue>
1224
- </SOW>
1225
-
1226
- ...
1227
- </AMPSConfig>
1228
-
1229
- Synchronizing Work with Barrier Messages
1230
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1231
-
1232
- AMPS queues provide the ability to synchronize work across a set of
1233
- subscribers by sending the same message to all subscribers simultaneously,
1234
- when the queue is fully processed up to the point of the message.
1235
-
1236
- These messages are referred to as *barrier messages*, since they are roughly
1237
- equivalent to the concept of a barrier in multithreaded programming.
1238
-
1239
- Barrier messages simplify coordination between current subscribers to
1240
- a queue. They allow you to easily coordinate operations (such as end of day
1241
- processing), update reference data at the precise point in the message
1242
- stream that the update should take effect, send a shutdown message
1243
- when all available work is processed, and so on. Since barrier messages
1244
- are integrated with queue delivery, there is no need to write extra code
1245
- to correlate the barrier message with the correct point in the queue,
1246
- to manage multiple subscriptions, or to write code that guarantees
1247
- delivery to all current subscribers.
1248
-
1249
- To specify which messages should be treated as barrier messages, the
1250
- queue configuration includes a ``BarrierExpression`` element that contains
1251
- a filter. All messages that match that filter are considered barrier
1252
- expressions.
1253
-
1254
- When a message matches the ``BarrierExpression``, AMPS delivers the
1255
- message in the following way:
1256
-
1257
- * AMPS does not deliver the message until all previous messages in the
1258
- queue are acknowledged.
1259
- * AMPS does not deliver messages that are after the barrier message
1260
- until the barrier message is sent to subscribers.
1261
- * When all previous messages in the queue are acknowledged, AMPS
1262
- delivers the barrier message to all current subscribers to the
1263
- queue.
1264
- * AMPS immediately removes the message from the queue, without
1265
- requiring acknowledgment from any subscriber.
1266
-
1267
- A barrier message sent to a subscriber does not count toward that subscriber's
1268
- backlog, since the barrier message is immediately acknowledged. When
1269
- sending the barrier message, AMPS does not consider the current backlog
1270
- of the subscriber (so, subscribers that request ``max_backlog=0`` or which
1271
- use a regular expression topic and have their backlog filled by messages
1272
- from other topics will still receive the barrier message).
1273
-
1274
- AMPS does, however, apply content filters and entitlement filters for each
1275
- subscription when delivering the message. If the content filter or entitlement
1276
- filter for a subscription does not match the barrier message, that subscription
1277
- will not receive the message. The fact that this subscription does not
1278
- receive the actual barrier message does not affect the behavior of the
1279
- barrier itself. A subscription that does not match the message will still
1280
- see message delivery pause until the barrier is released, but will not
1281
- receive the actual barrier message.
1282
-
1283
- Each AMPS instance manages the delivery of barrier messages for the subscribers
1284
- connected to that instance, when all messages prior to the barrier message in
1285
- the local queue have been acknowledged.
1286
-
1287
- Limiting Currently Deliverable Messages
1288
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1289
-
1290
- In some cases, it may be important to limit the maximum number of
1291
- messages that AMPS considers to be part of the currently active,
1292
- deliverable part of the queue. This can be advantageous in cases
1293
- where memory is limited, or in cases where it is expected that
1294
- a queue is only processed infrequently (for example, a
1295
- reconciliation process that runs at the end of each day).
1296
-
1297
- The ``TargetQueueDepth`` option on a queue allows you to set
1298
- the target depth for the number of messages that AMPS will
1299
- consider to be deliverable at a given time.
1300
-
1301
- If the number of messages for the queue exceeds the ``TargetQueueDepth``
1302
- on an instance, messages beyond the specified depth are considered to
1303
- be inactive (though still part of the queue). Those messages are not
1304
- deliverable to subscribers on this instance. They do not appear in
1305
- a ``sow`` query of the queue, and are not considered when a view
1306
- over the queue is calculated. A ``sow_delete`` that uses a filter
1307
- will only apply to the messages in the queue that are currently deliverable.
1308
- As messages are acknowledged from the queue, AMPS will add messages
1309
- to the active part of the queue until the active part of the queue
1310
- once again reaches the ``TargetQueueDepth``. For messages that are
1311
- not currently deliverable, AMPS will not read those messages
1312
- from the transaction log and will not maintain queue state for
1313
- those messages. This also means that, if no messages within the
1314
- ``TargetQueueDepth`` match a given subscription, no messages will
1315
- be delivered to that subscription even if later messages in the
1316
- transaction log match the subscription.
1317
-
1318
- Although AMPS does not consider messages that are currently inactive
1319
- to be deliverable, AMPS will preserve queue delivery guarantees in
1320
- the event that a message that is not currently deliverable is
1321
- acknowledged before it enters the queue and becomes deliverable.
1322
- To do this, AMPS keeps a list of acknowledgments that
1323
- have been received for messages that are not in the queue. When
1324
- a message that would be added to the active part of the queue
1325
- has already been acknowledged, AMPS does not add that message to
1326
- the queue. Applications that use ``TargetQueueDepth`` to limit memory
1327
- growth should avoid a pattern where messages are acknowledged before
1328
- they enter the queue to reduce memory consumption for acknowledgments
1329
- that cannot yet be processed.
1330
-
1331
- Likewise, if a transfer request from another instance arrives for
1332
- a message that is in the transaction log, but is beyond the limit
1333
- set by the ``TargetQueueDepth``, AMPS will process messages further
1334
- into the queue until it reaches the message to be transferred. At
1335
- that point, AMPS will transfer the message and stop processing further
1336
- messages until either:
1337
-
1338
- * The current depth drops below the ``TargetQueueDepth``, *or*
1339
-
1340
- * AMPS once again receives a request for a message that is in the
1341
- transaction log, but beyond the current active messages in the queue.
1342
-
1343
- .. important::
1344
-
1345
- A ``TargetQueueDepth`` *cannot* be set for a queue that specifies
1346
- a ``Priority`` or a ``BarrierExpression``.
1347
-
1348
-
1349
- .. include:: ../../common/chapters/queues/queues.inc
1350
-
1351
-