Try PubSub+
If you haven't already, check out our new Developer Portal! You'll find useful information about Solace PubSub+ as well as handy resources to get you started.

Solace JCSMP API vs Java RTO API use cases/differences

amishraamishra Member Posts: 10

Can some one Elaborate me the distinction between Solace JCSMP API and Java RTO API . Please elaborate use cases as well i.e. when to use which One as both are Java based implementation . Java RTO is wrapper over C API .

Best Answer


  • spyroidspyroid Member Posts: 2
    edited March 20

    Hi @amackenzie ,

    I'm thinking to try RTO, but cannot find how can I acknowledge messages manually. Could you please clarify that?
    And also I'm interested in some performance numbers between Java RTO and Java API.


  • AaronAaron Member, Moderator, Employee Posts: 50 Solace Employee
    edited March 23

    @spyroid what kind of performance? Throughput or latency? How fast do you need? What type of app are you building?

    For all the difficulties of using the JNI-wrapped wrapper, I'd always suggest trying out the "regular" JCSMP API first, to see if it has the performance to meet your needs. it might be fast enough? For example, I wrote this simple code to get almost 250,000 msg/s (at 300 byte messages) for Direct messages from a single producer and single consumer:

    I still have to finish the equivalent Guaranteed producer & consumer test code.

    Oh, and re: how to ACK messages?

  • spyroidspyroid Member Posts: 2

    @Aaron said: @spyroid what kind of performance? Throughput or latency? How fast do you need?

    Throughput, I need as fast as possible. I did sample code (get message and acknowledge) using solace-jms-spring-boot-starter and got about 30k per second.
    I'm intetersted if JCSMP API is faster then JMS API.

  • amackenzieamackenzie Member, Employee Posts: 28 Solace Employee

    JCSMP is generally much faster than JMS. There is a Spring Boot Starter for Java/JCSMP also. You might want to give that a try.
    Also, you seem to indicate that throughput is the performance you are looking for. Java RTO, being based on the C API is going to give you lower, more consistent latency but JCSMP is very solid at throughput.
    It would be good to know what your expectations on throughput are as well. Are you going to use a single client or multiple? There is only so fast a single client will go.

  • AaronAaron Member, Moderator, Employee Posts: 50 Solace Employee

    30k msg/s as a publisher? A JMS publisher? Do you want Persistent or non-persistent data? You only need to worry about ACKs if you're doing Persistent messaging.

Sign In or Register to comment.