[omniORB] Newbie omniORB problem; unknown system exception?

Stephen Hansen shansen at advpubtech.com
Tue May 11 16:36:54 BST 2004


... Nevermind.

After merging the sample.reg, it works. 

I'm sorry to bother :)

--Stephen 

> -----Original Message-----
> From: Stephen Hansen 
> Sent: Tuesday, May 11, 2004 2:54 PM
> To: omniorb-list at omniorb-support.com
> Subject: [omniORB] Newbie omniORB problem; unknown system exception?
> 
> Hello all.
>     
> I'm trying to see if omniORB will work in our project, and 
> have run into a bit of a snag. I'm using omniORB and 
> omniORBpy to talk back and forth between a couple different 
> applications. For right now i have something very simple in place:
>  
>     module FalconLayout {
>         interface LayoutAgent {
>             unsigned short GetDocumentCount();
>         };
>     };
>  
> That's all :) My C++ code, in Visual C++ 7.1, which is mostly 
> just from the boilerplate example produced by omniidl:
>  
> ----------------------------------------------------------
> 
> #include <iostream>
> #include <fstream>
> #include "FalconLayout.h"
> 
> using namespace std;
> ofstream err("c:\\corba.error");
> 
> class FalconLayout_LayoutAgent_i: public 
> POA_FalconLayout::LayoutAgent,
> 	public PortableServer::RefCountServantBase {
> 	private:
> 	public:
> 
> 		FalconLayout_LayoutAgent_i();
> 		virtual ~FalconLayout_LayoutAgent_i();
> 
> 		CORBA::UShort GetDocumentCount();
> 
> };
> 
> FalconLayout_LayoutAgent_i::FalconLayout_LayoutAgent_i(){}
> 
> FalconLayout_LayoutAgent_i::~FalconLayout_LayoutAgent_i(){}
> 
> CORBA::UShort FalconLayout_LayoutAgent_i::GetDocumentCount(){
> 	return CORBA::UShort(33);
> }
> 
> CORBA::ORB_var globalOrb;
> 
> void runOrb() {
> 	try {
> 		char* emptylist = {"editpag"};
> 		int count = 0;
> 		globalOrb = CORBA::ORB_init(count, &emptylist);
> 
> 		CORBA::ORB_var orb = globalOrb;
> 
> 		CORBA::Object_var obj =
> orb->resolve_initial_references("RootPOA");
> 		PortableServer::POA_var poa =
> PortableServer::POA::_narrow(obj);
> 
> 		FalconLayout_LayoutAgent_i* 
> myFalconLayout_LayoutAgent_i = new FalconLayout_LayoutAgent_i();
> 		PortableServer::ObjectId_var
> myFalconLayout_LayoutAgent_iid =
> poa->activate_object(myFalconLayout_LayoutAgent_i);
> 
> 		{
> 			CORBA::Object_var ref =
> myFalconLayout_LayoutAgent_i->_this();
> 			CORBA::String_var
> sior(orb->object_to_string(ref));
> 			cout << "IDL object 
> FalconLayout::LayoutAgent IOR = '" << (char*)sior << "'" << endl;\
> 			ofstream outf("c:\\ref.ref");
> 			outf << (char*)sior;
> 		}
> 
> 		PortableServer::POAManager_var pman =
> poa->the_POAManager();
> 		pman->activate();
> 	}
> 	catch(CORBA::SystemException&) {
> 		err << "Caught CORBA::SystemException." << endl;
> 	}
> 	catch(CORBA::Exception&) {
> 		err << "Caught CORBA::Exception." << endl;
> 	}
> 	catch(omniORB::fatalException& fe) {
> 		err << "Caught omniORB::fatalException:" << endl;
> 		err << " file: " << fe.file() << endl;
> 		err << " line: " << fe.line() << endl;
> 		err << " mesg: " << fe.errmsg() << endl;
> 	}
> 	catch(...) {
> 		err << "Caught unknown exception." << endl;
> 	}
> 
> };
> 
> void doWork() {
> 	try {
> 
> 		CORBA::ORB_var orb = globalOrb;
> 		if(orb->work_pending()) {
> 			orb->perform_work();
> 		}
> 	}
> 	catch(CORBA::SystemException&) {
> 		err << "Caught CORBA::SystemException." << endl;
> 	}
> 	catch(CORBA::Exception&) {
> 		err << "Caught CORBA::Exception." << endl;
> 	}
> 	catch(omniORB::fatalException& fe) {
> 		err << "Caught omniORB::fatalException:" << endl;
> 		err << " file: " << fe.file() << endl;
> 		err << " line: " << fe.line() << endl;
> 		err << " mesg: " << fe.errmsg() << endl;
> 	}
> 	catch(...) {
> 		err << "Caught unknown exception." << endl;
> 	}
> }
> 
> void stopOrb() {
> 	try {
> 		CORBA::ORB_var orb = globalOrb;
> 		err.close();
> 		orb->destroy();
> 	}
> 	catch(CORBA::SystemException&) {
> 		err << "Caught CORBA::SystemException." << endl;
> 	}
> 	catch(CORBA::Exception&) {
> 		err << "Caught CORBA::Exception." << endl;
> 	}
> 	catch(omniORB::fatalException& fe) {
> 		err << "Caught omniORB::fatalException:" << endl;
> 		err << " file: " << fe.file() << endl;
> 		err << " line: " << fe.line() << endl;
> 		err << " mesg: " << fe.errmsg() << endl;
> 	}
> 	catch(...) {
> 		err << "Caught unknown exception." << endl;
> 	}
> }
> 
> ----------------------------------------------------------
> 
> The application is calling runOrb, then doWork periodically, 
> and stopOrb at end. The corba.error file is being steadily 
> filled with SystemExceptions. I don't know how to dignose 
> what's causing that :)
> 
> Help?
> 
> Thanks!
> 
> --Stephen
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
> 



More information about the omniORB-list mailing list