Crishel,

When i seen Tim mail i verified our last exchange and seen that it was not
via the AMQ users group because I reply automatically.
We are here to share our knowledge and helps each other.
I reply to the group to let Tim understanding better the problem and
gaining time because I do not understood where is your problem because I
tested all the configs and client and as i said for me everything works as
expected and messages are persisted after restart for the durable
subscriber.

Le 2 sept. 2016 10:23, "Crishel Yumul" <crishel.yu...@toro.io> a écrit :
>
> Maybe your client was configured also to have a persistent message
delivery?
>
>> On Sep 2, 2016, at 4:02 PM, Hassen Bennour <bennour.has...@gmail.com>
wrote:
>>
>> default delivery mode in JMS is PERSISTENT and this is the default one
used by AMQ client.
>> if at the AMQ broker level persistence is not disabled , because it is
enabled by default, messages will be persisted
>>
>>
>>
>> Kind regards.
>>
>> BENNOUR HASSEN
>>
>> SOA Architect / Java Software Engineer
>>
>> 2016-09-02 7:01 GMT+02:00 Crishel Yumul <crishel.yu...@toro.io>:
>>>
>>> Should it be configured on my app to send persistent messages instead
of my broker setting itself?
>>>
>>>> On Sep 2, 2016, at 7:55 AM, Crishel Yumul <crishel.yu...@toro.io>
wrote:
>>>>
>>>> Really??!? Have you checked the subscribers tab on your web console
whether you user is durable or non? Mine’s persisting only the topics but
the messages are gone :(
>>>>>
>>>>> On Sep 1, 2016, at 5:30 PM, Hassen Bennour <bennour.has...@gmail.com>
wrote:
>>>>>
>>>>> how did you deduced that it does not work ?
>>>>> i tried with your exact config with a durable subscriber and their
message are persisted and dispatched after broker restart
>>>>>
>>>>>
>>>>>
>>>>> Kind regards.
>>>>>
>>>>> BENNOUR HASSEN
>>>>>
>>>>> SOA Architect / Java Software Engineer
>>>>>
>>>>> 2016-09-01 10:49 GMT+02:00 Crishel Yumul <crishel.yu...@toro.io>:
>>>>>>
>>>>>> Still no effect. Here’s my broker xml. Don’t you think this have
something to do with the users being a durable subscribers?
>>>>>>
>>>>>> ———>
>>>>>>
>>>>>>     <broker xmlns="http://activemq.apache.org/schema/core";
brokerName="demo-activemq" dataDirectory="${activemq.data}" useJmx="true"
advisorySupport="true" persistent="true" deleteAllMessagesOnStartup="false"
useShutdownHook="false" schedulerSupport="true" start="false">
>>>>>>
>>>>>>
>>>>>>
>>>>>>         <destinationPolicy>
>>>>>>             <policyMap>
>>>>>>                 <policyEntries>
>>>>>>                     <policyEntry topic=">"
>>>>>>                                  producerFlowControl="false"
>>>>>>                                  gcInactiveDestinations="true"
>>>>>>                                  inactiveTimoutBeforeGC="500"
>>>>>>                                  memoryLimit="5mb"
>>>>>>                                  expireMessagesPeriod=“0"
>>>>>>                                  advisoryWhenFull="true"
>>>>>>                                  maxDestinations=“-1"
>>>>>>                                  persistJMSRedelivered="true"
>>>>>>                                  sendAdvisoryIfNoConsumers="true">
>>>>>>
>>>>>>                             <pendingMessageLimitStrategy>
>>>>>>                                 <constantPendingMessageLimitStrategy
limit="20"/> <!--   20 seconds worth  -->
>>>>>>                             </pendingMessageLimitStrategy>
>>>>>>
>>>>>>                             <dispatchPolicy>
>>>>>>                                 <strictOrderDispatchPolicy />
>>>>>>                             </dispatchPolicy>
>>>>>>
>>>>>>                             <subscriptionRecoveryPolicy>
>>>>>>                                 <timedSubscriptionRecoveryPolicy
recoverDuration="60000" /> <!--  1 minutes worth -->
>>>>>>                             </subscriptionRecoveryPolicy>
>>>>>>
>>>>>>                     </policyEntry>
>>>>>>                     <policyEntry tempTopic="true"
advisoryForConsumed="true" />
>>>>>>                 </policyEntries>
>>>>>>             </policyMap>
>>>>>>         </destinationPolicy>
>>>>>>
>>>>>>
>>>>>>
>>>>>>         <managementContext>
>>>>>>             <managementContext createConnector="true"
rmiServerPort="1098" connectorPort="1099"/>
>>>>>>         </managementContext>
>>>>>>
>>>>>>
>>>>>>
>>>>>>         <plugins>
>>>>>>             <!--Configure authentication; Username, passwords and
groups -->
>>>>>>             <runtimeConfigurationPlugin checkPeriod="1000" />
>>>>>>             <jaasAuthenticationPlugin
configuration="activemq-domain" />
>>>>>>
>>>>>>             <authorizationPlugin>
>>>>>>                 <map>
>>>>>>                     <authorizationMap>
>>>>>>                         <authorizationEntries>
>>>>>>                              <authorizationEntry
topic=“some.topic.>"  read=“some1,some2,some3,admin"
 write="some1,some2,some3,admin"  admin="some1,some2,some3,admin" />
>>>>>>                             <authorizationEntry
topic="ActiveMQ.Advisory.>"
>>>>>>
read="saas-admin,some2,some1,some3,username"
>>>>>>
write="saas-admin,some2,some1,some3,username"
>>>>>>
admin="saas-admin,some2,some1,some3,username"/>
>>>>>>                         </authorizationEntries>
>>>>>>                     </authorizationMap>
>>>>>>                 </map>
>>>>>>             </authorizationPlugin>
>>>>>>
>>>>>>         </plugins>
>>>>>>
>>>>>>
>>>>>>         <persistenceAdapter>
>>>>>>            <!-- <kahaDB directory="${activemq.data}/kahadb"
indexWriteBatchSize="1000" enableIndexWriteAsync="true"/> -->
>>>>>>             <kahaDB
directory="/Users/crishel.yumul/Documents/dataStore"
>>>>>>                 indexWriteBatchSize="1000"
>>>>>>                 enableIndexWriteAsync="true"
>>>>>>                 concurrentStoreAndDispatchTopics="true"
>>>>>>                 />
>>>>>>         </persistenceAdapter>
>>>>>>
>>>>>>
>>>>>>
>>>>>>         <systemUsage>
>>>>>>             <systemUsage>
>>>>>>                 <memoryUsage>
>>>>>>                     <memoryUsage percentOfJvmHeap="70"/>
>>>>>>                 </memoryUsage>
>>>>>>                 <storeUsage>
>>>>>>                     <storeUsage limit="2 gb"/>
>>>>>>                 </storeUsage>
>>>>>>                 <tempUsage>
>>>>>>                     <tempUsage limit="1 gb"/>
>>>>>>                 </tempUsage>
>>>>>>             </systemUsage>
>>>>>>         </systemUsage>
>>>>>>
>>>>>>
>>>>>>
>>>>>>         <!--
>>>>>>             The transport connectors expose ActiveMQ over a given
protocol to
>>>>>>             clients and other brokers. For more information, see:
>>>>>>
>>>>>>             http://activemq.apache.org/configuring-transports.html
>>>>>>         -->
>>>>>>         <transportConnectors>
>>>>>>             <transportConnector name="openwire" uri="tcp://
0.0.0.0:61616?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600
<http://0.0.0.0:61616?maximumConnections=1000&wireformat.maxFrameSize=104857600>
"/>
>>>>>>             <transportConnector name="amqp" uri="amqp://
0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600
<http://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600>
"/>
>>>>>>         </transportConnectors>
>>>>>>
>>>>>>         <!-- destroy the spring context on shutdown to stop jetty -->
>>>>>>
>>>>>>
>>>>>>         <shutdownHooks>
>>>>>>             <bean xmlns="http://www.springframework.org/schema/beans";
class="org.apache.activemq.hooks.SpringContextHook" />
>>>>>>         </shutdownHooks>
>>>>>>
>>>>>>     </broker>
>>>>>>
>>>>>>
>>>>>>         <import resource="jetty.xml"/>
>>>>>>
>>>>>>
>>>>>>
>>>>>> </beans>
>>>>>>
>>>>>> ———>
>>>>>> thanks
>>>>>>
>>>>>>
>>>>>>> On Sep 1, 2016, at 4:44 PM, Hassen Bennour <bennour.has...@gmail.com>
wrote:
>>>>>>>
>>>>>>> Simply http://activemq.apache.org/persistence.html
>>>>>>>
>>>>>>> Configuring Kaha Persistence
>>>>>>> In the broker XML specify the persistence adaptor to be Kaha e.g.
>>>>>>> ActiveMQ 5.0 and above:
>>>>>>> <broker brokerName="broker" persistent="true"
useShutdownHook="false">
>>>>>>>    <persistenceAdapter>
>>>>>>>      <kahaPersistenceAdapter directory="activemq-data"
maxDataFileLength="33554432"/>
>>>>>>>    </persistenceAdapter>
>>>>>>> </broker>
>>>>>>>
>>>>>>> Le 1 sept. 2016 01:46, "Crishel Yumul" <crishel.yu...@toro.io> a
écrit :
>>>>>>>>
>>>>>>>> I want my messages on every topics will be retain in case of
broker failure or restart.
>>>>>>>>
>>>>>>>>> On Aug 31, 2016, at 5:41 PM, Hassen Bennour <
bennour.has...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> Can you explain more ?
>>>>>>>>>
>>>>>>>>> Le 31 août 2016 10:47, "Crishel Yumul" <crishel.yu...@toro.io> a
écrit :
>>>>>>>>>>
>>>>>>>>>> Yass’s! Thanks. One last question..
>>>>>>>>>> Is there anyway the messages will retain even if the master
broker stopped and the slave will be up?
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>> On Aug 31, 2016, at 4:44 PM, Hassen Bennour <
bennour.has...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Ok this is a good example but i thnik you need to work with
your developers is better to know how to configure another powerful things
of AMQ client
>>>>>>>>>>>
>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>> <beans 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";>
>>>>>>>>>>>
>>>>>>>>>>>         <bean id="jmsFactory"
class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
>>>>>>>>>>>                 <property name="connectionFactory">
>>>>>>>>>>>                         <bean
class="org.apache.activemq.ActiveMQConnectionFactory">
>>>>>>>>>>>                                 <property name="brokerURL"
value="${jms.url}"/>
>>>>>>>>>>>                                 <property name="userName"
value="${jms.username}"/>
>>>>>>>>>>>                                 <property name="password"
value="${jms.password}"/>
>>>>>>>>>>> <property name="clientID" value="${clientId}" />
>>>>>>>>>>>                         </bean>
>>>>>>>>>>>                 </property>
>>>>>>>>>>>         </bean>
>>>>>>>>>>> <!-- in bound Topic -->
>>>>>>>>>>> <bean id="myDestination"
class="org.apache.activemq.command.ActiveMQTopic">
>>>>>>>>>>> <constructor-arg value="${inbound.destination.name}" />
>>>>>>>>>>> </bean>
>>>>>>>>>>> <bean id="defaultMessageListener"
class="DefaultMessageListener">
>>>>>>>>>>> <property name="messageListener"
ref="messageListenerRepository" />
>>>>>>>>>>> </bean>
>>>>>>>>>>> <bean id="messageListenerAdapter"
>>>>>>>>>>>
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
>>>>>>>>>>> <constructor-arg
>>>>>>>>>>> ref="defaultMessageListener" />
>>>>>>>>>>> </bean>
>>>>>>>>>>>
>>>>>>>>>>> <!-- Listener Contatiner-->
>>>>>>>>>>> <bean id="jmsContainer" destroy-method="shutdown"
>>>>>>>>>>>
class="org.springframework.jms.listener.DefaultMessageListenerContainer" >
>>>>>>>>>>> <property name="connectionFactory" ref="connectionFactory" />
>>>>>>>>>>> <property name="destination" ref="myDestination" />
>>>>>>>>>>> <property name="messageListener" ref="messageListenerAdapter" />
>>>>>>>>>>> <property name="subscriptionDurable" value="true" />
>>>>>>>>>>> </bean>
>>>>>>>>>>> </beans>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> public class DefaultMessageListener implements MessageListener {
>>>>>>>>>>>
>>>>>>>>>>> @Override
>>>>>>>>>>> public void handleMessage(String message) throws Exception {
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> @Override
>>>>>>>>>>> public void handleMessage(Map message) throws Exception {
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> @Override
>>>>>>>>>>> public void handleMessage(byte[] message) throws Exception {
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> @Override
>>>>>>>>>>> public void handleMessage(Serializable message) throws
Exception {
>>>>>>>>>>> }
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Kind regards.
>>>>>>>>>>>
>>>>>>>>>>> BENNOUR HASSEN
>>>>>>>>>>>
>>>>>>>>>>> SOA Architect / Java Software Engineer
>>>>>>>>>>>
>>>>>>>>>>> 2016-08-31 10:14 GMT+02:00 Crishel Yumul <crishel.yu...@toro.io
>:
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks but I’m no programmer. I’m just dealing with Spring.
Here’s the current config of my customer:
>>>>>>>>>>>>
>>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>>> <beans 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";>
>>>>>>>>>>>>
>>>>>>>>>>>>         <bean id="jmsFactory"
class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
>>>>>>>>>>>>                 <property name="connectionFactory">
>>>>>>>>>>>>                         <bean
class="org.apache.activemq.ActiveMQConnectionFactory">
>>>>>>>>>>>>                                 <property name="brokerURL"
value="${jms.url}"/>
>>>>>>>>>>>>                                 <property name="userName"
value="${jms.username}"/>
>>>>>>>>>>>>                                 <property name="password"
value="${jms.password}"/>
>>>>>>>>>>>>                         </bean>
>>>>>>>>>>>>                 </property>
>>>>>>>>>>>>         </bean>
>>>>>>>>>>>> </beans>
>>>>>>>>>>>>
>>>>>>>>>>>>> On Aug 31, 2016, at 4:12 PM, Hassen Bennour <
bennour.has...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>
>>>>>>>>>>>>> here is an example
>>>>>>>>>>>>>
>>>>>>>>>>>>> import javax.jms.Connection;
>>>>>>>>>>>>> import javax.jms.ConnectionFactory;
>>>>>>>>>>>>> import javax.jms.JMSException;
>>>>>>>>>>>>> import javax.jms.Message;
>>>>>>>>>>>>> import javax.jms.MessageListener;
>>>>>>>>>>>>> import javax.jms.Session;
>>>>>>>>>>>>> import javax.jms.Topic;
>>>>>>>>>>>>> import javax.jms.TopicSubscriber;
>>>>>>>>>>>>>
>>>>>>>>>>>>> import org.apache.activemq.ActiveMQConnectionFactory;
>>>>>>>>>>>>>
>>>>>>>>>>>>> public class DurableSubscriberListener {
>>>>>>>>>>>>>
>>>>>>>>>>>>> public static void main(String[] args) throws JMSException {
>>>>>>>>>>>>> Connection conn = null;
>>>>>>>>>>>>> try {
>>>>>>>>>>>>> ConnectionFactory cf = new ActiveMQConnectionFactory();
>>>>>>>>>>>>> conn = cf.createConnection();
>>>>>>>>>>>>> Session session = conn.createSession(false,
Session.AUTO_ACKNOWLEDGE);
>>>>>>>>>>>>> Topic dest = session.createTopic("topic");
>>>>>>>>>>>>> conn.setClientID("durableSubscriber");
>>>>>>>>>>>>> TopicSubscriber durableSubscriber =
session.createDurableSubscriber(dest, "durableSubscriber");
>>>>>>>>>>>>> durableSubscriber.setMessageListener(new MessageListener() {
>>>>>>>>>>>>> @Override
>>>>>>>>>>>>> public void onMessage(Message message) {
>>>>>>>>>>>>> // TODO Auto-generated method stub
>>>>>>>>>>>>>
>>>>>>>>>>>>> }
>>>>>>>>>>>>> });
>>>>>>>>>>>>> conn.start();
>>>>>>>>>>>>> } catch (Exception e) {
>>>>>>>>>>>>> // TODO Auto-generated catch block
>>>>>>>>>>>>> e.printStackTrace();
>>>>>>>>>>>>> } finally {
>>>>>>>>>>>>> if (conn != null) {
>>>>>>>>>>>>> try {
>>>>>>>>>>>>> conn.close();
>>>>>>>>>>>>> } catch (Exception e) {
>>>>>>>>>>>>> }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> }
>>>>>>>>>>>>>
>>>>>>>>>>>>> you have all examples under AMQ installation
, 
${ACTIVEMQ_HOME}/examples\openwire\exploring-jms\TopicPubSubSamples\DurableChat
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Kind regards.
>>>>>>>>>>>>>
>>>>>>>>>>>>> BENNOUR HASSEN
>>>>>>>>>>>>>
>>>>>>>>>>>>> SOA Architect / Java Software Engineer
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2016-08-31 9:28 GMT+02:00 Crishel Yumul <crishel.yu...@toro.io
>:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Good day!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I would like to ask how to create a durable subscriber.
Written and video tutorials just made me confuse. Can you help me again
this time? Thanks a lot. I  have a lot questions.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Crishel Yumul
>>>>>>>>>>>>>> DevOps
>>>>>>>>>>>>>> TORO Limited
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to