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 Thu, 01 Jul 2010 14:27:50 GMT
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/


Mime
View raw message