I tested with trunk and is unable to reproduce this issue.
Richard could you please confirm if you are still seeing this issue with trunk?
(The code on trunk is what we would be releasing as 0.18)

Rajith

On Tue, Jul 3, 2012 at 2:59 PM, Fraser Adams
<[email protected]> wrote:
> Hi Richard/Rajith
> I don't know if this is related to what you are seeing, but I posted a few
> weeks ago in a post entitled
>
> "error Execution exception: not-found: Unknown destination 9
> (qpid/broker/SemanticState.cpp:563)"
>
> I'm running qpid c++ broker 0.12 and I've started seeing:
>
> error Execution exception: not-found: Unknown destination 9
> (qpid/broker/SemanticState.****cpp:563)
>
>
> Exception in thread "IoReceiver - localhost/127.0.0.1:5672"
> java.lang.NullPointerException
>    at org.apache.qpid.client.****AMQConnectionDelegate_0_10.**
> closed(AMQConnectionDelegate_****0_10.java:285)
>    at org.apache.qpid.transport.****Connection.closed(Connection.***
> *java:568)
>    at org.apache.qpid.transport.****network.Assembler.closed(**
> Assembler.java:110)
>    at org.apache.qpid.transport.****network.InputHandler.closed(**
> InputHandler.java:202)
>    at org.apache.qpid.transport.****network.io.IoReceiver.run(**
> IoReceiver.java:150)
>    at java.lang.Thread.run(Thread.****java:679)
> Sleep 5
>
> The reconnection does generally seem to work and I've got a JMS based
> QMF2
> console connected, however in one of my tests I've been starting and
> stopping the broker in pretty rapid succession and I've been periodically
> hitting the above problem.
>
>
> In response to that Robbie Gemmell posted
>
> "
>
> Older releases of the client were a bit racey in
> terms
> of doing things*while*  reconnecting (when using the 0-10 protocol) that
> could allow stuff to happen that caused output along those lines.
>
> "
> But mentioned that he thought that things had improved in qpid 0.14.
>
> Robbie might be able to shed some light on what you are seeing Richard, but
> you might want to try the 0.14 Java client runtime instead of the 0.10 one
> to see if that helps things.
>
>
> FWIW I ended up rolling my own reconnection via a JMS Connection
> ExceptionListener but as it turns out that approach is the most useful in my
> case anyway as I want to inform the user of a problem as well as instigate a
> reconnection.
>
> Cheers,
> Frase
>
>
>
>
> On 03/07/12 13:32, Rajith Attapattu wrote:
>>
>> Richard,
>>
>> I will have a look at this issue and get back to you.
>> If this bug still exists on trunk, we will fix this for the upcoming 0.18
>> release.
>>
>> Regards,
>>
>> Rajith
>>
>> On Tue, Jul 3, 2012 at 7:04 AM, Fallon, Richard <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>
>>
>>     Hello All,
>>
>>     I have a problem when using the java client libraries (0.10).  I
>>     am connecting to a Qpid broker version 0.8.  The problem I have is
>>     easy to re-create and has significant impact upon message loss for
>>     consuming applications.
>>
>>     The problem can be summarised like so:-
>>
>>     1)      Start a Qpid Broker
>>     2)      Start a Java consumer
>>     3)      Send a message to the broker that the consumer will pick-up
>>     4)      Stop the Qpid Broker whilst the consumer is processing the
>>     message
>>     5)      The java consumer will NEVER reconnect
>>
>>
>>     Contrast this to
>>     1)      Start a Qpid Broker
>>     2)      Start a Java consumer
>>     3)      Stop the Qpid Broker
>>     4)      The java consumer will always reconnect
>>
>>     Or indeed contrast this to
>>     1)      Start a Qpid Broker
>>     2)      Start a Java consumer
>>     3)      Send a message to the broker that the consumer will pick-up
>>     4)      Stop the Qpid Broker AFTER the message has been processed
>>     5)      The java consumer will always reconnect
>>
>>     Obviously the impact of this is significant.  We have clients who
>>     are subscribing to messages and in the event of a Qpid broker
>>     outage (if they are processing a message at the time of the
>>     outage) they will never reconnect again –without restarting their
>>     systems.  Whereas other clients may reconnect perfectly well (so
>>     long as they were not processing a message at the time of the
>>     outage).  The net result is message loss as messages are delivered
>>     to the exchange whilst the end systems are not subscribing.
>>
>>     I have recreated this in a number of environments, I first saw it
>>     using Apache Camel, but have since recreated it with a simple
>>     POJO. Unfortunately my code is on another network so I have not
>>     attached the source for the moment.  However detailed below is
>>     some pseudo-code which should be easy to recreate.  (I initially
>>     saw this using Apache Camel –but have removed all Camel references
>>     to focus on the issue).
>>
>>     //Simple consumer class
>>     class MyConsumer
>>     {
>>     public static void main(String[] args){
>>
>>     while(true)
>>     {
>>     try
>>     {
>>     //standard connection stuff
>>     connect();
>>     //every time a message is received pause processing
>>     receiveMessage();
>>     }//end try
>>     catch(Throwable e)
>>     {
>>     logException();
>>     }//end catch
>>     }//end while
>>     }//end main
>>
>>     public static void receiveMessage(){
>>
>>     while(true)
>>     {
>>     Message message = messageConsumer.receive(TIMEOUT);
>>
>>     if(message!=null{
>>
>>     //got message
>>     Thread.sleep(10000);
>>
>>     }//end if
>>     }//end while
>>     }//end receive
>>
>>     }//end class
>>
>>
>>     The problem appears to be in the invoke method of
>>     org.apache.qpid.transport.Session. After a MessageAccept method
>>     has been received the application state is such that a sync is
>>     never required and the client code never attempts to access the
>>     broker again.  No exception is thrown up the stack so the client
>>     code can’t do anything about it. It just loops round internally
>>     forever.
>>
>>     I have added some code to force the issue in the invoke() method
>>     of org.apache.qpid.transport.Session which comes after the
>>     existing code
>>
>>     if(m.getEncodedTrack() == Frame.L4){
>>     }
>>
>>     //here’s my code
>>
>>     if ( state ==DETACHED && !needSync )
>>     {
>>      throw new SessionException(“This exception allows clients to know
>>     there has been a problem”);
>>     }
>>
>>     My concern with my “fix” is that I obviously do not understand the
>>     full lifecycle methods and different states that the session
>>     instance may be in.
>>
>>     Could you advise if
>>     a)      You are aware of this and whether it has been fixed in a
>>     later version
>>     b)      Whether my proposed “fix” will have other adverse side
>>     affects?
>>     c)      Should I send this to a different forum?
>>
>>
>>
>>     Thanks for your help
>>
>>
>>     Richard
>>
>>
>>
>>     Picture (Metafile)
>>     *Richard Fallon*
>>     Architect
>>     01928 594109
>>     M:+447733312563 <tel:%2B447733312563>
>>     E:[email protected]_ <mailto:[email protected]>
>>     Atos.net
>>     Picture (Metafile)
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>     Atos and Atos Consulting are trading names used by the Atos group.
>>     The following trading entities are registered in England and
>>     Wales: Atos IT Services UK Limited (registered number 01245534),
>>     Atos Consulting Limited (registered number 04312380) and Atos IT
>>     Solutions and Services Limited (registered number 01203466) The
>>     registered office for each is at 4 Triton Square, Regents Place,
>>     London, NW1 3HG.The VAT No. for each is: GB232327983
>>
>>     This e-mail and the documents attached are confidential and
>>     intended solely for the addressee, and may contain confidential or
>>     privileged information. If you receive this e-mail in error, you
>>     are not authorised to copy, disclose, use or retain it. Please
>>     notify the sender immediately and delete this email from your
>>     systems. As emails may be intercepted, amended or lost, they are
>>     not secure. Atos therefore can accept no liability for any errors
>>     or their content. Although Atos endeavours to maintain a
>>     virus-free network, we do not warrant that this transmission is
>>     virus-free and can accept no liability for any damages resulting
>>     from any virus transmitted. The risks are deemed to be accepted by
>>     everyone who communicates with Atos by email.
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to