[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] Re: Re: [xmlblaster] c++ error!!

Hi Zhang
there was an issue with the sessionId. When you started the publisher it killed the session of the subscriber. The error is fixed and I think the CORBA MARSHAL exception you got is related to this since the callback server could not be found from the server side anymore.

Check out the new cvs code please.


zhang wrote:
The CORBA Implementation is ORBACUS

It does supports multi-thread.

Hi Zhang,
1) Could you please tell me which Corba Implementation are you using ? I think you need one which supports multithreading.
2) Could you try to comment out the while loop ?


zhang wrote:

I have a program , a corba program

the idl defination is as following interface Hello {
void say_hello():

i want the function as follows : client->Server.say_hello and in say_hello, it connect to xmlblaster and subscribe to some topic
i program it following Externorb.cpp , transform the extern orb to kernel, but it seems that wrong
it think maybe the following kernerl function is wrong!! the while is wrong??

void CorbaConnection::createCallbackServer(POA_clientIdl::BlasterCallback *implObj) {
if (implObj) {
if (log_.trace()) log_.trace(me(), "Trying resolve_initial_references ...");
CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA");
if (log_.trace()) log_.trace(me(), "Trying narrowing POA ...");
poa_ = PortableServer::POA::_narrow(obj.in());
PortableServer::POAManager_var poa_mgr = poa_->the_POAManager();
// _this() incarnates with the servant ...
callback_ = implObj->_this();
CORBA::String_var tmp = orb_->object_to_string(callback_);
callbackIOR_ = tmp;

    while (orb_->work_pending()) orb_->perform_work();
    // add exception handling here !!!!!

I trace into the kenrerl and find that it is the defaultCallbakcServer is not
activated , and the server side call its ping error.

Can somebody explain this error to me?
thanks !!