2014-01-07 3 views
0

Я настроил очередь сообщений jms в jboss и изменил базу данных по умолчанию на mysql db. Теперь я хочу включить сохранение памяти.Как включить хранилище persitence в jboss 6?

This is the horneq-configuration.xml file in jboss/server/default/deploy/hornetq 
<!-- 
    ~ Copyright 2009 Red Hat, Inc. 
    ~ Red Hat licenses this file to you under the Apache License, version 
    ~ 2.0 (the "License"); you may not use this file except in compliance 
    ~ with the License. You may obtain a copy of the License at 
    ~  http://www.apache.org/licenses/LICENSE-2.0 
    ~ Unless required by applicable law or agreed to in writing, software 
    ~ distributed under the License is distributed on an "AS IS" BASIS, 
    ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
    ~ implied. See the License for the specific language governing 
    ~ permissions and limitations under the License. 
    --> 

<configuration xmlns="urn:hornetq" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd"> 

    <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name> 

    <bindings-directory>${jboss.server.data.dir}/hornetq/bindings</bindings-directory> 

    <journal-directory>${jboss.server.data.dir}/hornetq/journal</journal-directory> 

    <!-- Default journal file size is set to 1Mb for faster first boot --> 
    <journal-file-size>${hornetq.journal.file.size:1048576}</journal-file-size> 

    <!-- Default journal min file is 2, increase for higher average msg rates --> 
    <journal-min-files>${hornetq.journal.min.files:2}</journal-min-files> 


    <large-messages-directory>${jboss.server.data.dir}/hornetq/largemessages</large-messages-directory> 

    <paging-directory>${jboss.server.data.dir}/hornetq/paging</paging-directory> 

    <connectors> 
     <connector name="netty"> 
     <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class> 
     <param key="host" value="${jboss.bind.address:localhost}"/> 
     <param key="port" value="${hornetq.remoting.netty.port:5445}"/> 
     </connector> 

     <connector name="netty-throughput"> 
     <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class> 
     <param key="host" value="${jboss.bind.address:localhost}"/> 
     <param key="port" value="${hornetq.remoting.netty.batch.port:5455}"/> 
     <param key="batch-delay" value="50"/> 
     </connector> 

     <connector name="in-vm"> 
     <factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class> 
     <param key="server-id" value="${hornetq.server-id:0}"/> 
     </connector> 

    </connectors> 

    <acceptors> 
     <acceptor name="netty"> 
     <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class> 
     <param key="host" value="${jboss.bind.address:localhost}"/> 
     <param key="port" value="${hornetq.remoting.netty.port:5445}"/> 
     </acceptor> 

     <acceptor name="netty-throughput"> 
     <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class> 
     <param key="host" value="${jboss.bind.address:localhost}"/> 
     <param key="port" value="${hornetq.remoting.netty.batch.port:5455}"/> 
     <param key="batch-delay" value="50"/> 
     <param key="direct-deliver" value="false"/> 
     </acceptor> 

     <acceptor name="in-vm"> 
     <factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class> 
     <param key="server-id" value="0"/> 
     </acceptor> 

    </acceptors> 

    <security-settings> 
     <security-setting match="#"> 
     <permission type="createNonDurableQueue" roles="guest"/> 
     <permission type="deleteNonDurableQueue" roles="guest"/> 
     <permission type="consume" roles="guest"/> 
     <permission type="send" roles="guest"/> 
     </security-setting> 
    </security-settings> 

    <address-settings> 
     <!--default for catch all--> 
     <address-setting match="#"> 
     <dead-letter-address>jms.queue.DLQ</dead-letter-address> 
     <expiry-address>jms.queue.ExpiryQueue</expiry-address> 
     <redelivery-delay>0</redelivery-delay> 
     <max-size-bytes>10485760</max-size-bytes>  
     <message-counter-history-day-limit>10</message-counter-history-day-limit> 
     <address-full-policy>BLOCK</address-full-policy> 
     </address-setting> 
    </address-settings> 

</configuration> 

Здесь что мне нужно изменить здесь? Может ли кто-нибудь сказать мне? Как включить сохранение в jboss 6?

ответ

0

Ну, сообщения хранятся на постоянной основе. От offical documentation:

Каждый сервер HornetQ имеет свой собственный высокопроизводительный постоянный журнал, который он использует для сообщения и другой настойчивости.

У HornetQ есть свой способ хранения сообщений непосредственно в файловой системе.

Если вы хотите сохранить сообщения в базе данных MySQL, это не поддерживается HornetQ и, вероятно, не будет в будущем.

Это обсуждалось несколько раз, например here. Команда HornetQ, очевидно, не считает, что необходимо добавить такую ​​поддержку.

+0

Спасибо Magnitex. Можете указать мне местоположение «Сообщения непосредственно в файловой системе». Если сервер перестает из-за какого-либо исключения, как взять сохраненную очередь jms и где ее находится в jboss? – Ami

+0

Я думаю, этот вопрос немного выходит за рамки оригинального вопроса. Вы коннектируете пути к файлу, например. $ {Jboss.server.data.dir}/hornetq/журнал. У HornetQ есть инструменты для их просмотра, но я не уверен. Вы также можете использовать Hermes JMS для просмотра содержимого очереди. – Magnilex

Смежные вопросы