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

Reply via email to