org.omg.FT
Class ReplicationManager_impl

java.lang.Object
  |
  +--org.omg.PortableServer.Servant
        |
        +--org.omg.FT.ReplicationManagerPOA
              |
              +--org.omg.FT.ReplicationManager_impl
All Implemented Interfaces:
GenericFactoryOperations, org.omg.CORBA.portable.InvokeHandler, ObjectGroupManagerOperations, PropertyManagerOperations, ReplicationManagerOperations

public class ReplicationManager_impl
extends ReplicationManagerPOA


Inner Class Summary
private  class ReplicationManager_impl.ObjFactAndIdStr
           
private  class ReplicationManager_impl.ObjGroupInfoStr
           
(package private)  class ReplicationManager_impl.StructuredFaultConsumer
          the replication manager is represented by this consumer in the list of fault event consumers of the fault notifier
 
Field Summary
(package private)  java.lang.Object create_object_semaphor
           
(package private)  java.util.Vector currProperties
           
(package private)  java.util.Vector defaultProperties
           
(package private)  java.lang.Object delete_object_semaphor
           
(package private)  FaultNotifier fault_notifier
           
(package private)  int flags
           
(package private)  java.lang.String ftDomName
           
(package private)  java.util.Hashtable groupEvid
           
(package private)  java.util.Hashtable groupProperties
           
(package private) static int INDEX_PRIMARY
           
(package private) static int NR_NEW_REPL_W_F
           
(package private)  long objGrId
           
(package private)  org.omg.CORBA.ORB orb
           
(package private)  org.omg.PortableServer.POA poa
           
(package private)  java.lang.Object recover_object_semaphor
           
(package private)  java.util.Vector theFaultD_l
           
(package private)  java.util.Vector theLoggRecC_l
           
(package private)  java.util.Hashtable typeProperties
           
 
Fields inherited from class org.omg.FT.ReplicationManagerPOA
_ids_list, _ops_Hash
 
Fields inherited from class org.omg.PortableServer.Servant
_delegate, _hasGetInterface
 
Constructor Summary
ReplicationManager_impl(org.omg.CORBA.ORB _o, org.omg.PortableServer.POA _p, java.lang.String ftDom)
           
 
Method Summary
 void activate_object(org.omg.CORBA.Any f_c_i, long g_i, boolean f_t)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void add_fault_monitor(FaultMonitorInfo fmi)
          Method called to add a new Fault Monitor to the ReplicationManager's list of FMs
 void add_logging_recovery_c(LoggingRecoveryControllerInfo lrci)
          Method called to add a Fault Notifier to the ReplicationManager's list of FNs
 org.omg.CORBA.Object add_member(org.omg.CORBA.Object object_group, org.omg.CosNaming.NameComponent[] the_location, org.omg.CORBA.Object member)
          ObjectGroupManager interace method - adds a member (from a certain location) to an already existing group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
 void add_new_method_type_id_d(java.lang.String type_id, java.lang.String method_n, org.omg.CORBA.TypeCode[] par_types, org.omg.CORBA.TypeCode[] exc_types, int[] modes, char method_type)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void add_new_method_type_id_s(java.lang.String type_id, MethSignStr the_method)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void add_new_type_id(java.lang.String type_id, java.lang.String class_name, java.lang.String[] new_arg_class_n, java.lang.Object[] new_arg_values, MethSignStr[] methods)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
private  void checkpoint_object(long checkp_int, boolean periodic, java.lang.Object stub, long gr_id, ReplicationManager_impl.ObjGroupInfoStr crt, org.omg.CORBA.Object primary, LoggingRecoveryController new_lg_r_c, int repl_s, java.lang.reflect.Method narrow_m, java.lang.Class helper_class)
           
