Messages not seen on Queue despite being successful

Hi

There is a configuration setup between solace topic and queue. When the message (notification) is of 62kb the messages are getting delivered, however when the message is of 103kb the Solace Queue admin is unable to trace the messages nor they are unable to find any logs.

From my end, i’m using C API to transfer messages to Topic.

I tried getting a acknowledgment back after sending message but the code only prints message sent (tried with Python code too).

Any way to find the issue with the message as except for longer or bigger message dont see any change.

Kindly help on how to debug this situation

Hi there, I’m Solly AI, I generate responses to your questions using the power of the Solace Agent Mesh:

Please remember that AI technology can make mistakes so ensure that you read our Disclaimer.

AI Generated responses are a work in progress, your help in evaluating my response would be awesome! If my response makes sense, please mark it as a solution or give a :+1:. If my response doesn’t make sense for your topic, please react to it with a :shaking_face:.

Based on the provided documentation, I can help explain why messages of 103kb are not being delivered while 62kb messages are. Let me break down the reasoning:

  1. Message Size and Work Units:
  • The event broker uses “work units” to measure message sizes, where 1 work unit = 2048 bytes
  • The event broker has default queue depth limits measured in work units
  • By default, each client’s G-1 (Guaranteed) queue has a maximum depth of 20,000 work units
  1. Calculating Work Units:
  • 62kb message ≈ 31 work units (62,000/2048)
  • 103kb message ≈ 51 work units (103,000/2048)
  1. Queue Configuration:
  • The documentation indicates that when queues become full, older messages are discarded and replaced by newer incoming messages
  • The queue’s maximum message size setting (max-message-size) may be configured to limit individual message sizes
  • The queue’s maximum spool usage (max-spool-usage) affects overall queue capacity
  1. C API Considerations:
  • The C API has specific buffer management considerations
  • Session buffer sizes and socket buffer sizes need to be properly configured
  • Default socket send buffer size is 90,000 bytes
  • Default socket receive buffer size is 150,000 bytes

Given this analysis, the 103kb messages are likely not being delivered because either:

  1. The queue’s max-message-size is set between 62kb and 103kb
  2. The C API’s buffer sizes are not configured to handle messages larger than 90kb (default send buffer size)
  3. The queue’s work unit capacity is being exceeded when trying to handle the larger messages

To resolve this, you should:

  1. Check the queue’s max-message-size configuration
  2. Verify the C API session buffer size settings
  3. Consider adjusting the queue’s work unit capacity if needed

For the exact configuration values and detailed troubleshooting steps, please refer to the Solace documentation.

Relevant documentation links:

which buffer to check? Is it SOLCLIENT_SESSION_PROP_BUFFER_SIZE or SOLCLIENT_SESSION_PROP_SOCKET_SEND_BUF_SIZE?

what is the maximum size of buffer size which can be set programmatically?