Hi all!

I wrote a C-program to insert 10 users in GW8 using the AdminAPI. The program connects to domain A and inserts the users into a post office in domain B, one after the other. This works fine.

But when immediately after the insertion some attributes of the newly added user are changed, at first all users are displayed in the GroupWise view of domain B in ConsoleOne and are accessible when the program has finished. After a few seconds (up to 60) some of them disappear. Clicking on the respective user in the eDir view of ConsoleOne results in this error message:

The GroupWise information for this object does not exist. A possible cause is that replication is still in progress

When the user property screen eventually appears, you can find the GW attributes (post office) in the others tab while the others tab of the users without problems is empty execpt for the object classes.

A manual synchronisation of the eDir users in question yields a Java NullPointerException.

The error does not occur when:
- the program waits for, e.g., 45 seconds AFTER the insertion and BEFORE the change of the newly added user.
- inserting and changing GW users in the same domain to which the program is connected. It is not important which domain is primary.
- inserting and changing only up to 9 users (but sometimes less).

Further information:
How the program works:
- Insert the user with the function pIADUsers->AddExistingUser(). The corresponding eDir user already exists.
- pIADSystem->Commit();
(-> Here the program needs to be delayed for quite a long time before the user can be updated so that it remains visible and accessible.)
- Retrieve the user for further processing. It will be found and has not disappeared already.
- Now change the user using the put_xxx functions (such as pIADUser3->put_AddressFormat()).
- pIADUser3->Commit().
This is done ten times in a loop.
In any case each function returns S_OK.

The program runs on Windows 2003, while GroupWise and eDirectory run on Linux. eDir, domain A, and domain B reside on three different computers.

Whats wrong with my program? Or is it something common in the Novell world having to wait for synchronisation or replication processes to finish? Can I enforce such processes programmatically so that the program does not have to wait when no waiting is required (remember that not all GW users disappear as described, so there is no point in waiting)?

I would appreciate any help to fix the bug (if any) in my program and/or any explanation, why the delay might be inevitable.