XML configuration: The element topic : Usage
Hello, for the startup configuration of topics, the xml configuration file contains the element 'topic'. This element has got the element 'properties' (type: spring bean). How do I use this element? I've tried this: topic physicalName=THE_TOPIC properties bean class=org.springframework.beans.factory.config.PropertiesFactoryBean property name=topic.THE_TOPIC value=THE_TOPIC / /bean /properties /topic Is it correct? Thank you. -- View this message in context: http://www.nabble.com/XML-configuration%3A-The-element-topic-%3A-Usage-tf3788528s2354.html#a10713776 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Activemq cpp for solaris compilation error
Hi, I was trying to compile the cpp client in solaris and got the following compilation error. The compiler used was g++ 3.4.3 Undefined first referenced symbol in file vtable for activemq::connector::openwire::marshal::v2::ActiveMQStreamMessageMarshaller../main/MarshallerFactory.o typeinfo for activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller../main/ActiveMQQueueMarshaller.o vtable for activemq::connector::openwire::marshal::v2::ActiveMQBytesMessageMarshaller../main/MarshallerFactory.o activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller::tightMarshal2(activemq::connector::openwire::OpenWireFormat*, activemq::connector::openwire::commands::DataStructure*, activemq::io::DataOutputStream*, activemq::connector::openwire::utils::BooleanStream*)../main/ActiveMQQueueMarshaller.o activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller::tightUnmarshal(activemq::connector::openwire::OpenWireFormat*, activemq::connector::openwire::commands::DataStructure*, activemq::io::DataInputStream*, activemq::connector::openwire::utils::BooleanStream*)../main/ActiveMQQueueMarshaller.o activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller::looseUnmarshal(activemq::connector::openwire::OpenWireFormat*, activemq::connector::openwire::commands::DataStructure*, activemq::io::DataInputStream*)../main/ActiveMQQueueMarshaller.o vtable for activemq::connector::openwire::marshal::v2::NetworkBridgeFilterMarshaller../main/MarshallerFactory.o activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller::tightMarshal1(activemq::connector::openwire::OpenWireFormat*, activemq::connector::openwire::commands::DataStructure*, activemq::connector::openwire::utils::BooleanStream*)../main/ActiveMQQueueMarshaller.o vtable for activemq::connector::openwire::marshal::v2::RemoveSubscriptionInfoMarshaller../main/MarshallerFactory.o activemq::connector::openwire::marshal::v2::ActiveMQDestinationMarshaller::looseMarshal(activemq::connector::openwire::OpenWireFormat*, activemq::connector::openwire::commands::DataStructure*, activemq::io::DataOutputStream*)../main/ActiveMQQueueMarshaller.o vtable for activemq::connector::openwire::marshal::v2::ActiveMQTextMessageMarshaller../main/MarshallerFactory.o ld: fatal: Symbol referencing errors. No output written to example collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command failed for target `example' Could somebody throw some light here? Many thanks in advance.. Cheers! -- View this message in context: http://www.nabble.com/Activemq-cpp-for-solaris-compilation-error-tf370s2354.html#a10714775 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Write to Topic when one is not created
You were right, when i disabled advisory support those topics stopped showing up. I am getting Out of Memory errors and I thought that that might be a problem, messages being queued but not consumed. I am using a Snapshot version of 4.2, are you aware of any known issues that would cause an java heap out of memory problem? Thank you jlim wrote: Hi, I believe what you're seeing are advisory topics which are automatically created by default by activemq to send advisory messages to monitor the behavior of the system (ie. starting of connections, creation of destinations, etc). http://activemq.apache.org/advisory-message.html Btw, you can also disable advisory support by setting it to false in your broker configuration : broker brokerName=localhost useJmx=true advisorySupport=false Regards, Jonas camper wrote: I seem to be sending messages to a topic when in fact i'm not creating one. If I run activemq-admin query, i see my queues that i've created but there also seems to be a topic created for each queue, that i've created in my code i never call createTopic, always createQueue. I see the topics EnqueueCount grow, I have no idea why. Does anyone know what is going on? -- View this message in context: http://www.nabble.com/Write-to-Topic-when-one-is-not-created-tf3788112s2354.html#a10716518 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Write to Topic when one is not created
On 5/21/07, camper [EMAIL PROTECTED] wrote: You were right, when i disabled advisory support those topics stopped showing up. I am getting Out of Memory errors and I thought that that might be a problem, messages being queued but not consumed. I am using a Snapshot version of 4.2, are you aware of any known issues that would cause an java heap out of memory problem? Maybe you need to increase the heap size? Which heap is running out, the broker or the jms client? -- James --- http://macstrac.blogspot.com/
Re: Write to Topic when one is not created
in activemq.xml i have usageManager set to 4096 MB, this is the output when it dies Exception in thread ActiveMQ Transport: tcp:///192.168.2.184:52359 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:35570 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:35656 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:2719 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:3396 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.184:40448 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:3915 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:4249 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:4731 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:34827 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.184:45461 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:35276 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.184:46105 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:35594 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport Server: ssl://localhost:61617 Exception in thread ActiveMQ Transport Status Monitor: openwire Exception in thread MulticastDiscovery: tcp://stan:61616 java.lang.OutOfMemoryError: Java heap space Exception in thread btpool0-0 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.183:29306 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Scheduler java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:35782 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport Server: tcp://localhost:61616 java.lang.OutOfMemoryError: Java heap space Exception in thread RMI RenewClean-[192.168.2.184:39024] Exception in thread RMI LeaseChecker java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport Status Monitor: ssl Exception in thread ActiveMQ Transport Server: stomp://localhost:61613 java.lang.OutOfMemoryEr ror: Java heap space Exception in thread ActiveMQ Transport: tcp:///192.168.2.182:2350 java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport Status Monitor: xmpp java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Transport Server: xmpp://localhost:61222 Exception in thread ActiveMQ Transport Status Monitor: stomp java.lang.OutOfMemoryE rror: Java heap space java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Scheduler java.lang.OutOfMemoryError: Java heap space Exception in thread ActiveMQ Scheduler java.lang.OutOfMemoryError: Java heap space James.Strachan wrote: On 5/21/07, camper [EMAIL PROTECTED] wrote: You were right, when i disabled advisory support those topics stopped showing up. I am getting Out of Memory errors and I thought that that might be a problem, messages being queued but not consumed. I am using a Snapshot version of 4.2, are you aware of any known issues that would cause an java heap out of memory problem? Maybe you need to increase the heap size? Which heap is running out, the broker or the jms client? -- James --- http://macstrac.blogspot.com/ -- View this message in context: http://www.nabble.com/Write-to-Topic-when-one-is-not-created-tf3788112s2354.html#a10716734 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Write to Topic when one is not created
On 5/21/07, camper [EMAIL PROTECTED] wrote: in activemq.xml i have usageManager set to 4096 MB, this is the output when it dies Note that setting does not affect the JVM heap size; try changing that. -- James --- http://macstrac.blogspot.com/
Creating Network of Brokers
Hi I have just installed activemq, I have to start work with failover netowrk brokers.I dont have much idea about this can any one explain me regarding this. I did like this iam not sure iam right.if wrong please help me. 1. I have created first broker like this , In the activemq.xml i put these values transportConnectors transportConnector uri=discovery:tcp://localhost:61617/ /transportConnectors networkConnectors networkConnector uri=static:tcp://localhost:61618/ /networkConnectors after that i have started activemq it says activemq jms started. 2.I created second broker like this. I have modified the same activemq.xml by changing transportConnectors and /networkConnectors values like this. transportConnectors transportConnector uri=discovery:tcp://localhost:61618/ /transportConnectors networkConnectors networkConnector uri=static:tcp://localhost:61617/ /networkConnectors and started a activemq in another command window and got these message INFO faultPersistenceAdapterFactory - Journal is locked... waiting 10 seconds f or the journal to be unlocked. when i kill the first activemq process second gets activated. but iam not understanding where i have to include failover detail ??? these details where i have to include ?? networkConnectors networkConnector uri=static:failover:tcp://localhost:61617/tcp://localhost:61617%22/ /networkConnectors is it in the client program like consumer ??? or in some file, please expalin Thanks cinod -- View this message in context: http://www.nabble.com/Creating-Network-of-Brokers-tf3790031s2354.html#a10718124 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Implementation of multithreading model on CMS ActiveMQ
I am bit confused from the JMS specification. I want to implement mutithreaded model for producer/consumer. Now I am confused at the point where, I have only one destination object (Queue). So should I create mutiple threads, each thread having one session and one producer. OR, multiple threads running (concurrency controled) single session and single producer. -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-on-CMS-ActiveMQ-tf3790047s2354.html#a10718189 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
How do I remove ActiveMQ.Advisory.Producer.Queue.xxxx
My ActiveMQ clients create TEMPORARY queues and I have been looking through the active queues recently and I noticed a number of advisory queues are sticking around that refer to the temporary queues that I created. It seems that even though the temporary queues are gone the advisory topics are still there. How and when do the advisory queues disappear? How can I remove them? -- View this message in context: http://www.nabble.com/How-do-I-remove-ActiveMQ.Advisory.Producer.Queue.-tf3790271s2354.html#a10718846 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
RE: Implementation of multithreading model on CMS ActiveMQ
The formal JMS/CMS definition of a Session implies that each thread would get its own session. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads. For consumers, it should be known that each session has a single message dispatch thread, so a slow asynchronous consumer (one that processes messages in the session's thread context) would slow down other consumers of the same session. If you plan on using synchronous consumers (via the receive method), you should not have multiple threads calling receive() on the same consumer. Nate -Original Message- From: Pravin Kundal [mailto:[EMAIL PROTECTED] Sent: Monday, May 21, 2007 8:55 AM To: users@activemq.apache.org Subject: Implementation of multithreading model on CMS ActiveMQ I am bit confused from the JMS specification. I want to implement mutithreaded model for producer/consumer. Now I am confused at the point where, I have only one destination object (Queue). So should I create mutiple threads, each thread having one session and one producer. OR, multiple threads running (concurrency controled) single session and single producer. -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-o n-CMS-ActiveMQ-tf3790047s2354.html#a10718189 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
How to test a failover netowork broker
Hi friends, How i can test a activemq failover broker, i have created two brokers and i want to test with a simple program can any one help me thanks -- View this message in context: http://www.nabble.com/How-to-test-a-failover-netowork-broker-tf3790548s2354.html#a10719646 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
RE: Implementation of multithreading model on CMS ActiveMQ
In the case I will need to implement the concurrency control over the session, so that only one thread can use the session, as sessions are implemented for serial use? Rght? Yes, you should add your own concurrency control for the session. I tried the first case in which i implemented the multithreading, each thread running its own session and each session having one producer. But the results were not even close to our requriment (result in msges/sec). Were you using openwire or stomp as the protocol? We have seen cases where small messages with openwire cause extra delay due to the naggle algorithm and that message footprints are smaller than their stomp counterpart. If you're using openwire, I suggest you switch over to stomp and see if you have different results. If that does the trick, our next release will allow a user-specified TCP-NODELAY socket option that should fix the problem for openwire (for small messages). Do you think the other case can give us the better results (i.e. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads.) Without understanding your particular usage of the client, I would guess that a different usage wouldn't help much. Just to make sure, however, you could slightly modify our example application https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk/src/example s/main.cpp and see if you can get it to meet your requirements. Regards, Nate
RE: Implementation of multithreading model on CMS ActiveMQ
Sorry, I missed the second line of link. I could access it. Thanks Pravin Kundal wrote: I couldn't access the link below. Is it the same example that Apache-ActiveMQ ship with the CMS library? Thanks a lot. Mittler, Nathan wrote: In the case I will need to implement the concurrency control over the session, so that only one thread can use the session, as sessions are implemented for serial use? Rght? Yes, you should add your own concurrency control for the session. I tried the first case in which i implemented the multithreading, each thread running its own session and each session having one producer. But the results were not even close to our requriment (result in msges/sec). Were you using openwire or stomp as the protocol? We have seen cases where small messages with openwire cause extra delay due to the naggle algorithm and that message footprints are smaller than their stomp counterpart. If you're using openwire, I suggest you switch over to stomp and see if you have different results. If that does the trick, our next release will allow a user-specified TCP-NODELAY socket option that should fix the problem for openwire (for small messages). Do you think the other case can give us the better results (i.e. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads.) Without understanding your particular usage of the client, I would guess that a different usage wouldn't help much. Just to make sure, however, you could slightly modify our example application https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk/src/example s/main.cpp and see if you can get it to meet your requirements. Regards, Nate -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-on-CMS-ActiveMQ-tf3790047s2354.html#a10721114 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Transport Exceptions close the connection
Hello, I have the following problem : A connection(embedded broker, vm transport) is created and then a few sessions. I poll for messages, with my own threads in order to do throttling. One thing that confuses me is : if an exception occurs somewhere in the transport(for example an interrupt on the consuming thread) , the connection is closed with all the sessions and consumers/producers. I was able to listen for such an exceptions(with Connection.setExceptionListener(...)) and recreate the connection. I tried also with connectionFactory.setBrokerURL(failover:vm://localhost) which supposed to fix problems like this one, and to reconnect, but is not working as espected. I have Active MQ 4.0.2. ActiveMQConnections fragments : protected void transportFailed(IOException error){ transportFailed.set(true); if (firstFailureError == null) { firstFailureError = error; } if (!closed.get() !closing.get()) { try{ cleanup(); close all sessions }catch(JMSException e){ log.warn(Cleanup failed,e); } } } public void onException(final IOException error) { onAsyncException(error); asyncConnectionThread.execute(new Runnable(){ public void run() { transportFailed(error); ServiceSupport.dispose(ActiveMQConnection.this.transport); brokerInfoReceived.countDown(); for (Iterator iter = transportListeners.iterator(); iter.hasNext();) { TransportListener listener = (TransportListener) iter.next(); listener.onException(error); } } }); } Thanks. -- View this message in context: http://www.nabble.com/Transport-Exceptions-close-the-connection-tf3791363s2354.html#a10722140 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Transport Exceptions close the connection
On 5/21/07, Adrian Tarau [EMAIL PROTECTED] wrote: Hello, I have the following problem : A connection(embedded broker, vm transport) is created and then a few sessions. I poll for messages, with my own threads in order to do throttling. One thing that confuses me is : if an exception occurs somewhere in the transport(for example an interrupt on the consuming thread) , the connection is closed with all the sessions and consumers/producers. AFAIK thread interupt exceptions won't close a connection/session/transport. You sure its not some other underlying excpetion? I was able to listen for such an exceptions(with Connection.setExceptionListener(...)) and recreate the connection. I tried also with connectionFactory.setBrokerURL(failover:vm://localhost) which supposed to fix problems like this one, and to reconnect, but is not working as espected. When using vm:// you should never really need failover, since the broker is in the same JVM. Failover is intended for use with TCP where a remote broker may fail. Even if you were having a transport level exception (which shouldn't really happen with vm:// but maybe there's a bug we should catch handle InteruptedException better) then failover does the re-creation of all the connection/sessions for you so there's no real point trying to replicate that yourself (as you'll be opening all kinds of cans of worms, like figuring out which messages, transactions acknowledgements were in progress re-submitting them - all of which failover: already handles. BTW 4.0.2 is quite old, I'd recommend upgrading to 4.1.1 -- James --- http://macstrac.blogspot.com/
RE: Implementation of multithreading model on CMS ActiveMQ
Sorry ... The url should be tcp://localhost:61613?wireFormat=stomp See http://activemq.apache.org/cms/configuring.html -Original Message- From: Pravin Kundal [mailto:[EMAIL PROTECTED] Sent: Monday, May 21, 2007 12:34 PM To: users@activemq.apache.org Subject: RE: Implementation of multithreading model on CMS ActiveMQ I am trying to test it out using stomp. But it is giving me exceptions On Consumer Client: ActiveMQConnectionFactory - unknown Transport Factory. I tried with following brokerURI's std::string brokerURI = stomp://localhost:61613 ?wireFormat=stomp transport.useAsyncSend=true; std::string brokerURI = stomp://localhost:61613 std::string brokerURI = stomp://localhost:61616 can you please help us out? Thanks. Mittler, Nathan wrote: In the case I will need to implement the concurrency control over the session, so that only one thread can use the session, as sessions are implemented for serial use? Rght? Yes, you should add your own concurrency control for the session. I tried the first case in which i implemented the multithreading, each thread running its own session and each session having one producer. But the results were not even close to our requriment (result in msges/sec). Were you using openwire or stomp as the protocol? We have seen cases where small messages with openwire cause extra delay due to the naggle algorithm and that message footprints are smaller than their stomp counterpart. If you're using openwire, I suggest you switch over to stomp and see if you have different results. If that does the trick, our next release will allow a user-specified TCP-NODELAY socket option that should fix the problem for openwire (for small messages). Do you think the other case can give us the better results (i.e. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads.) Without understanding your particular usage of the client, I would guess that a different usage wouldn't help much. Just to make sure, however, you could slightly modify our example application https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk/src/examp le s/main.cpp and see if you can get it to meet your requirements. Regards, Nate -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-o n-CMS-ActiveMQ-tf3790047s2354.html#a10722340 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: How to test a failover netowork broker
On 5/21/07, Vinod_mit [EMAIL PROTECTED] wrote: Hi friends, How i can test a activemq failover broker, i have created two brokers and i want to test with a simple program can any one help me Try looking at some tests in ActiveMQ, we do similar things. Basically just run mutliple brokers in one JUnit test and stop a broker -- James --- http://macstrac.blogspot.com/
Could not create directory on journal directory path
ActiveMQ 4.1 on Windows 2003 with Java 1.5 I'm getting this in the error logs: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.activemq.store.PersistenceAdapterFactoryBean': FactoryBean threw exception on object creation; nested exception is java.io.IOException: Could not create directory: D:\apps\myproject\activemq_data\journal I don't see why. The directory exists already. Shawn This email may contain material confidential to Pearson. If you were not an intended recipient, please notify the sender and delete all copies. We may monitor email to and from our network.
RE: Implementation of multithreading model on CMS ActiveMQ
Hey Sir, the string you sent WORKED..thanks!! Stomp improved the results but still away from our target. posting some results. Message was string of around size 50 to 70 characters. All with Non_Persistent message relibility (i.e. atmost once) Here are our readings: A] Using Openwire, Asynchronous Consumer. 1] Multi Threading : one session, one producer per Thread: 214 msges/sec. 2] Multi Threading : one session, mutiple producers. concurrency implemented in client: 122 msges/sec. B] 1) Using Stomp, Asynchronous Consumer. 1] Single Thread: 410 msges/sec. 2] Multi Threading (2 Threads): one session, one producer per Thread: 357 msges/sec. 3] Multi Threading (5 Threads): one session, one producer per Thread: 413 msges/sec. 4] Multi Threading (5 Threads): one session, one producer per Thread: 387 msges/sec. 2) Using Stomp, Synchronous Consumer. 1] Single Thread: 367 msges/sec. So from the above results maximum is 413 what we got. Our target is upto 600 to 650 msges/sec. Also both producer and consumer are CMS ActiveMQ. Our Java team tested using Java clients (producer and consumer) with ActiveMQ broker with 10 threads running they are getting around 700 msges/sec. Is it because java supports internal multithreading or something else. Or any other reason I really appreciate for you quick and working out responses :) Thanks. Mittler, Nathan wrote: Sorry ... The url should be tcp://localhost:61613?wireFormat=stomp See http://activemq.apache.org/cms/configuring.html -Original Message- From: Pravin Kundal [mailto:[EMAIL PROTECTED] Sent: Monday, May 21, 2007 12:34 PM To: users@activemq.apache.org Subject: RE: Implementation of multithreading model on CMS ActiveMQ I am trying to test it out using stomp. But it is giving me exceptions On Consumer Client: ActiveMQConnectionFactory - unknown Transport Factory. I tried with following brokerURI's std::string brokerURI = stomp://localhost:61613 ?wireFormat=stomp transport.useAsyncSend=true; std::string brokerURI = stomp://localhost:61613 std::string brokerURI = stomp://localhost:61616 can you please help us out? Thanks. Mittler, Nathan wrote: In the case I will need to implement the concurrency control over the session, so that only one thread can use the session, as sessions are implemented for serial use? Rght? Yes, you should add your own concurrency control for the session. I tried the first case in which i implemented the multithreading, each thread running its own session and each session having one producer. But the results were not even close to our requriment (result in msges/sec). Were you using openwire or stomp as the protocol? We have seen cases where small messages with openwire cause extra delay due to the naggle algorithm and that message footprints are smaller than their stomp counterpart. If you're using openwire, I suggest you switch over to stomp and see if you have different results. If that does the trick, our next release will allow a user-specified TCP-NODELAY socket option that should fix the problem for openwire (for small messages). Do you think the other case can give us the better results (i.e. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads.) Without understanding your particular usage of the client, I would guess that a different usage wouldn't help much. Just to make sure, however, you could slightly modify our example application https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk/src/examp le s/main.cpp and see if you can get it to meet your requirements. Regards, Nate -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-o n-CMS-ActiveMQ-tf3790047s2354.html#a10722340 Sent from the ActiveMQ - User mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-on-CMS-ActiveMQ-tf3790047s2354.html#a10723703 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
RE: Implementation of multithreading model on CMS ActiveMQ
You could try pulling the latest code from trunk to see what effect the TCP_NODELAY option will have on performance on your machine. The code in trunk sets TCP_NODELAY on by default. regards Tim On Mon, 2007-05-21 at 10:52 -0700, Pravin Kundal wrote: Hey Sir, the string you sent WORKED..thanks!! Stomp improved the results but still away from our target. posting some results. Message was string of around size 50 to 70 characters. All with Non_Persistent message relibility (i.e. atmost once) Here are our readings: A] Using Openwire, Asynchronous Consumer. 1] Multi Threading : one session, one producer per Thread: 214 msges/sec. 2] Multi Threading : one session, mutiple producers. concurrency implemented in client: 122 msges/sec. B] 1) Using Stomp, Asynchronous Consumer. 1] Single Thread: 410 msges/sec. 2] Multi Threading (2 Threads): one session, one producer per Thread: 357 msges/sec. 3] Multi Threading (5 Threads): one session, one producer per Thread: 413 msges/sec. 4] Multi Threading (5 Threads): one session, one producer per Thread: 387 msges/sec. 2) Using Stomp, Synchronous Consumer. 1] Single Thread: 367 msges/sec. So from the above results maximum is 413 what we got. Our target is upto 600 to 650 msges/sec. Also both producer and consumer are CMS ActiveMQ. Our Java team tested using Java clients (producer and consumer) with ActiveMQ broker with 10 threads running they are getting around 700 msges/sec. Is it because java supports internal multithreading or something else. Or any other reason I really appreciate for you quick and working out responses :) Thanks. Mittler, Nathan wrote: Sorry ... The url should be tcp://localhost:61613?wireFormat=stomp See http://activemq.apache.org/cms/configuring.html -Original Message- From: Pravin Kundal [mailto:[EMAIL PROTECTED] Sent: Monday, May 21, 2007 12:34 PM To: users@activemq.apache.org Subject: RE: Implementation of multithreading model on CMS ActiveMQ I am trying to test it out using stomp. But it is giving me exceptions On Consumer Client: ActiveMQConnectionFactory - unknown Transport Factory. I tried with following brokerURI's std::string brokerURI = stomp://localhost:61613 ?wireFormat=stomp transport.useAsyncSend=true; std::string brokerURI = stomp://localhost:61613 std::string brokerURI = stomp://localhost:61616 can you please help us out? Thanks. Mittler, Nathan wrote: In the case I will need to implement the concurrency control over the session, so that only one thread can use the session, as sessions are implemented for serial use? Rght? Yes, you should add your own concurrency control for the session. I tried the first case in which i implemented the multithreading, each thread running its own session and each session having one producer. But the results were not even close to our requriment (result in msges/sec). Were you using openwire or stomp as the protocol? We have seen cases where small messages with openwire cause extra delay due to the naggle algorithm and that message footprints are smaller than their stomp counterpart. If you're using openwire, I suggest you switch over to stomp and see if you have different results. If that does the trick, our next release will allow a user-specified TCP-NODELAY socket option that should fix the problem for openwire (for small messages). Do you think the other case can give us the better results (i.e. The ActiveMQ-CPP implementation, however, will allow you to share a session across threads.) Without understanding your particular usage of the client, I would guess that a different usage wouldn't help much. Just to make sure, however, you could slightly modify our example application https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk/src/examp le s/main.cpp and see if you can get it to meet your requirements. Regards, Nate -- View this message in context: http://www.nabble.com/Implementation-of-multithreading-model-o n-CMS-ActiveMQ-tf3790047s2354.html#a10722340 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: Shared File System Master Slave with OCFS
On 5/19/07, Christopher G. Stach II [EMAIL PROTECTED] wrote: James Strachan wrote: Thanks for the heads up! :) I guess we could make the locking strategy pluggable we could have some implementation call the fcntl locking. e.g. maybe using Jtux http://www.basepath.com/aup/jtux/ Even though one could achieve this, I don't know what the benefit would be. Allow folks to run multiple broker instances on a shared file system so that if one broker fails, another takes over. http://activemq.apache.org/shared-file-system-master-slave.html It only shifts the responsibility down. At least the user would want a broker that is dependent on one or more brokers. Each of those brokers shouldn't be dependent on each other for locking, data, or anything else. I can appreciate that some people assume that shared data is available, but shared data is just as easily corrupted, locked, or unavailable. Essentially, when you find a single responsibility and divide it, it probably shouldn't converge somewhere down the line. This current pattern is most likely unusable for any HA situation. Agreed - I'd much prefer a share nothing HA strategy where folks can spin up and down brokers at any point in time and everything just works (tm) with messages replicated onto multiple physical stores and things auto-partitioning etc. However we're not there yet, so its a question of trade-offs. Some folks find it easier to rely on their shared file system / SAN to do the HA; others can use the share-nothing approach in ActiveMQ (Pure Master Slave)... http://activemq.apache.org/masterslave.html and live with the current limitations (no automatic fail-back of the old master when it is brought back online). Like many things in IT its a tradeoff. For now, today, the shared file system approach is a pretty reasonable approach; if you already have a reliable distributed file system (particularly if you have a SAN). -- James --- http://macstrac.blogspot.com/
Re: Creating Network of Brokers
It seems you are trying to run two instances of ActiveMQ from the same installation. And they are both trying to write to the same journal ... change the configuration to use a different journal location for the second broker. Vinod_mit wrote: Hi I have just installed activemq, I have to start work with failover netowrk brokers.I dont have much idea about this can any one explain me regarding this. I did like this iam not sure iam right.if wrong please help me. 1. I have created first broker like this , In the activemq.xml i put these values transportConnectors transportConnector uri=discovery:tcp://localhost:61617/ /transportConnectors networkConnectors networkConnector uri=static:tcp://localhost:61618/ /networkConnectors after that i have started activemq it says activemq jms started. 2.I created second broker like this. I have modified the same activemq.xml by changing transportConnectors and /networkConnectors values like this. transportConnectors transportConnector uri=discovery:tcp://localhost:61618/ /transportConnectors networkConnectors networkConnector uri=static:tcp://localhost:61617/ /networkConnectors and started a activemq in another command window and got these message INFO faultPersistenceAdapterFactory - Journal is locked... waiting 10 seconds f or the journal to be unlocked. when i kill the first activemq process second gets activated. but iam not understanding where i have to include failover detail ??? these details where i have to include ?? networkConnectors networkConnector uri=static:failover:tcp://localhost:61617/tcp://localhost:61617%22/ /networkConnectors is it in the client program like consumer ??? or in some file, please expalin Thanks cinod
Re: Creating Network of Brokers
On 5/21/07, Gaurav Hariani [EMAIL PROTECTED] wrote: It seems you are trying to run two instances of ActiveMQ from the same installation. And they are both trying to write to the same journal ... change the configuration to use a different journal location for the second broker. Make sure your ports are not conflicting either. Currently I see that you have clashing port numbers between the two brokers as well. You'll need to rectify this to get two brokers running on the same machine. This includes uncommenting the managementContext element and specifying a different JMX port number for each broker. Also, for ease of reading logs and debugging, assign each broker it's own name in the brokerName attribute of the broker element. Bruce -- perl -e 'print unpack(u30,D0G)[EMAIL PROTECTED]5R\F)R=6-E+G-N61ED\!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/
Queue Recovery loads the entire data?
Hi, I am using JDBCPersistence (without journaling) in my product. There are times when : - my broker goes down - there are already some messages in the queue as they were not processed yet. - my broker comes up again and restores the queue(s) On the third step, it seems to be executing a simple 'select id,msg from activemq_msgs where container = ? orderby id' query to get ALL the enqueued data. This results in the loading of ENTIRE Data on my VM. IS there a way to let that NOT happen? Is there a way to make the adapter read queue data in chunks? (maybe ... 100 messages at a time .. read the next 100 when 90 of the first 100 have been processed) ? Any pointers would certainly help! Thanks! Vipul -- View this message in context: http://www.nabble.com/Queue-Recovery-loads-the-entire-data--tf3793599s2354.html#a10729587 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
[camel] Spring's SingleConnectionFactory
We did some load testing today and noticed some performance issues with the JmsComponent. Based on some research, it appears that Spring's SingleConnectionFactory might improve performance. Do you think that the SingleConnectionFactory can improve overall JMS performance? If so, how can the JmsComponent be configured to use a SingleConnectionFactory?
Re: How do I remove ActiveMQ.Advisory.Producer.Queue.xxxx
Hi, You can disable advisory support in your broker config file : broker brokerName=localhost useJmx=true advisorySupport=false Regards, Jonas sparky2708 wrote: My ActiveMQ clients create TEMPORARY queues and I have been looking through the active queues recently and I noticed a number of advisory queues are sticking around that refer to the temporary queues that I created. It seems that even though the temporary queues are gone the advisory topics are still there. How and when do the advisory queues disappear? How can I remove them?