activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Bish <tabish...@gmail.com>
Subject Re: Caught unknown exception in activeMQConsumer.cpp
Date Wed, 14 Jul 2010 15:09:05 GMT
On Wed, 2010-07-14 at 08:07 -0700, manua wrote:
> 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

Great, glad its now working for you.

Regards


> 
> 
> 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/
> > 
> > 
> > 
> 

-- 
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/


Mime
View raw message