Keywords: doc

Next: Activation Mode Unshared Up: Activation Modes Previous: Activation Mode Shared

### Activation Mode Persistent

Persistent servers are just like shared servers, except that the BOA daemon does not activate them. Instead they have to be started by means outside of the BOA, e.g. by a system administrator or a shell script. The code of a persistent server looks exactly like that of a a shared server. But note that once `deactivate_impl()` and `shutdown()` are called the server will not be restarted by the BOA daemon.

That means persistent servers do not need a running BOA daemon. Instead clients can connect directly to the object implementation, giving you better performance. See section 3.3.3 for an example. However, there is a reason to have even persistent servers register with the BOA daemon: you can do a `bind()` using the address of the BOA daemon, that is you do not need to know the address of the persistent server. Making a persistent server register with the BOA daemon is done like this:

      some_server -OARemoteAddr <micod-address> -ORBImplRepoAddr <micod-address> \
        -OAImplName <impl-name>

where `<micod-address>` is the address `micod` is bound to. This is usually the same address you used as an argument to `-ORBIIOPAddr` when starting `micod`. See section 3.3.3 for details on addresses, sections 4.1.1 and 4.3.1 for details on command line arguments. `<impl-name>` is the name of the entry in the implementation repository the corresponds to the server.