Details
Description
Following from this discussion:
http://www.nabble.com/Fast-producer%2C-slow-consumer-with-spooling-to-disk--tf3123868.html
Rob Davies implemented VMPendingSubscriberMessageStoragePolicy which, if I understand correctly, should cause a fast producer to block if a slow consumer can't keep up.
However, when running the attached test case, the system seems to hang before the consumers have received much more than 5 messages. When it hangs probably depends on the heap size.
I get this:
2007-02-02 13:44:23,281 [main ] INFO BrokerService - ActiveMQ null JMS Message Broker (localhost) is starting
2007-02-02 13:44:23,281 [main ] INFO BrokerService - For help or more information please see: http://incubator.apache.org/activemq/
2007-02-02 13:44:25,312 [main ] INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby_embedded_jdbc_driver]
2007-02-02 13:44:26,500 [main ] INFO DefaultDatabaseLocker - Attempting to acquire the exclusive lock to become the Master broker
2007-02-02 13:44:26,531 [main ] INFO DefaultDatabaseLocker - Becoming the master on dataSource: org.apache.derby.jdbc.EmbeddedDataSource@1372656
2007-02-02 13:44:26,593 [main ] INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Journal: using 2 x 20.0 Megs at: C:\home\albert\work5\activemq\activemq-core\activemq-data\localhost\journal
2007-02-02 13:44:26,671 [main ] INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in transactions recovered.
2007-02-02 13:44:26,859 [main ] INFO BrokerService - Using Persistence Adapter: JournalPersistenceAdapator(JDBCPersistenceAdaptor(org.apache.derby.jdbc.EmbeddedDataSource@1372656))
2007-02-02 13:44:26,906 [main ] INFO JournalPersistenceAdapter - Journal deleted:
2007-02-02 13:44:29,296 [main ] WARN DefaultJDBCAdapter - Could not create JDBC tables; they could already exist. Failure was: CREATE TABLE ACTIVEMQ_LOCK( ID BIGINT NOT NULL, TIME BIGINT, BROKER_NAME VARCHAR(250), PRIMARY KEY (ID) ) Message: Table/View 'ACTIVEMQ_LOCK' already exists in Schema 'APP'. SQLState: X0Y32 Vendor code: 30000
2007-02-02 13:44:29,343 [main ] WARN DefaultJDBCAdapter - Could not create JDBC tables; they could already exist. Failure was: INSERT INTO ACTIVEMQ_LOCK(ID) VALUES (1) Message: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'SQL070130113001540' defined on 'ACTIVEMQ_LOCK'. SQLState: 23505 Vendor code: 30000
2007-02-02 13:44:29,484 [main ] INFO TransportServerThreadSupport - Listening for connections at: tcp://ratbert:60706
2007-02-02 13:44:29,515 [main ] INFO TransportConnector - Connector tcp://ratbert:60706 Started
2007-02-02 13:44:29,515 [main ] INFO BrokerService - ActiveMQ JMS Message Broker (localhost, ID:ratbert-2177-1170416663296-1:0) started
2007-02-02 13:44:29,578 [JMX connector ] INFO ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
2007-02-02 13:44:29,625 [/127.0.0.1:2181] INFO KahaStore - Kaha Store successfully deleted data directory activemq-data\localhost\tmp_storage
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
GOT A MESSAGE BEING SLOW
before it hangs.
Attachments
Attachments
1.
|
Slow consumer causes producer to block on UsageManager.waitForSpace indefinately | Resolved | Unassigned |