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
Java heapsize konfigureras i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf med:
wrapper.java.initmeory 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).
Broker minnesutnyttjande konfigureras i ACTIVEMQ_HOME/conf/activemq.xml. Se https://code.google.com/p/soi-toolkit/wiki/IG_RT_ActiveMQ#Configure_broker_resource_usage
<systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="64 mb"/> </memoryUsage>
Note: för ActiveMQ 5.9 kan följande användas: <memoryUsage percentOfJvmHeap="70" />
Köminne (viktigt vid flow control) konfigureras med memoryLimit. Se exempel activemq.xml och https://code.google.com/p/soi-toolkit/wiki/IG_RT_ActiveMQ#Configure_broker_resource_usage
<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
Dead-letter queue (DLQ) policy
Konfigureras med <deadLetterStrategy>. Se https://code.google.com/p/soi-toolkit/wiki/IG_RT_ActiveMQ#Setup_retry_and_DLQ-handling_policies
Disk
Konfigurera var meddelanden lagras genom att sätta sökväg i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf:
set.default.ACTIVEMQ_DATA=%ACTIVEMQ_BASE%/data
Rekommendation:
- Använd inte system/root-partitionen till datalagring (inte bra om systemdisken blir full).
- I datacenter/virtualiserade miljöer: använd SAN/nätverksdisk.
Konfigurera hur mycket disk ActiveMQ ska använda med storeUsage:
<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.
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
JMX
Konfigurera JMX-åtkomst genom att:
Lägga till useJmx="true" i broker-elementet i ACTIVEMQ_HOME/conf/activemq….xml
<broker … useJmx="true">
Avkommentera raderna i ACTIVEMQ_HOME/bin/<operativsystem>/wrapper.conf
# Uncomment to enable jmx wrapper.java.additional.16=-Dcom.sun.management.jmxremote.port=1616 wrapper.java.additional.17=-Dcom.sun.management.jmxremote.authenticate=false wrapper.java.additional.18=-Dcom.sun.management.jmxremote.ssl=false
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
- Starta om ActiveMQ för att aktivera inställningarna
Referens: http://activemq.apache.org/jmx.html