Hi,
it's possible. Take a look at the receipt header in the Stomp protocol which
is used for this purpose
http://stomp.codehaus.org/Protocol#Protocol-Receipt
But, it's up to the client whether it will be supported. PHP client supports
it like this
http://stomp.codehaus.org/PHP+Synchronous+vs.+Asynchronous+operations
Cheers
--
Dejan Bosanac
www.scriptinginjava.net
On Tue, Jul 22, 2008 at 10:53 AM, Yari Marchetti <
yari.marchetti@staff.dada.net> wrote:
> thanks, that made it.
> I checked the Net::Stomp library for Perl but i didn't find a way to set
> the producer
> to use sync sends, only to set sync consumer.
> do you know if it is possible to achieve the same result with a Stomp
> client?
>
>
> Joe Fernandez ha scritto:
>
>> Try setting the connection factory to use sync sends.
>> connectionFactory.setAlwaysSyncSend(true);
>>
>> Joe
>> www.ttmsolutions.com
>>
>>
>> Yari Marchetti-2 wrote:
>>
>>
>>> Hi,
>>> i have a configuration with JAAS enabled on a per queue basis.
>>> I created a user named 'Test' and didn't give it write permission on a
>>> static queue named 'test.queue'.
>>>
>>> Using the example producer (the one in the activemq package), modified
>>> just to provide it with Test user and password, using openwire as
>>> transport
>>> i tried to send 10 messages to the test.queue.
>>>
>>> I was expecting to received an exception just after the first message,
>>> and
>>> surprising, the whole 10 message pack was sent with any problem.
>>>
>>> So i checked the broker logs, and found:
>>>
>>> java.lang.SecurityException: User Test is not authorized to write to:
>>> queue://test.queue
>>> at
>>> org.apache.activemq.security.AuthorizationBroker.send(AuthorizationBroker.java:173)
>>> at
>>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:132)
>>> at
>>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:437)
>>> at
>>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:624)
>>> at
>>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>>> at
>>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
>>> at
>>> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>>> at
>>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
>>> at
>>> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>>> at
>>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>>> at
>>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
>>> at
>>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>> obviously no message was found in test.queue queue. To be sure i tried
>>> also with a Stomp client,
>>> just to see if it was possible to receive a notification of error after a
>>> failed write attempt, and it
>>> was the same as with openwire.
>>>
>>> I tried also with a consumer and it receives an error when it tries to
>>> read from a queue it has no
>>> privileges on:
>>>
>>> java.lang.SecurityException: User Test2 is not authorized to read from:
>>> queue://test.queue
>>>
>>> so my question is: is this behavior the correct one? wouldn't be better
>>> to send a notification of error
>>> after a failed write on a queue ?
>>>
>>>
>>>
>>>
>>
>>
>>
>
>