Hi bsnyder,

     My requirement is as follows
          - Bulk messages of size approximately 1MB will be stored in
durable topic.
          - clients will read this messages by using message selectors.
     so, in the above scenario if i use mySQL for persitence storage of
messages and activeMQ 5.0 then i can take advantage of spooling. 

      so, the message for a particular client will be loaded into heap from
DB and will be dispatched to the client when the client tries to read the
message.
      Is my understanding correct?


     - At some point of time iam getting the following error on servicemix
console when iam using mySQL 5.0 as persitence storage.

ERROR - JournalPersistenceAdapter      - Failed to checkpoint a message
store: edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
java.io.IOException: Not started.

edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
java.io.IOException: Not started.

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:299)

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:118)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:386)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)

        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)

        at
org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)

        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

        at java.lang.Thread.run(Thread.java:595)

Caused by: java.io.IOException: Not started.

        at
org.apache.activemq.store.jdbc.TransactionContext.rollback(TransactionContext.java:168)

        at
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.rollbackTransaction(JDBCPersistenceAdapter.java:368)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.rollbackTransaction(JournalPersistenceAdapter.java:197)

        at
org.apache.activemq.util.TransactionTemplate.run(TransactionTemplate.java:62)

        at
org.apache.activemq.store.journal.JournalMessageStore.checkpoint(JournalMessageStore.java:247)

        at
org.apache.activemq.store.journal.JournalMessageStore.checkpoint(JournalMessageStore.java:221)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$4.call(JournalPersistenceAdapter.java:356)

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)

        ... 3 more

ERROR - JournalPersistenceAdapter      - Failed to mark the Journal:
org.apache.activeio.journal.InvalidRecordLocationException: The location is
less than the last mark.

org.apache.activeio.journal.InvalidRecordLocationException: The location is
less than the last mark.

        at
org.apache.activeio.journal.active.JournalImpl.setMark(JournalImpl.java:340)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:403)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)

        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)

        at
org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)

        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

        at java.lang.Thread.run(Thread.java:595)

ERROR - JournalPersistenceAdapter      - Failed to checkpoint a message
store: edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
java.io.IOException: Not started.

edu.emory.mathcs.backport.java.util.concurrent.ExecutionException:
java.io.IOException: Not started.

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:299)

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:118)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:386)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)

        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)

        at
org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)

        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

        at java.lang.Thread.run(Thread.java:595)

Caused by: java.io.IOException: Not started.

        at
org.apache.activemq.store.jdbc.TransactionContext.rollback(TransactionContext.java:168)

        at
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.rollbackTransaction(JDBCPersistenceAdapter.java:368)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.rollbackTransaction(JournalPersistenceAdapter.java:197)

        at
org.apache.activemq.util.TransactionTemplate.run(TransactionTemplate.java:62)

        at
org.apache.activemq.store.journal.JournalMessageStore.checkpoint(JournalMessageStore.java:247)

        at
org.apache.activemq.store.journal.JournalMessageStore.checkpoint(JournalMessageStore.java:221)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$4.call(JournalPersistenceAdapter.java:356)

        at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)

        ... 3 more

ERROR - JournalPersistenceAdapter      - Failed to mark the Journal:
org.apache.activeio.journal.InvalidRecordLocationException: The location is
less than the last mark.

org.apache.activeio.journal.InvalidRecordLocationException: The location is
less than the last mark.

        at
org.apache.activeio.journal.active.JournalImpl.setMark(JournalImpl.java:340)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:403)

        at
org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)

        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)

        at
org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)

        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

        at java.lang.Thread.run(Thread.java:595)


bsnyder wrote:
> 
> On 6/12/07, Arif Mohd <[EMAIL PROTECTED]> wrote:
>>
>> Hi Gert,
>>
>>      1) If i move from derby to mysql, How will be the internal working
>> of
>> durable topic and queues?
> 
> I assume you're referring to changing the persistence configuration
> for ActiveMQ, correct? If this is what you're referring to, the only
> thing that this affects is that messages are persisted to MySQL
> instead of Derby. The big advantage to doing this is that Derby can be
> very garbage collection intense under heavier loads. So using a
> database that does not run in the same JVM as ActiveMQ can improve the
> performance of the JVM therefore freeing up resources.
> 
>>      2) Does the messages stored in DB(messages of durable topic and
>> queues)
>> will be loaded into memory as and when they are required? or all the
>> messages from the DB will be loaded into heap?
> 
> I assume you're using ServiceMix 3.1 which uses ActiveMQ 4.1. This
> version of ActiveMQ holds all messages in memory and is therefore
> limited to the amount of memory available. (As a side note, ActiveMQ
> 5.0 (the trunk) can now spool messages to disk and does so by default.
> This allows ActiveMQ to scale much further regarding the number of
> messages it can handle.)
> 
>>      3) will it work like Paging concept of Operating system?
> 
> See above, this functionality is available in ActiveMQ 5.0 (the trunk).
> 
> Bruce
> -- 
> perl -e 'print
> unpack("u30","D0G)[EMAIL PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
> 
> Apache Geronimo - http://geronimo.apache.org/
> Apache ActiveMQ - http://activemq.org/
> Apache ServiceMix - http://servicemix.org/
> Castor - http://castor.org/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/servicemix-Hanging-tf3899807s12049.html#a11093144
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to