Don't worry, the compiled routines don't have to be changed to access the object in another machine.
DCOM works transparently so that the caller routine never gets to know where the object is actually located.


Here is how it works. When the object was registered in Server A, on all client machines, it was registered using a package that registered the component as a remot server. Although you will find a reference of that object in the client machines, deep in the registry it is written that the object is located on Server A.

Now simply re-registering the object in Server B should cause the clients of Server B to call the local object. However, to make other clients to point to server B, you must go through the process of creating an MTS/COM+ package on Server B that will include the object, export the package, and then install the package on every client machine. Then all of the clients will know that the object is now on server B.

Again, the client program does not even need to know where the object is actually located. It has to be in the registry.

Hope it helps.