activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From manua <agarwal.m...@gmail.com>
Subject Re: Segmentation fault while sending bytes messages
Date Sat, 25 Apr 2009 16:32:57 GMT

Hi Tim,

I am getting the error, even when my file is just 65 bytes. Its also evident
from the output (where I am capturing number of byte recieved). I have
posted my output in the previous posts.

Also, if I want to transfer large files (image files of size 100K or more),
than what should be the best approach. It will be very nice if you could
share some code snippet, explaining this.

Thanks,
Manu

Timothy Bish wrote:
> 
> 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/
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Segmentation-fault-while-sending-bytes-messages-tp23175494p23233901.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message