I'm having 2 problems with activemq-cpp-2.1.1 i just cant get rid off.
hopefully someone can help me out :) the broker i'm using is v4.1.1.

1) how does message redelivery work with the activemq-cpp-2.1.1 api?
according to
http://activemq.apache.org/message-redelivery-and-dlq-handling.html i need
to use commit(), rollback() or recover(). 
in my client app i'm using Session::CLIENT_ACKNOWLEDGE as well as
DeliveryMode::PERSISTENT. in my client app i don't want to acknowledge any
message i read, since this is supposed to be a check, only to see whats in
the queue, and don't take it off the queue. so i
1) open the queue (as showed in the example code) and start reading
2) print messages to console
3) don't acknowledge any message
4) program ends

all goes fine so far. but, however, when i try to do the same thing again,
my client won't receive any message. i can restart the programas much as i
want, it wont let me read the messages that are still in the queue. only
when i send at least one more message to this queue (from any application),
my app will read ALL messages (the previous received ones plus the
additional "trigger"-message) again just fine. any more tries will again
result in not receving any messages.

i could not find the above mentioned method session::recover() (its not in
Session.h), so i wonder how i could get the messages redelivered? note that
the application will terminate when it finished reading (its just a
queue-check program), thus all activemq objects will be rebuild/opened when
i restart the application.


2) for this case i'm using the example code showed on the amq-cpp-2.1.1
website. i've only changed
- use queues
- name of the queue
- add username/password to connectionfactory

the broker is configured with a couple of queues like this:


                <plugins>
>                         <jaasAuthenticationPlugin
> configuration="activemq-domain"/>
>                         <authorizationPlugin>
>                                 <map>
>                                         <authorizationMap>
>                                                 <authorizationEntries>
>                                                    <authorizationEntry
> queue="test_in" read="admin" write="testuser" admin="testuser,admin"/>
>                                                    <authorizationEntry
> queue="test_out" read="testuser" write="admin" admin="testuser,admin"/>
> 
> groups.properties: 
> admins=admin
> testuser=testuser
> 
> users.properties
> admin=adminpwd
> testuser=testpwd

test 1: producer writes queue "test_in" with username "testuser" and
appropriate password. works.
test 2: consumer reads queue "test_in" with username "testuser" and
appropriate password. Error: "User testuser is not authorized to read from:
queue://test_in". This is fine.

test 3: consumer reads queue "test_out" with username "testuser" and
appropriate password. works.
test 4: producer writes queue "test_out" with username "testuser" and
appropriate password. Segmentation fault (core dumped).
Backtrace:


> #0  0x080e6d07 in
> activemq::connector::openwire::OpenWireConnector::createProducer
> (this=0x829ca78, destination=0x829c8c0, session=0x829cbd8)
>     at activemq/connector/openwire/OpenWireConnector.cpp:678
> 678             delete producerInfo;
> #0  0x080e6d07 in
> activemq::connector::openwire::OpenWireConnector::createProducer
> (this=0x829ca78, destination=0x829c8c0, session=0x829cbd8)
>     at activemq/connector/openwire/OpenWireConnector.cpp:678
> #1  0x080a64c3 in activemq::core::ActiveMQSession::createProducer
> (this=0x829c928, destination=0xb74b9678) at
> activemq/core/ActiveMQSession.cpp:348
> 
Could someone help me please?
-- 
View this message in context: 
http://www.nabble.com/CMS%3A-message-redelivery-question---producer-causing-segmentation-fault-tf4887950s2354.html#a13990648
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to