http://git-wip-us.apache.org/repos/asf/activemq-6/blob/d18c42b0/docs/user-manual/zh/management.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/management.xml b/docs/user-manual/zh/management.xml deleted file mode 100644 index 484eec5..0000000 --- a/docs/user-manual/zh/management.xml +++ /dev/null @@ -1,805 +0,0 @@ -<?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="management"> - <title>管ç</title> - <para>ActiveMQæ¥æå¥ä¸°å¯çç®¡çæ¥å£ãç¨æ·ä½¿ç¨è¿äºæ¥å£å¯ä»¥ä¿®æ¹æå¡å¨é ç½®ãå建æ°çèµæºï¼å¦éåå - è¯é¢ï¼ãæ£æ¥è¿äºèµæºï¼å¦éå䏿å¤å°æ¶æ¯ï¼å¹¶è¿è¡ç®¡çï¼ä»éåä¸å 餿¶æ¯ï¼ãè¿æ ·ç¨æ·å¯ä»¥ - <emphasis>管ç</emphasis>ActiveMQãå¦å¤ï¼å®¢æ·è¿å¯ä»¥è®¢é 管çéç¥ã</para> - <para>æä¸ç§æ¹å¼ç®¡çActiveMQï¼</para> - <itemizedlist> - <listitem> - <para>使ç¨JMX -- JMXæ¯æ åçJavaåºç¨ç¨åºç®¡çæ¹å¼ã</para> - </listitem> - <listitem> - <para>ä½¿ç¨æ ¸å¿æ¥å£ -- 管çæä½éè¿<emphasis>æ ¸å¿æ¶æ¯</emphasis>çæ¹æ³ååActiveMQæ - å¡ã</para> - </listitem> - <listitem> - <para>使ç¨JMSæ¥å£ -- 管çæä½éè¿<emphasis>JMSæ¶æ¯</emphasis>çæ¹å¼ååActiveMQæå¡å¨ã</para> - </listitem> - </itemizedlist> - <para>è½ç¶æä¸ç§æ¹å¼ï¼ä½å®ä»¬æä¾ç¸åçåè½ã使ç¨JMXæ¹æ³è½å®æçåè½ä½¿ç¨æ ¸å¿æ¥å£æJMSæ¥å£é½å¯ä»¥å®æã</para> - <para>æ ¹æ®ä¸åçåºç¨ç¯å¢æ¥éæ©æéå½çæ¹å¼ã</para> - <section> - <title>ç®¡çæ¥å£API</title> - <para>ä¸ç®¡ä½¿ç¨åªç§æ¹å¼ï¼ç®¡çæ¥å£é½æ¯ä¸æ ·çã</para> - <para>å¯¹äºæ¯ä¸ª<emphasis>被管ççèµæº</emphasis>齿ä¸ä¸ªJavaçæ¥å£æä¾å¯ä½¿ç¨çæä½ã</para> - <para>ActiveMQçç®¡çæ¥å£åå¸å¨2个å ä¸ï¼</para> - <itemizedlist> - <listitem> - <para><emphasis>æ ¸å¿</emphasis>èµæºçç®¡çæ¥å£å¨ <literal - >org.apache.activemq.api.core.management</literal>å ä¸ã</para> - </listitem> - <listitem> - <para><emphasis>JMS</emphasis>èµæºçç®¡çæ¥å£å¨ <literal - >org.apache.activemq.api.jms.management</literal>å ä¸ã</para> - </listitem> - </itemizedlist> - <para>è°ç¨<emphasis>管çæä½</emphasis>çæ¹æ³ç±æä½¿ç¨æ¯æ¹å¼æ¯JMXãæ ¸å¿æ¶æ¯è¿æ¯JMS - æ¶æ¯æ¥å³å®ã</para> - <note> - <para>ä¸å°é¨åçç®¡çæ¥å£éè¦ä¸ä¸ª<literal>è¿æ»¤å¨</literal>åæ°æ¥éæ©éè¦çæ¶æ¯ã - å¦æè¦æ±<emphasis>ææçæ¶æ¯</emphasis>ï¼ä¼ éè¯¥åæ°æ¶ä½¿ç¨<literal> - null</literal>æè ä¸ä¸ªç©ºçå符串å³å¯ã</para> - </note> - <section> - <title>æ ¸å¿ç®¡çæ¥å£</title> - <para>ActiveMQå®ä¹äºä¸å¥å¯¹æ ¸å¿èµæºçç®¡çæ¥å£ãå ³äºå®ä»¬ç详ç»è¯´æè¯·åè§ç¸åºçjavadocã - ä¸é¢æ¯å¯¹å®ä»¬çæ¦è¿°ï¼</para> - <section> - <title>æ ¸å¿æå¡å¨ç®¡ç</title> - <itemizedlist> - <listitem> - <para>éåçå表ãå建ãé¨ç½²ä¸å é¤</para> - <para><literal>getQueueNames()</literal> methodæ¹æ³ç¨æ¥ååºææå·²ç»é¨ç½²çéåã</para> - <para>å¨<literal>ActiveMQServerControl</literal> ï¼ObjectName <literal - >org.apache.activemq:module=Core,type=Server</literal>æèµæºå<literal - >core.server</literal>ï¼ä¸æéåå建æå é¤çæ¹æ³ï¼å®ä»¬æ¯ - <literal>createQueue()</literal>ã<literal>deployQueue()</literal>å - <literal>destroyQueue()</literal>ã</para> - <para>妿éåå·²ç»åå¨ï¼é£ä¹<literal>createQueue</literal>æ¹æ³è°ç¨ä¼åºéï¼è - <literal>deployQueue</literal>æ¹æ³è°ç¨æ²¡æä»»ä½ä½ç¨ã</para> - </listitem> - <listitem> - <para>æå䏿¢å¤éå</para> - <para><literal>QueueControl</literal>å¯ç¨æ¥æå䏿¢å¤éåã妿ä¸ä¸ªéå被æåï¼å® - è½ç¶å¯ä»¥ç»§ç»æ¥æ¶æ¶æ¯ä½æ¯ä¸ä¼ éæ¶æ¯ï¼å½è¢«æ¢å¤æ¶ï¼éååä¼å¼å§ä¼ éæ¶æ¯ã - </para> - </listitem> - <listitem> - <para>è¿ç¨è¿æ¥çå表ä¸å ³é</para> - <para><literal>listRemoteAddresses()</literal>æ¹æ³å¯ä»¥ç¨æ¥ååºå®¢æ·ç«¯çè¿ç¨å°åã - è¿å¯ä»¥ä½¿ç¨<literal>closeConnectionsForAddress()</literal>æ¹æ³æ¥å ³é - ä¸è¯¥å°åç¸å ³çè¿ç¨è¿æ¥ã</para> - <para>å¦å¤ï¼ä½¿ç¨<literal>listConnectionIDs()</literal>æ¹æ³å¯ä»¥ååºè¿æ¥IDï¼ - 使ç¨<literal>listSessions()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ä¸ªè¿æ¥IDç¸å ³çææ - ä¼è¯ï¼sessionï¼ã</para> - </listitem> - <listitem> - <para>äºå¡çæå¨æä½ï¼heuristic operationsï¼</para> - <para>彿å¡å¨ç±äºæ éèéæ°å¯å¨æ¶ï¼å¯è½é æä¸äºäºå¡æ²¡æå®æèéè¦äººå·¥å¹²é¢ã - <literal>listPreparedTransactions()</literal>æ¹æ³å¯ä»¥ååºææå¤äº - åå¤ï¼preparedï¼ç¶æçäºå¡ï¼äºå¡æ¯ç¨Base64å符串çå½¢å¼ååºï¼ãå¦æè¦æäº¤æåæ»ï¼ - å¯ä»¥ä½¿ç¨<literal>commitPreparedTransaction()</literal>æ¹æ³æ - <literal>rollbackPreparedTransaction()</literal>æ¹æ³ãéç¨å¯åå¼ - ï¼heuristicï¼å®æçäºå¡å¯ä»¥ç¨<literal>listHeuristicCommittedTransactions()</literal> - æ¹æ³å<literal>listHeuristicRolledBackTransactions</literal>æ¹æ³ååºã</para> - </listitem> - <listitem> - <para>æå¼åéç½®æ¶æ¯è®¡æ°å¨</para> - <para>æ¶æ¯è®¡æ°å¨å¯ä»¥ç¨<literal>enableMessageCounters()</literal>æ¹æ³æå¼ï¼ç¨ - <literal>disableMessageCounters()</literal>æ¹æ³å ³éã妿è¦éç½®æ¶æ¯è®¡æ°å¨ï¼ - å¯ä»¥ä½¿ç¨<literal>resetAllMessageCounters()</literal>æ¹æ³å - <literal>resetAllMessageCounterHistories()</literal>æ¹æ³ã</para> - </listitem> - <listitem> - <para>è·å¾æå¡å¨çé ç½®å屿§</para> - <para><literal>ActiveMQServerControl</literal>æä¾äºè®¿é®ActiveMQæå¡å¨ææå±æ§ - çæ¹æ³ï¼ä¾å¦<literal>getVersion()</literal>æ¹æ³å¯ä»¥å¾å°æå¡å¨ççæ¬ï¼ççï¼ã </para> - </listitem> - <listitem> - <para>æ ¸å¿æ¡¥å转åå¨çå建ï¼å é¤ä¸å表</para> - <para>使ç¨<literal>getBridgeNames()</literal>å¯ä»¥ååºé¨ç½²çæ ¸å¿æ¡¥ã - 使ç¨<literal>getDivertNames()</literal>å¯ä»¥ååºé¨ç½²ç转åå¨ã</para> - <para>使ç¨<literal>ActiveMQServerControl</literal> (ObjectName <literal - >org.apache.activemq:module=Core,type=Server</literal> æèµæºå <literal - >core.server</literal>)çæ¹æ³<literal>createBridge()</literal> -ããããããããããããã å<literal>destroyBridge()</literal>å¯ä»¥å建åå 餿 ¸å¿æ¡¥ã - éè¿<literal>createDivert()</literal>å<literal>destroyDivert()</literal> - å¯ä»¥å建åå é¤è½¬åå¨ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>æ ¸å¿å°åç管ç</title> - <para>æ ¸å¿å°åå¯ä»¥éè¿<literal>AddressControl</literal>ç±»è¿è¡è®¿é®ï¼ObjectName - æ¯ <literal>org.apache.activemq:module=Core,type=Address,name="<the - address name>"</literal>æè èµæºå <literal>core.address.<the - address name></literal>ï¼ã</para> - <itemizedlist> - <listitem> - <para>ä¿®æ¹å°åçè§è²åæéã</para> - <para>ä½ å¯ä»¥ä½¿ç¨<literal>addRole()</literal>æ¹æ³æ<literal>removeRole()</literal> - æ¹æ³æ·»å æå é¤å°åçè§è²ãç¨<literal>getRoles()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªå°åçææè§è²ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>æ ¸å¿éåç管ç</title> - <para>ç®¡çæ¥å£ä¸çä¸å¤§é¨åæ¯ç®¡çæ ¸å¿éåçã<literal>QueueControl</literal>ç±»å®ä¹äºæ ¸å¿éåç管ç - æ¥å£ï¼ObjectName <literal>org.apache.activemq:module=Core,type=Queue,address="<ç»å®å°å - address>",name="<éåå>"</literal> æèµæºå <literal - >core.queue.<éåå></literal>ï¼ã</para> - <para>ç»å¤§é¨åçéåç®¡çæ¹æ³éè¦ä¸ä¸ªæ¶æ¯IDåæ°ï¼å¦å é¤ä¸ä¸ªæ¶æ¯ï¼æä¸ä¸ªè¿æ»¤å¨åæ°ï¼å¦å°å ·ææä¸ª - 屿§å¼çæææ¶æ¯è®¾ç½®ä¸ºè¿æï¼ã</para> - <itemizedlist> - <listitem> - <para>æ¶æ¯çè¿æï¼ååæ»ä¿¡å°ååå é¤</para> - <para><literal>expireMessages()</literal>æ¹æ³å¯ä»¥ä½¿æ¶æ¯è¿æãå¦æè®¾ç½®äºä¸ä¸ªè¿æå°åï¼ - è¿äºæ¶æ¯ä¼è¢«åå°è¿æå°åãå¦åè¿äºæ¶æ¯ä¼è¢«ä¸¢å¼ã<literal>setExpiryAddress()</literal> - æ¹æ³å¯ä»¥ç¨æ¥è®¾ç½®éåçè¿æå°åã</para> - <para>æ¶æ¯å¯ä»¥ç¨<literal>sendMessagesToDeadLetterAddress()</literal>æ¹æ³åéå° - ä¸ä¸ªæ»ä¿¡å°åãå®è¿ååå°è¿ä¸ªæ»ä¿¡å°åçæ¶æ¯çæ°éãå¦ææ²¡æè®¾ç½®æ»ä¿¡å°åï¼é£ä¹æ¶æ¯å°±ä¼ä»éåä¸ - å é¤ãç¨<literal>setDeadLetterAddress()</literal>æ¹æ³å¯ä»¥è®¾ç½®éåçæ»ä¿¡å°åã</para> - <para>æ¶æ¯è¿å¯ä»¥ä»ä¸ä¸ªéå转移å°å¦ä¸ä¸ªéåãå ¶æ¹æ³æ¯ - <literal>moveMessages()</literal>ã</para> - </listitem> - <listitem> - <para>æ¶æ¯çå表ä¸å é¤</para> - <para>ç¨<literal>listMessages()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªéåä¸çæææ¶æ¯ãè¿ä¸ªæ¹æ³ - è¿åçæ¯ä¸ä¸ª<literal>Map</literal>çæ°ç»ãæ¯ä¸ä¸ªMap对åºä¸ä¸ªæ¶æ¯ã</para> - <para>æ¶æ¯å¯ä»¥ç¨<literal>removeMessages()</literal>æ¹æ³å é¤ã妿æ¯ä½¿ç¨æ¶æ¯IDï¼ - è¿åçæ¯ä¸ä¸ªå¸å°å¸¸éï¼å¦ææ¯ç¨è¿æ»¤å¨ï¼åè¿åç - æ¯å é¤çæ¶æ¯æ°éãå¨ä½¿ç¨è¿æ»¤å¨æ¥å é¤è¿æ»¤çæ¶æ¯æ¶ï¼å¦æä¼ å ¥ä¸ä¸ªç©ºå符串å表示è¦å é¤ - ææçæ¶æ¯ã</para> - </listitem> - <listitem> - <para>æ¶æ¯è®¡æ°</para> - <para>ä¸ä¸ªéåä¸çæ¶æ¯æ°å¯ä»¥ç¨<literal>getMessageCount()</literal>æ¹æ³è·å¾ã - æ¤å¤ï¼<literal>countMessages()</literal>æ¹æ³å¯ä»¥è¿åéåä¸ä¸ä¸ - 个<emphasis>è¿æ»¤å¨</emphasis>å¹é çæ¶æ¯æ°éã</para> - </listitem> - <listitem> - <para>ä¿®æ¹æ¶æ¯çä¼å 级</para> - <para>ç¨<literal>changeMessagesPriority()</literal>æ¹æ³å¯ä»¥æ¹åæ¶æ¯çä¼å 级ã - è¯¥æ¹æ³å¦æå¸¦ä¸ä¸ªæ¶æ¯IDåæ°ï¼è¿åä¸ä¸ªå¸å°å¸¸éï¼å¦æå¸¦ä¸ä¸ªè¿æ»¤å¨åæ°ï¼è¿åä¼å 级 - è¢«æ´æ°çæ¶æ¯çæ°éã</para> - </listitem> - <listitem> - <para>æ¶æ¯è®¡æ°å¨</para> - <para>ç¨<literal>listMessageCounter()</literal>æ¹æ³å<literal> - listMessageCounterHistory()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªéåçæ¶æ¯è®¡æ°å¨ã - ï¼åè§ <xref linkend="management.message-counters"/>ï¼ãæ¶æ¯è®¡æ°å¨è¿å¯ä»¥ - ç¨<literal>resetMessageCounter()</literal>æ¹æ³éç½®ã</para> - </listitem> - <listitem> - <para>è·å¾éåç屿§</para> - <para>éè¿<literal>QueueControl</literal>å¯ä»¥è·å¾æ ¸å¿éåç屿§ï¼ä¾å¦ç¨ - <literal>getFilter()</literal>æ¹æ³å¯ä»¥å¾å°éåç - è¿æ»¤å¨ï¼<literal>isDurable()</literal>æ¹æ³å¯ä»¥ç¥éé忝妿¯æä¹ çéåççï¼ã</para> - </listitem> - <listitem> - <para>æå忢å¤éå</para> - <para><literal>QueueControl</literal>å¯ç¨æ¥æå䏿¢å¤éåã妿ä¸ä¸ªéå被æåï¼å® - è½ç¶å¯ä»¥ç»§ç»æ¥æ¶æ¶æ¯ä½æ¯ä¸ä¼ éæ¶æ¯ï¼å½è¢«æ¢å¤æ¶ï¼éååä¼å¼å§ä¼ éæ¶æ¯ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>å ¶å®æ ¸å¿èµæºç管ç</title> - <para>ActiveMQå è®¸ç¨æ·å¯å¨æåæ¢å ¶è¿ç¨èµæºï¼æ¥æ¶å¨ï¼è½¬åå¨ï¼æ¡¥ï¼ççï¼ãè¿æ ·å¯ä»¥ä½¿æå¡å¨æåå·¥ä½ - èä¸éè¦å®å ¨åæ¢æå¡å¨ï¼æ¯å¦å¯ä»¥ä¸´æ¶å¯¹æå¡å¨è¿è¡ä¸äºç¦»çº¿æä½ï¼å对ä¸äºäºå¡çå¤çï¼ãè¿äºèµæºæï¼</para> - <itemizedlist> - <listitem> - <para>æ¥æ¶å¨</para> - <para>ç¨<literal>AcceptorControl</literal>ç±»ï¼ObjectName <literal - >org.apache.activemq:module=Core,type=Acceptor,name="<æ¥æ¶å¨å - >"</literal> æèµæºå <literal>core.acceptor.<å°åå - ></literal>ï¼ç<literal>start()</literal>æ¹æ³å¯å¨ï¼ç¨<literal> - stop()</literal>æ¹æ³åæ¢ãæ¥æ¶å¨çåæ°å¯ä»¥éè¿<literal>AcceptorControl</literal> - ç屿§è·å¾ãï¼åè§ <xref - linkend="configuring-transports.acceptors"/>ï¼ã</para> - </listitem> - <listitem> - <para>转åå¨</para> - <para>ç¨<literal>DivertControl</literal>ï¼ObjectNameæ¯ <literal - >org.apache.activemq:module=Core,type=Divert,name=<转åå¨å></literal> - æèµæºå<literal>core.divert.<转åå¨></literal>ï¼ç±»ç - <literal>start()</literal>æ¹æ³å¯ä»¥å¯å¨ï¼ç¨<literal>stop()</literal>æ¹æ³å¯ä»¥åæ¢ã - éè¿<literal>DivertControl</literal>è¿å¯ä»¥è·å¾è½¬åå¨çåç§å±æ§ãï¼åè§ <xref - linkend="diverts"/>ï¼ã</para> - </listitem> - <listitem> - <para>æ¡¥</para> - <para>æ¡¥å¯ä»¥éè¿<literal>BridgeControl</literal>ç±»ï¼ObjectName <literal - >org.apache.activemq:module=Core,type=Bridge,name="<æ¡¥çåå - >"</literal> æèµæºå <literal>core.bridge.<æ¡¥çåå - ></literal>ï¼ç<literal>start()</literal> - æ¹æ³å¯å¨ï¼ç¨<literal>stop()</literal>æ¹æ³åæ¢ãå®ç屿§å¯ä»¥éè¿ - <literal>BridgeControl</literal>ç屿§è·å¾ï¼åè§ - <xref linkend="core-bridges"/>ï¼ã</para> - </listitem> - <listitem> - <para>广æç»</para> - <para>广æç»å¯ä»¥éè¿<literal>BroadcastGroupControl</literal>ç±»ï¼ObjectName <literal - >org.apache.activemq:module=Core,type=BroadcastGroup,name="<广æç»å - >"</literal> æè èµæºå <literal - >core.broadcastgroup.<广æç»å></literal>)ç<literal> - start()</literal>æ¹æ³å¯å¨ï¼ç¨<literal>stop()</literal>æ¹æ³åæ¢ã - å®ç屿§ä¹å¯ä»¥éè¿<literal - >BroadcastGroupControl</literal>ç屿§è·å¾ï¼åè§<xref - linkend="clusters.broadcast-groups"/>ï¼ã</para> - </listitem> - <listitem> - <para>åç°ç»</para> - <para>åç°ç»å¯ä»¥éè¿<literal>DiscoveryGroupControl</literal>ç±» - ï¼ObjectName <literal>org.apache.activemq:module=Core,type=DiscoveryGroup, - name="<åç°ç»å>"</literal> æèµæºå<literal>core.discovery.< - åç°ç»å></literal>ï¼ç - <literal>start()</literal>æ¹æ³å¯å¨ï¼ç¨<literal>stop()</literal>æ¹æ³åæ¢ã - å®çåæ°å¯ä»¥éè¿<literal>DiscoveryGroupControl</literal>ç屿§è·å¾ï¼åè§ - <xref linkend="clusters.discovery-groups"/>ï¼ã</para> - </listitem> - <listitem> - <para>éç¾¤è¿æ¥</para> - <para>éç¾¤è¿æ¥å¯ä»¥éè¿<literal>ClusterConnectionControl</literal>ç±»ï¼ - ObjectName <literal - >org.apache.activemq:module=Core,type=ClusterConnection,name="<éç¾¤è¿æ¥å - >"</literal> æèµæºå <literal - >core.clusterconnection.<éç¾¤è¿æ¥å></literal>ï¼ç<literal> - start()</literal>æ¹æ³å¯å¨ï¼ç¨<literal>stop()</literal>æ¹æ³åæ¢ã - å®çåæ°å¯ä»¥éè¿<literal - >ClusterConnectionControl</literal>ç屿§æ¥è·å¾ï¼åè§ - <xref linkend="clusters.cluster-connections"/>ï¼ã</para> - </listitem> - </itemizedlist> - </section> - </section> - <section> - <title>JMSç®¡çæ¥å£</title> - <para>ActiveMQå®ä¹äºä¸å¥JMSç®¡çæ¥å£æ¥ç®¡çJMSç<emphasis>å¯ç®¡çç对象</emphasis> - ï¼ä¾å¦JMSéåï¼è¯é¢åè¿æ¥å·¥åï¼ã</para> - <section> - <title>JMSæå¡å¨ç®¡ç</title> - <para><literal>JMSServerControl</literal>ç±»ï¼ObjectName <literal - >org.apache.activemq:module=JMS,type=Server</literal> æèµæºå<literal - >jms.server</literal>ï¼ç¨æ¥å建JMSèµæºï¼è¿æ¥å·¥ååç®æ ï¼ã</para> - <itemizedlist> - <listitem> - <para>å表ãå建ãå é¤è¿æ¥å·¥å</para> - <para>使ç¨<literal>getConnectionFactoryNames()</literal> æ¹æ³å¯ä»¥ååºé¨ç½²çè¿æ¥å·¥åç - ååã</para> - <para>ç¨<literal>createConnectionFactory()</literal>æ¹æ³å<literal - >destroyConnectionFactory()</literal>æ¹æ³è½å建åå é¤JMSè¿æ¥å·¥åã - è¿äºè¿æ¥å·¥åé½ä¸JNDIç»å®ä»¥ä¾¿äºå®¢æ·ç«¯æ¥æ¥æ¾ã妿æ¯å¨å¾å½¢ä»é¢ä¸åå»ºè¿æ¥å·¥åï¼å¨å¹¿æ¬æ¡å è¾å ¥ - æå ³çä¼ è¾åæ°æ¶å¯ä½¿ç¨ä¸ç»ç¨éå·éå¼çé®ï¼å¼å¯¹ï¼ä¾å¦<literal>key1=10, key2="value", key3=false</literal>ï¼ã - 妿éè¦å®ä¹å¤ä¸ªä¼ è¾ï¼ä½ éè¦å°æ¯ä¸ªä¼ è¾ç忰坹ç¨å¤§æ¬å·æ¬èµ·æ¥ï¼ä¾å¦<literal>{key=10}, {key=20}</literal>ã - 第ä¸ä¸ª<literal>key</literal>å±äºç¬¬ä¸ä¸ªä¼ è¾é ç½®ï¼ç¬¬äºä¸ª<literal>key</literal>å±äºç¬¬äºä¸ªä¼ è¾é ç½®ã - ï¼æå ³ä¼ è¾çåç§åæ°åè§<xref linkend="configuring-transports"/>ï¼ã</para> - </listitem> - <listitem> - <para>å表ãå建ä¸å é¤éå</para> - <para><literal>getQueueNames()</literal>æ¹æ³å¯ä»¥è·å¾é¨ç½²çJMSéåçååå表ã</para> - <para>JMSéåå¯ä»¥ç¨<literal>createQueue()</literal>æ¹æ³å建ï¼ç¨<literal>destroyQueue()</literal>æ¹æ³å é¤ã - å建çéåé½ç»å®å°JNDI以便JMS客æ·ç«¯å¯ä»¥æ¥æ¾ã</para> - </listitem> - <listitem> - <para>å表ãå建ä¸å é¤è¯é¢ï¼topicï¼</para> - <para><literal>getTopicNames()</literal>æ¹æ³å¯ä»¥è·å¾é¨ç½²çJMSè¯é¢ååã</para> - <para>JMSè¯é¢å¯ä»¥ç¨<literal>createTopic()</literal>æ¹æ³æ¥å建ï¼ç¨<literal>destroyTopic()</literal>æ¹æ³æ¥å é¤ã - å建çè¯é¢é½ç»å®å°JNDI以便客æ·ç«¯æ¥æ¾ã</para> - </listitem> - <listitem> - <para>è¿ç¨è¿æ¥çå表ä¸å ³é</para> - <para>ç¨<literal>listRemoteAddresses()</literal>æ¹æ³å¯ä»¥è·å¾JMS客æ·ç«¯çè¿ç¨å°åã - è¿å¯ä»¥ç¨<literal>closeConnectionsForAddress()</literal>æ¹æ³å ³éä¸æä¸ªè¿ç¨å°åç¸å ³èçè¿æ¥ã</para> - <para>å¦å¤ï¼<literal>listConnectionIDs()</literal>æ¹æ³å¯ä»¥ååºè¿æ¥çIDï¼ - è<literal>listSessions()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªç»å®çè¿æ¥IDçææä¼è¯ï¼sessionï¼ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>JMSè¿æ¥å·¥åç管ç</title> - <para>使ç¨ç±»ï¼ObjectName <literal>org.apache.activemq:module=JMS,type=ConnectionFactory, - name="<è¿æ¥å·¥åå>"</literal>æè èµæºå<literal>jms.connectionfactory.< - è¿æ¥å·¥åå></literal>ï¼å¯ä»¥ç®¡çJMSçè¿æ¥å·¥åã</para> - <itemizedlist> - <listitem> - <para>è·å¾è¿æ¥å·¥åç屿§</para> - <para><literal>ConnectionFactoryControl</literal>ç±»å¯ä»¥ç¨æ¥è·å¾è¿æ¥å·¥åç屿§ï¼ - ä¾å¦<literal>getConsumerWindowSize()</literal>æ¹æ³å¯ä»¥è·å¾æ¥æ¶è æµæ§å¶ççªå£å¤§å°ï¼ - <literal>isBlockOnNonDurableSend()</literal>æ¹æ³å¯ä»¥ç¥éä»è¿ä¸ªè¿æ¥å·¥åå建çåé - è æ¯å¦éç¨é»å¡æ¹å¼åééæä¹ çæ¶æ¯ï¼ççï¼ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>JMSéå管ç</title> - <para>使ç¨<literal>JMSQueueControl</literal>ç±»ï¼ObjectName <literal>org.apache.activemq:module=JMS, - type=Queue,name="<éåå>"</literal>æèµæºå <literal>jms.queue.<éåå - ></literal>å¯ä»¥ç®¡çJMSéåã</para> - <para><emphasis>JMSéåç管çæä½ä¸æ ¸å¿éåç管çååç¸ä¼¼ã</emphasis></para> - <itemizedlist> - <listitem> - <para>è¿æï¼åéå°æ»ä¿¡å°ååç§»å¨æ¶æ¯</para> - <para>å¯ä»¥ä½¿ç¨<literal>expireMessages()</literal>æ¹æ³å°éåä¸çæ¶æ¯è®¾æè¿ææ¶æ¯ã - 妿é ç½®æè¿æå°åï¼æ¶æ¯å°±ä¼è¢«åå°è¿æå°åãè¿æå°åå¯ä»¥ç¨ - <literal>setExpiryAddress()</literal>æ¹æ³æ¥è®¾å®ã</para> - <para>使ç¨<literal>sendMessagesToDeadLetterAddress()</literal>æ¹æ³å¯ä»¥å°æ¶æ¯åéå°æ»ä¿¡å°åã - å®è¿ååéå°æ»ä¿¡å°åæ¶æ¯çæ°éãå¦ææ²¡æè®¾å®æ»ä¿¡å°åï¼é£ä¹æ¶æ¯ä¼è¢«ä¸¢å¼ãä½¿ç¨ - <literal>setDeadLetterAddress()</literal>æ¹æ³å¯ä»¥è®¾å®éåçæ»ä¿¡å°åã</para> - <para><literal>moveMessages()</literal>æ¹æ³å°æ¶æ¯ä»ä¸ä¸ªéåç§»å¨å°å¦ä¸ä¸ªéåã</para> - </listitem> - <listitem> - <para>å表ä¸å 餿¶æ¯</para> - <para>使ç¨<literal>listMessages()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªéåä¸çæææ¶æ¯ãå®è¿åçæ¯ä¸ä¸ª - Mapçæ°ç»ãæ¯ä¸ä¸ªMap对åºä¸ä¸ªæ¶æ¯ã</para> - <para>使ç¨<literal>removeMessages()</literal>æ¹æ³å¯ä»¥ä»éåä¸å 餿¶æ¯ã妿另çåæ°æ¯æ¶æ¯IDï¼ - è¿åçæ¯ä¸ä¸ªå¸å°å¸¸æ¯ï¼å¦æå¸¦çåæ°æ¯ä¸ä¸ªè¿æ»¤å¨ï¼åè¿åå é¤çæ¶æ¯æ°ã带æè¿æ»¤å¨åæ°ç<literal - >removeMessages()</literal>æ¹æ³åªå é¤è¿æ»¤å¨éæ©çæ¶æ¯ã妿äºåæ°æ¯ä¸ä¸ªç©ºå符串ï¼é£ä¹å° - å 餿æçæ¶æ¯ã</para> - </listitem> - <listitem> - <para>æ¶æ¯è®¡æ°</para> - <para>使ç¨<literal>getMessageCount()</literal>æ¹æ³å¯ä»¥å¾å°éåä¸çæ¶æ¯æ°ãå¦å¤ï¼æ¹æ³ - <literal>countMessages()</literal>å¯ä»¥å¾å°éå䏿æä¸<emphasis>è¿æ»¤å¨</emphasis>ç¸å¹é çæ¶æ¯æ°ã</para> - </listitem> - <listitem> - <para>ä¿®æ¹æ¶æ¯çä¼å 级</para> - <para>æ¶æ¯çä¼å 级å¯ä»¥ç¨<literal>changeMessagesPriority()</literal>æ¹æ³ä¿®æ¹ã妿æ¯å¸¦ä¸ä¸ªæ¶ - æ¯IDåæ°ï¼å®è¿åçæ¯ä¸ä¸ªå¸å°å¸¸éï¼å¦ææ¯å¸¦ä¸ä¸ªè¿æ»¤å¨åæ°ï¼åå®è¿åçæ¯ä¼å çº§æ´æ°äºçæ¶æ¯æ°ã</para> - </listitem> - <listitem> - <para>æ¶æ¯è®¡æ°å¨</para> - <para><literal>listMessageCounter()</literal>æ¹æ³å<literal >listMessageCounterHistory()</literal> - æ¹æ³å¯ä»¥ç¨æ¥ååºéåä¸çæææ¶æ¯è®¡æ°å¨ãï¼åè§ <xref - linkend="management.message-counters"/>ï¼ã</para> - </listitem> - <listitem> - <para>è·åéåç屿§</para> - <para><literal>JMSQueueControl</literal>ç±»å¯ä»¥ç¨æ¥è·åJMSéåçè®¾ç½®åæ°ï¼ä¾å¦æ¹æ³<literal>isTemporary()</literal> - å¯ä»¥å¤æé忝å¦ä¸ºä¸´æ¶çï¼æ¹æ³<literal>isDurable()</literal>å¯ä»¥å¤æé忝å¦ä¸ºæä¹ çççï¼ã</para> - </listitem> - <listitem> - <para>éåçæå䏿¢å¤</para> - <para><literal>JMSQueueControl</literal>å¯ä»¥æåä¸ä¸ªéåææ¢å¤ä¸ä¸ªéåã - 妿ä¸ä¸ªéå被æåï¼å®è½ç¶å¯ä»¥ç»§ç»æ¥æ¶æ¶æ¯ä½æ¯ä¸ä¼ éæ¶æ¯ï¼ - å½è¢«æ¢å¤æ¶ï¼éååä¼å¼å§ä¼ éæ¶æ¯ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>JMSè¯é¢ï¼Topicï¼ç管ç</title> - <para>JMSè¯é¢çç®¡çæ¯éè¿<literal>TopicControl</literal>ç±»ï¼ - the ObjectName <literal>org.apache.activemq:module=JMS,type=Topic,name="<è¯é¢å>"</literal> - æèµæºå <literal>jms.topic.<è¯é¢å></literal>ï¼ã</para> - <itemizedlist> - <listitem> - <para>订é åæ¶æ¯çå表</para> - <para><literal>listAllSubscriptions()</literal>ã<literal - >listDurableSubscriptions()</literal>ã <literal - >listNonDurableSubscriptions()</literal>æ¹æ³å¯ä»¥ååºè¯é¢çä¸å订é ã - è¿äºæ¹æ³é½è¿å<literal>Object</literal>æ°ç»ï¼è¡¨ç¤ºè®¢é çç»èï¼å¦è®¢é åï¼ - 客æ·IDï¼æä¹ æ§ï¼æ¶æ¯è®¡æ°çï¼ãç¨<literal - >listMessagesForSubscription()</literal>æ¹æ³å¯ä»¥ååºä¸ä¸ªè®¢é ä¸çJMSæ¶æ¯ã</para> - </listitem> - <listitem> - <para>å é¤è®¢é </para> - <para>æä¹ æ§è®¢é å¯ä»¥ä½¿ç¨<literal>dropDurableSubscription()</literal>æ¹æ³æ¥å é¤ã</para> - </listitem> - <listitem> - <para>è®¢é æ¶æ¯è®¡æ°</para> - <para><literal>countMessagesForSubscription()</literal>æ¹æ³å¯ä»¥å¾å°ä¸ä¸ªè®¢é ä¸é¢æææ - çæ¶æ¯æ°ï¼è¿å¯å¸¦ä¸ä¸ªæ¶æ¯éæ©å¨æ¥å¾åºæå¤å°æ¶æ¯ä¸ä¹å¹é ï¼ã</para> - </listitem> - </itemizedlist> - </section> - </section> - </section> - <section id="management.jmx"> - <title>使ç¨JMX</title> - <para>ActiveMQæä¾äº<ulink - url="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/" - >JMX</ulink>ã</para> - <para>ActiveMQéè¿MBeançæ¥å£æ´é²å ¶JMX管çæä½ãå®å°èªå·±çèµæºæ³¨åå°<literal>org.apache.activemq</literal>åã</para> - <para>æ¯å¦ï¼ç¨æ¥ç®¡çä¸ä¸ªå为<literal>exampleQueue</literal>JMSéåç<literal>ObjectName</literal>æ¯ï¼</para> - <programlisting> - org.apache.activemq:module=JMS,type=Queue,name="exampleQueue" - </programlisting> - <para>MBean为ï¼</para> - <programlisting> - org.apache.activemq.api.jms.management.JMSQueueControl - </programlisting> - <para>MBeanç<literal>ObjectName</literal>ç¨ <literal - >org.apache.activemq.api.core.management.ObjectNameBuilder</literal>æ¥äº§çåºæ¥çãä½ ä¹å¯ä»¥ä½¿ç¨<literal - >jconsole</literal>æ¥æ¥æ¾ä½ æ³è¦çMBeanç<literal>ObjectName</literal>ã</para> - <para>使ç¨JMXæ¥ç®¡çActiveMQä¸ç¨JMX管çå ¶å®Javaåºç¨ç¨åºæ²¡æä»ä¹ä¸åãä½ å¯ä»¥ä½¿ç¨åå°æè å建MBean代ççæ¹æ³ã</para> - <section id="management.jmx.configuration"> - <title>é ç½®JMX</title> - <para>é»è®¤æ åµä¸ActiveMQçJMXæ¯æå¼çãå°<literal - >activemq-configuration.xml</literal>æä»¶ä¸ç<literal - >jmx-management-enabled</literal>设置为<literal>false</literal>å°±å¯ä»¥å ³éJMXï¼</para> - <programlisting> -<!-- false to disable JMX management for ActiveMQ --> -<jmx-management-enabled>false</jmx-management-enabled> - </programlisting> - <para>妿JMXåè½æ¯æå¼çï¼å使ç¨<literal>jconsole</literal>å¯ä»¥ç®¡çæ¬å°çActiveMQã</para> - <note> - <para>åºäºå®å ¨èèï¼é»è®¤æ åµä¸JMXè¿ç¨è¿æ¥æ¯å ³éçãåè§<ulink url="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#remote" - >Java管çæå</ulink>æ¥é ç½®æå¡å¨çè¿ç¨ç®¡çï¼ç³»ç»åéå¿ é¡»å¨<literal>run.sh</literal>æ<literal>run.bat</literal>ä¸å®ä¹ï¼ã</para> - </note> - <para>ActiveMQé»è®¤ä½¿ç¨JMXåå"org.apache.activemq"ã妿è¦ç¨ä¸ä¸ªMBeanServer管çå¤ä¸ªActiveMQæå¡å¨ï¼å¯ä»¥å°æ¯ä¸ªActiveMQ - æå¡å¨é ç½®æä¸åçJMXåãæ¹æ³å°±æ¯å¨<literal>activemq-configuration.xml</literal>æä»¶ä¸è®¾ç½®<literal>jmx-domain</literal>ï¼</para> - <programlisting> -<!-- use a specific JMX domain for ActiveMQ MBeans --> -<jmx-domain>my.org.apache.activemq</jmx-domain> - </programlisting> - <section> - <title>MBeanServerçé ç½®</title> - <para>ActiveMQå¨ç¬ç«è¿è¡æ¶ä½¿ç¨Javaèææºç<literal - >Platform MBeanServer</literal>æ¥æ³¨åå ¶MBeanãè¿å¨JBoss Microcontainerï¼å¾®å®¹å¨ï¼çbean - æä»¶ä¸è¿è¡é ç½®ï¼åè§<xref linkend="server.microcontainer.configuration"/>ï¼ï¼</para> - <programlisting><!-- MBeanServer --> -<bean name="MBeanServer" class="javax.management.MBeanServer"> - <constructor factoryClass="java.lang.management.ManagementFactory" - factoryMethod="getPlatformMBeanServer" /> -</bean> - </programlisting> - <para>å½ä¸AS 5ï¼éæè¿è¡æ¶ï¼å®ä½¿ç¨åºç¨æå¡å¨èªå·±çMBeanæå¡ï¼è¿æ ·å°±å¯ä»¥ä½¿ç¨å®çjmx-consoleï¼</para> - <programlisting><!-- MBeanServer --> -<bean name="MBeanServer" class="javax.management.MBeanServer"> - <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator" - factoryMethod="locateJBoss" /> -</bean> - </programlisting> - </section> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.jmx"/>ï¼è¿ä¸ªä¾åå±ç¤ºäºå¦ä½ä½¿ç¨è¿ç¨JMXè¿æ¥æMBeanä»£çæ¥ç®¡çActiveMQã</para> - </section> - </section> - <section> - <title>ä½¿ç¨æ ¸å¿æ¥å£</title> - <para>æ ¸å¿ç®¡çæ¥å£çè°ç¨å®é 䏿¯åä¸ä¸ªç¹æ®çå°ååéæ ¸å¿æ¶æ¯ãè¿ä¸ªç¹æ®å°å称为<emphasis>管çå°å</emphasis>ã</para> - <para><emphasis>ç®¡çæ¶æ¯</emphasis>æ¯ä¸äºå®ä¹äºä¸äºåºå®å±æ§çæ®éæ ¸å¿æ¶æ¯ãæå¡å¨éè¿è¿äºå±æ§æ¥è§£é管çæä½ï¼</para> - <itemizedlist> - <listitem> - <para>管çèµæºçåç§°</para> - </listitem> - <listitem> - <para>管çæä½çåç§°</para> - </listitem> - <listitem> - <para>管çæä½çåæ°</para> - </listitem> - </itemizedlist> - <para>å½ä¸ä¸ªç®¡çæ¶æ¯åéå°ç®¡çå°åæ¶ï¼ActiveMQæå¡å¨å°ä»ä¸æååºç¸åºçä¿¡æ¯ï¼åè°ç¨ç¸åºç管çèµæºçæ¹æ³ï¼ä¹åå - è¯¥ç®¡çæ¶æ¯çåçå°åï¼reply-to addressï¼ç±<literal>ClientMessageImpl.REPLYTO_HEADER_NAME - </literal>å®ä¹ï¼åéä¸ä¸ª<emphasis>管çåç</emphasis>ã</para> - <para>ä¸ä¸ª<literal>ClientConsumer</literal>ç¨æ¥æ¥æ¶ç®¡çåçå¹¶æååºå ¶ä¸çæä½ççµæï¼å¦ææçè¯ï¼ã - èèå°å¯ç§»æ¤æ§ï¼è¿åççµæéç¨çæ¯æ ¼å¼çå符串ï¼è没æéç¨Javaçåºååææ¯ - ï¼<literal>org.apache.activemq.api.core.management.ManagementHelper</literal>å¯ä»¥ç¨æ¥å°JSONå符串 - è½¬æ¢æJava对象ï¼ã</para> - <para>使ç¨ä»¥ä¸æ¥éª¤å¯ä»¥ç®åä½¿ç¨æ ¸å¿æ¶æ¯è°ç¨ç®¡çæä½ï¼</para> - <orderedlist> - <listitem> - <para>å建ä¸ä¸ª<literal>ClientRequestor</literal>对象ï¼ç¨æ¥åéç®¡çæ¶æ¯å¹¶æ¥æ¶åçã</para> - </listitem> - <listitem> - <para>å建ä¸ä¸ª<literal>ClientMessage</literal>ã</para> - </listitem> - <listitem> - <para>使ç¨<literal - >org.apache.activemq.api.core.management.ManagementHelper</literal>ç±»æ¥å¸®å©è®¾ç½®æ¶æ¯ç管çåæ°ã</para> - </listitem> - <listitem> - <para>éè¿<literal>ClientRequestor</literal>å°æ¶æ¯åé</para> - </listitem> - <listitem> - <para>ä½¿ç¨ <literal - >org.apache.activemq.api.core.management.ManagementHelper</literal>ç±»ä»ç®¡çæä½çµæä¸æåè¿åå¼ã</para> - </listitem> - </orderedlist> - <para>ä¾å¦ï¼è¦å¾å°æ ¸å¿éå<literal>exampleQueue</literal>䏿¶æ¯çæ°éï¼</para> - <programlisting> - ClientSession session = ... - ClientRequestor requestor = new ClientRequestor(session, "jms.queue.activemq.management"); - ClientMessage message = session.createMessage(false); - ManagementHelper.putAttribute(message, "core.queue.exampleQueue", "messageCount"); - ClientMessage reply = requestor.request(m); - int count = (Integer) ManagementHelper.getResult(reply); - System.out.println("There are " + count + " messages in exampleQueue"); - </programlisting> - <para>管çæä½ååå ¶åæ°å¿ é¡»å<literal>management</literal>å ä¸å®ä¹çJavaæ¥å£ä¸è´ã</para> - <para>èµæºçåç§°æ¯ç¨<literal>org.apache.activemq.api.core.management.ResourceNames</literal>ç±»æ¥çæçï¼ - å½åé½é常ç´è§ï¼å¦æ ¸å¿éå<literal>exampleQueue</literal>çå称为<literal>core.queue.exampleQueue</literal>ï¼ - JMS Topic <literal>exampleTopic</literal>çå称为<literal>jms.topic.exampleTopic</literal>ï¼ççï¼ã -</para> - <section id="management.core.configuration"> - <title>é ç½®æ ¸å¿ç®¡ç</title> - <para>管çå°åçé ç½®å¨æä»¶<literal - >activemq-configuration.xml</literal>ä¸ï¼</para> - <programlisting> - <management-address>jms.queue.activemq.management</management-address> - </programlisting> - <para>å®çé»è®¤å°åæ¯<literal>jms.queue.activemq.management</literal> ï¼å°ååç¼å ä¸ - âjms.queueâæ¯ä¸ºäºæ¹ä¾¿JMS客æ·ç«¯ä¹å¯ä»¥åå®åéç®¡çæ¶æ¯ã</para> - <para>管çå°åéè¦ä¸ä¸ª<emphasis>ç¹æ®</emphasis>çç¨æ·æé - <literal>manage</literal>æ¥æ¥æ¶å¹¶å¤çç®¡çæ¶æ¯ãè¿ä¸ªæéä¹å¨activemq-configuration.xmlæä»¶ä¸é ç½®ï¼</para> - <programlisting> - <!-- users with the admin role will be allowed to manage --> - <!-- ActiveMQ using management messages --> - <security-setting match="jms.queue.activemq.management"> - <permission type="manage" roles="admin" /> - </security-setting> - </programlisting> - </section> - </section> - <section id="management.jms"> - <title>使ç¨JMSè¿è¡ç®¡ç</title> - <para>使ç¨JMS管çActiveMQä¸ä½¿ç¨æ ¸å¿API管çActiveMQååç¸ä¼¼ã</para> - <para>å ¶ä¸ä¸ä¸ªéè¦çä¸åæ¯JMSéè¦ä¸ä¸ªJMSé忥åéæ¶æ¯ï¼èæ ¸å¿æ¥å£ä½¿ç¨çæ¯ä¸ä¸ªå°åï¼ã</para> - <para><emphasis>管çéå</emphasis>æ¯ä¸ä¸ªç¹æ®çéåï¼å®éè¦å®¢æ·ç«¯ç´æ¥å®ä¾åï¼</para> - <programlisting> - Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management"); - </programlisting> - <para>å ¶ä½æ¥éª¤å®å ¨åä½¿ç¨æ ¸å¿æ¥å£ä¸æ ·ï¼åªæ¯ç¸åºç对象ä¸åï¼</para> - <orderedlist> - <listitem> - <para>å建ä¸ä¸ª<literal>QueueRequestor</literal>æ¥å管çå°ååéç®¡çæ¶æ¯å¹¶æ¥æ¶åçã</para> - </listitem> - <listitem> - <para>å建ä¸ä¸ª<literal>æ¶æ¯</literal></para> - </listitem> - <listitem> - <para>ä½¿ç¨ <literal>org.apache.activemq.api.jms.management.JMSManagementHelper</literal>ç±»åæ¶æ¯ä¸è®¾ç½®ç®¡çåæ°ã</para> - </listitem> - <listitem> - <para>å使ç¨<literal>QueueRequestor</literal>åéæ¶æ¯ã</para> - </listitem> - <listitem> - <para>使ç¨<literal>org.apache.activemq.api.jms.management.JMSManagementHelper</literal>æ¥ä»åç䏿åè¿åçµæã</para> - </listitem> - </orderedlist> - <para>ä¾å¦ï¼è¦å¾å°ä¸ä¸ªJMSéå<literal>exampleQueue</literal>䏿å¤å°æ¶æ¯ï¼</para> - <programlisting> - Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management"); - - QueueSession session = ... - QueueRequestor requestor = new QueueRequestor(session, managementQueue); - connection.start(); - Message message = session.createMessage(); - JMSManagementHelper.putAttribute(message, "jms.queue.exampleQueue", "messageCount"); - Message reply = requestor.request(message); - int count = (Integer)JMSManagementHelper.getResult(reply); - System.out.println("There are " + count + " messages in exampleQueue"); - </programlisting> - <section> - <title>é ç½®JMS管ç</title> - <para>JMS管ççé ç½®ä¸æ ¸å¿æ¥å£ç®¡ççé ç½®æ¥éª¤æ¯ä¸æ ·çï¼åè§<xref linkend="management.core.configuration"/>ï¼ã</para> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.management"/>ï¼å®å±ç¤ºäºå¦ä½ä½¿ç¨JMSæ¶æ¯æ¥ç®¡çActiveMQã</para> - </section> - </section> - - <section id="management.notifications"> - <title>管çéç¥</title> - <para>ActiveMQå¯ä»¥ålisteneråéåç§äºä»¶ç<emphasis>éç¥</emphasis>ï¼å¦èµæºçå建ï¼å®å ¨ç ´åçï¼ã</para> - <para>æä¸ç§æ¹å¼æ¥æ¶ç®¡çéç¥</para> - <itemizedlist> - <listitem> - <para>JMXéç¥</para> - </listitem> - <listitem> - <para>æ ¸å¿æ¶æ¯</para> - </listitem> - <listitem> - <para>JMSæ¶æ¯</para> - </listitem> - </itemizedlist> - <section> - <title>JMXéç¥</title> - <para>å¦æè®¾ç½®äºJMXï¼åè§<xref linkend="management.jmx.configuration"/>ï¼ï¼å°±å¯ä»¥éè¿è®¢é ä»¥ä¸ - 两个MBeanæ¥è·å¾éç¥ï¼</para> - <itemizedlist> - <listitem> - <para><literal>org.apache.activemq:module=Core,type=Server</literal> å¯ä»¥è·å¾æå ³ - <emphasis>æ ¸å¿</emphasis>èµæºçéç¥</para> - </listitem> - <listitem> - <para><literal>org.apache.activemq:module=JMS,type=Server</literal>å¯ä»¥è·å¾æå ³ - <emphasis>JMS</emphasis>èµæºçéç¥</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>æ ¸å¿æ¶æ¯éç¥</title> - <para>ActiveMQå®ä¹äºä¸ä¸ªç¹æ®ç<emphasis>管çéç¥å°å</emphasis>ãæ ¸å¿éåç»å®å°è¯¥å°ååï¼å®¢æ· - 端就å¯ä»¥æ¥æ¶ä»¥æ ¸å¿æ¶æ¯å½¢å¼åéç管çä¿¡éç¥äºã</para> - <para>ä¸ä¸ªæ ¸å¿å®¢æ·ç«¯è¦æ³æ¥æ¶å°ç®¡çéç¥ï¼å®å¿ é¡»è¦å建ä¸ä¸ªéåå¹¶ç»å®å°è¿ä¸ªç®¡çéç¥å°åä¸ï¼ç¶åä»è¿ä¸ª - é忥æ¶éç¥ã</para> - <para>éç¥æ¶æ¯å°±æ¯æ®éçæ ¸å¿æ¶æ¯å ä¸ç¸å ³ç屿§ï¼å¦éç¥ç±»åï¼äºä»¶åçæ¶é´ï¼èµæºçï¼ã</para> - <para>ç±äºæ¯æ åçæ ¸å¿æ¶æ¯ï¼ä½¿ç¨éæ©å¨è¿è½å¤è¿æ»¤æä¸é¨åéç¥èåªæ¥æ¶æå ´è¶£çéç¥ã</para> - <section id="management.notifications.core.configuration"> - <title>é ç½®æ ¸å¿ç®¡çéç¥å°å</title> - <para>ç¨æ¥åé管çéç¥çå°å卿件ä¸<literal>activemq-configuration.xml</literal>é ç½®ï¼</para> - <programlisting> - <management-notification-address>activemq.notifications</management-notification-address> - </programlisting> - <para>é»è®¤çå°åæ¯<literal>activemq.notifications</literal>ã</para> - </section> - </section> - <section> - <title>JMSæ¶æ¯éç¥</title> - <para>ActiveMQè¿å¯ä»¥éè¿JMSæ¶æ¯çæ¹å¼åééç¥ã</para> - <para>è¿ç§æ¹å¼ä¸æ ¸å¿æ¶æ¯éç¥ç¸ä¼¼ï¼ä½æ¯æä¸ä¸ªéè¦çä¸åï¼JMSæ¶æ¯éè¦ä¸ä¸ªJMSçç®æ ï¼é常æ¯ä¸ä¸ªTopicï¼ã</para> - <para>è¦éè¿ä¸ä¸ªJMSç®æ æ¥æ¥æ¶ç®¡çéç¥ï¼å¿ 须尿å¡å¨ç管çéç¥å°åä¿®æ¹ä¸ºä»¥<literal>jms.queue</literal>å¼å¤´ï¼å¦ææ¯ä¸ä¸ª - JMSéåï¼æè <literal>jms.topic</literal>ï¼å¦ææ¯ä¸ä¸ªè¯é¢ï¼ï¼</para> - <programlisting> - <!-- éç¥å°ä»JMSè¯é¢ "notificationsTopic"䏿¥æ¶ --> - <management-notification-address>jms.topic.notificationsTopic</management-notification-address> - </programlisting> - <para>è¿ä¸ªéç¥è¯é¢ä¸æ¦è¢«å建ï¼å°±å¯ä»¥æ¥æ¶æ¶æ¯äºï¼æè 使ç¨<literal>MessageListener</literal>ï¼ï¼</para> - <programlisting> - Topic notificationsTopic = ActiveMQJMSClient.createTopic("notificationsTopic"); - - Session session = ... - MessageConsumer notificationConsumer = session.createConsumer(notificationsTopic); - notificationConsumer.setMessageListener(new MessageListener() - { - public void onMessage(Message notif) - { - System.out.println("------------------------"); - System.out.println("Received notification:"); - try - { - Enumeration propertyNames = notif.getPropertyNames(); - while (propertyNames.hasMoreElements()) - { - String propertyName = (String)propertyNames.nextElement(); - System.out.format(" %s: %s\n", propertyName, notif.getObjectProperty(propertyName)); - } - } - catch (JMSException e) - { - } - System.out.println("------------------------"); - } - }); - </programlisting> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.management-notifications"/>ãæ¬ä¾éç¨äºJMSç<literal> - MessageListener</literal>æ¹æ³ä»ActiveMQ - æå¡å¨æ¥æ¶ç®¡çéç¥ã</para> - </section> - </section> - <section id="management.message-counters"> - <title>æ¶æ¯è®¡æ°å¨</title> - <para>ActiveMQä¿åçéåçå岿°æ®ï¼èæ¶æ¯è®¡æ°å¨å¯ä»¥ä»æå¡å¨ä¸è·åè¿äºä¿¡æ¯ã</para> - <para>è¿äºä¿¡æ¯å¯ä»¥æ¾ç¤ºéåçä¸äº<emphasis>è¶å¿</emphasis>ãä¾å¦ï¼ä½¿ç¨ç®¡çæ¥å£ä½ å¯ä»¥å®ææ¥æ¥è¯¢ä¸ä¸ªéå - çæ¶æ¯æ°éãä½è¿ä¸ªæ°éä¸è¶³ä»¥è¯´æè¿ä¸ªé忝å¦å¨å·¥ä½ï¼ï¼ä¹è®¸è¿ä¸ªéåæ¢æ²¡æåéè 乿²¡ææ¥æ¶è ï¼ä¹è®¸è¿ä¸ªéå - å¨ä¸åå°åé䏿¥æ¶ï¼ä½æ¯åéæ¶æ¯çéåº¦ä¸æ¥æ¶çé度ç¸çã䏤屿 åµä¸é½ä¼é ææ¶æ¯æ°å¨éåä¸ä¸åï¼ä½å®é éå - çç¶æç¡®å®å ¨ä¸ä¸æ ·ã</para> - <para>æ¶æ¯è®¡æ°å¨å¯ä»¥æä¾éåçæ´å¤çä¿¡æ¯ï¼</para> - <itemizedlist> - <listitem> - <para><literal>count</literal></para> - <para>仿å¡å¨å¯å¨æ¶å å°éåä¸ç<emphasis>æ»</emphasis>æ¶æ¯æ°ã</para> - </listitem> - <listitem> - <para><literal>countDelta</literal></para> - <para>èª<emphasis>䏿¬¡æ¶æ¯è®¡æ°å¨æ´æ°</emphasis>åå å ¥å°éåçæ¶æ¯æ°ã</para> - </listitem> - <listitem> - <para><literal>depth</literal></para> - <para>éå<emphasis>å½å</emphasis>çæ¶æ¯æ°ã</para> - </listitem> - <listitem> - <para><literal>depthDelta</literal></para> - <para>èª<emphasis>䏿¬¡æ¶æ¯è®¡æ°å¨æ´æ°</emphasis>å被å å ¥ï¼å é¤çæ¶æ¯<emphasis>æ»æ°</emphasis>ã - ä¾å¦ï¼å¦æ<literal>depthDelta</literal>æ¯<literal>-10</literal>ï¼å°±æè°çæ10ä¸ªæ¶æ¯ä» - éåä¸å é¤äºï¼æå¯è½æ¯2ä¸ªæ¶æ¯å å ¥äºä½æ12ä¸ªæ¶æ¯å é¤äºï¼ã</para> - </listitem> - <listitem> - <para><literal>lastAddTimestamp</literal></para> - <para>æåä¸ä¸ªæ¶æ¯å å ¥å°éåçæ¶é´æ³ã</para> - </listitem> - <listitem> - <para><literal>udpateTimestamp</literal></para> - <para>æå䏿¬¡æ¶æ¯è®¡æ°å¨æ´æ°çæ¶é´æ³ã</para> - </listitem> - </itemizedlist> - <section id="configuring.message.counters"> - <title>é ç½®æ¶æ¯è®¡æ°å¨</title> - <para>é»è®¤çæ¶æ¯è®¡æ°å¨æ¯å ³éçï¼å 为å®éè¦å ç¨ä¸äºå åã</para> - <para>è¦æå¼æ¶æ¯è®¡æ°å¨ï¼ç¼è¾<literal>activemq-configuration.xml</literal>æä»¶å°å ¶è®¾ä¸º<literal>true</literal>ï¼</para> - <programlisting> -<message-counter-enabled>true</message-counter-enabled> - </programlisting> - <para>æ¶æ¯è®¡æ°å¨ä¼ä¿åéåçå岿°æ®ï¼é»è®¤æ¯10天ï¼ãå®ä»¥ä¸å®é´éï¼é»è®¤10ç§ä¸æ¬¡ï¼å¯¹æ¯ä¸ªéåè¿è¡æ«æã - å¦ææ¶æ¯è®¡æ°å¨æå¼ï¼è¿äºåæ°å¯ä»¥å¨<literal>activemq-configuration.xml</literal>æä»¶ä¸è¿è¡è°æ´ï¼</para> - <programlisting> -<!-- keep history for a week --> -<message-counter-max-day-history>7</message-counter-max-day-history> -<!-- sample the queues every minute (60000ms) --> -<message-counter-sample-period>60000</message-counter-sample-period> - </programlisting> - <para>使ç¨ç®¡çæ¥å£å¯ä»¥è·å¾æ¶æ¯è®¡æ°å¨ãä¾å¦è¦ä½¿ç¨JMXå¾å°ä¸ä¸ªJMSéåçæ¶æ¯è®¡æ°å¨ï¼</para> - <programlisting> -// retrieve a connection to ActiveMQ's MBeanServer -MBeanServerConnection mbsc = ... -JMSQueueControlMBean queueControl = (JMSQueueControl)MBeanServerInvocationHandler.newProxyInstance(mbsc, - on, - JMSQueueControl.class, - false); -// message counters are retrieved as a JSON String -String counters = queueControl.listMessageCounter(); -// use the MessageCounterInfo helper class to manipulate message counters more easily -MessageCounterInfo messageCounter = MessageCounterInfo.fromJSON(counters); -System.out.format("%s message(s) in the queue (since last sample: %s)\n", - counter.getDepth(), - counter.getDepthDelta()); - </programlisting> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.message-counters"/>ãè¿ä¸ªä¾åä½¿ç¨æ¶æ¯è®¡æ°å¨æ¥è·å¾ä¸ä¸ªJMSéåçç¸å ³æ°æ®ã</para> - </section> - </section> - <section> - <title>éè¿JBossåºç¨æå¡å¨çAdmin Consoleæ¥ç®¡çActiveMQçèµæº</title> - <para>éè¿JBossåºç¨æå¡å¨çAdmin Consoleå¯ä»¥å建ä¸é ç½®ActiveMQçåç§èµæºã</para> - <para>Admin Consoleå è®¸ä½ å建åç§ç®æ ï¼JMSè¯é¢ä¸éåï¼åJMSçè¿æ¥å·¥åã</para> - <para>ç»å½admin consoleåä½ å¨å·¦è¾¹çæ ä¸ä¼çå°JMS Managerèç¹ãææActiveMQçèµæºé½å±äºè¿ä¸ªèç¹ãå¨å®çä¸é¢æJMS Queuesã - Topics以åConnection Factoriesãåå«ç¹å»å®ä»¬å°ä¼çå°ç¸åºçèµæºãä¸é¢å°è§£éå¦ä½å建并é ç½®å®ä»¬ã</para> - <section> - <title>JMSéå</title> - <para>è¦å建ä¸ä¸ªæ°çJMSéåï¼ç¹å»JMS Queueså°ååºå½åçéåãå¨å³è¾¹ççªå£ä¸æä¸ä¸ªâadd a new resourceâæé®ï¼ç¹å»è¿ä¸ªæé® - å¹¶éæ©é»è®¤ï¼JMS éåï¼æ¨¡æ¿ãç¹å»âcontinueâãå¡«å ¥ç¸åºçéååç§°ä¸JNDIåç§°ãå ¶å®çåæ°å¼é½ç»åºäºåççé»è®¤å¼ï¼é常æ åµä¸ - ä¸ç¨æ¹å¨å®ä»¬ãå¨åºé¨å¯ä»¥é ç½®å®å ¨è§è²ï¼å¦æä½ 䏿ä¾å°ä½¿ç¨é»è®¤çé ç½®ãå½è¿ä¸ªéåæåå建åè¿äºé ç½®å°ä¼æ¾ç¤ºåºæ¥ãé¤äºéåçåå - åJNDIååå¤ï¼å ¶å®åæ°é½å¯ä»¥å¨contigurationæ ç¾é¡µä¸è¿è¡ä¿®æ¹ãä¸é¢å°±å¯¹å®ä»¬åå«è§£éã</para> - <para>ç¹å» configurationåä½ å°çå°å¦ä¸æ¾ç¤ºï¼</para> - <para> - <graphic fileref="images/console1.png" align="center"/> - </para> - <para>nameåJNDI nameæ¯ä¸è½æ¹åçãå¦æä½ æ³æ¹åå®ä»¬ï¼å¿ 须鿰å建éåãå ¶å®é项æ¯å ³äºå°å设置ä¸å®å ¨è®¾ç½®ã - é»è®¤çå°å设置æ¥èªäºæå¡å¨çé ç½®ãå¦æä½ éè¿consoleä¿®æ¹æå建ä¸ä¸ªéåï¼é£ä¹å°±ä¼å¢å 䏿¡æ°çå°å设置ãæå ³ - å°å设置ç宿´è¯´æåè§<xref linkend="queue-attributes.address-settings"/>ã</para> - <para>è¦å é¤ä¸ä¸ªéåï¼åªè¦ç¹å»éååç§°æè¾¹çâdeleteâæé®å³å¯ã䏿¤éåç¸å ³çä»»ä½å°å设置æå®å ¨è®¾ç½®ä¹å°è¢«å é¤ã</para> - <para>é ç½®çæåä¸é¨åæ¯å®å ¨è§è²ã妿å¨åå»ºæ¶æ²¡æç»åºåé»è®¤çå®å ¨è®¾ç½®å°ä¼æ¾ç¤ºå¨å±å¹ä¸ã妿å®ä»¬è¢«ä¿®æ¹å¹¶æ´æ°åéåçå®å ¨è®¾ç½® - å°è¢«æ´æ°ãå ³äºå®å ¨è®¾ç½®åè§<xref linkend="security"/>ã </para> - <para>å¨consoleä¸è¿æä¸ä¸ªmetricsæ ç¾é¡µï¼å®æ¾ç¤ºäºéåçå项ç»è®¡æ°æ®ï¼å¦æ¶æ¯è®¡æ°ï¼æ¥æ¶è 计æ°çã</para> - <para>å¨controlæ ç¾é¡µä¸å¯ä»¥å¯¹éåè¿è¡åç§æä½ï¼æ¯å¦å¯å¨å忢éåï¼å¯¹éåä¸çæ¶æ¯è¿è¡å表ï¼ç§»å¨ï¼åä¸ºè¿æï¼å é¤çã - è¦è¿è¡ä¸é¡¹æä½åªè¦ç¹å»ç¸åºçæé®ï¼ç¶åå¨åºç°çæç¤ºä¸è¾å ¥ç¸åºçåæ°ï¼åç¹å»okæé®å³å¯ãæä½ççµæä¼æ¾ç¤ºå¨å±å¹çåºé¨ã</para> - </section> - <section> - <title>JMSè¯é¢</title> - <para>å建åé ç½®JMSè¯é¢å ä¹ä¸éåçæä½æ¯ä¸æ ·çãå¯ä¸ä¸åçæ¯è¿äºé ç½®åºç¨äºä¸ä¸ªä»£è¡¨è®¢é çéåã</para> - </section> - <section> - <title>JMSè¿æ¥å·¥å</title> - <para>JMSè¿æ¥å·¥åçå建çæä½è¿ç¨ä¸ä¸è¿°éåæè¯é¢çæä½ä¸è´ï¼åªæ¯é ç½®å ·ä½çåæ°ä¸åèå·²ãå ³äºè¿æ¥å·¥åçåæ°åè§é 置索å¼ã</para> - </section> - </section> -</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/d18c42b0/docs/user-manual/zh/master.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/master.xml b/docs/user-manual/zh/master.xml deleted file mode 100644 index 5468134..0000000 --- a/docs/user-manual/zh/master.xml +++ /dev/null @@ -1,128 +0,0 @@ -<?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. --> -<!-- ============================================================================= --> - -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN" - "../../../lib/docbook-support/support/docbook-dtd/docbookx.dtd" [ - <!ENTITY appserver-integration SYSTEM "appserver-integration.xml"> - <!ENTITY architecture SYSTEM "architecture.xml"> - <!ENTITY client-reconnection SYSTEM "client-reconnection.xml"> - <!ENTITY client-classpath SYSTEM "client-classpath.xml"> - <!ENTITY clusters SYSTEM "clusters.xml"> - <!ENTITY configuration-index SYSTEM "configuration-index.xml"> - <!ENTITY configuring-transports SYSTEM "configuring-transports.xml"> - <!ENTITY connection-ttl SYSTEM "connection-ttl.xml"> - <!ENTITY core-bridges SYSTEM "core-bridges.xml"> - <!ENTITY diverts SYSTEM "diverts.xml"> - <!ENTITY duplicate-detection SYSTEM "duplicate-detection.xml"> - <!ENTITY embedding-activemq SYSTEM "embedding-activemq.xml"> - <!ENTITY examples SYSTEM "examples.xml"> - <!ENTITY filter-expressions SYSTEM "filter-expressions.xml"> - <!ENTITY flow-control SYSTEM "flow-control.xml"> - <!ENTITY ha SYSTEM "ha.xml"> - <!ENTITY transaction-config SYSTEM "transaction-config.xml"> - <!ENTITY intercepting-operations SYSTEM "intercepting-operations.xml"> - <!ENTITY interoperability SYSTEM "interoperability.xml"> - <!ENTITY jms-bridge SYSTEM "jms-bridge.xml"> - <!ENTITY jms-core-mapping SYSTEM "jms-core-mapping.xml"> - <!ENTITY large-messages SYSTEM "large-messages.xml"> - <!ENTITY last-value-queues SYSTEM "last-value-queues.xml"> - <!ENTITY logging SYSTEM "logging.xml"> - <!ENTITY management SYSTEM "management.xml"> - <!ENTITY message-expiry SYSTEM "message-expiry.xml"> - <!ENTITY message-grouping SYSTEM "message-grouping.xml"> - <!ENTITY messaging-concepts SYSTEM "messaging-concepts.xml"> - <!ENTITY notice SYSTEM "notice.xml"> - <!ENTITY paging SYSTEM "paging.xml"> - <!ENTITY perf-tuning SYSTEM "perf-tuning.xml"> - <!ENTITY persistence SYSTEM "persistence.xml"> - <!ENTITY pre-acknowledge SYSTEM "pre-acknowledge.xml"> - <!ENTITY preface SYSTEM "preface.xml"> - <!ENTITY project-info SYSTEM "project-info.xml"> - <!ENTITY queue-attributes SYSTEM "queue-attributes.xml"> - <!ENTITY scheduled-messages SYSTEM "scheduled-messages.xml"> - <!ENTITY security SYSTEM "security.xml"> - <!ENTITY send-guarantees SYSTEM "send-guarantees.xml"> - <!ENTITY thread-pooling SYSTEM "thread-pooling.xml"> - <!ENTITY undelivered-messages SYSTEM "undelivered-messages.xml"> - <!ENTITY using-core SYSTEM "using-core.xml"> - <!ENTITY using-jms SYSTEM "using-jms.xml"> - <!ENTITY using-server SYSTEM "using-server.xml"> - <!ENTITY wildcard-syntax SYSTEM "wildcard-syntax.xml"> - <!ENTITY wildcard-routing SYSTEM "wildcard-routing.xml"> - <!ENTITY libaio SYSTEM "libaio.xml"> - ]> -<book lang="en"> - <bookinfo> - <title>ActiveMQ 2.1ç¨æ·æå</title> - <subtitle>Putting the buzz in messaging</subtitle> - </bookinfo> - - <toc></toc> - - ¬ice; - &preface; - &project-info; - &messaging-concepts; - &architecture; - &using-server; - &using-jms; - &using-core; - &jms-core-mapping; - &client-classpath; - &examples; - &wildcard-routing; - &wildcard-syntax; - &filter-expressions; - &persistence; - &configuring-transports; - &connection-ttl; - &transaction-config; - &flow-control; - &send-guarantees; - &undelivered-messages; - &message-expiry; - &large-messages; - &paging; - &queue-attributes; - &scheduled-messages; - &last-value-queues; - &message-grouping; - &pre-acknowledge; - &management; - &security; - &appserver-integration; - &jms-bridge; - &client-reconnection; - &diverts; - &core-bridges; - &duplicate-detection; - &clusters; - &ha; - &libaio; - &thread-pooling; - &logging; - &embedding-activemq; - &intercepting-operations; - &interoperability; - &perf-tuning; - &configuration-index; - - -</book> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/d18c42b0/docs/user-manual/zh/message-expiry.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/message-expiry.xml b/docs/user-manual/zh/message-expiry.xml deleted file mode 100644 index 68e8734..0000000 --- a/docs/user-manual/zh/message-expiry.xml +++ /dev/null @@ -1,81 +0,0 @@ -<?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="message-expiry"> - <title>è¿æçæ¶æ¯</title> - <para>æ¶æ¯å¨åéæ¶æä¸ä¸ªå¯éç<emphasis>çåæ¶é´</emphasis>屿§ã</para> - <para>妿ä¸ä¸ªæ¶æ¯å·²ç»è¶ è¿äºå®ççåæ¶é´ï¼ActiveMQä¸åå°å®ä¼ éç»ä»»ä½æ¥æ¶è ã - æå¡å¨ä¼å°è¿æçæ¶æ¯æå¼ã</para> - <para>ActiveMQçå°åå¯ä»¥é ç½®ä¸ä¸ªè¿æå°åï¼å½æ¶æ¯è¿ææ¶ï¼å®ä»¬è¢«ä»éåä¸å é¤å¹¶è¢«è½¬ç§»å°è¿æå°åä¸ã - å¤ä¸ªä¸åçéåå¯ä»¥ç»å®å°ä¸ä¸ªè¿æå°åä¸ãè¿äºè¿æçæ¶æ¯è¿åå¯ä»¥æ¥æ¶ä¸æ¥ä»¥ä¾åæç¨ã</para> - <section> - <title>è¿ææ¶æ¯çé ç½®</title> - <para>å¦æä½¿ç¨ActiveMQæ ¸å¿APIï¼å¯ä»¥ç´æ¥å¨æ¶æ¯ä¸è®¾ç½®è¿ææ¶é´ï¼</para> - <programlisting> -// message will expire in 5000ms from now -message.setExpiration(System.currentTimeMillis() + 5000); - </programlisting> - <para>JMSçMessageProducerå¯ä»¥è®¾ç½®ä¸ä¸ªTimeToLiveæ¥æ§å¶å ¶åéçæ¶æ¯ï¼</para> - <programlisting> -// messages sent by this producer will be retained for 5s (5000ms) before expiration -producer.setTimeToLive(5000); - </programlisting> - <para>ä»è¿æå°å䏿¥æ¶ä¸æ¥çæ¶æ¯æä»¥ä¸å±æ§ï¼</para> - <itemizedlist> - <listitem> - <para><literal>_HQ_ORIG_ADDRESS</literal></para> - <para>è¿æ¯ä¸ä¸ªå符串ï¼å®æ¯è¯¥æ¶æ¯ç<emphasis>åå§å°å</emphasis>ã</para> - </listitem> - <listitem> - <para><literal>_HQ_ACTUAL_EXPIRY</literal></para> - <para>ä¸ä¸ªé¿æ´åéï¼ä»£è¡¨æ¤æ¶æ¯<emphasis>å®é è¿ææ¶é´</emphasis>ã</para> - </listitem> - </itemizedlist> - </section> - <section id="message-expiry.configuring"> - <title>é ç½®è¿æå°å</title> - <para>è¿æå°åé ç½®å¨å°å设置ï¼address-settingï¼ä¸ï¼</para> - <programlisting> -<!-- expired messages in exampleQueue will be sent to the expiry address expiryQueue --> -<address-setting match="jms.queue.exampleQueue"> - <expiry-address>jms.queue.expiryQueue</expiry-address> -</address-setting> - </programlisting> - <para>å¦ææ²¡æå®ä¹è¿æå°åï¼å½ä¸ä¸ªæ¶æ¯è¿ææ¶ï¼å®å°è¢«å é¤ãé ç½®è¿æå°åæ¶å¯ä»¥ä½¿ç¨éé 符 - æ¥ç»ä¸ç»å°åé ç½®è¿æå°åãï¼åè§<xref linkend="wildcard-syntax"/>ï¼ã</para> - </section> - <section id="configuring.expiry.reaper"> - <title>é ç½®è¿æåæ¶çº¿ç¨</title> - <para>ActiveMQæä¸ä¸ªåæ¶çº¿ç¨å®æå°æ£æ¥éåä¸çæ¶æ¯ï¼ç®çæ¯åç°æ¯å¦ææ¶æ¯è¿æã</para> - <para>å¨<literal>activemq-configuration.xml</literal>æä»¶ä¸å¯ä»¥å¯¹åæ¶çº¿ç¨è¿è¡é ç½®ï¼åæ°å¦ä¸ï¼</para> - <itemizedlist> - <listitem> - <para><literal>message-expiry-scan-period</literal></para> - <para>è¿ææ¶æ¯çæ«æé´éï¼å使¯«ç§ï¼é»è®¤ä¸º30000msï¼ãå¦è¦å ³éæ«æï¼å°å ¶è®¾ä¸º<literal>-1</literal>ã</para> - </listitem> - <listitem> - <para><literal>message-expiry-thread-priority</literal></para> - <para>åæ¶çº¿ç¨çä¼å 级ï¼ä¸º0å°9çæ´æ°ï¼9ä¼å 级æé«ãé»è®¤æ¯3ï¼ã</para> - </listitem> - </itemizedlist> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.expiry"/>ãè¿ä¸ªä¾åå±ç¤ºäºå¨JMSä¸å¦ä½é ç½®ä½¿ç¨æ¶æ¯è¿æåè½ã</para> - </section> -</chapter> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/d18c42b0/docs/user-manual/zh/message-grouping.xml ---------------------------------------------------------------------- diff --git a/docs/user-manual/zh/message-grouping.xml b/docs/user-manual/zh/message-grouping.xml deleted file mode 100644 index dd4c6b9..0000000 --- a/docs/user-manual/zh/message-grouping.xml +++ /dev/null @@ -1,149 +0,0 @@ -<?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="message-grouping"> - <title>æ¶æ¯åç»</title> - <para>æ¶æ¯ç»æ¯å ·æä¸åç¹æ§çæ¶æ¯éåï¼</para> - <itemizedlist> - <listitem> - <para>å¨ä¸ä¸ªæ¶æ¯ç»ä¸çæ¶æ¯æç¸åçç»æ è¯ï¼idï¼ï¼å³å®ä»¬ç<literal>JMSXGroupID</literal>ï¼JMSï¼æ - <literal>_HQ_GROUP_ID</literal>ï¼ActiveMQæ ¸å¿ï¼çå¼ç¸åã</para> - </listitem> - <listitem> - <para>ä¸ç®¡åå¨å¤å°ä¸ªæ¥æ¶è ï¼consumerï¼ï¼ä¸ä¸ªæ¶æ¯ç»çæææ¶æ¯æ»æ¯è¢«åä¸ä¸ªæ¥æ¶è ææ¥æ¶ãä¸ä¸ªç»idæ»æ¯ - ä¸åä¸ä¸ªæ¥æ¶è ç¸å ³èã妿è¿ä¸ªæ¥æ¶è è¢«å ³éï¼å¦å¤ä¸ä¸ªæ¥æ¶è 就被é䏿¥ä»£æ¿å®æ¥æ¶è¯¥æ¶æ¯ç»çæ¶æ¯ã</para> - </listitem> - </itemizedlist> - <para>æ¶æ¯ç»å¨éè¦åä¸ä¸ªæ¥æ¶è æé¡ºåºå¤çæç±»æ¶æ¯çæ¶å徿ç¨ã</para> - <para>䏿¯è¡ç¥¨ç订è´å°±æ¯ä¸ä¸ªä¾åãææ¯è¡ç¥¨ç订åéè¦åä¸ä¸ªæ¥æ¶è æé¡ºåºå¤çãäºæ¯å¯ä»¥æ¯æ¯è¡ç¥¨æä¸ä¸ªæ¥æ¶è - æ¥å¤çï¼ä¹å¯ä»¥ç¨å°ä¸äºçæ¥æ¶è ï¼ï¼ç¶åå°æ¯æ¯è¡ç¥¨çååè®¾å¨æ¶æ¯ç_HQ_GROUP_IDåæ°ä¸ã</para> - <para>è¿æ ·å¯ä»¥ä¿è¯ä¸æ¯è¡ç¥¨çæ¶æ¯åªè¢«åä¸ä¸ªæ¥æ¶è å¤çã</para> - <section> - <title>ä½¿ç¨æ ¸å¿æ¥å£</title> - <para>ç¨æ¥æ è¯ä¸ä¸ªæ¶æ¯ç»çåæ°æ¯ <literal>"_HQ_GROUP_ID""</literal> ï¼æè ç¸åºç常é<literal - >MessageImpl.HDR_GROUP_ID</literal>ï¼ãå¦ä¸ç§æ¹æ³æ¯å¨<literal>SessionFactory</literal> - ä¸å°<literal>autogroup</literal>设置为trueãè¿æ ·åçè¯ç»idæ¯éæºç»åºçã</para> - </section> - <section id="message-grouping.jmsconfigure"> - <title>使ç¨JMS</title> - <para>ç¨æ¥æ è¯ä¸ä¸ªæ¶æ¯ç»çåæ°æ¯<literal>JMSXGroupID</literal>ã</para> - <programlisting> - // send 2 messages in the same group to ensure the same - // consumer will receive both - Message message = ... - message.setStringProperty("JMSXGroupID", "Group-0"); - producer.send(message); - - message = ... - message.setStringProperty("JMSXGroupID", "Group-0"); - producer.send(message); - </programlisting> - <para>å¦ä¸ä¸ªæ¹æ³æ¯å°<literal>ActiveMQConnectonFactory</literal>ç<literal>autogroup</literal> - 屿§è®¾ä¸ºtrueï¼æè å¨<literal>activemq-jms.xml</literal>æä»¶ä¸è¿è¡é ç½®ï¼</para> - <programlisting><connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="netty-connector"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - <autogroup>true</autogroup> -</connection-factory></programlisting> - <para>è¿å¯ä»¥éè¿è¿æ¥å·¥åæ¥è®¾ç½®ç»idãæ¥èªè¿ä¸ªè¿æ¥å·¥åçææçåéè ï¼producerï¼åéçæ¶æ¯ç<literal - >JMSXGroupID</literal>å°å ·ææå®çå¼ãè¿ç§æ¹æ³éè¦å¨<literal>activemq-jms.xml</literal> - æä»¶ä¸ä½å¦ä¸é ç½®ï¼ - <programlisting> - <connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="netty-connector"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - <group-id>Group-0</group-id> - </connection-factory> - </programlisting></para> - </section> - <section> - <title>ä¾å</title> - <para>åè§<xref linkend="examples.message-group"/>ãè¿ä¸ªä¾åå±ç¤ºçæ¯å¨JMSä¸å¦ä½é ç½®ä¸ä½¿ç¨æ¶æ¯ç»ã</para> - </section> - <section> - <title>ä¾å</title> - <para><xref linkend="examples.message-group2"/>æ¯å¦å¤ä¸ä¸ªæ¶æ¯ç»çä¾åï¼å¨è¿ä¸ªä¾åä¸éè¿é ç½®è¿æ¥å·¥å - æ¥ä½¿ç¨æ¶æ¯ç»ã</para> - </section> - <section> - <title>é群ä¸çæ¶æ¯ç»</title> - <para>å¨é群ä¸ä½¿ç¨æ¶æ¯ç»æ¯ç¸å¯¹æ¯è¾å¤æçãè¿æ¯å å¨å¨é群ä¸ï¼ä¸ä¸ªæ¶æ¯ç»ä¸çæ¶æ¯æå¯è½è¢«éå°é群ä¸çä»»ä¸å ¨èç¹ï¼ - è¿å°±è¦æ±æ¯ä¸ªèç¹é½è¦ç¥éè¿ä¸ªæ¶æ¯æ¯å±äºåªä¸ªèç¹ä¸çåªä¸ªæ¥æ¶è ï¼consumerï¼ãä¸ä¸ªæ¶æ¯ç»çæ¶æ¯å¾å¾ä¼è¢«åéå° - é群ä¸çä¸ä¸ªèç¹ï¼èè¯¥æ¶æ¯ç»çæ¥æ¶è å¨å¦ä¸ä¸ªèç¹ä¸ãæ¯ä¸ªèç¹é½è¦ç¥éè¿äºç»è以便è½å°æ¶æ¯æ£ç¡®è·¯ç±å°æå±æ¥æ¶ - è æå¨çèç¹ä¸ã</para> - <para>为äºè§£å³ä¸è¿°é®é¢ï¼æä»¬ä½¿ç¨äºæ¶æ¯ç»å¤çå¨ãæ¯ä¸ªèç¹é½æä¸ä¸ªèªå·±çæ¶æ¯ç»å¤çå¨ãå½ä¸ä¸ªå¸¦æç»idçæ¶æ¯æ¶å°æ¶ï¼ - è¿äºèç¹çæ¶æ¯ç»å¤çå¨å°±ä¼ååä½åºå³å®è¯¥å¦ä½å¯¹è¿ä¸ªæ¶æ¯è¿è¡è·¯ç±ã</para> - <para>æ¶æ¯ç»å¤ç卿䏤ç§ï¼æ¬å°æ¶æ¯ç»å¤çå¨åè¿ç¨æ¶æ¯ç»å¤çå¨ãå¨ä¸ä¸ªé群ä¸è¦éæ©ä¸ä¸ªèç¹ä½ä¸ºæ¬å°æ¶æ¯ç»å¤çå¨ç - èç¹ï¼éç¾¤ä¸ææå ¶å®çèç¹é½ææè¿ç¨æ¶æ¯ç»å¤çå¨ãå¨é群ä¸ç±æ¬å°æ¶æ¯ç»å¤ç卿çµå³å®æ¶æ¯ææ ·è·¯ç±ï¼å ¶å®çè¿ç¨ - å¤çå¨é 忬å°å¤çå¨å®æå³çãæ¶æ¯ç»å¤çå¨çé ç½®å¨<emphasis role="italic">activemq-configuration.xml</emphasis> - æä»¶ä¸ï¼ä¸é¢å°±æ¯ä¸ä¸ªä¾åï¼ -<programlisting> <grouping-handler name="my-grouping-handler"> - <type>LOCAL</type> - <address>jms</address> - <timeout>5000</timeout> - </grouping-handler> - - <grouping-handler name="my-grouping-handler"> - <type>REMOTE</type> - <address>jms</address> - <timeout>5000</timeout> - </grouping-handler></programlisting></para> - <para><emphasis role="italic">address</emphasis>屿§è¡¨ç¤ºä¸ä¸ªé群çè¿æ¥ä»¥åå®ä½¿ç¨çå°åãæå ³å¦ä½é ç½®é群 - åè§éç¾¤ç« èã<emphasis role="italic">timeout</emphasis>屿§ä»£è¡¨ååºè·¯ç±å³å®æéè¦çå¾ çæ¶é´ãå¦æè¶ è¿ - äºè¿ä¸ªæ¶é´è¿æ²¡æååºå³å®ï¼å伿åºå¼å¸¸ãè¿å¯ä»¥ä¿è¯ä¸¥æ ¼ç顺åºã</para> - <para>æ¶å°æ¶æ¯çèç¹ä¼é¦å æåºä¸ä¸ªæ¶æ¯è·¯ç±ç建议ãå®éç¨è½®è¯¢æ¹å¼æ¥éæ©ä¸ä¸ªåéçè·¯ç±ãå®é¦å éæ©ä¸ä¸ªæ¬å°çéåï¼ä¹å - åéæ©ä¸ä¸ªææ¥æ¶è çéåã妿è¿ä¸ªå»ºè®®è¢«ææç»å¤ç卿¥åï¼æ¶æ¯å°±ä¼è¢«è·¯ç±å°æéçéåãå¦æè¢«æç»å°±æåºå¦ä¸ä¸ªè·¯ - ç±æ¹æ¡ï¼å¦æ¤åå¤ç´å°æ¹æ¡è¢«æ¥å为æ¢ãéåéæ©åææå ¶å®çèç¹é½å°æ¶æ¯è·¯ç±å°è¿ä¸ªéåãè¿æ ·ææçæ¶æ¯ç»çæ¶æ¯å¨ä¸ä¸ª - èç¹ä¸è¿è¡å¤çï¼ä¹å°±æ¯è¯¥èç¹ä¸çæ¥æ¶è æ¥æ¶ææçåç»çæ¶æ¯ã</para> - <para>ç±äºåªæä¸ä¸ªæ¬å°å¤çå¨ï¼å¦æå®çèç¹åºç°æ éåæ æ³ååºå³å®ãè¿æ¶ææçæ¶æ¯å°ä¸è½è¢«ä¼ éï¼å¹¶ä¸ä¼æåºå¼å¸¸ã - 为äºé¿å è¿ä¸åç¹æ éï¼æ¬å°å¤çå¨å¯ä»¥å¨å¤ä»½èç¹ä¸æä¸ä¸ªå¤æ¬ãåªè¦å建å¤ä»½èç¹å¹¶é ç½®ä¸ä¸ªç¸åçæ¬å°å¤çå¨å³å¯ã</para> - <para/> - <section> - <title>éç¾¤æ¶æ¯ç»çæä½³ä½¿ç¨æ¯ä¾</title> - <para>ä¸é¢æ¯ä¸äºå¾å¥½ç建议ï¼<orderedlist> - <listitem> - <para>å°½å¯è½ä½¿æ¥æ¶è åååå¸å¨ä¸åçèç¹ä¸ãç±äºæ¶æ¯ç»çæ¶æ¯æ»æ¯ä¼ éå°åä¸ä¸ªéåçåä¸ä¸ªæ¥æ¶è ï¼ - å¦æä½ ç»å¸¸æ§å°å建ä¸å ³éæ¥æ¶è ï¼å°±å¯è½åºç°æ¶æ¯ç±äºæ²¡ææ¥æ¶è èä¼ éä¸åºå»ï¼é ææ¶æ¯å¨éåä¸ - ä¸æç§¯ç´¯çæ åµãå æ¤ï¼å°½éè¦é¿å å ³éæ¥æ¶è ï¼æè ç¡®ä¿æè¶³å¤æ°éçæ¥æ¶è ãä¾å¦ï¼å¦æä½ çé群 - æ3个èç¹ï¼é£ä¹å°±å建3ä¸ªæ¥æ¶è ã</para> - </listitem> - <listitem> - <para>å°½å¯è½ä½¿ç¨æä¹ åéåãå¦ææ¶æ¯ç»çæ¶æ¯ä¸ä¸ä¸ªéåç»å®ï¼ä¸æ¦è¿ä¸ªéå被å é¤ï¼å ¶å®èç¹å¯è½ä»ç¶ - å°è¯åè¿ä¸ªå·²å é¤çéåè·¯ç±æ¶æ¯ã为é¿å è¿ç§æ åµï¼è¦ç¡®ä¿è¿ä¸ªéåç±åéæ¶æ¯çä¼è¯æ¥å é¤ãè¿æ ·å¦æ - ä¸ä¸ä¸ªæ¶æ¯ååºååç°åæ¥çéå被å é¤ï¼æ°çè·¯ç±å»ºè®®å°±ä¼æåºãå¦å¤ä¸ç§æ¹æ¡æ¯ä½ å¯ä»¥éæ°ä½¿ç¨ä¸ä¸ªä¸ - åçç»IDã</para> - </listitem> - <listitem> - <para>ä¸å®è¦ç¡®ä¿æ¬å°çæ¶æ¯ç»å¤ç卿å¤ä»½ãè¿æ ·å¨ææ éæ¶æ¶æ¯ç»ä»ç¶å¯ä»¥æ£å¸¸å·¥ä½ã</para> - </listitem> - </orderedlist></para> - </section> - <section> - <title>éç¾¤æ¶æ¯ç»ä¾å</title> - <para>åè§<xref linkend="examples.clustered.grouping"/>ï¼è¿ä¸ªä¾åç»åºäºå¦ä½å¨ActiveMQé群ä¸é ç½®æ¶æ¯ç»ã</para> - </section> - </section> -</chapter>