private  org.omg.CORBA.Object[] create_active_object(org.omg.IOP.IOR ge_ior, FactoryInfo factory, java.lang.String type_id, ReplicationManager_impl.ObjGroupInfoStr the_i, int repl_s)
          this method is used to create an object and install it as primary in a passive replicated group (usually this does not happen - one of the backups can take over the role of primary).The creation of a primary is needed when there are no backups to take over the role of primary
 org.omg.CORBA.Object create_member(org.omg.CORBA.Object group, org.omg.CosNaming.NameComponent[] loc, java.lang.String type_id, Property[] crit)
          ObjectGroupManager interace method - creates a member of an already existing group according to the criteria given by the invoker (application writer) Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
private  org.omg.CORBA.Object create_object(org.omg.IOP.IOR ge_ior, FactoryInfo factory, java.lang.String type_id, ReplicationManager_impl.ObjGroupInfoStr the_i, int repl_s)
          this method is used only by the replication manager ("internally") to create an object instead of a failed one, if necessary
 org.omg.CORBA.Object create_object(java.lang.String type_id, Property[] the_criteria, org.omg.CORBA.AnyHolder factory_creation_id)
          Method specified in the GenericFactory interface
 void delete_object(org.omg.CORBA.Any factory_creation_id)
          Method specifid in the GenericFactory interface - deletes a certain group
private  void do_work_failure(org.omg.CORBA.Object group, ReplicationManager_impl.ObjFactAndIdStr failed_info, java.lang.String type_id, ReplicationManager_impl.ObjGroupInfoStr crt, long group_id, int repl_s, int min_nr_repl, int fault_m_g, long checkp_int, boolean periodic, long mon_i, long mon_t_o)
          Method used to perform all the actions needed when a member of a group fails Depending on the replication style it performs the proper failover procedures: depending on the numer of replicas remaining and the group size constraints, it may create new replicas on hosts different from the ones where replicas failed
private  FaultMonitor[] find_monitors(java.lang.String[] locations)
          Method used to return a list of fault monitors registered in the Replicatio Manager
 Property[] get_default_properties()
          Method in the PropertyManager interface
 FaultNotifier get_fault_notifier()
          Method specified in the ReplicationManager interface - used to return the registered fault notifier
 org.omg.CORBA.Object get_group_ref(long group_id)
          ObjectGroupManager interace method - returns the object group identifier of a group
 int get_load()
           
 org.omg.CORBA.Object get_member_ref(org.omg.CORBA.Object group, org.omg.CosNaming.NameComponent[] loc)
          ObjectGroupManager interace method - returns the CORBA object reference for a member of a given group
 long get_object_group_id(org.omg.CORBA.Object group)
          ObjectGroupManager interace method - returns the object group identifier of a group
 org.omg.CORBA.Object get_object_group_ref(org.omg.CORBA.Object group)
          ObjectGroupManager interace method - returns the object group reference of a group based on a group reference that could be outdated
 Property[] get_properties(org.omg.CORBA.Object group)
          Method in the PropertyManager interface
 Property[] get_type_properties(java.lang.String type)
          Method in the PropertyManager interface
