diff options
Diffstat (limited to 'TAO/examples/POA/On_Demand_Loading/README')
-rw-r--r-- | TAO/examples/POA/On_Demand_Loading/README | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/TAO/examples/POA/On_Demand_Loading/README b/TAO/examples/POA/On_Demand_Loading/README new file mode 100644 index 00000000000..1e54111f6f9 --- /dev/null +++ b/TAO/examples/POA/On_Demand_Loading/README @@ -0,0 +1,57 @@ +$Id$ + +On_Demand_Loading Example +------------------------- + +This example illustrates how to dynamically link and load servants +into a POA in a platform-independent manner using the ACE_DLL feature +and standard CORBA Servant Manager features. In the example, the POA +is configured with the USE_SERVANT_MANAGER policy value, which relies +on an application supplied Servant Manager object to supply +object/server associations. + +If the POA has the RETAIN value for the servant retention, the POA +expects the Servant Manager to implement the Servant Activator +interface. Conversely, when the POA is created with the NON_RETAIN +value for servant retention, the Servant Manager must implement the +Servant_Locator interface. + +This example illustrates both Servant Activator and Servant_Locator +interfaces. The servant object is created by a factory function that +resides in a DLL that is linked and loaded into the server's address +space on-demand when client requests arrive. The ObjectID in each +client request indicates which DLL name and which factory function to +use to create the servant. + +For the Servant_Activator example, once the servant is loaded, the +Object-to-Servant association is added to the Active Object Map +maintained by the POA. This association becomes invalid when the POA +is destroyed or/and the Object is deactivated. In contrast, for the +Servant_Locator example operation request from the client causes the +servant to be linked, processed, destroyed, and unlinked. For all +examples, the dynamic configuration granularity is at the object +level, i.e., every object is associated with a DLL that is linked and +loaded into memory on-demand. + +Note that the server need not be statically linked with the DLL. The +DLL name and the factory function used to obtain the servant can be +provided to the server at run-time. This gives us the flexibility of +modifying and linking the servant without having to statically link +the server along with the DLL. + +Execution: +--------- + + Run the run_test_pl perl script. + +example: + run_test_pl -f ior_file + +The output will demonstrate the different actions performed by the +Servant_Manager via the Servant_Activator and the Servant_Locator +interfaces. + +NOTE: If directly running run_test.pl srcipt then by default the example +uses Generic_Servant as the servant. Hence its necessary to build +$TAO_ROOT/examples/POA/Generic_Servant before you build and run this +example. |