next up previous
Next: Listing All Entries Up: BOA Previous: BOA Daemon

Implementation Repository

 

The implementation repository is the place where information about an object implementation (also known as server) is stored. The CORBA 2 specification gives you only an idea what the implementation repository is for, but does not specify the interface to it. So the design of the implementation repository is MICO specific. Here is the IDL for MICO's implementation repository:

 1:  module CORBA {
 2:    /*
 3:     * Implementation Repository Entry
 4:     */
 5:    interface ImplementationDef {
 6:
 7:      enum ActivationMode {
 8:        ActivateShared, ActivateUnshared,
 9:        ActivatePerMethod,
10:        ActivatePersistent,
11:        ActivateLibrary
12:      };
13:
14:      typedef sequence<string> RepoIdList;
15:
16:      attribute ActivationMode mode;
17:      attribute RepoIdList repoids;
18:      readonly attribute string name;
19:      attribute string command;
20:    };
21:
22:    /*
23:     * Implementation Repository
24:     */
25:    interface ImplRepository {
26:      typedef sequence<ImplementationDef> ImplDefSeq;
27:
28:      ImplementationDef create (...);
29:      void destroy (in ImplementationDef impl_def);
30:      ImplDefSeq find_by_name (in string name);
31:      ImplDefSeq find_by_repoid (in string repoid);
32:      ImplDefSeq find_all ();
33:    };
34:  };

Interface ImplRepository defined in lines 25-33 is the implementation repository itself. It contains methods for creating, destroying and finding entries. An implementation repository entry is defined by interface ImplementationDef in lines 5-20. There is exactly one entry for each server which contains

for the sever. The name uniquely identifies the server. The activation mode tells the BOA whether the server should be activated once (shared server), once for each object instance (unshared server), once for each method invocation (per method server), or not at all (persistent server). See section 4.3.4 for details on activation modes. The shell command is executed by the BOA whenever the server has to be (re)started. Activation mode library is used for loading servers into the same process as the client during runtime. Instead of a shell command you have to specify the path of the loadable server module for library activation mode. Finally there is a repository id for each IDL interface implemented by the server. See section 3.3.3 for details on repository ids.

If you have written a server that should be activated by the BOA daemon when its service is requested you have to create an entry for that server. This can be accomplished by using the program imr. imr can be used to list all entries in the implementation repository, to show detailed information for one entry, to create a new entry, and to delete an entry.

The implementation repository is selected by the -ORBImplRepoAddr or -ORBImplRepoIOR options, which you usually put into your .micorc file.




next up previous
Next: Listing All Entries Up: BOA Previous: BOA Daemon

MICO
Tue Nov 10 11:04:45 CET 1998