# Dynamic reconfiguration of ORBLink servers

An ORBLink server may be dynamically reconfigured in a number of ways.

## Redefinition of implementation methods

A `corba:define-method` form may be reevaluated at any time. The most recent definition will be used.

One common such usage occurs when an implementation has signalled an exception for with the ORB is configured to enter a debug loop. From the debug loop, the implementation may be re-invoked; if the implementation has been modified, the most recent implementation definition will be used.

## Recompilation of IDL files

An IDL file may be edited and recompiled using `corba:idl`. The semantics are analogous to the semantics of normal Lisp redefinition of types.

This is most useful when a server interface has been modified to accept additional operations. Existing clients will continue to work unchanged and new clients can take advantage of the new operations.

However, if the signature of an existing operation was altered, care must be taken to avoid clients using the old operation definition.

The tutorial works though an example of dynamically adding an attribute to an existing server.

## Reconfiguration of clients

Of course, clients can also be reconfigured simply by recompiling the IDL. Care must be taken to ensure that the client is not using an old operation with an incompatible signature. That is, in order to modify an operation to an incompatible signature, the IDL in both the server and the client must be recompiled.

## Other means for server configuration

Sometimes handlers for certain server events, like errors and junction closure can be defined.

The ORB itself offers a few additional run-time configuration options.