activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From manua <agarwal.m...@gmail.com>
Subject Re: Caught unknown exception in activeMQConsumer.cpp
Date Wed, 14 Jul 2010 15:07:29 GMT

Hi Tim,

The issue is resolved, It was mysql quey block which was throwing the
exception, but it was being catched in wrong catch block.

Thanks,
Manu


Timothy Bish wrote:
> 
> On Thu, 2010-07-01 at 07:18 -0700, manua wrote:
>> Hi Tim,
>> 
>> Please find below my code snippet,
>> 
>> int get_ref_data(string s){
>> 	mysqlpp::Connection conn;
>> 	if (conn.connect("Database", "localhost", "proddbuser", "proddblander"))
>> {
>> 		cout << "DB Connected" << endl;
>> 		mysqlpp::Query query = conn.query();
>> 		query << "SELECT * from table where symbol=" << s << " and
>> date='20100628'";
>> 		if (mysqlpp::StoreQueryResult res = query.store()) {
>> 			cout << "Query Data:" << endl;
>> 			for (size_t i = 0; i < res.num_rows(); ++i) {
>> 				cout << '\t' << res[i][0] << " , "<< res[i][1] <<
" , "<< res[i][2]
>> << "
>> , "<< res[i][3] << " , "<< res[i][4] << endl;
>> 			}
>> 		}else{
>> 			cout << "Couldn't execute the query";
>> 		}
>> 	}
>> 	cout <<endl;
>> 	return 1;
>> }
>> 
>> void onRequest( void *msg ){
>> 	const TextMessage* txtMessage = dynamic_cast< const TextMessage* >(
>> (Message *)msg );
>> 	string s1 = txtMessage->getText();
>> 	istringstream is1(s1);
>> 	Stream_reader<istringstream, mValue> reader(is1);
>> 
>> 	mValue value;
>> 	reader.read_next(value);
>> 	mObject& O = value.get_obj();
>> 
>> 	for(mObject::iterator it=O.begin();it != O.end();++it){
>> 	    cout <<endl<< (it)->first;
>> 	    if(!(it)->first.compare("Portfolio")){
>> 	    	mArray& a = O["Portfolio"].get_array();
>> 	    	for(int i=0;i<a.size();i++){
>> 	    		mArray& tmp = a[i].get_array();
>> 	    		cout << endl << "       ";
>> 	    		string t = tmp[0].get_value<string>();
>> 			get_ref_data(t);
>> 	    		for(int j=0;j<tmp.size();j++){
>> 	    			cout <<"  " << tmp[j].get_value<string>();
>> 	    		}
>> 	    	}
>> 	    }
>> 	}
>> 
>> 	txtMessage->acknowledge();
>> 
>> //	testing the slave response part. The same Object is being sent as
>> received.
>> 	ofstream os( "json_cpp.txt" );
>> 	write_stream( mValue( O ), os, true );
>> 
>> 	mObject OR;
>> 	OR["response"] = "done";
>> 	OR["input"] = O;
>> 	string s2 = write_string(mValue( OR ),true);
>> 
>> 	destURI = "Data.Response.Q";
>> 	respProducer = new clAMQ(brokerURI, destURI);
>> 	respProducer->connect();
>> 	respProducer->createProducer();
>> 
>> 	void *rmsg = respProducer->createTextMessage();
>> 	clAMQ::addPayLoadToTextMessage(rmsg,s2);
>> 	respProducer->sendMsg(rmsg);
>> }
>> 
>> 
>> In the above function, when get_data() is called, I got the error
>> message.
>> 
> 
> I don't really see much error handling in these methods so it likely
> something in there is throwing an exception, I'd recommend maybe
> stepping through the code with the debugger to see if that's true and if
> so then you can see where its coming from.  
> 
> Regards
> Tim.
> 
>> Please let me your inputs.
>> 
>> Thanks,
>> Manu
>> 
>> 
>> Timothy Bish wrote:
>> > 
>> > On Thu, 2010-07-01 at 06:47 -0700, manua wrote:
>> >> Hi All,
>> >> 
>> >> I am getting the following error, when processing the received
>> message,
>> >> 
>> >> caught unknown exception
>> >>         FILE: activemq/core/ActiveMQConsumer.cpp, LINE: 987
>> >>         FILE: activemq/core/ActiveMQSessionExecutor.cpp, LINE: 133
>> >> 
>> >> My application is divided into three parts,
>> >> 
>> >> 1. On receiving the message, its extracting the test message and
>> passing
>> >> that to json_spirit function. 
>> >> 2. The json spirit function converts the text message to a json and
>> >> extract
>> >> the various vector/map parameters. It then pass the extracted
>> parameter
>> >> to
>> >> the Db Function.
>> >> 3. The Db function takes the string as a input and accordingly fetch
>> the
>> >> data from the db.
>> >> 
>> >> Its working fine till Step 2. In step 3, Db connection is made but the
>> >> moment it hits the query part, I got the above error.
>> >> 
>> >> Am I doing something wrong, or is there a better way to do it.
>> >> Please let me know your inputs.
>> >> 
>> >> Thanks,
>> >> Manu
>> > 
>> > Without seeing the code my first guess would be that your onMessage
>> > method is throwing an exception somewhere in your step three which
>> > propagates back through the ActiveMQConsumer to the
>> > ActiveMQSessionExecutor.  I'd add some more exception handing in you
>> > onMessage handler to see what your code is throwing.
>> > 
>> > Regards
>> > 
>> > -- 
>> > Tim Bish
>> > 
>> > Open Source Integration: http://fusesource.com
>> > ActiveMQ in Action: http://www.manning.com/snyder/
>> > 
>> > Follow me on Twitter: http://twitter.com/tabish121
>> > My Blog: http://timbish.blogspot.com/
>> > 
>> > 
>> > 
>> 
> 
> -- 
> Tim Bish
> 
> Open Source Integration: http://fusesource.com
> ActiveMQ in Action: http://www.manning.com/snyder/
> 
> Follow me on Twitter: http://twitter.com/tabish121
> My Blog: http://timbish.blogspot.com/
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Caught-unknown-exception-in-activeMQConsumer.cpp-tp29045831p29163079.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.


Mime
View raw message