Zend_Queue-Adapters.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 16641 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.queue.adapters">
  5. <title>Adapter</title>
  6. <para>
  7. <classname>Zend_Queue</classname> unterstützt alle Queue die das Interface
  8. <classname>Zend_Queue_Adapter_AdapterInterface</classname> implementieren. Die folgenden
  9. Nachrichten Queue Services werden unterstützt:
  10. </para>
  11. <itemizedlist>
  12. <listitem>
  13. <para>
  14. <ulink url="http://activemq.apache.org/">ApacheMQ</ulink>.
  15. </para>
  16. </listitem>
  17. <listitem>
  18. <para>
  19. Eine Datenbank verwendende Queue über <classname>Zend_Db</classname>.
  20. </para>
  21. </listitem>
  22. <listitem>
  23. <para>
  24. Eine <ulink url="http://memcachedb.org/memcacheq/">MemcacheQ</ulink> verwendende
  25. Queue über <classname>Memcache</classname>.
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. Ein lokales Array. Nützlich für Unit Tests.
  31. </para>
  32. </listitem>
  33. </itemizedlist>
  34. <note id="zend.queue.adapters.limitations">
  35. <title>Einschränkungen</title>
  36. <para>
  37. Das Transaction Handling für Nachrichten wird nicht unterstützt.
  38. </para>
  39. </note>
  40. <sect2 id="zend.queue.adapters.configuration">
  41. <title>Spezielle Adapter - Konfigurations Optionen</title>
  42. <para>
  43. Wenn eine Standardeinstellung angezeigt wird, dann ist der Parameter optional.
  44. Wenn keine Standardeinstellung spezifiziert ist dann wird der Parameter benötigt.
  45. </para>
  46. <sect3 id="zend.queue.adapters.configuration.Apachemq">
  47. <title>ApacheMQ - Zend_Queue_Adapter_Apachemq</title>
  48. <para>
  49. Hier aufgeführte Optionen sind bekannte Notwendigkeiten. Nicht alle Nachrichten
  50. Server benötigen username oder password.
  51. </para>
  52. <itemizedlist>
  53. <listitem>
  54. <para>
  55. <emphasis>$options['name'] = '/temp/queue1';</emphasis>
  56. </para>
  57. <para>
  58. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  59. </para>
  60. </listitem>
  61. <listitem>
  62. <para>
  63. <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
  64. </para>
  65. <para>
  66. <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
  67. </para>
  68. <para>
  69. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  70. </para>
  71. <para>
  72. Der Standardwert für host ist '127.0.0.1'.
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>
  77. <emphasis>$options['driverOptions']['port'] = 61613;</emphasis>
  78. </para>
  79. <para>Die Standardeinstellung für port ist 61613.</para>
  80. </listitem>
  81. <listitem>
  82. <para>
  83. <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
  84. </para>
  85. <para>
  86. Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
  87. Nachrichten Server.
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
  93. </para>
  94. <para>
  95. Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
  96. Nachrichten Server.
  97. </para>
  98. </listitem>
  99. <listitem>
  100. <para>
  101. <emphasis>$options['driverOptions']['timeout_sec'] = 2;</emphasis>
  102. </para>
  103. <para>
  104. <emphasis>$options['driverOptions']['timeout_usec'] = 0;</emphasis>
  105. </para>
  106. <para>
  107. Das ist die Menge an Zeit die
  108. <classname>Zend_Queue_Adapter_Activemq</classname> für einen Lesezugriff
  109. auf einem Socket wartet bevor keine Nachricht zurückgegeben wird.
  110. </para>
  111. </listitem>
  112. </itemizedlist>
  113. </sect3>
  114. <sect3 id="zend.queue.adapters.configuration.Db">
  115. <title>Db - Zend_Queue_Adapter_Db</title>
  116. <para>
  117. Optionen des Treibers werden für wenige benötigte Optionen geprüft so wie
  118. <emphasis>type</emphasis>, <emphasis>host</emphasis>,
  119. <emphasis>username</emphasis>, <emphasis>password</emphasis> und
  120. <emphasis>dbname</emphasis>. Man kann zusätzliche Parameter für
  121. <methodname>Zend_DB::factory()</methodname> als Paramerter in
  122. <varname>$options['driverOptions']</varname> übergeben. Ein Beispiel für eine
  123. zusätzliche Option die hier nicht aufgeführt ist, aber übergeben werden könnte ist
  124. <emphasis>port</emphasis>.
  125. </para>
  126. <programlisting language="php"><![CDATA[
  127. $options = array(
  128. 'driverOptions' => array(
  129. 'host' => 'db1.domain.tld',
  130. 'username' => 'my_username',
  131. 'password' => 'my_password',
  132. 'dbname' => 'messaging',
  133. 'type' => 'pdo_mysql',
  134. 'port' => 3306, // Optionaler Parameter
  135. ),
  136. 'options' => array(
  137. // Verwenden von Zend_Db_Select für das Update, nicht alle Datenbanken
  138. // unterstützen dieses Feature.
  139. Zend_Db_Select::FOR_UPDATE => true
  140. )
  141. );
  142. // Eine Datenbank Queue erstellen.
  143. $queue = Zend_Queue::factory('Db', $options);
  144. ]]></programlisting>
  145. <itemizedlist>
  146. <listitem>
  147. <para>
  148. <emphasis>$options['name'] = 'queue1';</emphasis>
  149. </para>
  150. <para>
  151. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  152. </para>
  153. </listitem>
  154. <listitem>
  155. <para>
  156. <emphasis>$options['driverOptions']['type'] = 'Pdo';</emphasis>
  157. </para>
  158. <para>
  159. <emphasis>type</emphasis> ist der Adapter von dem man will das Ihn
  160. <methodname>Zend_Db::factory()</methodname> verwendet. Das ist der erste
  161. Parameter für den Aufruf der Klassenmethode
  162. <methodname>Zend_Db::factory()</methodname>
  163. </para>
  164. </listitem>
  165. <listitem>
  166. <para>
  167. <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
  168. </para>
  169. <para>
  170. <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
  171. </para>
  172. <para>
  173. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  174. </para>
  175. <para>
  176. Der Standardwert für host ist '127.0.0.1'.
  177. </para>
  178. </listitem>
  179. <listitem>
  180. <para>
  181. <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
  182. </para>
  183. </listitem>
  184. <listitem>
  185. <para>
  186. <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
  187. </para>
  188. </listitem>
  189. <listitem>
  190. <para>
  191. <emphasis>$options['driverOptions']['dbname'] = 'dbname';</emphasis>
  192. </para>
  193. <para>
  194. Der Name der Datenbank für die man die benötigten Tabellen erstellt hat.
  195. Siehe das unten stehende Notizen Kapitel.
  196. </para>
  197. </listitem>
  198. </itemizedlist>
  199. </sect3>
  200. <sect3 id="zend.queue.adapters.configuration.memcacheq">
  201. <title>MemcacheQ - Zend_Queue_Adapter_Memcacheq</title>
  202. <itemizedlist>
  203. <listitem>
  204. <para>
  205. <emphasis>$options['name'] = 'queue1';</emphasis>
  206. </para>
  207. <para>
  208. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  209. </para>
  210. </listitem>
  211. <listitem>
  212. <para>
  213. <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
  214. </para>
  215. <para>
  216. <emphasis>$options['driverOptions']['host'] = '127.0.0.1;'</emphasis>
  217. </para>
  218. <para>
  219. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  220. </para>
  221. <para>
  222. Der Standardwert für host ist '127.0.0.1'.
  223. </para>
  224. </listitem>
  225. <listitem>
  226. <para>
  227. <emphasis>$options['driverOptions']['port'] = 22201;</emphasis>
  228. </para>
  229. <para>Die Standardeinstellung für port ist 22201.</para>
  230. </listitem>
  231. </itemizedlist>
  232. </sect3>
  233. <sect3 id="zend.queue.adapters.configuration.array">
  234. <title>Array - Zend_Queue_Adapter_Array</title>
  235. <itemizedlist>
  236. <listitem>
  237. <para>
  238. <emphasis>$options['name'] = 'queue1';</emphasis>
  239. </para>
  240. <para>
  241. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  242. </para>
  243. </listitem>
  244. </itemizedlist>
  245. </sect3>
  246. </sect2>
  247. <sect2 id="zend.queue.adapters.notes">
  248. <title>Hinweise für spezielle Adapter</title>
  249. <para>Die folgenden Adapter haben Hinweise:</para>
  250. <sect3 id="zend.queue.adapters.notes.activemq">
  251. <title>ActiveMQ</title>
  252. <para>
  253. Die Dauer der Sichtbarkeit (visibility duration) ist für
  254. <classname>Zend_Queue_Adapter_ActiveMQ</classname> nicht vorhanden.
  255. </para>
  256. <para>
  257. Wärend Apache's ActiveMQ mehrere Einschreibungen unterstützt, wird das von
  258. <classname>Zend_Queue</classname> nicht unterstützt. Man muss ein neues
  259. <classname>Zend_Queue</classname> Objekt für jede individuelle Einschreibung
  260. erstellen.
  261. </para>
  262. <para>
  263. ActiveMQ Queue oder Topic Namen müssen mit einem der folgenden beginnen:
  264. </para>
  265. <itemizedlist>
  266. <listitem>
  267. <para>
  268. <filename>/queue/</filename>
  269. </para>
  270. </listitem>
  271. <listitem>
  272. <para>
  273. <filename>/topic/</filename>
  274. </para>
  275. </listitem>
  276. <listitem>
  277. <para>
  278. <filename>/temp-queue/</filename>
  279. </para>
  280. </listitem>
  281. <listitem>
  282. <para>
  283. <filename>/temp-topic/</filename>
  284. </para>
  285. </listitem>
  286. </itemizedlist>
  287. <para>
  288. Zum Beispiel: <filename>/queue/testing</filename>
  289. </para>
  290. <para>
  291. Die folgenden Funktionen werden nicht unterstützt:
  292. </para>
  293. <itemizedlist>
  294. <listitem>
  295. <para>
  296. <methodname>create()</methodname> - Erstellt eine Queue. Der Aufruf dieser
  297. Funktion wird eine Exception werfen.
  298. </para>
  299. </listitem>
  300. <listitem>
  301. <para>
  302. <methodname>delete()</methodname> - Löscht eine Queue. Der Aufruf dieser
  303. Funktion wird eine Exception werfen.
  304. </para>
  305. </listitem>
  306. <listitem>
  307. <para>
  308. <methodname>getQueues()</methodname> - Auflisten von Queues. Der Aufruf
  309. dieser Funktion wird eine Exception werden.
  310. </para>
  311. </listitem>
  312. </itemizedlist>
  313. </sect3>
  314. <sect3 id="zend.queue.adapters.notes.zend_db">
  315. <title>Zend_Db</title>
  316. <para>
  317. Das Datenbank <acronym>SQL</acronym> Statement
  318. <emphasis>CREATE TABLE ( ... )</emphasis> kann in
  319. <filename>Zend/Queue/Adapter/Db/queue.sql</filename> gefunden werden.
  320. </para>
  321. </sect3>
  322. <sect3 id="zend.queue.adapters.notes.memcacheQ">
  323. <title>MemcacheQ</title>
  324. <para>
  325. Memcache kann von <ulink
  326. url="http://www.danga.com/memcached/">http://www.danga.com/memcached/</ulink>
  327. heruntergeladen werden.
  328. </para>
  329. <para>
  330. MemcacheQ kann von <ulink
  331. url="http://memcachedb.org/memcacheq/">http://memcachedb.org/memcacheq/</ulink>
  332. heruntergeladen werden.
  333. </para>
  334. <itemizedlist>
  335. <listitem>
  336. <para>
  337. <methodname>deleteMessage()</methodname> - Nachrichten werden von der Queue
  338. gelöscht nachdem Sie von der Queue empfangen werden. Der Aufruf dieser
  339. Funktion hätte keinen Effekt. Der Aufruf dieser Funktion wird keinen Fehler
  340. werfen.
  341. </para>
  342. </listitem>
  343. <listitem>
  344. <para>
  345. <methodname>count()</methodname> oder
  346. <methodname>count($adapter)</methodname> - MemcacheQ unterstützt keine
  347. Methode für das Zählen der Anzahl an Elementen in einer Queue. Der Aufruf
  348. dieser Funktion wird keinen Fehler werfen.
  349. </para>
  350. </listitem>
  351. </itemizedlist>
  352. </sect3>
  353. <sect3 id="zend.queue.adapters.notes.array">
  354. <title>Array (Lokal)</title>
  355. <para>
  356. Die Array Queue ist ein <acronym>PHP</acronym> <methodname>array()</methodname>
  357. im lokalen Speicher. <classname>Zend_Queue_Adapter_Array</classname> ist gut
  358. für das Unit Testen.
  359. </para>
  360. </sect3>
  361. </sect2>
  362. </sect1>