On 06/11/2013 02:53 PM, Sean Beck wrote:
I am using the C library libstomp to send a message to my broker. It sends
my message, but it also dequeues my message. I don't want it to do that.

I have removed my error checking to decrease verbosity.

Here is my setup for the connection:

apr_status_t rc;

rc = stomp_connect(&connection, "127.0.0.1", 61613, p);

// connect frame
frame.command = "CONNECT";
frame.headers = NULL;
frame.body = NULL;
rc = stomp_write(connection, &frame, p);

// now subscribe
frame.command = "SUB";
frame.headers = apr_hash_make(p);
apr_hash_set(frame.headers, "destination", APR_HASH_KEY_STRING,
"queuename");
rc = stomp_write(connection, &frame, p);

Here is my message sending:

frame.command = "SEND";
// no need to setup headers for queue bc done in init
// allocate some mem for body
frame.body = apr_palloc(r->pool,filename_size);
strcpy(frame.body, filename);

apr_status_t rc;
rc = stomp_write(connection, &frame, r->pool);


I am not calling stomp_read anywhere so I am unsure as to why my message is
being dequeued as soon as it is enqueued.

Thanks

I'm guessing the client subscribes with ack mode auto ack, and the default prefetch is used so a Message will be dispatched to your client as soon you subscribe. You can subscribe with a different ack mode like client ack and then the message is only removed on the broker side once you ack it.

You don't need to subscribe to send a message so not subscribing would also solve your issue.

--
Tim Bish
Sr Software Engineer | RedHat Inc.
tim.b...@redhat.com | www.fusesource.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/

www.camelone.org : The open source integration conference:

Reply via email to