| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 16641 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.queue.adapters">
- <title>Adapter</title>
- <para>
- <classname>Zend_Queue</classname> unterstützt alle Queue die das Interface
- <classname>Zend_Queue_Adapter_AdapterInterface</classname> implementieren. Die folgenden
- Nachrichten Queue Services werden unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://activemq.apache.org/">ApacheMQ</ulink>.
- </para>
- </listitem>
- <listitem>
- <para>
- Eine Datenbank verwendende Queue über <classname>Zend_Db</classname>.
- </para>
- </listitem>
- <listitem>
- <para>
- Eine <ulink url="http://memcachedb.org/memcacheq/">MemcacheQ</ulink> verwendende
- Queue über <classname>Memcache</classname>.
- </para>
- </listitem>
- <listitem>
- <para>
- Ein lokales Array. Nützlich für Unit Tests.
- </para>
- </listitem>
- </itemizedlist>
- <note id="zend.queue.adapters.limitations">
- <title>Einschränkungen</title>
- <para>
- Das Transaction Handling für Nachrichten wird nicht unterstützt.
- </para>
- </note>
- <sect2 id="zend.queue.adapters.configuration">
- <title>Spezielle Adapter - Konfigurations Optionen</title>
- <para>
- Wenn eine Standardeinstellung angezeigt wird, dann ist der Parameter optional.
- Wenn keine Standardeinstellung spezifiziert ist dann wird der Parameter benötigt.
- </para>
- <sect3 id="zend.queue.adapters.configuration.Apachemq">
- <title>ApacheMQ - Zend_Queue_Adapter_Apachemq</title>
- <para>
- Hier aufgeführte Optionen sind bekannte Notwendigkeiten. Nicht alle Nachrichten
- Server benötigen username oder password.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>$options['name'] = '/temp/queue1';</emphasis>
- </para>
- <para>
- Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
- </para>
- <para>
- <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
- </para>
- <para>
- Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
- </para>
- <para>
- Der Standardwert für host ist '127.0.0.1'.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['port'] = 61613;</emphasis>
- </para>
- <para>Die Standardeinstellung für port ist 61613.</para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
- </para>
- <para>
- Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
- Nachrichten Server.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
- </para>
- <para>
- Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
- Nachrichten Server.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['timeout_sec'] = 2;</emphasis>
- </para>
- <para>
- <emphasis>$options['driverOptions']['timeout_usec'] = 0;</emphasis>
- </para>
- <para>
- Das ist die Menge an Zeit die
- <classname>Zend_Queue_Adapter_Activemq</classname> für einen Lesezugriff
- auf einem Socket wartet bevor keine Nachricht zurückgegeben wird.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.queue.adapters.configuration.Db">
- <title>Db - Zend_Queue_Adapter_Db</title>
- <para>
- Optionen des Treibers werden für wenige benötigte Optionen geprüft so wie
- <emphasis>type</emphasis>, <emphasis>host</emphasis>,
- <emphasis>username</emphasis>, <emphasis>password</emphasis> und
- <emphasis>dbname</emphasis>. Man kann zusätzliche Parameter für
- <methodname>Zend_DB::factory()</methodname> als Paramerter in
- <varname>$options['driverOptions']</varname> übergeben. Ein Beispiel für eine
- zusätzliche Option die hier nicht aufgeführt ist, aber übergeben werden könnte ist
- <emphasis>port</emphasis>.
- </para>
- <programlisting language="php"><![CDATA[
- $options = array(
- 'driverOptions' => array(
- 'host' => 'db1.domain.tld',
- 'username' => 'my_username',
- 'password' => 'my_password',
- 'dbname' => 'messaging',
- 'type' => 'pdo_mysql',
- 'port' => 3306, // Optionaler Parameter
- ),
- 'options' => array(
- // Verwenden von Zend_Db_Select für das Update, nicht alle Datenbanken
- // unterstützen dieses Feature.
- Zend_Db_Select::FOR_UPDATE => true
- )
- );
- // Eine Datenbank Queue erstellen.
- $queue = Zend_Queue::factory('Db', $options);
- ]]></programlisting>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>$options['name'] = 'queue1';</emphasis>
- </para>
- <para>
- Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['type'] = 'Pdo';</emphasis>
- </para>
- <para>
- <emphasis>type</emphasis> ist der Adapter von dem man will das Ihn
- <methodname>Zend_Db::factory()</methodname> verwendet. Das ist der erste
- Parameter für den Aufruf der Klassenmethode
- <methodname>Zend_Db::factory()</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
- </para>
- <para>
- <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
- </para>
- <para>
- Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
- </para>
- <para>
- Der Standardwert für host ist '127.0.0.1'.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['dbname'] = 'dbname';</emphasis>
- </para>
- <para>
- Der Name der Datenbank für die man die benötigten Tabellen erstellt hat.
- Siehe das unten stehende Notizen Kapitel.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.queue.adapters.configuration.memcacheq">
- <title>MemcacheQ - Zend_Queue_Adapter_Memcacheq</title>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>$options['name'] = 'queue1';</emphasis>
- </para>
- <para>
- Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
- </para>
- <para>
- <emphasis>$options['driverOptions']['host'] = '127.0.0.1;'</emphasis>
- </para>
- <para>
- Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
- </para>
- <para>
- Der Standardwert für host ist '127.0.0.1'.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>$options['driverOptions']['port'] = 22201;</emphasis>
- </para>
- <para>Die Standardeinstellung für port ist 22201.</para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.queue.adapters.configuration.array">
- <title>Array - Zend_Queue_Adapter_Array</title>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>$options['name'] = 'queue1';</emphasis>
- </para>
- <para>
- Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- <sect2 id="zend.queue.adapters.notes">
- <title>Hinweise für spezielle Adapter</title>
- <para>Die folgenden Adapter haben Hinweise:</para>
- <sect3 id="zend.queue.adapters.notes.activemq">
- <title>ActiveMQ</title>
- <para>
- Die Dauer der Sichtbarkeit (visibility duration) ist für
- <classname>Zend_Queue_Adapter_ActiveMQ</classname> nicht vorhanden.
- </para>
- <para>
- Wärend Apache's ActiveMQ mehrere Einschreibungen unterstützt, wird das von
- <classname>Zend_Queue</classname> nicht unterstützt. Man muss ein neues
- <classname>Zend_Queue</classname> Objekt für jede individuelle Einschreibung
- erstellen.
- </para>
- <para>
- ActiveMQ Queue oder Topic Namen müssen mit einem der folgenden beginnen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename>/queue/</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <filename>/topic/</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <filename>/temp-queue/</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <filename>/temp-topic/</filename>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Zum Beispiel: <filename>/queue/testing</filename>
- </para>
- <para>
- Die folgenden Funktionen werden nicht unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>create()</methodname> - Erstellt eine Queue. Der Aufruf dieser
- Funktion wird eine Exception werfen.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>delete()</methodname> - Löscht eine Queue. Der Aufruf dieser
- Funktion wird eine Exception werfen.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getQueues()</methodname> - Auflisten von Queues. Der Aufruf
- dieser Funktion wird eine Exception werden.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.queue.adapters.notes.zend_db">
- <title>Zend_Db</title>
- <para>
- Das Datenbank <acronym>SQL</acronym> Statement
- <emphasis>CREATE TABLE ( ... )</emphasis> kann in
- <filename>Zend/Queue/Adapter/Db/queue.sql</filename> gefunden werden.
- </para>
- </sect3>
- <sect3 id="zend.queue.adapters.notes.memcacheQ">
- <title>MemcacheQ</title>
- <para>
- Memcache kann von <ulink
- url="http://www.danga.com/memcached/">http://www.danga.com/memcached/</ulink>
- heruntergeladen werden.
- </para>
- <para>
- MemcacheQ kann von <ulink
- url="http://memcachedb.org/memcacheq/">http://memcachedb.org/memcacheq/</ulink>
- heruntergeladen werden.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>deleteMessage()</methodname> - Nachrichten werden von der Queue
- gelöscht nachdem Sie von der Queue empfangen werden. Der Aufruf dieser
- Funktion hätte keinen Effekt. Der Aufruf dieser Funktion wird keinen Fehler
- werfen.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>count()</methodname> oder
- <methodname>count($adapter)</methodname> - MemcacheQ unterstützt keine
- Methode für das Zählen der Anzahl an Elementen in einer Queue. Der Aufruf
- dieser Funktion wird keinen Fehler werfen.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.queue.adapters.notes.array">
- <title>Array (Lokal)</title>
- <para>
- Die Array Queue ist ein <acronym>PHP</acronym> <methodname>array()</methodname>
- im lokalen Speicher. <classname>Zend_Queue_Adapter_Array</classname> ist gut
- für das Unit Testen.
- </para>
- </sect3>
- </sect2>
- </sect1>
|