activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Bish <tabish...@gmail.com>
Subject Re: Segmentation fault while sending bytes messages
Date Sat, 25 Apr 2009 01:15:57 GMT
On Fri, 2009-04-24 at 17:31 -0700, manua wrote:
> Hi Tim,
> 
> Thanks for your reply.
> 
> PLease find below the part of my code, which I am using for sending and
> recieving bytesmessages.
> 
> Code snippet from Producer.cpp
> 
> char Text[100];
> 
> ifstream inFile("abc.txt",ios::in | ios::binary);
> 
> int i=0;
> while(inFile>>Text[i])
> {
>         cout<createBytesMessage();
>                   message->setBodyBytes((unsigned char*)Text,(size_t)i);
> 
>  producer->send( message );
> 
>                 delete message;
> 
> 

Looks like bad things would happen if your file is more than 100 bytes
long.

> ================================================================
> 
> Code Snippet from Consumer side,
> 
> virtual void onMessage( const Message* message ){
> 
> static int count = 0;
> 
>         try
>         {
>             count++;
> const BytesMessage* bytesMessage =
>                 dynamic_cast< const BytesMessage* >( message );
> 
>                       char* tempCharArray=new
> char(bytesMessage->getBodyLength());
> BytesMessage* bytesMessage1 = bytesMessage->clone();
> bytesMessage1->reset();
> 
> ofstream outFile("abc_out.txt",ios::app | ios::binary);
>                 
> memcpy(tempCharArray,(char*)(bytesMessage1->getBodyBytes()),bytesMessage->getBodyLength());
> 
> outFile.write(tempCharArray,bytesMessage->getBodyLength());
>             if( clientAck ) {
>                 message->acknowledge();
>             }
> 
>             printf( "Message #%d Received: %s\n", count, tempCharArray );
>             printf( "\n no. of bytes = %d\n",bytesMessage->getBodyLength());
>                 delete []tempCharArray;
>                 tempCharArray=NULL;
> 
>         } catch (CMSException& e) {
>             e.printStackTrace();
>         }
>     }
> 
> ==================================================================
> 
> The same code was working fine for text and map messages.
> 
> Regarding platform, I am trying it on Amazon ec2 instances of medium size.
> 
> PLease let me know your inputs.
> 
> Thanks,
> Manu
> 
> Timothy Bish wrote:
> > 
> > On Wed, 2009-04-22 at 07:40 -0700, manua wrote:
> >> Hi All,
> >> 
> >> I am trying to send large bytes messages. From the producer end, I ma
> >> able
> >> to send the messages, but at the consumer end, after recieving some
> >> messages, I am getting Segmentation fault. 
> >> 
> >> Please find below the output, I recieved at the consumer end.
> >> 
> >> Kindly help me with this.
> > 
> > Can you create a simple test case that reproduces this issue?  If you
> > could do that and open a new Jira issue and attach the test that would
> > be helpful.  
> > 
> > Also provide any info about your Platform / OS / Compiler.
> > 
> > Regards
> > Tim.
> > 
> >> 
> >> =====================================================
> >> Starting the example:
> >> -----------------------------------------------------
> >> Press 'q' to quit
> >> Message #1 Received:
> >> fsfdfsgdfgdhdhdfghdhdhhhfgjjtrwertrtrtytryryfgchfghfghdfhdf                
                                           
> >> hfdgdf
> >> 
> >>  no. of bytes = 65
> >> Message #2 Received:
> >> fsfdfsgdfgdhdhdfghdhdhhhfgjjtrwertrtrtytryryfgchfghfghdfhdf                
                                           
> >> hfdgdf
> >> 
> >>  no. of bytes = 65
> >> Message #3 Received:
> >> fsfdfsgdfgdhdhdfghdhdhhhfgjjtrwertrtrtytryryfgchfghfghdfhdf                
                                           
> >> hfdgdf~l
> > 
> > -- 
> > Tim Bish
> > http://fusesource.com
> > http://timbish.blogspot.com/
> > 
> > 
> > 
> > 
> > 
> 
-- 
Tim Bish
http://fusesource.com
http://timbish.blogspot.com/




Mime
View raw message