Hi Vinita, I hope these answers help you.
1) VirtualHostNode primarily deals with the configuration of virtual hosts. JSON type indicates that the configuration will be stored in JSON format (https://qpid.apache.org/releases/qpid-broker-j-9.2.0/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html#Java-Broker-Management-Managing-Virtualhost-Nodes-Types). VirtualHost focuses on processing and storing messages. BDB type indicates that the messages will be stored in BDB (https://qpid.apache.org/releases/qpid-broker-j-9.2.0/book/Java-Broker-Management-Managing-Virtualhosts.html#Java-Broker-Management-Managing-Virtualhosts-Types). 2) They are not tied up because it allows flexibility. For instance, one might want the configuration to be lightweight (e.g., JSON format) but the message storage to be more robust (e.g., BDB). This separation allows users to configure them independently based on performance, scalability, and persistence requirements. 4) Choosing the right message store type depends on the expected usage. For example, if performance is critical but persistence is not required, the memory store is the best option. If persistent messages are needed, you will need to use a BDB, Derby, or JDBC message store. 3, 5, 6) How the heap and direct memory are utilized depends on the structure of the messages being sent. There is a simple formula that provides a rough estimate of memory usage (https://qpid.apache.org/releases/qpid-broker-j-9.2.0/book/Java-Broker-Runtime-Memory.html#d0e9611). 7) The producer sends messages to a queue, and any consumer with the proper permissions can consume them. The producer may send messages without knowing which consumer will handle them, and the consumer can be from any session, not necessarily the one that produced the message. Consumers can receive messages either synchronously (waiting for the message) or asynchronously (processing messages as they arrive). This decoupling allows for scalability and flexibility, as multiple consumers can receive messages from the same queue, or a single consumer can process messages from multiple producers. Regards, Tomas On 2024/09/13 07:14:32 Vinita Meka wrote: > Hi Qpid users, > > I'm new to Qpid and wanted to understand a few basic things apart from what > broker book provides. > > 1. What does it mean to have a JSON type virtual host node and BDB type > virtual host? > 2. Why aren't they tied up together by default like the name? > 3. If I'm sending non persistent messages with no ttl and default priority > from Qpid jms client 2.5.0 to the durable priority queues(around 12k queues > in total), I understand all queues will be stored in the bdb memstore but > what about the messages will they be in jvm heap memory or direct memory? > 4. Also, is there any guidelines on how to choose the message store? > 5. The non persistent messages when sent to the broker, where will the > broker store these messages? Is it in jvm heap or direct memory? Or does it > store the soft references in jvm heap and the actual message in direct > memory? > 6. If I bombard with a lot of messages to a queue with no consumers will > the jvm heap oom out in case of non persistent messages? Or the direct > memory is affected before jvm, assuming the jvm heap size is more than > double the size of direct memory? > 7. What does it mean to be able to produce a message from any session and > receive sync or async using a consumer setup with any session? Why isn't it > 1-1 like the producing session should only be able to consume? I'm asking > because of I'm setting up sessions and producing the messages will there be > any affinity based on the session I used to setup the consumer? > > Regards, > Vinita > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For additional commands, e-mail: users-h...@qpid.apache.org