[omniORB] [Caught CORBA::PERSIST_STORE]

sheena kansal sheena.kansal at gmail.com
Fri May 31 10:30:54 BST 2013


Hi,

omniORB-4.1.6, c++

omniORB config (other than defaults)-

clientCallTimeOutPeriod = 0
clientConnectTimeOutPeriod = 15000
supportPerThreadTimeOut = 0
resetTimeOutOnRetries = 0
outConScanPeriod = 30
maxGIOPConnectionPerServer = 5
oneCallPerConnection = 0
serverCallTimeOutPeriod = 0
inConScanPeriod = 0
threadPerConnectionPolicy = 0
maxServerThreadPerConnection = 100
maxServerThreadPoolSize = 50

We are hitting the CORBA::PERSIST_STORE exception while trying to add a
object reference.

1. First we are doing bind() for a service, then we got a warning message
that object is arleady bound.
2. then when adding another object using bind(), then we are seeing
PERSIST_STORE exception.

here is the code for reference

      try
      {
                // Bind a context
                CosNaming::Name contextName;
                contextName.length(1);
                contextName[0].id   = iv_AppName.c_str();  // string copied
                contextName[0].kind = iv_Context.c_str();  // string copied
                CosNaming::NamingContext_var newContext;

                try
                {
                        // Bind the context to root.
1.                      newContext =
iv_pNSRoot->bind_new_context(contextName);

                }
                catch(CosNaming::NamingContext::AlreadyBound& ex)
                {
                        CORBA::Object_var obj;
2.                      obj = iv_pNSRoot->resolve(contextName);
3.                      newContext = CosNaming::NamingContext::_narrow(obj);
4.                      if(CORBA::is_nil(newContext))
                        {
                                cout<< "Failed to narrow naming context:"
<<":" <<__FUNCTION__
                                <<__LINE__;
                        }
                }

                // Bind objref with input name to the context
                CosNaming::Name objectName;
                objectName.length(1);
                objectName[0].id   = "ServerReady";
                objectName[0].kind = iv_Kind.c_str();

                try
                {
                        cout<< "register object Name:" << i_ObjectName;

5.                       newContext->bind(objectName, i_ObjRef);
                }
                catch(CosNaming::NamingContext::AlreadyBound& ex)
                {
                        cout<< "WARNING: Nameservice reports that the
object is already "
                                << "bound: Reregister object Name:" <<
i_ObjectName;                <<<<<<<<<<<<<<<<<<getting this Warning at
first time
6.                        newContext->rebind(objectName, i_ObjRef);
                }

        }
        catch(...)
        {
                // Handle all other exceptions
                pError =  handleExceptions(FORB_SERV_REGISTER_OBJECT,
false, __LINE__,
                                0, 0, 0, __FUNCTION__,
strlen(__FUNCTION__));                       <<<<<<<<<<<<<<<<<<<getting
this exception secnd time
                ForbUDC_STRING_DATA data(i_ObjectName.c_str());

        }

Any idea why we are getting it. We are seeing it for the first time. What
should we do to resolve it?



-- 
Regards,
Sheena
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20130531/027c68e6/attachment.html>


More information about the omniORB-list mailing list