http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/interoperability.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/interoperability.xml b/docs/user-manual/zh/interoperability.xml new file mode 100644 index 0000000..4baed4a --- /dev/null +++ b/docs/user-manual/zh/interoperability.xml @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="interoperability"> + <title>äºæä½æ§</title> + <section id="stomp"> + <title>Stomp</title> + <para><ulink url="http://stomp.codehaus.org/">Stomp</ulink>æ¯ä¸ä¸ªåºäºææ¬çåè®®ã使ç¨Stompåè®®ç + 客æ·ç«¯å¯ä»¥ä¸Stompç代çï¼brokerï¼è¿è¡éè¿ ã</para> + <para><ulink url="http://stomp.codehaus.org/Clients">Stomp客æ·ç«¯</ulink>æ¯æå¤ç§è¯è¨åå¹³å°ï¼å æ¤ + å®æçå¾å¥½çäºæä½æ§ã</para> + <section id="stomp.native"> + <title>å 建Stompæ¯æ</title> + <para>HornetQå 建æ¯æStompåè½ãè¦ä½¿ç¨Stompåéä¸æ¥æ¶æ¶æ¯ï¼å¿ é¡»é ç½®ä¸ä¸ª<literal>NettyAcceptor</literal>ï¼ + å ¶ä¸ç<literal>protocol</literal>åæ°å¼åºè®¾ä¸º<literal>stomp</literal>ï¼</para> +<programlisting> + <acceptor name="stomp-acceptor"> + <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class> <param key="protocol" value="stomp"/> + <param key="port" value="61613"/> + </acceptor> +</programlisting> + <para>æäºä¸è¿°çé ç½®ï¼HornetQå°±å¯ä»¥å¨ç«¯å£<literal>61613</literal>ï¼è¿æ¯Stomp代ççé»è®¤ç«¯å£ï¼æ¥åStompè¿æ¥äºã</para> + <para><literal>stomp</literal>ä¾åå±ç¤ºäºå¦ä½å¨HornetQä¸é ç½®Stompã</para> + <section> + <title>éå¶</title> + <para>æ¶æ¯çéç¥ä¸æ¯äºå¡æ§çãACKä¿¡å·ä¸è½ä½ä¸ºäºå¡çä¸é¨åæ¥ä¼ è¾ï¼å¦æ设置äº<literal>transaction</literal> + å±æ§ï¼å®å°è¢«å¿½ç¥ï¼ã</para> + </section> + </section> + <section> + <title>Stompç®æ ä¸HornetQçå°ååéåçæ å°</title> + <para>Stomp客æ·ç«¯å¨æ¶æ¯åéå订é ä¸ä½¿ç¨çæ¯<emphasis>ç®æ ï¼destinationï¼</emphasis>ãç®æ å称æ¯ç®åçå符串ï¼å¯¹åºçæ¯æå¡ + å¨ç«¯çç®çå°ãä¸åæå¡å¨å¯¹è¿ç§æ å°æçä¸åçå®ç°ã</para> + <para>å¨HornetQä¸è¿äºç®æ 被æ å°ä¸º<emphasis>å°å</emphasis>å<emphasis>éå</emphasis>ã + å½ä¸ä¸ªStomp客æ·ç«¯åéä¸ä¸ªæ¶æ¯ï¼ä½¿ç¨<literal>SEND</literal>ä¿¡å·ï¼å°ä¸ä¸ªç®æ æ¶ï¼è¿ä¸ªç®æ 被æ å°å°ä¸ä¸ªå°åã + å¦æä¸ä¸ªStomp客æ·ç«¯è®¢é ï¼æ解é¤è®¢é ï¼ä¸ä¸ªç®æ æ¶ï¼ä½¿ç¨<literal>SUBSCRIBE</literal>æ + <literal>UNSUBSCRIBE</literal>ï¼ï¼è¿ä¸ªç®æ 被æ å°å°ä¸ä¸ªHornetQçéåã</para> + </section> + <section> + <title>Stompä¸JMSçäºæä½æ§</title> + <section> + <title>使ç¨JMSç®æ </title> + <para>æ£å¦<xref linkend="jms-core-mapping" />解éçé£æ ·ï¼JMSçç®æ åæ ·æ å°å°HornetQçå°åä¸éåãå¦æä½ ä½¿ç¨ + StompåJMSçç®æ åéæ¶æ¯ï¼é£ä¹Stompçç®æ å¿ é¡»è¦éµç §ç¸åçå½åè§åï¼</para> + <itemizedlist> + <listitem> + <para>å¦æåJMS<emphasis>éå</emphasis>åéæ°æ®æ订é å®ï¼åéåçå称åç¼å¿ é¡»æ¯<literal>jms.queue.</literal>ã</para> + <para>ä¾å¦ï¼å¦æåå为<literal>orders</literal>çJMSéååéæ¶æ¯ï¼Stomp客æ·ç«¯å¿ é¡»åé以ä¸ä¿¡æ¯ï¼</para> + <programlisting> +SEND +destination:jms.queue.orders + +hello queue orders +^@ + </programlisting> + </listitem> + <listitem> + <para>å¦æåJMS <emphasis>è¯é¢ï¼topicï¼</emphasis>åéæ订é æ¶æ¯ï¼è¯é¢å称åç¼å¿ é¡»æ¯<literal>jms.topic.</literal>ã</para> + <para>ä¾å¦ï¼å¦æ订é å为 <literal>stocks</literal>çJMSè¯é¢ï¼Stomp客æ·ç«¯å¿ é¡»åé以ä¸ä¿¡æ¯ï¼</para> + <programlisting> + SUBSCRIBE + destination:jms.topic.stocks + + ^@ + </programlisting> + </listitem> + </itemizedlist> + </section> + + <section> + <title>使ç¨JMSææ ¸å¿æ¥å£åéåæ¥æ¶Stompæ¶æ¯</title> + <para>Stompåºæ¬ä¸æ¯ä¸ä¸ªåºäºææ¬çåè®®ã为äºä½¿ç¨æ´ç®åï¼æ们çStompå®ç°éè¿æ£æ¥<literal>content-length</literal>çå¼ + æ¥å³å®å¦ä½å°ä¸ä¸ªStompæ¶æ¯æ å°æä¸ä¸ªJMSæ¶æ¯ææ ¸å¿æ¶æ¯ã + </para> + <para>å¦æå¨Stompæ¶æ¯ä¸<emphasis>没æ</emphasis><literal>content-length</literal>头ï¼å®å°è¢«æ å°ä¸ºä¸ä¸ªJMSç + <emphasis>TextMessage</emphasis>ï¼æè æ¯ä¸ä¸ªæ ¸å¿æ¶æ¯ï¼å ¶æ¶æ¯ä½çç¼åæ¯ä¸ä¸ªSimpleStringã</para> + <para>å¦æStompæ¶æ¯ä¸<emphasis>æ</emphasis><literal>content-length</literal>ï¼åå®è¢«æ å°ä¸ºä¸ä¸ªJMSç + <emphasis>BytesMessage</emphasis>ï¼æè æ¯ä¸ä¸ªæ ¸å¿æ¶æ¯ï¼å ¶æ¶æ¯ä½ç¼åä¸æ¯ä¸ä¸ªåèæ°ç»byte[]ã</para> + <para>ä»ä¸ä¸ªJMSæ¶æ¯ææ ¸å¿æ¶æ¯æ å°ä¸ºStompæ¶æ¯æ¶éµä»åæ ·çé»è¾ãä¸ä¸ªStomp客æ·ç«¯å¯ä»¥éè¿æ£æ¥ + <literal>content-length</literal>æ¥å³å®æ¶æ¯ä½çç±»åï¼å符串æåèï¼ã</para> + </section> + </section> + <section id="stomp.websockets"> + <title>éè¿Web Sockets使ç¨Stomp</title> + <para>HornetQè¿æ¯æéè¿<ulink url="http://dev.w3.org/html5/websockets/">Web Sockets</ulink>使ç¨Stompãä»»ä½æ¯æ + Web Socketçæµè§å¨ä¸å¯ä»¥å©ç¨HornetQæ¥åéåæ¥æ¶Stompæ¶æ¯ã</para> + <para>è¦ä½¿ç¨äºåè½ï¼å¿ é¡»é ç½®ä¸ä¸ª<literal>NettyAcceptor</literal>ï¼å¹¶è®¾ç½®<literal>protocol</literal> + çå¼ä¸º<literal>stomp_ws</literal>ï¼</para> + <programlisting> +<acceptor name="stomp-ws-acceptor"> + <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class> + <param key="protocol" value="stomp_ws"/> + <param key="port" value="61614"/> +</acceptor> + </programlisting> + <para>使ç¨ä¸é¢é ç½®ï¼HornetQå¨URLè·¯å¾<literal>/stomp</literal>ä¸ç«¯å£<literal>61614</literal>æ¥æ¶Stompè¿æ¥ã + æµè§å¨ç¶åå°±å¯ä»¥è¿æ¥å°<literal>ws://<server>:61614/stomp</literal>ï¼ä½¿ç¨Web Socketæ¥åéåæ¥æ¶ + Stompæ¶æ¯äºã</para> + <para>为äºç®å客æ·ç«¯çå¼åï¼å¨<ulink url="http://github.com/jmesnil/stomp-websocket">GitHub</ulink> + ä¸æä¾äºä¸ä¸ªJavaScriptåºï¼åè§<ulink url="http://jmesnil.net/stomp-websocket/doc/">ææ¡£</ulink>ï¼ã</para> + <para><literal>stomp-websockets</literal>ä¾åç»åºä¸å¦ä½é ç½®HornetQæå¡å¨ä»¥ä½¿æµè§å¨åJavaåºç¨ç¨åºéè¿ä¸ä¸ªJMSè¯é¢ + è¿è¡æ¶æ¯çä¼ éã</para> + </section> + <section id="stompconnect"> + <title>StompConnect</title> + <para><ulink url="http://stomp.codehaus.org/StompConnect">StompConnect</ulink>æ¯ä¸ä¸ªStomp代çæå¡å¨ï¼ + å®å¯ä»¥å°Stompå议转æ¢ä¸ºæ åçJMSæ¥å£è°ç¨ãå æ¤ï¼éè¿StompConnectçä½ç¨HornetQå¯ä»¥ä½ä¸ºä¸ä¸ªStomp代çï¼ + ä¸ä»»ä½ä¸ä¸ªStomp客æ·ç«¯éè¿ ãè¿äºå®¢æ·ç«¯å¯ä»¥ç±CãC++ãC#å.netçè¯è¨å®ç°ã</para> + <para>è¦è¿è¡StompConnecté¦å è¦å¯å¨HornetQæå¡ä»¥åJNDIæå¡ã</para> + <para>Stompéè¦<literal>jndi.properties</literal>æ件è¦å¨classpathä¸ã该æ件 + åºæå¦ä¸ç±»ä¼¼çå 容ï¼</para> + <programlisting>java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory +java.naming.provider.url=jnp://localhost:1099 +java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces</programlisting> + <para>è¦ç¡®ä¿è¯¥æ件ä¸StompConnectçjarå 以åHornetQçjaræ件é½å¨classpathä¸ãæåï¼è¿è¡ + <literal>java org.codehaus.stomp.jms.Main</literal>ã</para> + </section> + </section> + <section> + <title>REST</title> + <para>HornetQå³å°æ¯æRESTï¼</para> + </section> + <section> + <title>AMQP</title> + <para>HornetQå³å°æ¯æAMQPï¼</para> + </section> +</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/jms-bridge.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/jms-bridge.xml b/docs/user-manual/zh/jms-bridge.xml new file mode 100644 index 0000000..b2896b4 --- /dev/null +++ b/docs/user-manual/zh/jms-bridge.xml @@ -0,0 +1,382 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="jms-bridge"> + <title>JMSæ¡¥ï¼Bridgeï¼</title> + <para>HornetQæä¾äºJMSæ¶æ¯æ¡¥æå¡ã</para> + <para>æ¡¥çä½ç¨æ¯ä»ä¸ä¸ªæ¶æ¯æºéåæè¯é¢ï¼topicï¼æ¥æ¶æ¶æ¯ï¼ç¶åå°å®ä»¬åéå°ä¸ä¸ªç®æ éåæè¯é¢ãé常æºå + ç®çä¸å¨åä¸å°æå¡å¨ä¸ã</para> + <para>ä½ä¸ºæ¶æ¯æºçæå¡å¨ä¸ç®çæå¡å¨ä¸å¿ å¨åä¸ä¸ªé群å ãéè¿æ¡¥çä½ç¨ï¼ä¸¤å°æå¡å¨å¯ä»¥éè¿éå¯é çç½ç»è¿æ¥ + èµ·æ¥ï¼æ¯å¦WANã</para> + <para>æ¡¥å¯ä»¥ä½ä¸ºåç¬çæå¡é¨ç½²ï¼æè é¨ç½²äºHornetQåç¬æå¡å¨å ï¼æè é¨ç½²å¨JBossåºç¨æå¡å¨ä¸ãæºæç®çå¯ä»¥ + å¨åä¸ä¸ªVMä¸ï¼ä¹å¯ä»¥å¨å ¶å®çVMä¸ã</para> + <para>æ¡¥è¿å¯ä»¥å¨HornetQæå¡å¨ä¸å ¶å®JMS 1.1 å ¼å®¹çæå¡å¨ä¹é´è¿è¡æ¶æ¯çä¼ éã + <note><para>è¿è¦å°JMSæ¡¥ä¸æ ¸å¿æ¡¥æ··æ·ãJMBæ¡¥å¯ä»¥è¿æ¥ä¸¤ä¸ªJMS 1.1å ¼å®¹çæå¡å¨ï¼å®ä½¿ç¨çæ¯JMSæ¥å£ã + èæ ¸å¿æ¡¥ï¼å¨<xref linkend="core-bridges"/>ä¸æè¿°ï¼ä½¿ç¨æ ¸å¿APIå°ä¸¤ä¸ªHornetQå®ä¾è¿æ¥ + èµ·æ¥ãæ ¸å¿æ¡¥çæ§è½é常è¦æ¯JMSæ¡¥çæ§è½é«ï¼æ以尽å¯è½ä½¿ç¨æ ¸å¿æ¡¥ãå¦å¤æ ¸å¿æ¡¥å¯ä»¥ä¸ç¨XA + å°±å¯ä»¥å®ç°<emphasis>ä¸æ¬¡å¹¶åªæä¸æ¬¡</emphasis>çæ¶æ¯ä¼ éä¿è¯ã</para></note></para> + <para>æ¡¥å¯ä»¥éå½å¤çè¿æ¥æ éãå½æºçè¿æ¥æç®ççè¿æ¥åçæ éæ¶ï¼ä¾å¦ç½ç»æ éï¼æ¡¥å°ä¸æéè¯è¿æ¥ç´å°è¿æ¥ + æ¢å¤ä¸ºæ¢ãå½è¿æ¥æ¢å¤åï¼æ¡¥ä¼ç»§ç»æ£å¸¸å·¥ä½ã</para> + <para>æ¡¥è¿å¯ä»¥æä¸ä¸ªå¯éçJMSéæ©å¨ï¼å®å¯ä»¥ä½¿æ¡¥åªæ¥æ¶éæ©å¨éæ©çæ¶æ¯ã</para> + <para>å¯ä»¥é 置桥ä»éåè¿æ¯ä»è¯é¢ä¸æ¥æ¶æ¶æ¯ãå¦æé ç½®æä»è¯é¢ä¸æ¥æ¶æ¶æ¯ï¼è¿ä»¥è®¾å®æ¯ä»¥éæä¹ è®¢é çæ¹å¼æ¥æ¶ï¼è¿æ¯ + 以æä¹ è®¢é çæ¹å¼æ¥æ¶ã</para> + <para>é常桥æ¯éè¿ä¸ä¸ªbeané ç½®æ件ç±JBoss Micro Containeré¨ç½²å°JBossåºç¨æå¡å¨ä¸ãä¸é¢çå°±æ¯ä¸ + 个桥çbeanæ件ä¾åãè¿ä¸ªæ¡¥å°åä¸æå¡å¨ä¸ç两个ç®æ è¿æ¥èµ·æ¥ã</para> + <programlisting><?xml version="1.0" encoding="UTF-8"?> + +<deployment xmlns="urn:jboss:bean-deployer:2.0"> + + <bean name="JMSBridge" class="org.hornetq.api.jms.bridge.impl.JMSBridgeImpl"> + <!-- HornetQ must be started before the bridge --> + <depends>HornetQServer</depends> + <constructor> + <!-- Source ConnectionFactory Factory --> + <parameter> + <inject bean="SourceCFF"/> + </parameter> + <!-- Target ConnectionFactory Factory --> + <parameter> + <inject bean="TargetCFF"/> + </parameter> + <!-- Source DestinationFactory --> + <parameter> + <inject bean="SourceDestinationFactory"/> + </parameter> + <!-- Target DestinationFactory --> + <parameter> + <inject bean="TargetDestinationFactory"/> + </parameter> + <!-- Source User Name (no username here) --> + <parameter><null /></parameter> + <!-- Source Password (no password here)--> + <parameter><null /></parameter> + <!-- Target User Name (no username here)--> + <parameter><null /></parameter> + <!-- Target Password (no password here)--> + <parameter><null /></parameter> + <!-- Selector --> + <parameter><null /></parameter> + <!-- Failure Retry Interval (in ms) --> + <parameter>5000</parameter> + <!-- Max Retries --> + <parameter>10</parameter> + <!-- Quality Of Service --> + <parameter>ONCE_AND_ONLY_ONCE</parameter> + <!-- Max Batch Size --> + <parameter>1</parameter> + <!-- Max Batch Time (-1 means infinite) --> + <parameter>-1</parameter> + <!-- Subscription name (no subscription name here)--> + <parameter><null /></parameter> + <!-- Client ID (no client ID here)--> + <parameter><null /></parameter> + <!-- Add MessageID In Header --> + <parameter>true</parameter> + <!-- register the JMS Bridge in the AS MBeanServer --> + <parameter> + <inject bean="MBeanServer"/> + </parameter> + <parameter>org.hornetq:service=JMSBridge</parameter> + </constructor> + <property name="transactionManager"> + <inject bean="RealTransactionManager"/> + </property> + </bean> + + <!-- SourceCFF describes the ConnectionFactory used to connect to the + source destination --> + <bean name="SourceCFF" + class="org.hornetq.api.jms.bridge.impl.JNDIConnectionFactoryFactory"> + <constructor> + <parameter> + <inject bean="JNDI" /> + </parameter> + <parameter>/ConnectionFactory</parameter> + </constructor> + </bean> + + <!-- TargetCFF describes the ConnectionFactory used to connect to the + target destination --> + <bean name="TargetCFF" + class="org.hornetq.api.jms.bridge.impl.JNDIConnectionFactoryFactory"> + <constructor> + <parameter> + <inject bean="JNDI" /> + </parameter> + <parameter>/ConnectionFactory</parameter> + </constructor> + </bean> + + <!-- SourceDestinationFactory describes the Destination used as the source --> + <bean name="SourceDestinationFactory" + class="org.hornetq.api.jms.bridge.impl.JNDIDestinationFactory"> + <constructor> + <parameter> + <inject bean="JNDI" /> + </parameter> + <parameter>/queue/source</parameter> + </constructor> + </bean> + + <!-- TargetDestinationFactory describes the Destination used as the target --> + <bean name="TargetDestinationFactory" + class="org.hornetq.api.jms.bridge.impl.JNDIDestinationFactory"> + <constructor> + <parameter> + <inject bean="JNDI" /> + </parameter> + <parameter>/queue/target</parameter> + </constructor> + </bean> + + <!-- JNDI is a Hashtable containing the JNDI properties required --> + <!-- to connect to the sources and targets JMS resrouces --> + <bean name="JNDI" class="java.util.Hashtable"> + <constructor class="java.util.Map"> + <map class="java.util.Hashtable" keyClass="String" + valueClass="String"> + <entry> + <key>java.naming.factory.initial</key> + <value>org.jnp.interfaces.NamingContextFactory</value> + </entry> + <entry> + <key>java.naming.provider.url</key> + <value>jnp://localhost:1099</value> + </entry> + <entry> + <key>java.naming.factory.url.pkgs</key> + <value>org.jboss.naming:org.jnp.interfaces"</value> + </entry> + <entry> + <key>jnp.timeout</key> + <value>5000</value> + </entry> + <entry> + <key>jnp.sotimeout</key> + <value>5000</value> + </entry> + </map> + </constructor> + </bean> + + <bean name="MBeanServer" class="javax.management.MBeanServer"> + <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator" + factoryMethod="locateJBoss"/> + </bean> +</deployment></programlisting> + <section> + <title>JMSæ¡¥çé ç½®åæ°</title> + <para>æ¡¥ç主è¦çbeanæ¯<literal>JMSBridge</literal>ãææçé ç½®åæ°éè¦ä¼ éç»è¿ä¸ªbeanç + æé å½æ°ã</para> + <note> + <para>å¦æä¸æ³æå®æ个åæ°çå¼ï¼ä¾å¦å¿å认è¯æ没æéæ©å¨ï¼ï¼å°è¯¥åæ°è®¾ä¸º<literal><null + /></literal>å³å¯ã</para> + </note> + <itemizedlist> + <listitem> + <para>æºè¿æ¥å·¥åçå·¥åï¼Source ConnectionFactory Factoryï¼</para> + <para>è¿ä¸ªåæ°æ³¨å ¥ä¸ä¸ª<literal>SourceCFF</literal>beanï¼ç±beanæ件å®ä¹ï¼ãå®è¢« + ç¨æ¥å建<emphasis>æº</emphasis>ç<literal>ConnectionFactory</literal> + </para> + </listitem> + <listitem> + <para>ç®æ è¿æ¥å·¥åçå·¥åï¼Target ConnectionFactory Factoryï¼</para> + <para>è¿ä¸ªåæ°æ³¨å ¥ä¸ä¸ª<literal>TargetCFF</literal>beanï¼ç±beanæ件å®ä¹ï¼ãå®è¢« + ç¨æ¥å建<emphasis>ç®ç</emphasis>ç<literal>ConnectionFactory</literal> + </para> + </listitem> + <listitem> + <para>æºç®æ å·¥åï¼Source DestinationFactoryï¼</para> + <para>è¿ä¸ªåæ°æ³¨å ¥ä¸ä¸ª<literal>SourceDestinationFactory</literal>beanï¼ç± + beanæ件å®ä¹ï¼ãå®ç¨æ¥å建<emphasis>æº</emphasis> + <literal>ç®æ ï¼Destinationï¼</literal> + </para> + </listitem> + <listitem> + <para>ç®çç®æ å·¥åï¼Target DestinationFactoryï¼</para> + <para>è¿ä¸ªåæ°æ³¨å ¥ä¸ä¸ª<literal>TargetDestinationFactory</literal>beanï¼ç± + beanæ件å®ä¹ï¼ãå®ç¨æ¥å建<emphasis>ç®ç</emphasis> + <literal>ç®æ ï¼Destinationï¼</literal> + </para> + </listitem> + <listitem> + <para>æºç¨æ·åï¼Source User Nameï¼</para> + <para>ç¨äºå建å°<emphasis>æº</emphasis>çè¿æ¥çç¨æ·å</para> + </listitem> + <listitem> + <para>æºå¯ç ï¼Source Passwordï¼</para> + <para>ç¨äºå建<emphasis>æº</emphasis>è¿æ¥çå¯ç </para> + </listitem> + <listitem> + <para>ç®çç¨æ·åï¼Target User Nameï¼</para> + <para>ç¨äºå建<emphasis>ç®ç</emphasis>è¿æ¥çç¨æ·å</para> + </listitem> + <listitem> + <para>ç®çå¯ç ï¼Target Passwordï¼</para> + <para>tç¨äºå建<emphasis>ç®ç</emphasis>è¿æ¥çå¯ç </para> + </listitem> + <listitem> + <para>éæ©å¨ï¼Selectorï¼</para> + <para>è¿æ¯ä¸ä¸ªJMSçéæ©å¨è¡¨è¾¾å¼ï¼å®ç¨äºä»æºç®æ æ¥æ¶æ¶æ¯ãåªæä¸éæ©å¨ç¸å¹é çæ¶æ¯æä¼è¢«æ¡¥ + 转åå°ç®çç®æ </para> + <para>éæ©å¨å¿ 须符å<ulink + url="http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html">JMS + éæ©å¨è¯æ³</ulink></para> + </listitem> + <listitem> + <para>æ ééè¯é´éï¼Failure Retry Intervalï¼</para> + <para>代表å½æ¡¥åç°è¿æ¥æ éæ¶å¨æ¯ä¸¤æ¬¡éè¯è¿æ¥ä¹é´æè¦çå¾ çæ¶é´é´éï¼åä½æ¯«ç§</para> + </listitem> + <listitem> + <para>æ大éè¯æ¬¡æ°ï¼Max Retriesï¼</para> + <para>表示桥å¨åç°è¿æ¥æ éæ¶æè¿è¡çæ大éè¯æ¬¡æ°ãè¶ è¿è¿ä¸ªæ¬¡æ°ï¼æ¡¥å°±æ¾å¼éè¯ã + <literal + >-1</literal>代表ä¸ç´éè¯ä¸å»</para> + </listitem> + <listitem> + <para>æå¡è´¨éï¼Quality Of Serviceï¼</para> + <para>è¿ä¸ªåæ°ä»£è¡¨æéè¦çæå¡è´¨é模å¼</para> + <para>ææçå¼ä¸ºï¼</para> + <itemizedlist> + <listitem> + <para><literal>AT_MOST_ONCE</literal></para> + </listitem> + <listitem> + <para><literal>DUPLICATES_OK</literal></para> + </listitem> + <listitem> + <para><literal>ONCE_AND_ONLY_ONCE</literal></para> + </listitem> + </itemizedlist> + <para>æå ³è¿äºæ¨¡å¼ç解éï¼åè§<xref linkend="quality-of-service"/>ã</para> + </listitem> + <listitem> + <para>æ大æ¹éï¼Max Batch Sizeï¼</para> + <para>表示桥ä¸æ¬¡æ§ä»æºç®æ æå¤æ¥æ¶å¤å°æ¶æ¯ï¼å¹¶å°å®ä»¬ä¸æ¬¡åå¾ç®çå°ãå®çå¼å¿ é¡»æ¯ + <literal>>= 1</literal> + </para> + </listitem> + <listitem> + <para>æ大æ¹æ¶é´ï¼Max Batch Timeï¼</para> + <para>代表桥å¨å°ä¸æ¹æ¶æ¯ååç®çä¹åçå¾ çæ大毫ç§æ°ãè¿ä¸ªæ¶é´è¿åï¼å³ä½¿æ¥æ¶çæ¶æ¯æ°å°äº + <literal>MaxBatchSize</literal>ï¼æ¡¥ä¹ä¼å¼å§åç®çåéæ¶æ¯ãå®çå¼å¿ é¡»æ¯ + <literal>-1</literal> ï¼ä»£è¡¨æ°¸è¿çå¾ ï¼æ<literal>>= 1</literal>ã</para> + </listitem> + <listitem> + <para>订é åï¼Subscription Nameï¼</para> + <para>å¦ææºçç®æ æ¯ä¸ä¸ªè¯é¢ï¼topicï¼ï¼ä½ æ³ä½¿ç¨æä¹ ç订é æ¥æ¥æ¶æ¶æ¯çè¯ï¼è¿ä¸ªåæ°å¯ä»¥æå® + 订é åã</para> + </listitem> + <listitem> + <para>客æ·IDï¼Client IDï¼</para> + <para>å¦ææºçç®æ æ¯ä¸ä¸ªè¯é¢ï¼topicï¼ï¼ä½ æ³ä½¿ç¨æä¹ ç订é æ¥æ¥æ¶æ¶æ¯çè¯ï¼è¿ä¸ªåæ°å¯ä»¥æå® + JMSç客æ·IDãå®ç¨äºå建ï¼æ¥æ¾æä¹ è®¢é ã</para> + </listitem> + <listitem> + <para>å¨æ¶æ¯å¤´æ·»å MessageIDï¼Add MessageID In Headerï¼</para> + <para>å¦æå¼ä¸º<literal>true</literal>ï¼åå§çæ¶æ¯IDå¨åå¾ç®çæ¯åå°æ¶æ¯çå为<literal + >HORNETQ_BRIDGE_MSG_ID_LIST</literal>ç头ä¸ãå¦æä¸ä¸ªæ¶æ¯è¢«æ¡¥è½¬åäºå¤æ¬¡ï¼ + åæ¯æ¬¡è½¬åçæ¶æ¯IDé½æ·»å å¨è¿ä¸ªå¤´ä¸ãè¿ç¨äºåå¸å¼è¯·æ±ï¼åççæ¶æ¯æ¨¡å¼ã</para> + <note> + <para>å½æ¶å°ä¸ä¸ªæ¶æ¯æ¶ï¼éè¿å®çç¸å ³IDï¼coorelation idï¼å¯ä»¥åéä¸ä¸ªåçãè¿æ · + å¨æ¶æ¯åéæ¹å¾å°è¿ä¸ªåçæ¶æ¯æ¶ï¼å®å¯ä»¥ä¸åæ¶æ¯ç¸å ³èèµ·æ¥ã</para> + </note> + </listitem> + <listitem> + <para>MBeanæå¡å¨ï¼MBean Serverï¼</para> + <para>è¦ä½¿ç¨JMX管çJMSæ¡¥ï¼éæå®JMSæ¡¥æè¦æ³¨åçMBeanServerï¼å¦JVM Platform MBeanServer æ + JBoss åºç¨æå¡å¨çMBeanServerï¼</para> + </listitem> + <listitem> + <para>ObjectName</para> + <para>设置äºMBeanServeråï¼ä½ è¿éè¦è®¾ç½®JMSæ¡¥MBean注åç¨çObjectNameï¼å¿ é¡»æ¯å¯ä¸çï¼</para> + </listitem> + </itemizedlist> + </section> + <section> + <title>æºåç®ççè¿æ¥å·¥å</title> + <para>æºå·¥ç®ççè¿æ¥å·¥ååå«ç¨äºå建å°æºåå°ç®ççè¿æ¥ã</para> + <para>ä¸é¢çé ç½®ä¾åä¸ä½¿ç¨çæ¯HornetQæä¾çé»è®¤å®ç°ãå®ä½¿ç¨JNDIæ¥æ¾è¿æ¥å·¥åã对äºå ¶å®çåºç¨æå¡å¨ + æJMSæä¾è ï¼éè¦å®ç°ç¸åºçå®ç°ï¼å³å®ç°<literal + >org.hornetq.jms.bridge.ConnectionFactoryFactory</literal>æ¥å£ã</para> + </section> + <section> + <title>æºåç®ççç®æ å·¥å</title> + <para>å®ä»¬ç¨æ¥å建ææ¥æ¾ç¸åºçç®æ ã</para> + <para>ä¸é¢ä¾åä¸ï¼æ们使ç¨äºHornetQçé»è®¤å®ç°ï¼ä»JNDIä¸æ¥æ¾ç¸åºç对象ã</para> + <para>è¦æä¾æ°çå®ç°ï¼åªè¦å®ç°æ¥å£<literal + >org.hornetq.jms.bridge.DestinationFactory</literal>å³å¯ã</para> + </section> + <section id="quality-of-service"> + <title>æå¡è´¨é</title> + <para>ä¸é¢ç»æ¯æ¡¥çä¸ç§æå¡è´¨éç详ç»è¯´æã</para> + <section> + <title>AT_MOST_ONCE</title> + <para>è¿ç§QoS模å¼è¡¨ç¤ºçæ¯æ¶æ¯æå¤éè¾¾ç®æ ä¸æ¬¡ãå¨æ¶æ¯åå¾ç®çä¹åï¼æ¶æ¯å°±ä¼è¢«éç¥ãå æ¤ï¼ + å¦æå¨æ¶æ¯è¢«æºå é¤ä½å¹¶æªå°è¾¾ç®çæ¶åçæ éï¼æ¶æ¯æå¯è½ä¸¢å¤±ãæ以说æ¶æ¯ç + åéæå¤ä¸æ¬¡ã </para> + <para>è¿ä¸ªæ¨¡å¼éç¨äºæä¹ æéæä¹ çæ¶æ¯ã</para> + </section> + <section> + <title>DUPLICATES_OK</title> + <para>å¨è¿ä¸ªQoS模å¼ä¸ï¼æ¶æ¯ä»æºæ¥æ¶åååéå°ç®çï¼ä¹åæ对æºè¿è¡æ¶æ¯éç¥ãè¿æ ·å¦æå¨åéæåä¹å + æ¶æ¯éç¥åçæ¶é´å åçæ éçè¯ï¼å¨æ éæ¢å¤æ¶åä¸ä¸ªæ¶æ¯å¯è½è¢«åæ¬¡ä¼ éãçµæå¯è½æ¯å¨ç®çå¤ + 该æ¶æ¯æ¶å°äºä¸¤æ¬¡ã</para> + <para>è¿ä¸ªæ¨¡å¼éç¨äºæä¹ æéæä¹ çæ¶æ¯ã</para> + </section> + <section> + <title>ONCE_AND_ONLY_ONCE</title> + <para>è¿ä¸ªæ¨¡å¼ä¿è¯æ¶æ¯ä»æºåéå°ç®çä¸æ¬¡ï¼å¹¶ä¸åªæä¸æ¬¡ãï¼ææ¶è¿ä¸ªæ¨¡å¼å称为âåªä¸æ¬¡âï¼ãè¥æºä¸ç®çå¤äº + åä¸ä¸ªHornetQæå¡å¨ä¸ï¼è¿ä¸ªæ¨¡å¼éè¿æ¬å°äºå¡æ¥ä¿è¯æ¶æ¯çåéåéç¥ãå¦ææ¯å¨ä¸åçæå¡å¨ä¸ï¼ + åä¼ä½¿ç¨ä¸ä¸ªJTAçäºå¡å°åéåæ¥æ¶å æ¬å ¶ä¸ãè¿é使ç¨çJTAäºå¡æ¯JBossçå®ç°ï¼å®å å«æä¸ä¸ª + å®æ´çäºå¡æ¢å¤ç®¡çå¨ï¼æ以è½æä¾é«åº¦å¯é çæä¹ æ§ãå¦æ使ç¨JTAåæ¡¥çææè¿æ¥å·¥åå¿ é¡»æ¯ + XAConnectionFactoryãè¿ç§æ¨¡å¼çæçé常æ¯æä½çï¼å 为å®éè¦é¢å¤è®°å½äºå¡çæ¥å¿ã</para> + <para>è¿ä¸ªæ¨¡å¼åªéç¨äºæä¹ æ§æ¶æ¯ã</para> + <note> + <para>æäºæ åµä¸å¯ä»¥ä¸ä½¿ç¨ONCE_AND_ONLY_ONCE模å¼ï¼èåæ ·å¯ä»¥ä¿è¯âä¸æ¬¡ä¸åªä¸æ¬¡âçææã + è¿æ¯éè¿ä½¿ç¨DUPLICATES_OK模å¼ï¼å ä¸å¨ç®ç端åºç¨ç¨åºæ¥æ£æµéå¤çæ¶æ¯ï¼å¦ææåå°å ¶ä¸¢å¼ã + ä¸äºJMSæå¡å¨æ¬èº«æä¾èªå¨éå¤æ¶æ¯æ£æµçåè½ï¼è¿æ ·èçäºå¨åºç¨å±å®ç°çå·¥ä½ãå¨åºç¨å±å¸¸è§ + çå®ç°æ¹æ³æ¯å°æ¥æ¶å°çæ¶æ¯çIDåæ¾å°ç¼åæ件ä¸ï¼ç¶åä¸æ¯ä¸ªæ°å°çæ¶æ¯è¿è¡å¯¹æ¯ãè¿ç§æ¹å¼ + å¯è½å¨æ段æ¶é´å ææï¼æ以å®ä¸å¦ONCE_AND_ONLY_ONCEé£æ ·ä¸¥æ ¼ï¼å®è§å ·ä½æ åµä¹å¯è½æ¯ä¸ä¸ª + ä¸éçéæ©ã</para> + </note> + </section> + <section> + <title>JMS bridgeä¸çè¶ æ¶é®é¢</title> + <para>ææ¶åç®æ æå¡å¨ææºæå¡å¨ä¼è¿æ¥ä¸ä¸ï¼è¿é桥就ä¼å°è¯éæ°è¿æ¥ãéæ°è¿æ¥ç次æ°ç±<literal>Max Retries</literal> + åæ°å³å®ï¼ä¸¤æ¬¡éæ°è¿æ¥çæ¶é´é´éç±<literal>Failure Retry Interval</literal>å®ä¹ã</para> + <para>å¨éæ°å°è¯æ¶ä¼è¿è¡JNDIçæ¥æ¾ãHornetQçJNDI使ç¨çæ¯JBossçå®ç°ï¼å¦æå¨JNDIæ¥æ¾è¿ç¨ä¸ç½ç»åºç°æ éï¼ + æ¥æ¾çæä½å¯è½æèµ·ã为äºé¿å è¿ç§æ åµçåçï¼æ们å¯ä»¥ä¸ºJNDI设置éå½çè¶ æ¶ãè¿æ¯éè¿å®ä¹åå§ä¸ä¸æç + <literal>jnp.timeout</literal>åæ°å<literal>jnp.sotimeout</literal>åæ°æ¥ + å®ç°çã第ä¸ä¸ªåæ°å®ä¹äºåå§è¿æ¥çè¶ æ¶ï¼ç¬¬äºä¸ªåæ°å®ä¹çæ¯å¥æ¥åç读åè¶ æ¶ã</para> + <note> + <para>ä¸æ¦JNDIè¿æ¥æåï¼ææè°ç¨é½æ¯éè¿RMIå®æãå¦æä½ æ³è¦æ§å¶RMIè¿æ¥çè¶ æ¶ï¼ä½ éè¦å®ä¹ç¸åºçç³»ç»åéã + JBoss使ç¨SunçRMIå®ç°ï¼å®çæ§å¶åæ°å¯ä»¥å¨<ulink + url="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/sunrmiproperties.html">è¿é</ulink>æ¾å°ã + é»è®¤çè¿æ¥è¶ æ¶æ¯10ç§ï¼é»è®¤çè¯»è¶ æ¶æ¯18ç§ã</para> + </note> + <para>å¦æä½ ä½¿ç¨èªå·±çå®ç°æ¥æ¥æ¾JMSèµæºï¼ä½ éè¦æ³¨æè¶ æ¶é®é¢ã</para> + </section> + <section> + <title>ä¾å</title> + <para>åè§<xref linkend="examples.javaee.jms-bridge"/>ãè¿ä¸ªä¾åå±ç¤ºäºå¦ä½å¨JBossåºç¨æå¡å¨ä¸é ç½®å¹¶ä½¿ç¨ + JMSæ¡¥ä»ä¸å¤ç®æ å°æ¶æ¯è½¬åå°å¦ä¸ä¸ªç®æ ã</para> + <para>å ³äºå¦ä½å¨ä¸¤ä¸ªåç¬HornetQæå¡å¨é´ä½¿ç¨æ¡¥çä¾åï¼è¯·åè§<xref linkend="examples.jms.jms-bridge"/>ã</para> + </section> + </section> +</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/jms-core-mapping.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/jms-core-mapping.xml b/docs/user-manual/zh/jms-core-mapping.xml new file mode 100644 index 0000000..5086104 --- /dev/null +++ b/docs/user-manual/zh/jms-core-mapping.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="jms-core-mapping"> + <title>JMSä¸å æ ¸APIä¹é´çæ å°å ³ç³»</title> + <para>æ¬æ讲述JMSçç®æ å®ä½ï¼destinationï¼å¦ä½æ å°å°HornetQçå°åï¼addressesï¼ã</para> + <para>HornetQçå æ ¸æ²¡æJMSçä»»ä½å®ç°ãå¨å æ ¸ä¸æ²¡ætopicçæ¦å¿µï¼å®æ¯éè¿å¨ä¸ä¸ªå°åä¸ï¼ç¸å½äºtopicçååï¼ç»å® + é¶æå¤ä¸ªqueueæ¥å®ç°JMS topicçåè½çãæ¯ä¸ªç»å®çqueueç¸å½äºè¯¥topicçä¸ä¸ªè®¢é ï¼subscriptionï¼ã + 类似å°éè¿å¨ä¸ä¸ªå°åä¸ï¼ç¸å½äºqueueçååï¼ç»å®åä¸çqueueå°±å¯ä»¥å®ç°JMS queueçåè½ã</para> + <para>æç §æ¯ä¾ï¼ææçJMS queueæ对åºçå æ ¸queueçååé½ä»¥<literal>jms.queue.</literal>å为å¼å¤´ãæ¯å¦ + å½JMS queueçååæ¯"orders.europe"æ¶ï¼å ¶å¯¹åºçå æ ¸queueçåååºè¯¥æ¯"jms.queue.orders.europe"ã + é£ä¹å æ ¸queueæç»å®çå°åçååå该å æ ¸queueçååæ¯ç¸åçã</para> + <para>åæ ·ï¼ææJMS topicæ对åºçå æ ¸å°åçååé½ä»¥ "jms.topic."为åç¼ãæ¯å¦å½ä¸ä¸ªJMS topicçååæ¯"news.europe" + æ¶ï¼å®å¯¹åºçå æ ¸çå°ååºè¯¥æ¯"jms.topic.news.europe"ã</para> + <para>æ¢å¥è¯è¯´å°±æ¯å¦æä½ åJMS queue âorders.europe"åéä¸ä¸ªæ¶æ¯ï¼è¿ä¸ªæ¶æ¯å°±ä¼è¢«è·¯ç±å°ç»å®å¨å æ ¸å°å为âjms.queue.orders.europeâ + çååå æ ¸queueä¸ã å¦ææ¯åJMS topic ânews.europeâåéä¸ä¸ªæ¶æ¯ï¼å®ä¼è¢«è·¯ç±å°ç»å®å°å æ ¸å°å为 + âjms.topic.news.europeâçææçå æ ¸queueä¸ã</para> + <para>å ·ä½è¦é ç½®ä¸ä¸ªå为âorders.europe"çJMSéåæ¶ï¼ä½ éè¦é ç½®ç¸åºçå æ ¸queueâjms.queue.orders.europeâï¼</para> + <programlisting> +<!-- expired messages in JMS Queue "orders.europe" + will be sent to the JMS Queue "expiry.europe" --> +<address-setting match="jms.queue.orders.europe"> + <expiry-address>jms.queue.expiry.europe</expiry-address> + ... +</address-setting> + </programlisting> +</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/large-messages.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/large-messages.xml b/docs/user-manual/zh/large-messages.xml new file mode 100644 index 0000000..641bcea --- /dev/null +++ b/docs/user-manual/zh/large-messages.xml @@ -0,0 +1,234 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="large-messages"> + <title>大æ¶æ¯</title> + <para>HornetQæ¯æè¶ å¤§æ¶æ¯çåéåæ¥æ¶ãæ¶æ¯ç大å°ä¸å客æ·ç«¯ææå¡å¨ç«¯çå åéå¶ãå®åªåéäºä½ çç£ç空é´ç大å°ã + å¨æ们ä½è¿çæµè¯ä¸ï¼æ¶æ¯æ大å¯è¾¾8GiBï¼è客æ·ç«¯åæå¡å¨ç«¯çå ååªæ50MiBï¼</para> + <para>è¦åéä¸ä¸ªå¤§æ¶æ¯ï¼ç¨æ·éè¦ä¸ºå¤§æ¶æ¯æä¾ä¸ä¸ª<literal>InputStream</literal>ï¼å½å¤§æ¶æ¯è¢«åéæ¶ï¼ + HornetQä»è¯¥<literal>InputStream</literal>读åæ¶æ¯ãä¾å¦ï¼è¦å°ä¸ä¸ªç£çä¸ç大æ件以æ¶æ¯å½¢å¼åéï¼å¯ä»¥ + 使ç¨<literal>FileInputStream</literal>ã</para> + <para>æ°æ®ä»<literal>InputStream</literal>读åºå¹¶å解为ä¸ä¸ªä¸ªæ°æ®ç段åæå¡å¨ä»¥æµçå½¢å¼åéãæå¡å¨å¨æ¶å° + è¿äºç段åå°å®ä»¬ä¿åå°ç£çä¸ãå½æå¡å¨åå¤åæ¥æ¶è ä¼ éæ¶æ¯æ¶ï¼å®å°è¿äºç段读åï¼åæ ·ä»¥ç段æµçå½¢å¼åæ¥æ¶è + ä¸ç«¯åéãå½æ¥æ¶è å¼å§æ¥æ¶æ¶ï¼æåæ¶å°çåªæ¯ä¸ä¸ªç©ºçæ¶æ¯ä½ãå®éè¦ä¸ºå ¶è®¾ç½®ä¸ä¸ª<literal>OutputStream</literal> + 以便å大æ¶æ¯ä¿åå°ç£çä¸æå ¶å®å°æ¹ãä»åéå°æ¥æ¶æ´ä¸ªè¿ç¨ä¸ä¸éè¦æ´ä¸ªæ¶æ¯é½å¨å åä¸ã</para> + <section id="large.message.configuring"> + <title>æå¡å¨ç«¯çé ç½®</title> + <para>大æ¶æ¯å¨æå¡å¨ç«¯æ¯ç´æ¥ä¿åå¨ç£çç®å½ä¸ãè¿ä¸ç®å½å¯ä»¥å¨HornetQçé ç½®æ件ä¸å®ä¹ã</para> + <para>è¿ä¸ªåæ°çååæ¯<literal>large-messages-directory</literal>ï¼</para> + <programlisting><configuration xmlns="urn:hornetq" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd"> + +... + +<large-messages-directory>/data/large-messages</large-messages-directory> + +... + +</configuration</programlisting> + <para>é»è®¤ç大æ¶æ¯ä¿åç®å½æ¯<literal>data/largemessages</literal>ã</para> + <para>为äºæé«æ§è½ï¼æ们建议å°å¤§æ¶æ¯çä¿åç®å½å®ä¹å°ä¸æ¶æ¯æ¥å¿ï¼journalï¼æå页转åç®å½åå¼çç©çå·ä¸ã</para> + </section> + <section> + <title>设å®éå¶</title> + <para>åæ°<literal>min-large-message-size</literal>å®ä¹äºå¤§æ¶æ¯çæå°å¼ã + ä»»ä½æ¶æ¯ç大å°å¦æè¶ è¿äºè¯¥å¼å°±è¢«è§ä¸ºå¤§æ¶æ¯ãä¸æ¦æ为大æ¶æ¯ï¼å®å°è¢«åæå°ç + ç段æ¥ä¼ éã</para> + <para>é»è®¤å¼æ¯100KiB.</para> + <section id="large-messages.core.config"> + <title>使ç¨æ ¸å¿çAPI</title> + <para>å¦æ使ç¨HornetQçæ ¸å¿ï¼<literal>ClientSessionFactory.setMinLargeMessageSize</literal>æ¹æ³ + å¯ä»¥è®¾ç½®å¤§æ¶æ¯çæå°å¼ã</para> + <programlisting>ClientSessionFactory factory = + HornetQClient.createClientSessionFactory(new + TransportConfiguration(NettyConnectorFactory.class.getName()), null); +factory.setMinLargeMessageSize(25 * 1024);</programlisting> + <para><xref linkend="configuring-transports.client.side"/>对äºå¦ä½å®ä¾åä¸ä¸ªä¼è¯å·¥åï¼session factoryï¼ + ç»åºäºè¿ä¸æ¥ç说æã</para> + </section> + <section> + <title>使ç¨JMS</title> + <para>å¦æè¿æ¥å·¥åæ¯éè¿JNDIæ¹å¼è·å¾çï¼åéè¦å¨<literal>hornetq-jms.xml</literal>æ件ä¸å®ä¹ï¼</para> + <programlisting>... +<connection-factory name="ConnectionFactory"> +<connectors> + <connector-ref connector-name="netty"/> +</connectors> +<entries> + <entry name="ConnectionFactory"/> + <entry name="XAConnectionFactory"/> +</entries> + +<min-large-message-size>250000</min-large-message-size> +</connection-factory> +...</programlisting> + <para>å¦ææ¯ç´æ¥å®ä¾åè¿æ¥å·¥åï¼å使ç¨<literal + >HornetQConnectionFactory.setMinLargeMessageSize</literal>æ¹æ³æ¥å®ä¹ã</para> + </section> + </section> + <section> + <title>大æ¶æ¯ä¸æµï¼streamï¼</title> + <para>å¨HornetQä¸å¯ä»¥å®ä¹å¤§æ¶æ¯æ使ç¨çè¾å ¥åè¾åºæµï¼<literal>java.lang.io</literal>)ã</para> + <para>HornetQå°ä½¿ç¨å®ä¹çæµæ¥åéï¼è¾å ¥æµï¼åæ¥æ¶ï¼è¾åºæµï¼å¤§æ¶æ¯ã</para> + <para>å¨ä½¿ç¨è¾åºæµæ¥æ¶å¤§æ¶æ¯æ¶ï¼æ两ç§éæ©ï¼ä½ å¯ä»¥ç¨<literal>ClientMessage.saveOutputStream</literal>æ¹æ³ + 以é»å¡çæ¹å¼ä¿å大æ¶æ¯ï¼æè ä½ å¯ä»¥ä½¿ç¨<literal>ClientMessage.setOutputstream</literal>æ¹æ³ + 以å¼æ¥æ¹æ³ä¿å大æ¶æ¯ãå¨éç¨åä¸ç§æ¹æ³æ¶ï¼å¿ é¡»ä¿è¯æ¥æ¶è ï¼consumerï¼å¨å¤§æ¶æ¯çæ¥æ¶è¿ç¨ä¸ä¿æ + ææç¶æã</para> + <para>æ ¹æ®éè¦éæ©æéåçæµãæ常è§çæ åµæ¯å°ç£çæ件以æ¶æ¯æ¹å¼åéï¼ä¹æå¯è½æ¯JDBCçBlobæ°æ®ï¼ + æè æ¯ä¸ä¸ª<literal>SocketInputStream</literal>ï¼ææ¯æ¥èª<literal>HTTPRequests</literal> + çæ°æ®ççãåªè¦æ¯å®ç°äº<literal>java.io.InputStream</literal>å + <literal>java.io.OutputStream</literal>çæ°æ®æºé½å¯ä»¥ä½ä¸ºå¤§æ¶æ¯ä¼ éã</para> + <section> + <title>æ ¸å¿APIä¸æµç使ç¨</title> + <para>ä¸è¡¨ååºäº<literal>ClientMessage</literal>ä¸å¯ä»¥ä½¿ç¨çæ¹æ³ã + éè¿ç¸åºç对象å±æ§ä¹å¯ä»¥å¨JMSä¸åºç¨ã</para> + <table frame="topbot" id="large-messages.ClientMessageAPI"> + <title>org.hornetq.api.core.client.ClientMessage API</title> + <tgroup cols="3"> + <colspec colname="Name" colnum="1"/> + <colspec colname="Descr" colnum="2"/> + <colspec colname="JMS" colnum="3"/> + <thead> + <row> + <entry>å称</entry> + <entry>说æ</entry> + <entry>JMSç¸å¯¹åºçå±æ§</entry> + </row> + </thead> + <tbody> + <row> + <entry>setBodyInputStream(InputStream)</entry> + <entry>设å®å¤§æ¶æ¯åéæ¶æ使ç¨çè¾å ¥æµã</entry> + <entry>JMS_HQ_InputStream</entry> + </row> + <row> + <entry>setOutputStream(OutputStream)</entry> + <entry>设å®å¼æ¥æ¥æ¶å¤§æ¶æ¯æ使ç¨çè¾åºæµã</entry> + <entry>JMS_HQ_OutputStream</entry> + </row> + <row> + <entry>saveOutputStream(OutputStream)</entry> + <entry>设å®ä¿å大æ¶æ¯æ使ç¨çè¾åºæµãè¿ä¸ªæ¹æ³å°ä¼é»å¡ç´å°å¤§æ¶æ¯å ¨é¨ + ä¿åå®æ¯æè¿åã</entry> + <entry>JMS_HQ_SaveStream</entry> + </row> + </tbody> + </tgroup> + </table> + <para>ä¸é¢ä»£ç ä¸è®¾å®äºæ¥æ¶æ ¸å¿æ¶æ¯æç¨çè¾åºæµï¼ </para> + <programlisting> +... +ClientMessage msg = consumer.receive(...); + + +// This will block here until the stream was transferred +msg.saveOutputStream(someOutputStream); + +ClientMessage msg2 = consumer.receive(...); + +// This will not wait the transfer to finish +msg.setOutputStream(someOtherOutputStream); +... + + </programlisting> + <para> 设å®åéæ ¸å¿æ¶æ¯æç¨çè¾å ¥æµï¼ </para> + <programlisting> +... +ClientMessage msg = session.createMessage(); +msg.setInputStream(dataInputStream); +... + </programlisting> + </section> + <section id="large-messages.streaming.over.jms"> + <title>å¨JMSä¸ä½¿ç¨æµ</title> + <para>使ç¨JMSæ¶ï¼HornetQæ ¹æ®å®ä¹çå±æ§å¼è°ç¨å¯¹åºçæ ¸å¿æ¥å£ï¼åè§ <xref + linkend="large-messages.ClientMessageAPI"/>ï¼æ¥ä½¿ç¨æµãä½ åªéè¦ç¨ + <literal>Message.setObjectProperty</literal>æ¹æ³è®¾ç½®éå½çè¾å ¥ï¼è¾åºæµå³å¯ã</para> + <para>è¾å ¥æµ<literal>InputStream</literal>å¯ä»¥éè¿JMSå±æ§JMS_HQ_InputStreamæ¥å®ä¹ï¼</para> + <programlisting> +BytesMessage message = session.createBytesMessage(); + +FileInputStream fileInputStream = new FileInputStream(fileInput); + +BufferedInputStream bufferedInput = new BufferedInputStream(fileInputStream); + +message.setObjectProperty("JMS_HQ_InputStream", bufferedInput); + +someProducer.send(message);</programlisting> + <para>è¾åºæµ<literal>OutputStream</literal>å¯ä»¥éè¿JMSå±æ§JMS_HQ_SaveStreamæ¥å®ä¹ãä¸é¢æ¯é»å¡å¼æ¹æ³ï¼</para> + <programlisting> +BytesMessage messageReceived = (BytesMessage)messageConsumer.receive(120000); + +File outputFile = new File("huge_message_received.dat"); + +FileOutputStream fileOutputStream = new FileOutputStream(outputFile); + +BufferedOutputStream bufferedOutput = new BufferedOutputStream(fileOutputStream); + +// This will block until the entire content is saved on disk +messageReceived.setObjectProperty("JMS_HQ_SaveStream", bufferedOutput); + </programlisting> + <para>ä¹å¯ä»¥ä½¿ç¨JMS_HQ_OutputStreamå±æ§ä»¥éé»å¡å¼ï¼å¼æ¥ï¼æ¹æ³æ¥å®ä¹è¾åºæµ<literal>OutputStream</literal>ï¼</para> + <programlisting> +// This won't wait the stream to finish. You need to keep the consumer active. +messageReceived.setObjectProperty("JMS_HQ_OutputStream", bufferedOutput); + </programlisting> + <note> + <para>使ç¨JMSæ¶ï¼åªæ<literal>StreamMessage</literal>å<literal>BytesMessage</literal>ææ¯æ大æ¶æ¯çä¼ éã</para> + </note> + </section> + </section> + <section> + <title>ä¸ä½¿ç¨æµçæ¹å¼</title> + <para>å¦æä¸æ³ä½¿ç¨è¾å ¥æµä¸è¾åºæµæ¥ä¼ é大æ¶æ¯ï¼å¯ä»¥ç¨å¦å¤ä¸ç§æ¹æ³ã</para> + <para>使ç¨æ ¸å¿æ¥å£æ¶ï¼å¯ä»¥ç´æ¥ä»æ¶æ¯ä¸è¯»åèã</para> + <programlisting>ClientMessage msg = consumer.receive(); + +byte[] bytes = new byte[1024]; +for (int i = 0 ; i < msg.getBodySize(); i += bytes.length) +{ + msg.getBody().readBytes(bytes); + // Whatever you want to do with the bytes +}</programlisting> + <para>使ç¨JMSæ¥å£æ¶ï¼<literal>BytesMessage</literal>å<literal>StreamMessage</literal> + æ¬èº«æä¾è¿æ ·çæ¯æã</para> + <programlisting>BytesMessage rm = (BytesMessage)cons.receive(10000); + +byte data[] = new byte[1024]; + +for (int i = 0; i < rm.getBodyLength(); i += 1024) +{ + int numberOfBytes = rm.readBytes(data); + // Do whatever you want with the data +} </programlisting> + </section> + <section id="large-messages.cache.client"> + <title>å¨å®¢æ·ç«¯ç¼å大æ¶æ¯</title> + <para>大æ¶æ¯éè¿æµå¨æå¡å¨å客æ·ç«¯ä¹é´ä¼ è¾ãæ¯ä¸ªå¤§æ¶æ¯è¢«åå²æå¾å¤å°çæ°æ®å ä¼ éãå æ¤å¤§æ¶æ¯åªè½è¢« + 读åä¸æ¬¡ãè¿æ ·ä¸ä¸ªå¤§æ¶æ¯å¨æ¶å°åå°±ä¸è½å被åæ¬¡ä¼ éãä¾å¦ï¼JMS Bridgeå¨åé大æ¶æ¯æ¶å¦æå¨åºç°æ éï¼ + å°ä¸è½æå®éæ°åéã</para> + <para>è¦è§£å³è¿ä¸ªé®é¢ï¼å¯ä»¥å¨è¿æ¥å·¥åä¸è®¾ç½®<literal>cache-large-message-client</literal>å±æ§ã + è¿ä¸ªå±æ§å¯ä»¥ä½¿å®¢æ·ç«¯æ¥æ¶è å建ä¸ä¸ªä¸´æ¶çæ件ä¿åæ¶å°ç大æ¶æ¯ï¼è¿æ ·å°±å¯ä»¥å¨éè¦æ¶è½å¤éæ°åé该æ¶æ¯ã</para> + <note>å¦æJMS Bridgeç¨æ¥åé大æ¶æ¯ï¼å¯ä»¥å¨å®ä½¿ç¨çè¿æ¥å·¥åä¸ä½¿ç¨å®ã</note> + </section> + <section id="large-messages.example"> + <title>大æ¶æ¯ä¾å</title> + <para>æ们å¨<xref linkend="examples.large-message"/>æä¾äºä¸ä¸ªå¨JMSä¸é ç½®å使ç¨å¤§æ¶æ¯çä¾åã</para> + </section> +</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/last-value-queues.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/last-value-queues.xml b/docs/user-manual/zh/last-value-queues.xml new file mode 100644 index 0000000..cd80899 --- /dev/null +++ b/docs/user-manual/zh/last-value-queues.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="last-value-queues"> + <title>ææ°å¼éåï¼Last-Value Queuesï¼</title> + <para>ææ°å¼éåæ¯ä¸ç§ç¹æ®çéåãå½ä¸ä¸ªæ°æ¶æ¯å°è¾¾ä¸ä¸ªææ°å¼éåæ¶ï¼å®ä¼å°ææä¸è¯¥æ¶æ¯å®ä¹çLast-Valueç¸åçæ§æ¶æ¯ + æå¼ãæ¢å¥è¯è¯´ï¼åªæææ°çæ¶æ¯è¢«ä¿çä¸æ¥ã</para> + <para>ä¸ä¸ªå ¸åçç¨ä¾æ¯è¡ä»·ä¿¡æ¯ï¼éå¸¸ä½ åªå ³å¿ä¸æ¯è¡ç¥¨çææ°ä»·æ ¼ã</para> + <section> + <title>ææ°å¼éåçé ç½®</title> + <para>ææ°å¼éåçé ç½®å¨address-settingå ï¼</para> + <programlisting> +<address-setting match="jms.queue.lastValueQueue"> + <last-value-queue>true</last-value-queue> +</address-setting> + </programlisting> + <para>é»è®¤ç<literal>last-value-queue</literal>å¼æ¯falseãå¯ä»¥ä½¿ç¨éé 符æ¥å¹é å°åã + ï¼åè§ <xref linkend="wildcard-syntax"/>ï¼ã</para> + </section> + <section> + <title>使ç¨Last-Valueåæ°</title> + <para>ç¨æ¥æ è¯ææ°å¼çåæ°åæ¯<literal>"_HQ_LVQ_NAME"</literal> + ï¼ç¸å½äºæ ¸å¿APIä¸å®ä¹ç常é<literal>Message.HDR_LAST_VALUE_NAME</literal>ï¼ã</para> + <para>å¦æ两个æ¶æ¯å ·æç¸åçLast-Valueå¼ï¼é£ä¹è¾æ°çæ¶æ¯å°±ä¼ä¿çï¼å¦å¤ä¸ä¸ªè¢«ä¸¢å¼ï¼</para> + <programlisting> +// send 1st message with Last-Value property set to STOCK_NAME +TextMessage message = + session.createTextMessage("1st message with Last-Value property set"); +message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME"); +producer.send(message); + +// send 2nd message with Last-Value property set to STOCK_NAME +message = + session.createTextMessage("2nd message with Last-Value property set"); +message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME"); +producer.send(message); + +... + +// only the 2nd message will be received: it is the latest with +// the Last-Value property set +TextMessage messageReceived = (TextMessage)messageConsumer.receive(5000); +System.out.format("Received message: %s\n", messageReceived.getText()); + </programlisting> + </section> + <section> + <title>ä¾å</title> + <para>åè§<xref linkend="examples.last-value-queue"/>ãå®å±ç¤ºçæ¯å¨JMSåºç¨ä¸æ¥é ç½®åä½¿ç¨ + ææ°å¼éåã</para> + </section> +</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/libaio.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/libaio.xml b/docs/user-manual/zh/libaio.xml new file mode 100644 index 0000000..c31d4bd --- /dev/null +++ b/docs/user-manual/zh/libaio.xml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="libaio"> + <title>Libaioå¹³å°ä¸æåº</title> + <para>HornetQåå¸å ä¸å æ¬ä¸ä¸ªå¹³å°ä¸æçåºï¼å®å¯ä»¥ä½¿HornetQ使ç¨Linuxæä½ç³»ç»çlibaioã</para> + <para><literal>libaio</literal>æ¯Linux项ç®çä¸ä¸ªåºãå®å°ç¨æ·æ交çåæä½ç¨å¼æ¥çæ¹å¼æ§è¡ãéè¿ + åè°ç¨æ·ç代ç æ¥éç¥åæä½çå®æã</para> + <para>éè¿é ç½®ï¼HornetQå¯ä»¥ä½¿ç¨è¿ä¸ªåºæ¥è®¿é®é«æ§è½çæ¥å¿ï¼å ·ä½è¯·åè§ <xref + linkend="persistence"/>ã</para> + <para>ä¸é¢ååºäºHornetQæ带çå¹³å°ä¸æåºæ件ï¼</para> + <itemizedlist> + <listitem> + <para>libHornetQAIO32.so - x86 32 ä½å¹³å°</para> + </listitem> + <listitem> + <para>libHornetQAIO64.so - x86 64 ä½å¹³å°</para> + </listitem> + </itemizedlist> + <para>å½ä½¿ç¨libaioæ¶ï¼HornetQä¼å¨<link linkend="using-server.library.path">åºè·¯å¾</link>ä¸å¯»æ¾å¹¶è£ + è½½è¿äºæ件ã</para> + <section> + <title>åºæ件çç¼è¯</title> + <para>å¦æä½ çLinuxå¹³å°ä¸æ¯x86_32æx86_64ï¼æ¯å¦Itanium 64æIBM Powerï¼ï¼ä½ éè¦èªå·±ç¼è¯ç¸åºçåºæä»¶ï¼ + å 为HornetQä¸æä¾è¿äºå¹³å°çåºæ件ã</para> + <section> + <title>å®è£ è¦æ±</title> + <note> + <para>ç®ålibaioåªå¨Linuxä¸æãæ以å®ä¸å¯è½å¨å ¶å®æä½ç³»ç»ä¸ç¼è¯ã</para> + </note> + <para>ç¼è¯éè¦<ulink url="http://en.wikipedia.org/wiki/Autoconf" + >autoconf</ulink>å·¥å ·ï¼å®ç¨æ¥ç®åç¼è¯è¿ç¨ãé¤æ¤ä¹å¤è¿éè¦ä¸äºå®è£ å ï¼</para> + <itemizedlist> + <listitem> + <para>gcc - C ç¼è¯å¨</para> + </listitem> + <listitem> + <para>gcc-c++ or g++ - gccçc++ç¼è¯å·¥å ·æ©å±</para> + </listitem> + <listitem> + <para>autoconf - èªå¨ç¼è¯å·¥å ·</para> + </listitem> + <listitem> + <para>make - make å·¥å ·</para> + </listitem> + <listitem> + <para>automake - makeæ件èªå¨çæå·¥å ·</para> + </listitem> + <listitem> + <para>libtool - åºè¿æ¥å·¥å ·</para> + </listitem> + <listitem> + <para>libaio - ç£çå¼æ¥IOåº</para> + </listitem> + <listitem> + <para>libaio-dev - libaioçç¼è¯æ¯æ</para> + </listitem> + <listitem> + <para>å®æ´çJDKï¼JAVA_HOMEè¦æåæ£ç¡®çä½ç½®</para> + </listitem> + </itemizedlist> + <para>å¦æå¨RHELæFedoraä¸è¿è¡å®è£ ï¼è¾å ¥ä»¥ä¸å½ä»¤ï¼</para> + <programlisting>sudo yum install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make</programlisting> + <para>å¦ææ¯ debianç³»ç»ï¼åï¼</para> + <programlisting>sudo apt-get install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make</programlisting> + <note> + <para>å¨æäºLinuxççæ¬ä¸ä¸è¿°çå®è£ å åå¯è½æä¸äºå·®å«ãï¼ä¾å¦Fedoraä¸çgcc-c++å¨Debianç³»ç»ä¸ + çå称为g++ï¼</para> + </note> + </section> + <section> + <title>å¼å§ç¼è¯</title> + <para>å¨HornetQåå¸å ç<literal>native-src</literal>ç®å½ä¸ï¼æ§è¡shellèæ¬ + <literal>bootstrap</literal>ãè¿ä¸ªèæ¬ä¼è°ç¨ <literal + >automake</literal>以å<literal>make</literal>æ¥å建ææçmakeæ件åä¸æåºã</para> + <programlisting>someUser@someBox:/messaging-distribution/native-src$ ./bootstrap +checking for a BSD-compatible install... /usr/bin/install -c +checking whether build environment is sane... yes +checking for a thread-safe mkdir -p... /bin/mkdir -p + +... + +configure: creating ./config.status +config.status: creating Makefile +config.status: creating ./src/Makefile +config.status: creating config.h +config.status: config.h is unchanged +config.status: executing depfiles commands +config.status: executing libtool commands + +...</programlisting> + <para>ç¼è¯å¥½çåºæ件å¨<literal + >./native-src/src/.libs/libHornetQAIO.so</literal>ãå°è¯¥æ件移å°åå¸å ç + <literal>bin</literal>ç®å½ä¸ï¼æè ä½ ç<link linkend="using-server.library.path">åºç®å½</link> + ææåçç®å½å³å¯ã</para> + <para>å¦æä½ ä¿®æ¹äºHornetQçlibaio代ç ï¼åªéè¦å¨<literal>native-src</literal>ç®å½ä¸ç´æè¿è¡makeå³å¯å®æç¼è¯ã</para> + </section> + </section> +</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/docs/user-manual/zh/logging.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/logging.xml b/docs/user-manual/zh/logging.xml new file mode 100644 index 0000000..519d972 --- /dev/null +++ b/docs/user-manual/zh/logging.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- ============================================================================= --> +<!-- Copyright © 2009 Red Hat, Inc. and others. --> +<!-- --> +<!-- The text of and illustrations in this document are licensed by Red Hat under --> +<!-- a Creative Commons AttributionâShare Alike 3.0 Unported license ("CC-BY-SA"). --> +<!-- --> +<!-- An explanation of CC-BY-SA is available at --> +<!-- --> +<!-- http://creativecommons.org/licenses/by-sa/3.0/. --> +<!-- --> +<!-- In accordance with CC-BY-SA, if you distribute this document or an adaptation --> +<!-- of it, you must provide the URL for the original version. --> +<!-- --> +<!-- Red Hat, as the licensor of this document, waives the right to enforce, --> +<!-- and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent --> +<!-- permitted by applicable law. --> +<!-- ============================================================================= --> +<chapter id="logging"> + <title>æ¥å¿ï¼Loggingï¼</title> + <para>HornetQæèªå·±çç¬ç«çæ¥å¿ç³»ç»ï¼ä¸ä¾èµäºä»»ä½å ¶å®çæ¥å¿æ¡æ¶ãå¨é»è®¤æ åµä¸ææHornetQçæ¥å¿å°è¾å ¥å° + æ åç<ulink + url="http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/">JDKæ¥å¿ç³»ç»</ulink>ï¼ + ï¼å³JULï¼Java Util Loggingï¼ãæå¡å¨å¨é»è®¤æ¡ä»¶ä¸è¯»åconfigç®å½ä¸ç + <literal>logging.properties</literal>æ件å为JULçé ç½®æ件ãå®é ç½®äºä½¿ç¨HornetQèªå·±çæ ¼å¼å + æ¹æ³ï¼å°æ¥å¿è¾åºå°å±å¹ç»ç«¯ï¼Consoleï¼åæ件ä¸ã请访é®Sunå ¬å¸çç¸å ³ç½åæ¥è¿ä¸æ¥äºè§£å¦ä½é 置使ç¨JULã</para> + <para>ä½ å¯ä»¥éè¿ç¼ç¨æå®ä¹ç³»ç»åéçæ¹æ³æ¥é ç½®ä¸åçæ¥å¿ä»£çï¼Logging Delegateï¼ã</para> + <para>éç¨ç¼ç¨æ¹æ³ï¼åªéè¦è°ç¨æ¹æ³ï¼ + <programlisting>org.hornetq.core.logging.Logger.setDelegateFactory(new Log4jLogDelegateFactory())</programlisting></para> + <para>å ¶ä¸<literal>Log4jLogDelegateFactory</literal>å®ç°äº<literal + >org.hornetq.spi.core.logging.LogDelegateFactory </literal>æ¥å£ã</para> + <para>å¦æè¦ä½¿ç¨ç³»ç»åéæ¹æ³ï¼åéè¦è®¾ç½®åé<literal + >org.hornetq.logger-delegate-factory-class-name</literal>为ç¸åºç代çå·¥åï¼å³ + <programlisting>-Dorg.hornetq.logger-delegate-factory-class-name=org.hornetq.integration.logging.Log4jLogDelegateFactory</programlisting></para> + <para>ä¸é¢çä¾åå¯ä»¥çåºHornetQæä¾äºä¸äºä»£çå·¥å以æ¹ä¾¿ç¨æ·ä½¿ç¨ï¼å®ä»¬æ¯ï¼<orderedlist + ><listitem><para>org.hornetq.core.logging.impl.JULLogDelegateFactory - é»è®¤çJULæ¥å¿ä»£çå·¥åã</para> + </listitem><listitem><para>org.hornetq.integration.logging.Log4jLogDelegateFactory + - Log4Jçæ¥å¿ä»£çå·¥åã</para></listitem></orderedlist></para> + <para>å¦æå¨å®¢æ·ç«¯ä½¿ç¨JUL代çï¼æ³¨æè¦æä¾<literal>logging.properties</literal>æ件ï¼å¹¶ä¸å¨å®¢æ·ç«¯å¯å¨ä¹å设置<literal + >java.util.logging.config.file</literal>å±æ§ã</para> + <section> + <title>ä¸JBossåºç¨æå¡å¨æ¥å¿çå ³ç³»</title> + <para>å½HornetQé¨ç½²å°JBossåºç¨æå¡å¨çæ¬5.xæ以ä¸æ¶ï¼è½ç¶HornetQä»ç¶ä½¿ç¨JULï¼ä½æ¯ææçæ¥å¿è¾åºè¢«éå®åå° + JBoss loggerã请åé ç¸å ³çJBossææ¡£æ¥äºè§£æ´å¤çä¿¡æ¯ãå¦ææ¯ä»¥åçæ¬çJBossï¼åå¿ éæå®ä½ æéè¦çæ¥å¿ä»£çã</para> + </section> +</chapter>