Modifica il file %ACTIVEMQ_BASE%/conf/activemq.xml, nome utente e password sono memorizzati nel file %ACTIVEMQ_BASE%/conf/credentials.properties,
activemq.xml dettagli sono i seguenti:
<!-- Concesso in licenza alla Apache Software Foundation (ASF) sotto uno o più Accordi di licenza per i contributori. Vedi il file NOTICE distribuito con Lavora per ulteriori informazioni riguardanti la proprietà del copyright. L'ASF concede in licenza questo file a Te sotto la Licenza Apache, Versione 2.0 (la "Licenza"); Non puoi utilizzare questo file se non in conformità con la Licenza. Puoi ottenere una copia della Licenza presso
http://www.apache.org/licenses/LICENSE-2.0
Salvo richiesta dalla legge applicabile o concordata per iscritto, software distribuito sotto la Licenza è distribuito su base "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, espresse o implicite. Vedi la Licenza per il linguaggio specifico che regola i permessi e limitazioni previste dalla Licenza. --> <!-- START SNIPPET: esempio --> <fagioli 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">
<!-- Ci permette di usare le proprietà di sistema come variabili in questo file di configurazione --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <nome proprietà="locations"> <value>file:${activemq.conf}/credentials.properties</value> </property> </bean>
<!-- Permette la ricerca di log nella console Hawtio --> <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" lazy-init="falso" scope="singleton" init-method="start" destroy-method="stop"> </bean>
<!-- <broker> L'elemento viene utilizzato per configurare il broker ActiveMQ. --> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
<destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Curriculum – > <policyEntry queue="PER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Enterprise - > <policyEntry queue="COM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Fiera del lavoro – > <policyEntry queue="RECR.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Micro-reclutamento --> <policyEntry queue="MCOM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Ricerca di lavoro micro - > <policyEntry queue="MPER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Backend - > <policyEntry queue="ERP.>" producerFlowControl="true" memoryLimit="10mb"> <!-- La strategiaLimitlimiteSeguente viene utilizzata per prevenire Rallentare i consumatori a bloccare i produttori e influenzare altri consumatori limitando il numero di messaggi che vengono trattenuti Per maggiori informazioni, vedi:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia di distribuzione - > <dispatchPolicy> <!-- Distribuire sequenzialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia di recupero - > <subscriptionRecoveryPolicy> <!-- Recupera solo l'ultimo messaggio --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva il riferimento del messaggio in memoria e, se l'uso di memoria è al massimo, il riferimento del messaggio viene salvato in un file temporaneo --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
<!-- Il managementContext viene utilizzato per configurare come ActiveMQ viene esposto in JMX. Di default, ActiveMQ utilizza il server MBean che viene avviato da la JVM. Per maggiori informazioni, vedi:
http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext>
<!-- Configura la persistenza dei messaggi per il broker. La persistenza predefinita meccanismo è lo store KahaDB (identificato dal tag kahaDB). Per maggiori informazioni, vedi:
http://activemq.apache.org/persistence.html --> <persistenceAdapter> <directory kahaDB="E:/activemq_data" enableJournalDiskSyncs="false" indexWriteBatchSize="1000" indexCacheSize="10000" journalMaxFileLength="32mb"
/> </persistenceAdapter>
<plugins> <!-- Configurare l'autenticazione; Nome utente, password e gruppi --> <simpleAuthenticationPlugin> <users> <autenticazioneNome utente="${activemq.username}" password="${activemq.password}" gruppi="admins"/> <autenticazioneUsername="${per.username}" password="${per.password}" gruppi="personali"/> <autenticazioneUsername="${mper.username}" password="${mper.password}" groups="mpersonal"/> <autenticazioneNome utente="${com.nomeutente}" password="${com.password}" gruppi="azienda"/> <autenticazioneNome utente="${mcom.username}" password="${mcom.password}" gruppi="mcompany"/> <autenticazioneUsername="${erp.username}" password="${erp.password}" groups="erp"/> <autenticazioneUsername="${recr.username}" password="${recr.password}" groups="recr"/> </users> </simpleAuthenticationPlugin>
<!-- Configuriamo un meccanismo di autorizzazione basato sulla destinazione --> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <authorizationEntry queue="PER.>" read="personale, mpersonal, company, mcompany, erp, recr" write="personal" admin="personal" /> <authorizationEntry queue="MPER.>" read="personale, mpersonal, company, mcompany, erp, recr" write="mpersonal" admin="mpersonal" /> <authorizationEntry queue="COM.>" read="personale, mpersonal, company, mcompany, erp, recr" write="company" admin="company" /> <authorizationEntry queue="MCOM.>" read="personale, mpersonal, company, mcompany, erp, recr" write="mcompany" admin="mcompany" /> <authorizationEntry queue="ERP.>" read="personale, mpersonal, company, mcompany, erp, recr" write="erp" admin="erp" /> <authorizationEntry queue="RECR.>" read="personale, mpersonal, company, mcompany, erp, recr" write="recr" admin="recr" />
<authorizationEntry topic ="ActiveMQ.Advisory.>" read="personale, mpersonal, company, mcompany, erp, recr" write="personal, mpersonal, company, mcompany, erp, recr" admin="personale, mpersonal, company, mcompany, erp, recr" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
<!-- SystemUsage controlla la quantità massima di spazio che il broker avrà Da usare prima di disabilitare la cache e/o rallentare i produttori. Per maggiori informazioni, vedi:
http://activemq.apache.org/producer-flow-control.html --> <systemUsage> <systemUsage> <memoryUsage> <memoryUsage percentOfJvmHeap="100" /> </memoryUsage> <storeUsage> <storeUsage limit="1 gb"/> </storeUsage> <tempUsage> <tempLimiteUtilizzo="100 mb"/> </tempUsage> </systemUsage> </systemUsage>
<!-- I connettori di trasporto espongono ActiveMQ su un dato protocollo a clienti e altri broker. Per maggiori informazioni, vedi:
http://activemq.apache.org/configuring-transports.html --> <transportConnectors> <!-- protezione DOS, limita le connessioni simultanee a 1000 e la dimensione del frame a 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>
<!-- distruggere il contesto primaverile dello shutdown per fermare il molo --> <shutdownHooks> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!-- Abilita console web, API e demo REST e Ajax Le console web richiedono di default l'accesso, puoi disattivarlo nel file jetty.xml
Dai un'occhiata a ${ACTIVEMQ_HOME}/conf/jetty.xml per maggiori dettagli --> <import resource="jetty.xml"/>
</beans> <!-- FINE PEZZO: esempio -->
Credenziali.proprietà:
## --------------------------------------------------------------------------- ## Concesso in licenza alla Apache Software Foundation (ASF) sotto uno o più ## Accordi di licenza per i contributori. Vedi il file NOTICE distribuito con ## Questo lavoro per ulteriori informazioni riguardanti la proprietà del copyright. ## L'ASF concede in licenza questo file a Te sotto la Licenza Apache, Versione 2.0 ## (la "Licenza"); Non puoi utilizzare questo file se non in conformità con ## La licenza. Puoi ottenere una copia della Licenza presso ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Salvo richiesta dalla legge applicabile o concordata per iscritto, software ## distribuito sotto la Licenza è distribuito "COSÌ COM'È", ## SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, espresse o implicite. ## Vedi la Licenza per il linguaggio specifico che regola i permessi e ## limitazioni sotto la Licenza. ## ---------------------------------------------------------------------------
# Definisce le credenziali che saranno utilizzate dai componenti (come la console web) per accedere al broker
activemq.username=*** activemq.password=***
per.username=*** per.password=***
mper.username=*** mper.password=***
com.username=*** com.password=***
mcom.username=*** mcom.password=***
erp.username=*** erp.password=***
recr.username=*** recr.password=***
La configurazione sopra ha rilevato che oggi c'era un'anomalia nel monitoraggio della coda, e infine ha rilevato che il problema si presentava qui:
Dato che l'account utilizzato nel progetto di monitoraggio della coda è l'amministratore sistema/gestore (webapps\admin\WEB-INF\webconsole-embedded.xml
Gruppo degli amministratori, che richiede permessi
|