Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

Innehållsförteckning

Installation

Instruktion för installation av ActiveMQ och rekommendationer finns att läsa på soi-toolkits installationsguide för ActiveMQ.

För SKLTP finns det en rekommenderad activemq.xml som kan laddas ner här.

Konfiguration

...

Minne

  1. Java heapsize konfigureras i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf med:

    Inget format
    wrapper.java.initmemory
    wrapper.java.maxmemory

    Rekommendation är att sätta dem till samma värde, på så sätt säkras redan vid uppstart att det faktiskt går att allokera minne för max-värdet (annars är det möjligt att få OutOfMemoryError innan max-värdet uppnås).

  2. Broker minnesutnyttjande konfigureras i ACTIVEMQ_HOME/conf/activemq.xml.

...

För SKLTP finns det en rekommenderad activemq.xml som kan laddas ner här

JMX

För att komma åt ActiveMQ via remote kika på ActiveMQ JMX inställningar

För remote uppkoppling är följande parameter intressant: 

<managementContext>
 <managementContext createConnector="true"/>
</managementContext>

Och rekommenderat är att lägga till en användare och lösenord enligt ActiveMQ JMX inställningar

...

  1.  Se https://github.com/soi-toolkit/soi-toolkit-mule/wiki/G_RT_-ActiveMQ

    Inget format
    <systemUsage>
      <systemUsage>
          <memoryUsage>
              <memoryUsage limit="64 mb"/>
          </memoryUsage>

    Note: för ActiveMQ 5.9 kan följande användas: <memoryUsage percentOfJvmHeap="70" />

     

  2. Köminne (viktigt vid flow control) konfigureras med memoryLimit. Se exempel activemq.xml och https://github.com/soi-toolkit/soi-toolkit-mule/wiki/G_RT_-ActiveMQ

    Inget format
    <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> 

Dead-letter queue (DLQ) policy

Konfigureras med <deadLetterStrategy>. Se https://github.com/soi-toolkit/soi-toolkit-mule/wiki/G_RT_-ActiveMQ

Disk

  1. Konfigurera var meddelanden lagras genom att sätta sökväg i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf: 

    Inget format
    set.default.ACTIVEMQ_DATA=%ACTIVEMQ_BASE%/data

    Rekommendation:

    1. Använd inte system/root-partitionen till datalagring (inte bra om systemdisken blir full).
    2. I datacenter/virtualiserade miljöer: använd SAN/nätverksdisk.

  2. Konfigurera hur mycket disk ActiveMQ ska använda med storeUsage

    Inget format
              <systemUsage>
                <systemUsage>
                    <memoryUsage>
                        <memoryUsage limit="64 mb"/>
                    </memoryUsage>
                    <storeUsage>
                        <storeUsage limit="100 gb"/>
                    </storeUsage>
                    <tempUsage>
                        <tempUsage limit="50 gb"/>
                    </tempUsage>
                </systemUsage>
            </systemUsage>

    Not: storeUsage är för persistenta meddelanden, tempUsage är för icke-persistenta meddelanden.

    Observera

    Vid uppstart kontrollerar ActiveMQ att det finns tillräckligt med disk - eller sänker den faktiska gränsan för vad som kommer att användas till vad som finns tillgängligt, då loggas en varning i stil med:

     

    2013-05-06 20:17:44,724 | WARN | Store limit is 100000 mb, whilst the data directory: /home/mule/tp/apache-activemq-5.6.0/data/kahadb only has 82380 mb of usable space | org.apache.activemq.broker.BrokerService | main

Synkron skrivning till disk av meddelanden

Se https://github.com/soi-toolkit/soi-toolkit-mule/wiki/G_RT_-ActiveMQ

 

JMX

Konfigurera JMX-åtkomst genom att:

  1. Lägga till useJmx="true" i broker-elementet i ACTIVEMQ_HOME/conf/activemq….xml

    Inget format
     <broker … useJmx="true">
  2. Avkommentera raderna i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf och ändra "n" i "wrapper.java.additional.n" så att "n" för varje rad nedan är ett nummer i den befintliga sekvensen i filen.

    Not: om det är fel i nummersekvensen fungerar inte konfigurationen - men det syns inte vid uppstart av brokern.

    Inget format
    # Uncomment to enable jmx
    #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
    #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
    #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
    Observera

    Not: om JMX-porten är åtkomlig utanför localhost (eller ett hårt säkrat mindre subnät) bör även JMX-access säkras enligt http://activemq.apache.org/jmx.html

  3. Firewall tunnling av JMX, lägg till nedan i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf (under de avkommenterade raderna ovan) och ändra "n" i "wrapper.java.additional.n" så att "n" för varje rad nedan är ett nummer i den befintliga sekvensen i filen.

    Inget format
    # Firewall tunnelling of JMX
    #-----------------------------------------------------------------------------
    # Note: by default (Java 7) two ports are needed, the com.sun.management.jmxremote.port
    #   and a second port which is dynamically allocated by the server.
    #   To avoid dynamic allocation of the second port, add property
    #   com.sun.management.jmxremote.rmi.port below and set it to the same port as
    #   the first port for convenience (fewer holes in the firewall).
    #   This is available in Java 7 > update 4 according to blog:
    #     "Tunneling JMX in the 7u4 JDK", http://hirt.se/blog/?p=289
    #   but the property is missing from the official Java docs for both Java 7 and 8:
    #     http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html
    #-----------------------------------------------------------------------------
    wrapper.java.additional.n=-Dcom.sun.management.jmxremote.rmi.port=1616
  4. Starta om ActiveMQ för att aktivera inställningarna

Referens: http://activemq.apache.org/jmx.html