[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference pamsrc::objectbroker_development

Title:ObjectBroker Development - BEA Systems' CORBA
Notice:See note 2 for kit locations; note 4 for training
Moderator:RECV::GUMBELd
Created:Thu Dec 27 1990
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2482
Total number of notes:13057

2440.0. "CORBA_Context_set_one_value on NT v3.51?" by STKAI1::T_ANDERSSON (Tomas Andersson) Wed Feb 19 1997 09:17

I have a question dealing with attributes of context objects.

With OBB v2.6-07 on Intel/NT v3.51, it seems that a single
CORBA_Context_set_one_value call has no effect. It is necessary
to make the call twice, the second call being an exact copy of
the first, or the change won't "stick". This problem does not
occur on VAX/VMS.

The following code might help illustrate the problem:


************************************************

int ISTORB_C_contextCreate( /* CORBA_Context *defCtxObj,*/
                 char *in_ObjectServerId, 
                 char *in_repository,
                 char *in_defaultNodes,
                 char *in_Environment)  
{
  CORBA_Environment ev;
  char              *tmpElem;
  CORBA_Context     tmpCtxObj;

  CORBA_NVList      aList, getList;
  int               noOfElem;
  int               i = 1;

  /* Get a context object handle */
  CORBA_ORB_get_default_context(CORBA_DEC_ORB_OBJECT, &ev, &tmpCtxObj);
   if (ev._major != CORBA_NO_EXCEPTION) {reportExcep(&ev);
return(FALSE);}

  /* Set ObjectServerId */
  CORBA_Context_set_one_value(tmpCtxObj, &ev,
"OBB_DEFAULT_TABLE.ObjectServerId", in_ObjectServerId);
  if (ev._major != CORBA_NO_EXCEPTION) {reportExcep(&ev);
return(FALSE);}

  /* Did the set work? */
  CORBA_Context_get_values(tmpCtxObj, &ev, NULL, (CORBA_Flags)0,
"OBB_DEFAULT_TABLE.ObjectServerId", &getList);
  if(ev._major != CORBA_NO_EXCEPTION) {ISTORB_C_reportExcep(&ev);}
  else printf("objId <%s>\n", getList[0].argument._value);
  
  /* Set ObjectServerId again */
  CORBA_Context_set_one_value(tmpCtxObj, &ev,
"OBB_DEFAULT_TABLE.ObjectServerId", in_ObjectServerId);
  if (ev._major != CORBA_NO_EXCEPTION) {reportExcep(&ev);
return(FALSE);}

  /* Did the set work the second time? */
  CORBA_Context_get_values(tmpCtxObj, &ev, NULL, (CORBA_Flags)0,
"OBB_DEFAULT_TABLE.ObjectServerId", &getList);
  if(ev._major != CORBA_NO_EXCEPTION) {ISTORB_C_reportExcep(&ev);}
  else printf("objId <%s>\n", getList[0].argument._value);
  
************************************************

System exception encountered: CORBA_UNKNOWN
OBB_CTX_ATTRNOTFND (e), Context property `ObjectServerId' not found.


objId <7aecdef6a512.0c.0d.54.00.00.00.00.00>

************************************************


Is this a bug, or are we doing something wrong again?

Regards,

- Tomas A -

T.RTitleUserPersonal
Name
DateLines
2440.1REQUE::BOWERPeter Bower, ObjectBrokerMon Feb 24 1997 20:586
    
    You might want to try it on V2.7. We replaced on disk context
    default context objects with in-memory context objects. If I get
    a chance, I will try it out on NT, but you might get to it
    before I do.
    
2440.2V2.7 on NT4 is OKSTKAI1::T_ANDERSSONTomas AnderssonWed Mar 05 1997 02:547
 I tried it with OBB v2.7-11 on NT v4.0, and it seems to work all right.

 Thanks.

 - Tomas A -