private  void handle_obj_failure(org.omg.CORBA.Object group, java.lang.String location, ReplicationManager_impl.ObjGroupInfoStr crt, long group_id, java.lang.String type_id)
          Method called when a member of a group failed
 void install_gateway(org.omg.CORBA.Any a, org.omg.CORBA.Object gw)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 org.omg.CosNaming.NameComponent[][] locations_of_members(org.omg.CORBA.Object group)
          ObjectGroupManager interace method - returns the list of locations of the members of a group
 void modify_class_name_ti_ctr(java.lang.String type_id, java.lang.String new_class_name, java.lang.String[] class_names, java.lang.Object[] arg_values)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_class_name_ti(java.lang.String type_id, java.lang.String new_class_name)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_add_exc(java.lang.String type_id, java.lang.String the_method, org.omg.CORBA.TypeCode exc_type, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_add_param(java.lang.String type_id, java.lang.String the_method, org.omg.CORBA.TypeCode par_type, int mode, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_modify_exc(java.lang.String type_id, java.lang.String the_method, org.omg.CORBA.TypeCode exc_type, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_modify_param(java.lang.String type_id, java.lang.String the_method, org.omg.CORBA.TypeCode par_type, int mode, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_modify_type(java.lang.String type_id, java.lang.String the_method, char meth_type)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_remove_exc(java.lang.String type_id, java.lang.String the_method, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void modify_meth_type_id_remove_param(java.lang.String type_id, java.lang.String the_method, int pos)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
private  void monitor_objects(java.lang.Object[] stubs, FaultMonitor[] monitors, int fault_m_g, long gr_id, long mon_i, long mon_t_o)
           
 void register_fault_notifier(FaultNotifier fn)
          Method specified in the ReplicationManager interface - used to register the fault notifier
 void remove_default_properties(Property[] props)
          Method in the PropertyManager interface
private  void remove_dyn_props(org.omg.CORBA.Object gr)
          Method in the PropertyManager interface
 org.omg.CORBA.Object remove_member(org.omg.CORBA.Object object_group, org.omg.CosNaming.NameComponent[] the_location)
          ObjectGroupManager interace method - removes a member (from a certain location) from an already existing group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
 void remove_method_type_id(java.lang.String type_id, java.lang.String the_method)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void remove_type_id(java.lang.String type_id)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
 void remove_type_properties(java.lang.String type, Property[] props)
          Method in the PropertyManager interface - removes a set of properties
 void replay_last_requests(org.omg.CORBA.Any a, LogRecord[] lrr, LogRecord[] lrnr, LoggingRecoveryController lrc, int ret_id)
          Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager
private  FactoryInfo[] search_for_factories(FactoryInfo[] choice, int nr, java.lang.String[] pref_locs)
           
private  FactoryInfo[] search_for_factories(int nr, java.lang.String failure_location, java.util.Vector obj_a_loc, java.util.Vector grProp, java.util.Vector typeProp)
           
private  LoggingRecoveryController search_for_loggrec_c(java.lang.String location)
           
private  FaultMonitor search_for_monitor(java.lang.String location)
           
private  Property[] set_criteria(int replic_s, boolean join, boolean is_first, int index, int index_pr, byte[] objI, int crash_after)
          Method used to prepare the property vector to be sent to the application object factories to create appropriate replicas for the group, according to what the application writer requested from the Replication Manager in terms of replication style, group size, checkpoinitng interval, etc.
 void set_default_properties(Property[] props)
          Method in the PropertyManager interface
 org.omg.CORBA.Object set_primary_member(org.omg.CORBA.Object object_group, org.omg.CosNaming.NameComponent[] the_location)
          ObjectGroupManager interace method - sets a member (from a certain location) as the primary of the group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
 void set_properties_dynamically(org.omg.CORBA.Object group, Property[] props)
          Method in the PropertyManager interface
 void set_type_properties(java.lang.String type, Property[] props)
          Method in the PropertyManager interface - sets the property list for a certain type
private  long setup_fault_consumer_connection(java.util.Vector obj_locs_fact_i, java.lang.String type_id, int fault_mon_gran, long obj_gr_id, boolean delete, long old_f_c_index)
           
private  void sort_by_load(FactoryInfo[] fis)
           
 
Methods inherited from class org.omg.FT.ReplicationManagerPOA
_all_interfaces, _invoke, _this, _this,
 
Methods inherited from class org.omg.PortableServer.Servant
_default_POA, _get_delegate, _get_interface_def, _get_interface, _is_a, _non_existent, _object_id, _orb, _orb, _poa, _set_delegate, _this_object, _this_object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

NR_NEW_REPL_W_F

static final int NR_NEW_REPL_W_F

INDEX_PRIMARY

static final int INDEX_PRIMARY

create_object_semaphor

java.lang.Object create_object_semaphor

delete_object_semaphor

java.lang.Object delete_object_semaphor

recover_object_semaphor

java.lang.Object recover_object_semaphor

flags

int flags

orb

org.omg.CORBA.ORB orb

typeProperties

java.util.Hashtable typeProperties

groupProperties

java.util.Hashtable groupProperties

defaultProperties

java.util.Vector defaultProperties

currProperties

java.util.Vector currProperties

groupEvid

java.util.Hashtable groupEvid

objGrId

long objGrId

ftDomName

java.lang.String ftDomName

poa

org.omg.PortableServer.POA poa

fault_notifier

FaultNotifier fault_notifier

theFaultD_l

java.util.Vector theFaultD_l

theLoggRecC_l

java.util.Vector theLoggRecC_l
Constructor Detail

ReplicationManager_impl

public ReplicationManager_impl(org.omg.CORBA.ORB _o,
                               org.omg.PortableServer.POA _p,
                               java.lang.String ftDom)
Method Detail

handle_obj_failure

private void handle_obj_failure(org.omg.CORBA.Object group,
                                java.lang.String location,
                                ReplicationManager_impl.ObjGroupInfoStr crt,
                                long group_id,
                                java.lang.String type_id)
Method called when a member of a group failed
Parameters:
group - the reference of the group from which the member failed location the location of the failed member crt the internal Replication Manager held structure with info about the group group_id the identifier of the group type_id the type identifier of the CORBA objects members of the group

find_monitors

private FaultMonitor[] find_monitors(java.lang.String[] locations)
Method used to return a list of fault monitors registered in the Replicatio Manager

monitor_objects

private void monitor_objects(java.lang.Object[] stubs,
                             FaultMonitor[] monitors,
                             int fault_m_g,
                             long gr_id,
                             long mon_i,
                             long mon_t_o)

setup_fault_consumer_connection

private long setup_fault_consumer_connection(java.util.Vector obj_locs_fact_i,
                                             java.lang.String type_id,
                                             int fault_mon_gran,
                                             long obj_gr_id,
                                             boolean delete,
                                             long old_f_c_index)

checkpoint_object

private void checkpoint_object(long checkp_int,
                               boolean periodic,
                               java.lang.Object stub,
                               long gr_id,
                               ReplicationManager_impl.ObjGroupInfoStr crt,
                               org.omg.CORBA.Object primary,
                               LoggingRecoveryController new_lg_r_c,
                               int repl_s,
                               java.lang.reflect.Method narrow_m,
                               java.lang.Class helper_class)

do_work_failure

private void do_work_failure(org.omg.CORBA.Object group,
                             ReplicationManager_impl.ObjFactAndIdStr failed_info,
                             java.lang.String type_id,
                             ReplicationManager_impl.ObjGroupInfoStr crt,
                             long group_id,
                             int repl_s,
                             int min_nr_repl,
                             int fault_m_g,
                             long checkp_int,
                             boolean periodic,
                             long mon_i,
                             long mon_t_o)
                      throws NoFactory
Method used to perform all the actions needed when a member of a group fails Depending on the replication style it performs the proper failover procedures: depending on the numer of replicas remaining and the group size constraints, it may create new replicas on hosts different from the ones where replicas failed

create_object

private org.omg.CORBA.Object create_object(org.omg.IOP.IOR ge_ior,
                                           FactoryInfo factory,
                                           java.lang.String type_id,
                                           ReplicationManager_impl.ObjGroupInfoStr the_i,
                                           int repl_s)
                                    throws NoFactory
this method is used only by the replication manager ("internally") to create an object instead of a failed one, if necessary

create_active_object

private org.omg.CORBA.Object[] create_active_object(org.omg.IOP.IOR ge_ior,
                                                    FactoryInfo factory,
                                                    java.lang.String type_id,
                                                    ReplicationManager_impl.ObjGroupInfoStr the_i,
                                                    int repl_s)
                                             throws NoFactory
this method is used to create an object and install it as primary in a passive replicated group (usually this does not happen - one of the backups can take over the role of primary).The creation of a primary is needed when there are no backups to take over the role of primary

search_for_monitor

private FaultMonitor search_for_monitor(java.lang.String location)

search_for_loggrec_c

private LoggingRecoveryController search_for_loggrec_c(java.lang.String location)

search_for_factories

private FactoryInfo[] search_for_factories(int nr,
                                           java.lang.String failure_location,
                                           java.util.Vector obj_a_loc,
                                           java.util.Vector grProp,
                                           java.util.Vector typeProp)

sort_by_load

private void sort_by_load(FactoryInfo[] fis)

search_for_factories

private FactoryInfo[] search_for_factories(FactoryInfo[] choice,
                                           int nr,
                                           java.lang.String[] pref_locs)

set_criteria

private Property[] set_criteria(int replic_s,
                                boolean join,
                                boolean is_first,
                                int index,
                                int index_pr,
                                byte[] objI,
                                int crash_after)
Method used to prepare the property vector to be sent to the application object factories to create appropriate replicas for the group, according to what the application writer requested from the Replication Manager in terms of replication style, group size, checkpoinitng interval, etc.

add_fault_monitor

public void add_fault_monitor(FaultMonitorInfo fmi)
Method called to add a new Fault Monitor to the ReplicationManager's list of FMs

add_logging_recovery_c

public void add_logging_recovery_c(LoggingRecoveryControllerInfo lrci)
Method called to add a Fault Notifier to the ReplicationManager's list of FNs

create_object

public org.omg.CORBA.Object create_object(java.lang.String type_id,
                                          Property[] the_criteria,
                                          org.omg.CORBA.AnyHolder factory_creation_id)
Method specified in the GenericFactory interface
Parameters:
type_id - the type identifier of the CORBA objects members of the created group the_criteria set of properties sent by the application writer including replication style, group size, fault monitoring interval and timeout, etc. factory_creation_id an identifier returned to the caller of the method to use in case he/she wants to delete the created group
Returns:
the collective object reference of the object group (the role of the Repl Manager is also to assemble such an object reference)

delete_object

public void delete_object(org.omg.CORBA.Any factory_creation_id)
                   throws ObjectNotFound
Method specifid in the GenericFactory interface - deletes a certain group
Parameters:
factory_creation_id - the group identifier obtained when creating the group, returned by the Replication Manager

get_load

public int get_load()

activate_object

public void activate_object(org.omg.CORBA.Any f_c_i,
                            long g_i,
                            boolean f_t)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

replay_last_requests

public void replay_last_requests(org.omg.CORBA.Any a,
                                 LogRecord[] lrr,
                                 LogRecord[] lrnr,
                                 LoggingRecoveryController lrc,
                                 int ret_id)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

install_gateway

public void install_gateway(org.omg.CORBA.Any a,
                            org.omg.CORBA.Object gw)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

add_new_type_id

public void add_new_type_id(java.lang.String type_id,
                            java.lang.String class_name,
                            java.lang.String[] new_arg_class_n,
                            java.lang.Object[] new_arg_values,
                            MethSignStr[] methods)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

remove_type_id

public void remove_type_id(java.lang.String type_id)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_class_name_ti

public void modify_class_name_ti(java.lang.String type_id,
                                 java.lang.String new_class_name)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_class_name_ti_ctr

public void modify_class_name_ti_ctr(java.lang.String type_id,
                                     java.lang.String new_class_name,
                                     java.lang.String[] class_names,
                                     java.lang.Object[] arg_values)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

add_new_method_type_id_s

public void add_new_method_type_id_s(java.lang.String type_id,
                                     MethSignStr the_method)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

add_new_method_type_id_d

public void add_new_method_type_id_d(java.lang.String type_id,
                                     java.lang.String method_n,
                                     org.omg.CORBA.TypeCode[] par_types,
                                     org.omg.CORBA.TypeCode[] exc_types,
                                     int[] modes,
                                     char method_type)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

remove_method_type_id

public void remove_method_type_id(java.lang.String type_id,
                                  java.lang.String the_method)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_add_param

public void modify_meth_type_id_add_param(java.lang.String type_id,
                                          java.lang.String the_method,
                                          org.omg.CORBA.TypeCode par_type,
                                          int mode,
                                          int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_add_exc

public void modify_meth_type_id_add_exc(java.lang.String type_id,
                                        java.lang.String the_method,
                                        org.omg.CORBA.TypeCode exc_type,
                                        int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_remove_param

public void modify_meth_type_id_remove_param(java.lang.String type_id,
                                             java.lang.String the_method,
                                             int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_remove_exc

public void modify_meth_type_id_remove_exc(java.lang.String type_id,
                                           java.lang.String the_method,
                                           int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_modify_param

public void modify_meth_type_id_modify_param(java.lang.String type_id,
                                             java.lang.String the_method,
                                             org.omg.CORBA.TypeCode par_type,
                                             int mode,
                                             int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_modify_exc

public void modify_meth_type_id_modify_exc(java.lang.String type_id,
                                           java.lang.String the_method,
                                           org.omg.CORBA.TypeCode exc_type,
                                           int pos)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

modify_meth_type_id_modify_type

public void modify_meth_type_id_modify_type(java.lang.String type_id,
                                            java.lang.String the_method,
                                            char meth_type)
Extra method (not in the FT-CORBA specification) in the GenericFactory interface - used in the Object Factory It is not implemented in the Replication Manager

create_member

public org.omg.CORBA.Object create_member(org.omg.CORBA.Object group,
                                          org.omg.CosNaming.NameComponent[] loc,
                                          java.lang.String type_id,
                                          Property[] crit)
                                   throws MemberAlreadyPresent,
                                          ObjectGroupNotFound
ObjectGroupManager interace method - creates a member of an already existing group according to the criteria given by the invoker (application writer) Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
Parameters:
group - CORBA object identifying the group for which a new member is ceated and added loc the location where the new memebr has to be created type_id the type identifier of the member (of course, the same as that of all other members' of the group) crit the criteria given to the Object Factory from the user
Returns:
the CORBA object identiying the new group

add_member

public org.omg.CORBA.Object add_member(org.omg.CORBA.Object object_group,
                                       org.omg.CosNaming.NameComponent[] the_location,
                                       org.omg.CORBA.Object member)
                                throws ObjectGroupNotFound,
                                       MemberAlreadyPresent,
                                       ObjectNotAdded
ObjectGroupManager interace method - adds a member (from a certain location) to an already existing group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
Parameters:
object_group - the CORBA object identifying the replica group the_location the location where the new member of the group will run member the CORBA object designating the new member to be added to the group
Returns:
the CORBA object designatng the new extended replica group

remove_member

public org.omg.CORBA.Object remove_member(org.omg.CORBA.Object object_group,
                                          org.omg.CosNaming.NameComponent[] the_location)
                                   throws ObjectGroupNotFound,
                                          MemberNotFound
ObjectGroupManager interace method - removes a member (from a certain location) from an already existing group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
Parameters:
object_group - the CORBA object identifying the replica group the_location the location where the member to remove runs
Returns:
the CORBA object designatng the new reduced replica group

set_primary_member

public org.omg.CORBA.Object set_primary_member(org.omg.CORBA.Object object_group,
                                               org.omg.CosNaming.NameComponent[] the_location)
                                        throws ObjectGroupNotFound,
                                               MemberNotFound,
                                               PrimaryNotSet,
                                               BadReplicationStyle
ObjectGroupManager interace method - sets a member (from a certain location) as the primary of the group Methods in ObjectGroupManager are used when the group membership is application controlled, and not infrastructure controlled
Parameters:
object_group - the CORBA object identifying the replica group the_location the location where the member that has to be set to primary runs
Returns:
the CORBA object designatng the new group

get_object_group_id

public long get_object_group_id(org.omg.CORBA.Object group)
                         throws ObjectGroupNotFound
ObjectGroupManager interace method - returns the object group identifier of a group
Parameters:
group - the CORBA object identifying the replica group
Returns:
the group identifier (a number)

get_group_ref

public org.omg.CORBA.Object get_group_ref(long group_id)
ObjectGroupManager interace method - returns the object group identifier of a group
Parameters:
group_id - the identifier of the group
Returns:
the group reference CORBA object

locations_of_members

public org.omg.CosNaming.NameComponent[][] locations_of_members(org.omg.CORBA.Object group)
                                                         throws ObjectGroupNotFound
ObjectGroupManager interace method - returns the list of locations of the members of a group
Parameters:
group - the CORBA object designating the group
Returns:
the list of locations of the group members

get_member_ref

public org.omg.CORBA.Object get_member_ref(org.omg.CORBA.Object group,
                                           org.omg.CosNaming.NameComponent[] loc)
                                    throws ObjectGroupNotFound,
                                           MemberNotFound
ObjectGroupManager interace method - returns the CORBA object reference for a member of a given group
Parameters:
group - the CORBA object identifying the replica group loc the location of the member whose reference is requested
Returns:
the CORBA object reference of the member

get_object_group_ref

public org.omg.CORBA.Object get_object_group_ref(org.omg.CORBA.Object group)
                                          throws ObjectGroupNotFound
ObjectGroupManager interace method - returns the object group reference of a group based on a group reference that could be outdated
Parameters:
group - the CORBA object identifying the replica group (as known by the caller)
Returns:
the CORBA object reference identifying the group (could be the same as group)

set_type_properties

public void set_type_properties(java.lang.String type,
                                Property[] props)
Method in the PropertyManager interface - sets the property list for a certain type
Parameters:
type - the type identifier of groups for which the properties are set props list of properties (e.g. replication style, checkpoinitg interval, fault monitoring granularity, etc.)

remove_type_properties

public void remove_type_properties(java.lang.String type,
                                   Property[] props)
Method in the PropertyManager interface - removes a set of properties
Parameters:
type - the type identifier of groups for which the properties are removed props the set of properties that have to be removed

get_type_properties

public Property[] get_type_properties(java.lang.String type)
Method in the PropertyManager interface
Parameters:
the - type of the groups for which properties are requested at return
Returns:
the propeties for the given type identifier

set_default_properties

public void set_default_properties(Property[] props)
Method in the PropertyManager interface
Parameters:
props - the properties to be set as default for all groups that are created

remove_default_properties

public void remove_default_properties(Property[] props)
Method in the PropertyManager interface
Parameters:
props - the set of default properties that have to be removed

get_default_properties

public Property[] get_default_properties()
Method in the PropertyManager interface
Returns:
the set of default properties

set_properties_dynamically

public void set_properties_dynamically(org.omg.CORBA.Object group,
                                       Property[] props)
Method in the PropertyManager interface
Parameters:
group - the CORBA object reference of the group for which props the properties to be set for the specific group

get_properties

public Property[] get_properties(org.omg.CORBA.Object group)
Method in the PropertyManager interface
Parameters:
group - the group CORBA object reference for which the properties are requested
Returns:
the properties for the specific group

remove_dyn_props

private void remove_dyn_props(org.omg.CORBA.Object gr)
Method in the PropertyManager interface
Parameters:
gr - the group for which the properties will be removed

register_fault_notifier

public void register_fault_notifier(FaultNotifier fn)
Method specified in the ReplicationManager interface - used to register the fault notifier

get_fault_notifier

public FaultNotifier get_fault_notifier()
Method specified in the ReplicationManager interface - used to return the registered fault notifier