Hi Gary,

thanks again.

Yes some of the queues grow larger than previously in terms of pending
messages just before the tmp store is created.

So we need to increase our memoryUsage under the systemUsage element of the
broker configuration?  Currently it will just be using the defaults.

I was not aware that the messages were stored in memory as well as being
persisted in the database.  How does this improve performance because surely
for persistence the database must be written to as well?

The xml config is below:



<beans
  xmlns="http://www.springframework.org/schema/beans";
  xmlns:amq="http://activemq.apache.org/schema/core";
  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-2.0.xsd
  http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd";>

    
    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.base}/conf/credentials.properties</value>
        </property>      
    </bean>

    
    <broker xmlns="http://activemq.apache.org/schema/core"; 
            brokerName="master-01" 
            dataDirectory="${activemq.base}/data" 
                        
            destroyApplicationContextOnStop="true">
 
        
              
        <destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" producerFlowControl="true"
memoryLimit="1mb">
                  <pendingSubscriberPolicy>
                    <vmCursor />
                  </pendingSubscriberPolicy>
                </policyEntry>
                <policyEntry queue=">" producerFlowControl="true"
memoryLimit="1mb">
                  
                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy> 
 
        
        
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        
        <persistenceAdapter>
            <jdbcPersistenceAdapter createTablesOnStartup="false" 
dataDirectory="${activemq.base}/data" dataSource="#sqlserver-ds">
            <statements>
                <statements>
                    <property
xmlns="http://www.springframework.org/schema/beans";
name="createSchemaStatements">
                        <list>
                            <value>CREATE TABLE ACTIVEMQ_MSGS(ID BIGINT NOT
NULL, CONTAINER VARCHAR(250), MSGID_PROD VARCHAR(250), MSGID_SEQ BIGINT,
EXPIRATION BIGINT, MSG IMAGE, CONSTRAINT PK_MSGS PRIMARY KEY ( ID )
)</value>
                            <value>CREATE INDEX ACTIVEMQ_MSGS_MIDX ON
ACTIVEMQ_MSGS (MSGID_PROD,MSGID_SEQ)</value>
                            <value>CREATE INDEX ACTIVEMQ_MSGS_CIDX ON
ACTIVEMQ_MSGS (CONTAINER)</value>
                            <value>CREATE INDEX ACTIVEMQ_MSGS_EIDX ON
ACTIVEMQ_MSGS (EXPIRATION)</value>
                            <value>CREATE TABLE ACTIVEMQ_ACKS(CONTAINER
VARCHAR(250) NOT NULL, SUB_DEST VARCHAR(250), CLIENT_ID VARCHAR(250) NOT
NULL, SUB_NAME VARCHAR(250) NOT NULL, SELECTOR VARCHAR(250), LAST_ACKED_ID
BIGINT, PRIORITY BIGINT DEFAULT 5 NOT NULL, CONSTRAINT PK_ACKS PRIMARY KEY (
CONTAINER, CLIENT_ID, SUB_NAME, PRIORITY))</value>
                            <value>CREATE TABLE ACTIVEMQ_LOCK( ID BIGINT NOT
NULL, TIME BIGINT, BROKER_NAME VARCHAR(250), PRIMARY KEY (ID) )</value>
                            <value>INSERT INTO ACTIVEMQ_LOCK(ID) VALUES
(1)</value>
                            <value>ALTER TABLE ACTIVEMQ_MSGS ADD PRIORITY
BIGINT</value>
                            <value>CREATE INDEX ACTIVEMQ_MSGS_PIDX ON
ACTIVEMQ_MSGS (PRIORITY)</value>
                         </list>
                     </property>
                </statements>
            </statements>
            </jdbcPersistenceAdapter>
        </persistenceAdapter>
        
        
          
                  
        
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
        </transportConnectors>

    </broker>
    
    
    <bean id="sqlserver-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://localhost:1443;database=activemq"/>
        <property name="username" value="usera"/>
        <property name="password" value="blah"/>
        <property name="maxActive" value="200"/>
        <property name="poolPreparedStatements" value="true"/>
    </bean>

    
    <import resource="jetty.xml"/>
    
</beans>



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/ActiveMQ-JDBC-Storage-Slow-down-tp3712166p3715975.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to