Pas het bestand %ACTIVEMQ_BASE%/conf/activemq.xml aan, de gebruikersnaam en het wachtwoord worden opgeslagen in het bestand %ACTIVEMQ_BASE%/conf/credentials.properties,
activemq.xml details zijn als volgt:
<!-- Gelicentieerd aan de Apache Software Foundation (ASF) onder een of meer Licentieovereenkomsten voor bijdragers. Zie het NOTICE-bestand dat wordt verspreid met Dit werk is voor aanvullende informatie over auteursrechten. De ASF licentieert dit bestand aan jou onder de Apache License, versie 2.0 (de "Licentie"); U mag dit bestand alleen gebruiken in overeenstemming met de vergunning. U kunt een kopie van de licentie verkrijgen op
http://www.apache.org/licenses/LICENSE-2.0
Tenzij vereist door de toepasselijke wet of schriftelijk afgesproken, is software verspreid onder de licentie wordt verspreid op basis van "ALS HET IS", ZONDER GARANTIES OF VOORWAARDEN VAN WELKE AARD DAN OOK, zowel uitdrukkelijk als impliciet. Zie de Licentie voor de specifieke taal die de rechten regelt en beperkingen onder de licentie. --> <!-- STARTFRAGMENT: voorbeeld --> <bonen xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- Stelt ons in staat systeemeigenschappen als variabelen in dit configuratiebestand te gebruiken --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <eigendomsnaam="locaties"> <value>Bestand:${activemq.conf}/credentials.properties</value> </property> </bean>
<!-- Staat logzoeken in de hawtio console toe --> <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" lazy-init="vals" scope="singleton" init-method="start" destroy-method="stop"> </bean>
<!-- Het <broker> element wordt gebruikt om de ActiveMQ-broker te configureren. --> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
<destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Cv – > <policyEntry queue="PER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Enterprise - > <policyEntry queue="COM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Banenbeurs – > <policyEntry queue="RECR.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Micro-werving --> <policyEntry queue="MCOM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Micro baan zoeken - > <policyEntry queue="MPER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Backend - > <policyEntry queue="ERP.>" producerFlowControl="true" memoryLimit="10mb"> <!-- De constantPendingMessageLimitStrategy wordt gebruikt om te voorkomen Consumenten die het onderwerp vertragen om producenten te blokkeren en andere consumenten te beïnvloeden door het aantal berichten dat wordt behouden te beperken Voor meer informatie, zie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Distributiestrategie - > <dispatchPolicy> <!-- Verdeel achtereenvolgens - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Herstelstrategie - > <subscriptionRecoveryPolicy> <!-- Herstel alleen het laatste bericht --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Eerst slaat de berichtreferentie op in het geheugen, en als het geheugengebruik maximaal is, wordt de berichtreferentie opgeslagen in een tijdelijk bestand --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy, limiet="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
<!-- De managementContext wordt gebruikt om te configureren hoe ActiveMQ wordt blootgesteld in JMX. Standaard gebruikt ActiveMQ de MBean-server die wordt gestart door de JVM. Voor meer informatie, zie:
http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext>
<!-- Configureer de persistentie van berichten voor de broker. De standaardpersistentie het mechanisme is de KahaDB-opslag (geïdentificeerd door de kahaDB-tag). Voor meer informatie, zie:
http://activemq.apache.org/persistence.html --> <persistenceAdapter> <kahaDB directory="E:/activemq_data" enableJournalDiskSyncs="false" indexWriteBatchSize="1000" indexCacheSize="10000" journalMaxFileLength="32mb"
/> </persistenceAdapter>
<plugins> <!-- Authenticatie configureren; Gebruikersnaam, wachtwoorden en groepen --> <simpleAuthenticationPlugin> <users> <authenticatieGebruiker gebruikersnaam="${activemq.username}" wachtwoord="${activemq.password}" groepen="admins"/> <authenticatieGebruiker gebruikersnaam="${per.username}" wachtwoord="${per.password}" groepen="persoonlijk"/> <authenticatieGebruikersnaam="${mper.username}" wachtwoord="${mper.password}" groepen="mpersonal"/> <authenticatieGebruikersnaam="${com.username}" wachtwoord="${com.password}" groepen="bedrijf"/> <authenticationUser username="${mcom.username}" wachtwoord="${mcom.password}" groups="mcompany"/> <authenticatieGebruiker gebruikersnaam="${erp.username}" wachtwoord="${erp.password}" groepen="erp"/> <authenticatieGebruiker gebruikersnaam="${recr.username}" wachtwoord="${recr.password}" groepen="recr"/> </users> </simpleAuthenticationPlugin>
<!-- Laten we een bestemmingsgebaseerd autorisatiemechanisme configureren --> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <authorizationEntry queue="PER.>" read="personal, mpersonal, company, mcompany, erp, recr" write="personal" admin="personal" /> <authorizationEntry queue="MPER.>" read="personal, mpersonal, company, mcompany, erp, recr" write="mpersonal" admin="mpersonal" /> <authorizationEntry queue="COM.>" read="personal, mpersonal, company, mcompany, erp, recr" write="company" admin="company" /> <authorizationEntry queue="MCOM.>" read="personal, mpersonal, company, mcompany, erp, recr" write="mcompany" admin="mcompany" /> <authorizationEntry queue="ERP.>" read="personal, mpersonal, company, mcompany, erp, recr" write="erp" admin="erp" /> <authorizationEntry queue="RECR.>" read="personal, mpersonal, company, mcompany, erp, recr" write="recr" admin="recr" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="personal, mpersonal, company, mcompany, erp, recr" write="personal, mpersonal, company, mcompany, erp, recr" admin="personal, mpersonal, company, mcompany, ERP, recr" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
<!-- SystemUsage beheert de maximale hoeveelheid ruimte die de broker zal hebben Gebruik dit voordat je caching uitschakelt en/of producenten vertraagt. Voor meer informatie, zie:
http://activemq.apache.org/producer-flow-control.html --> <systemUsage> <systemUsage> <memoryUsage> <memoryUsage percentOfJvmHeap="100" /> </memoryUsage> <storeUsage> <storeUsage limit="1 gb"/> </storeUsage> <tempUsage> <tempUsage limit="100 mb"/> </tempUsage> </systemUsage> </systemUsage>
<!-- De transportconnectoren stellen ActiveMQ bloot over een gegeven protocol aan klanten en andere makelaars. Voor meer informatie, zie:
http://activemq.apache.org/configuring-transports.html --> <transportConnectors> <!-- DOS-bescherming, beperk gelijktijdige verbindingen tot 1000 en framegrootte tot 100MB --> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors>
<!-- de lentecontext bij het uitschakelen vernietigen om de steiger te stoppen --> <shutdownHooks> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!-- Schakel webconsoles, REST- en Ajax-API's en demo's in De webconsoles vereisen standaard inloggen, je kunt dit uitschakelen in het jetty.xml-bestand
Bekijk ${ACTIVEMQ_HOME}/conf/jetty.xml voor meer details --> <import resource="jetty.xml"/>
</beans> <!-- EINDE FRAGMENT: voorbeeld -->
Referenties.Eigenschappen:
## --------------------------------------------------------------------------- ## Gelicenseerd aan de Apache Software Foundation (ASF) onder een of meer ## Licentieovereenkomsten voor bijdragers. Zie het NOTICE-bestand dat wordt verspreid met ## Dit werk voor aanvullende informatie over auteursrechten. ## De ASF licentieert dit bestand aan U onder de Apache License, Versie 2.0 ## (de "Licentie"); U mag dit bestand alleen gebruiken in overeenstemming met ## De vergunning. U kunt een kopie van de licentie verkrijgen op ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Tenzij vereist door toepasselijke wetgeving of schriftelijk afgesproken, software ## verspreid onder de licentie wordt verspreid op basis van "AS IS", ## ZONDER GARANTIES OF VOORWAARDEN VAN WELKE AARD DAN OOK, zowel uitdrukkelijk als impliciet. ## Zie de licentie voor de specifieke taal die de rechten regelt en ## beperkingen onder de licentie. ## ---------------------------------------------------------------------------
# Definieert inloggegevens die door componenten (zoals de webconsole) worden gebruikt om toegang te krijgen tot de broker
activemq.username=*** activemq.password=***
per.gebruikersnaam=*** per.password=***
mper.gebruikersnaam=*** mper.password=***
com.username=*** com.password=***
mcom.username=*** mcom.password=***
erp.gebruikersnaam=*** erp.password=***
recr.username=*** recr.password=***
De bovenstaande configuratie toonde vandaag aan dat er een afwijking was in de wachtrijmonitoring, en uiteindelijk bleek dat het probleem hier verscheen:
Omdat het account dat in de wachtrij wordt gebruikt voor projectbeheerder system/manager is(webapps\admin\WEB-INF\webconsole-embedded.xml
Beheerdersgroep, die rechten vereist
|