I'm still a newbie with activemq and I have been having problem with message
persistence. What I'm trying to do is to have three queues with each queue
being read by a single unique user. I'm trying to use journals and database
(MS SQL) for message persistence. I'm running now two clients one uses php /
stomp to read messages and one use jms to produce messages. Whenever I
create a message by the java client the message is saved in the database
only when it's read by the php client. So if I create 5 messages while the
php client is down, and then I run the php client the 5 message are saved to
the database. However if activemq dies before I read the 5 messages all
messages are lost and to saved to the journal or the database. Can someone
direct me to what I'm doing wrong? 

here is part of my config file:

  <broker xmlns="http://activemq.org/config/1.0"; brokerName="localhost"
persistent="true" useJmx="true">
  
    <!-- Destination specific policies using destination names or wildcards
-->
    <destinationPolicy>
      <policyMap>
        <policyEntries>

          <policyEntry queue="FOREX.>" producerFlowControl="false"
memoryLimit="1mb">
            <dispatchPolicy>
              <strictOrderDispatchPolicy/>
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy/>
            </subscriptionRecoveryPolicy>
          </policyEntry>

        </policyEntries>
      </policyMap>
    </destinationPolicy>


    <!-- The transport connectors ActiveMQ will listen to -->
    <transportConnectors>
       <transportConnector name="openwire" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
       <transportConnector name="ssl"     uri="ssl://localhost:61617"/>
       <transportConnector name="stomp"   uri="stomp://localhost:61613"/>
       <transportConnector name="xmpp"    uri="xmpp://localhost:61222"/>
    </transportConnectors>

    <!-- The store and forward broker networks ActiveMQ will listen to -->
    <networkConnectors>
      <!-- by default just auto discover the other brokers -->
      <networkConnector name="default-nc" uri="multicast://default"/>
      <!--
      <networkConnector name="host1 and host2"
uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
      -->
    </networkConnectors>


    <!-- Use the following if you wish to configure the journal with JDBC
-->

    <!-- Or if you want to use pure JDBC without a journal -->
    <!--
    <persistenceAdapter>
        <jdbcPersistenceAdapter dataSource="#postgres-ds"/>
    </persistenceAdapter>
    -->
   
    <!--  Use the following to set the broker memory limit
        <systemUsage>
                    <systemUsage>
                            <memoryUsage>
                                <memoryUsage limit="10 mb" 
percentUsageMinDelta="20"/>
                            </memoryUsage>
                            <tempUsage>
                                <tempUsage limit="100 mb"/>
                            </tempUsage>
                            <storeUsage>
                                <storeUsage limit="1 gb" name="foo"/>
                            </storeUsage>
                    </systemUsage>
            </systemUsage>
   -->
    
    <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
    <managementContext>
       <managementContext connectorPort="1099"
jmxDomainName="org.apache.activemq"/>
    </managementContext>

    <plugins>
      <simpleAuthenticationPlugin>
        <users>
                <authenticationUser username="forex" password="forex"
                        groups="forexusers"/>
                <authenticationUser username="equity" password="equity"
                        groups="equityusers"/>
        </users>
      </simpleAuthenticationPlugin>
        <authorizationPlugin>
        <map>
          <authorizationMap>
            <authorizationEntries>
              <authorizationEntry queue="FOREX.>" read="forexusers"
write="forexusers, equityusers" admin="forexusers" />
              <authorizationEntry queue="EQUITY.>" read="equityusers"
write="forexusers, equityusers" admin="equityusers" />
              <authorizationEntry topic=">" read="forexusers,equityusers"
write="forexusers, equityusers" admin="forexusers,equityusers" />
            </authorizationEntries>            
            <tempDestinationAuthorizationEntry>  
              <tempDestinationAuthorizationEntry read="forexusers"
write="forexusers" admin="forexusers"/>
           </tempDestinationAuthorizationEntry>          
          </authorizationMap>
        </map>
      </authorizationPlugin>
    </plugins>


    <persistenceAdapter>
        <journaledJDBC journalLogFiles="5" dataDirectory="../data" 
dataSource="#mssql-ds" useDatabaseLock="false" />
    </persistenceAdapter>

  </broker>

  <bean id="mssql-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
    <property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url"
value="jdbc:sqlserver://172.25.1.14:1433;databaseName=activemq;user=onlinetrader;password=shihab12"/>
    <property name="username" value="onlinetrader"/>
    <property name="password" value="shihab12"/>
  </bean>
-- 
View this message in context: 
http://www.nabble.com/Queue-Message-Persistence-tp16234078s2354p16234078.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to