Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 516633
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T07:45:05+00:00 2026-05-13T07:45:05+00:00

I am attempting to put a potentially large string into a rendezvous message and

  • 0

I am attempting to put a potentially large string into a rendezvous message and was curious about size constraints. I understand there is a physical limit (64mb?) to the message as a whole, but I’m curious about how some other variables could affect it. Specifically:

  • How big the keys are?
  • How the string is stored (in one field vs. multiple fields)

Any advice on any of the above topics or anything else that could be relevant would be greatly appreciated.

Note: I would like to keep the message as a raw string (as opposed to bytecode, etc).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T07:45:05+00:00Added an answer on May 13, 2026 at 7:45 am

    From the Tibco docs on Very Large Messages:

    Rendezvous software can transport very
    large messages; it divides them into
    small packets, and places them on the
    network as quickly as the network can
    accept them. In some situations, this
    behavior can overwhelm network
    capacity; applications can achieve
    higher throughput by dividing large
    messages into smaller chunks and
    regulating the rate at which it sends
    those chunks. You can use the
    performance tool to evaluate chunk
    sizes and send rates for optimal
    throughput.

    This example, sends one message
    consisting of ten million bytes.
    Rendezvous software automatically
    divides the message into packets and
    sends them. However, this burst of
    packets might exceed network capacity,
    resulting in poor throughput:

    sender> rvperfm -size 10000000 -messages 1   
    

    In this second example, the
    application divides the ten million
    bytes into one thousand smaller
    messages of ten thousand bytes each,
    and automatically determines the batch
    size and interval to regulate the flow
    for optimal throughput:

    sender> rvperfm -size 10000 -messages 1000 -auto   
    

    By varying the -messages and -size
    parameters, you can determine the
    optimal message size for your
    applications in a specific network.
    Application developers can use this
    information to regulate sending rates
    for improved performance.

    As to actual limits the Add string function takes a C style ansi string so is theoretically unbounded but, given the signature of the AddOpaque

    tibrv_status tibrvMsg_AddOpaque( 
       tibrvMsg       message, 
       const char*    fieldName, 
       const void*    value, 
       tibrv_u32      size); 
    

    which takes a u32 it would seem sensible to state that the limit is likely to be 4GB rather than 64MB.

    That said using Tib to transfer such large packets is likely to be a serious performance bottleneck as it may have to buffer significant amounts of traffic as it tries to get these sorts of messages to all consumers. By default the rvd buffer is only 60 seconds so you may find yourself suffering message loss if this is a significant amount of your traffic.

    Message overhead within tibco is largely as simple as:

    1. the fixed cost associated with each message (the header)
    2. All the fields (type info and the field id)
    3. Plus the cost of all variable length aspects including:
      1. the send and receive subjects (effectively limited to 256 bytes each)
      2. the field names. I can find no limit to the length of the field names in the docs but the smaller they are the better, better still don’t use them at all and use the numerical identifiers
      3. the array/string/opaque/user defined variable length fields in the message

    Note: If you use nested messages simply recurse the above.

    In your case the payload overhead will be so vast in comparison to the names (so long as they are reasonable and simple) there is little point attempting to optimize these at all.

    You may find you can considerable efficiency on the wire/buffered if you transmit the strings in a compressed form, either through the use of an rvrd with compression enabled or by changing your producer/consumer to use something fast but effective like deflate (or if you’re feeling esoteric things like QuickLZ,FastLZ,LZO,etc. Especially ones with fixed memory footprint compress/decompress engines)

    You don’t say which platform api you are targeting (.net/java/C++/C for example) and this will colour things a little. On the wire all string data will be in 1 byte per character regardless of java/.net using UTF-16 by default however you will incur a significant translation cost placing these into/reading them out of the message because the underlying buffer cannot be reused in those cases and a copy (and compaction/expansion respectively) must be performed.
    If you stick to opaque byte sequences you will still have the copy overhead in the naieve implementations possible through the managed wrapper apis but this will at least be less overhead if you have no need to work with the data as a native string.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 243k
  • Answers 243k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer For me long[] l = new long[Integer.MAX_VALUE]; yields Exception in… May 13, 2026 at 7:45 am
  • Editorial Team
    Editorial Team added an answer You'll need to define the application path somewhere. If you… May 13, 2026 at 7:45 am
  • Editorial Team
    Editorial Team added an answer TransactionScope will determine this automatically based on the Ado.Net connections… May 13, 2026 at 7:45 am

Related Questions

I'm attempting to put a few drop down menus inside of an a4j:repeat. The
We are developing a UI Control in WPF to be consumed within an existing
I am attempting to use a full text search over a series of names
I am attempting to parse a string like the following using a .NET regular
I am attempting to write a one-line Perl script that will toggle a line

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.