Modificar o arquivo %ACTIVEMQ_BASE%/conf/activemq.xml, o nome de usuário e a senha ficam armazenados no arquivo %ACTIVEMQ_BASE%/conf/credentials.properties,
activemq.xml detalhes são os seguintes:
<!-- Licenciado para a Apache Software Foundation (ASF) sob um ou mais Acordos de licença de contribuidor. Veja o arquivo NOTICE distribuído com Este trabalho para obter informações adicionais sobre a propriedade dos direitos autorais. A ASF licencia este arquivo para você sob a Licença Apache, Versão 2.0 (a "Licença"); Você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, software distribuída sob a Licença é distribuída em uma base "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Veja a Licença para o idioma específico que rege as permissões e limitações da Licença. --> <!-- INÍCIO FRAGMENTO: exemplo --> <feijão 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">
<!-- Permite que usemos propriedades do sistema como variáveis neste arquivo de configuração --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <nome da propriedade="localizações"> <value>Arquivo:${activemq.conf}/credenciais.propriedades</value> </property> </bean>
<!-- Permite busca em logs no console Hawtio --> <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" lazy-init="false" escopo="singleton" init-method="start" destroy-method="stop"> </bean>
<!-- O <broker> elemento é usado para configurar o corretor ActiveMQ. --> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
<destinationPolicy> <policyMap> <policyEntries> <filaPolicyEntry=">" producerFlowControl="true" memoryLimit="1mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Currículo – > <filaPolicyEntry="PER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Enterprise - > <filaPolicyEntry="COM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Feira de emprego – > <policyEntry queue="RECR.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Micro-recrutamento --> <filaPolicyEntry="MCOM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Micro busca de emprego - > <filaPolicyEntry="MPER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Backend - > <filaPolicyEntry="ERP.>" producerFlowControl="true" memoryLimit="10mb"> <!-- A estratégia constantPendingMessageLimitLimit é usada para prevenir Consumidores de tema lento para bloquear produtores e afetar outros consumidores limitando o número de mensagens que são retidas Para mais informações, veja:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Estratégia de distribuição - > <dispatchPolicy> <!-- Distribuir sequencialmente - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Estratégia de Recuperação - > <subscriptionRecoveryPolicy> <!-- Recuperar apenas a última mensagem --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- First salva a referência da mensagem na memória e, se o uso de memória estiver no máximo, a referência da mensagem é salva em um arquivo temporário --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
<!-- O managementContext é usado para configurar como o ActiveMQ é exposto em JMX. Por padrão, o ActiveMQ usa o servidor MBean que é iniciado por a JVM. Para mais informações, veja:
http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext>
<!-- Configure a persistência da mensagem para o corretor. A persistência padrão mecanismo é o armazenamento KahaDB (identificado pela tag kahaDB). Para mais informações, veja:
http://activemq.apache.org/persistence.html --> <persistenceAdapter> <diretório kahaDB="E:/activemq_data" enableJournalDiskSyncs="false" indexWriteBatchSize="1000" indexCacheSize="10000" journalMaxFileLength="32mb"
/> </persistenceAdapter>
<plugins> <!-- Configurar autenticação; Nome de usuário, senhas e grupos --> <simpleAuthenticationPlugin> <users> <autenticaçãoNome de usuário="${activemq.username}" password="${activemq.password}" groups="admins"/> <autenticaçãoNome de usuário="${per.nome de usuário}" senha="${per.password}" grupos="pessoal"/> <autenticaçãoUsuário usuário="${mper.username}" senha="${mper.password}" grupos="mpersonal"/> <autenticaçãoNome de usuário="${com.nome de usuário}" senha="${com.password}" grupos="empresa"/> <autenticaçãoNome de usuário="${mcom.nome de usuário}" senha="${mcom.password}" grupos="mcompany"/> <autenticaçãoNome de usuário="${erp.nome}" senha="${erp.password}" grupos="erp"/> <autenticaçãoUsuário usuário="${recr.username}" senha="${recr.password}" groups="recr"/> </users> </simpleAuthenticationPlugin>
<!-- Vamos configurar um mecanismo de autorização baseado em destino --> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <fila de entradaAutorização=">" read="admins" escrever="admins" admin="admins" /> <fila de autorizaçãoEntrada="PER.>" read="pessoal, mpersonal, empresa, mempresa, erp, recr" escrever="pessoal" admin="pessoal" /> <fila de autorizaçãoEntrada="MPER.>" read="pessoal, mpersonal, empresa, mempresa, erp, recr" escrever="mpersonal" admin="mpersonal" /> <fila de autorizaçãoEntrada="COM.>" read="pessoal, mpessoal, empresa, mempresa, erp, recr" escrever="empresa" admin="empresa" /> <fila de autorizaçãoEntrada="MCOM.>" read="pessoal, mpersonal, empresa, mempresa, erp, recr" escrever="mempresa" admin="mempresa" /> <authorizationEntry queue="ERP.>" read="personal, mpersonal, company, mcompany, erp, recr" write="erp" admin="erp" /> <filaAuthorizationEntry="RECR.>" read="pessoal, mpersonal, empresa, mcompany, erp, recr" write="recr" admin="recr" />
<authorizationEntry tópico="ActiveMQ.Advisory.>" read="pessoal, mpersonal, empresa, mempresa, erp, recr" escrever="pessoal, mpersonal, empresa, mempresa, erp, recr" admin="pessoal, mpersonal, empresa, mcompany, erp, recr" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
<!-- O SystemUsage controla a quantidade máxima de espaço que o corretor terá Use antes de desativar o cache e/ou desacelerar os produtores. Para mais informações, veja:
http://activemq.apache.org/producer-flow-control.html --> <systemUsage> <systemUsage> <memoryUsage> <memoryUsage percentOfJvmHeap="100" /> </memoryUsage> <storeUsage> <limiteUsoStore="1 gb"/> </storeUsage> <tempUsage> <tempUsage limit="100 mb"/> </tempUsage> </systemUsage> </systemUsage>
<!-- Os conectores de transporte expõem o ActiveMQ sobre um determinado protocolo para clientes e outros corretores. Para mais informações, veja:
http://activemq.apache.org/configuring-transports.html --> <transportConnectors> <!-- proteção contra DOS, limite conexões simultâneas a 1000 e o tamanho do quadro 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>
<!-- destruir o contexto da primavera sobre o fechamento para parar o cais — > <shutdownHooks> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!-- Ative consoles web, APIs e demos REST e Ajax Os consoles web exigem login por padrão, você pode desativar isso no arquivo jetty.xml
Dê uma olhada em ${ACTIVEMQ_HOME}/conf/jetty.xml para mais detalhes --> <import resource="jetty.xml"/>
</beans> <!-- FIM DO SNIPPET: EXEMPLO -->
Credenciais.Propriedades:
## --------------------------------------------------------------------------- ## Licenciado para a Apache Software Foundation (ASF) sob um ou mais ## Acordos de licença de contribuidor. Veja o arquivo NOTICE distribuído com ## Este trabalho para obter informações adicionais sobre a propriedade dos direitos autorais. ## A ASF licencia este arquivo para você sob a Licença Apache, Versão 2.0 ## (a "Licença"); Você não pode usar este arquivo exceto em conformidade com ## A Licença. Você pode obter uma cópia da Licença em ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## A menos que exigido pela lei aplicável ou acordado por escrito, software ## distribuído sob a Licença é distribuído em base a "COMO ESTÁ", ## SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. ## Veja a Licença para a linguagem específica que rege as permissões e ## limitações sob a Licença. ## ---------------------------------------------------------------------------
# Define credenciais que serão usadas por componentes (como console web) para acessar o corretor
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=***
A configuração acima constatou que havia uma anomalia no monitoramento da fila hoje, e finalmente descobriu que o problema apareceu aqui:
Como a conta usada no projeto de monitoramento da fila é administradora do sistema/gerenciador (webapps\admin\WEB-INF\webconsole-embedded.xml
Admins, que exige permissões
|