Innehållsförteckning |
---|
Installation
...
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:
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).
Broker minnesutnyttjande konfigureras i ACTIVEMQ_HOME/conf/activemq.xml.
...
För SKLTP finns det en rekommenderad activemq.xml som kan laddas ner här.
Inställningar för Minne
Diskutrymme
För att undvika problem med att ActiveMQ försöker allokera mer disk än vad som finns tillgängligt och undvika följande fel i loggen:
...
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" />
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
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:
- 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:
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
beakta hur mycket disk som finns tillgängligt kontra följande parametrar i activemq.xml
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="256 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
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
...
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:
Lägga till useJmx="true" i broker-elementet i ACTIVEMQ_HOME/conf/activemq….xml
Inget format <broker … useJmx="true">
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
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
- Starta om ActiveMQ för att aktivera inställningarna
Referens: http://activemq.apache.org/jmx.html