How is the interface repository loaded?
The Interface Repository is a standard CORBA Service that is loaded with the interfaces described in IDL files and provides applications with a dynamic description of these interfaces. You can think of the Interface Repository as a language independent mechanism for introspection. The Interface Repository is used by generic applications that build dynamically their access to CORBA objects. Interface Repository startupWhen ACS is started, the Interface Repository service is started together with other basic services. In older versions of ACS, this was done in the Since ACS 3.1, we are using the MICO implementation of the Interface Repository and the command line to start the service is: $MICO_HOME/bin/ird -ORBNoResolve -ORBIIOPAddr inet:$HOST:$ACS_IR_PORT --ior $IR_IOR & Interface Repository loadingInitially the interface repository is empty. Before ACS version 5.0.3, this is done once more in the acsIrfeed -IRcorbaloc corbaloc::$HOST:$ACS_IR_PORT/InterfaceRepository & Since ACS version 5.0.3, acsstartupLoadIFR has been used, called by acsStartORBSRVC, to load the interface repository. As of ACS 8.0, this too has been moved to the acsInterfaceRepository script. Since there are usually many IDL files, this can take quite some time. The Interface Repository Loading ProcessLoading all IDL files in the systemThe
$MICO_HOME/bin/idl $IDL_PATH --no-codegen-c++ --feed-ir -ORBIfaceRepoAddr inet:$HOST:$ACS_IR_PORT $ACS_IDL_IRFEED_FILE Notes:
The MICO IDL compiler is instructed by the But this step is from any respect equivalent to compiling a big IDL file that contains all interfaces known to the system. If there is any problem/error with this compilation, the process is aborted and the loading into the Interface Repository is left incomplete. A typical problem is when some interface is duplicated in more IDL files. This problem is often not discovered when compilling the IDL files in isolation to build skeletons and stubs for coding, but appears immediatly when loading all interfaces at the same time into the Interface Repository. Other problems can also appear because of incompatibilities between the MICO IDL compiler and the other IDL compilers used in ACS. Code that is accepted by these compilers can be rejected or not understood properly by the MICO one. Note: As of ACS 6.0.4, ACS provides a check option on acsstartupLoadIFR which dumps a copy of the generated "global" IDL file. Load just specific IDL filesIt is also possible to load manually specific IDL files by listing them in the acsstartupLoadIFR -IRcorbaloc corbaloc::$HOST:$ACS_IR_PORT/InterfaceRepository idlfile1.idl idlfile2.idl ..... Note: The directory where the idl files reside must be in the This allows you also to reload an already loaded IDL interface without having to stop and restart the whole ACS after a minor change. Browsing the Interface RepositoryBundled with ACS you get the JacORB Inteface Repository Browser. You can launch the tools from the ACS Command Center or following the instructions in FAQJacORBTools -- GianlucaChiozzi - 27 Jul 2004 |
Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.
|