|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.omg.PortableServer.Servant | +--org.omg.FT.ReplicationManagerPOA | +--org.omg.FT.ReplicationManager_impl
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 |
static final int NR_NEW_REPL_W_F
static final int INDEX_PRIMARY
java.lang.Object create_object_semaphor
java.lang.Object delete_object_semaphor
java.lang.Object recover_object_semaphor
int flags
org.omg.CORBA.ORB orb
java.util.Hashtable typeProperties
java.util.Hashtable groupProperties
java.util.Vector defaultProperties
java.util.Vector currProperties
java.util.Hashtable groupEvid
long objGrId
java.lang.String ftDomName
org.omg.PortableServer.POA poa
FaultNotifier fault_notifier
java.util.Vector theFaultD_l
java.util.Vector theLoggRecC_l
Constructor Detail |
public ReplicationManager_impl(org.omg.CORBA.ORB _o, org.omg.PortableServer.POA _p, java.lang.String ftDom)
Method Detail |
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)
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 groupprivate FaultMonitor[] find_monitors(java.lang.String[] locations)
private void monitor_objects(java.lang.Object[] stubs, FaultMonitor[] monitors, int fault_m_g, long gr_id, long mon_i, long mon_t_o)
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 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 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
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
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
private FaultMonitor search_for_monitor(java.lang.String location)
private LoggingRecoveryController search_for_loggrec_c(java.lang.String location)
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 void sort_by_load(FactoryInfo[] fis)
private FactoryInfo[] search_for_factories(FactoryInfo[] choice, int nr, java.lang.String[] pref_locs)
private Property[] set_criteria(int replic_s, boolean join, boolean is_first, int index, int index_pr, byte[] objI, int crash_after)
public void add_fault_monitor(FaultMonitorInfo fmi)
public void add_logging_recovery_c(LoggingRecoveryControllerInfo lrci)
public org.omg.CORBA.Object create_object(java.lang.String type_id, Property[] the_criteria, org.omg.CORBA.AnyHolder factory_creation_id)
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 grouppublic void delete_object(org.omg.CORBA.Any factory_creation_id) throws ObjectNotFound
factory_creation_id
- the group identifier obtained when creating the group, returned by the Replication Managerpublic int get_load()
public void activate_object(org.omg.CORBA.Any f_c_i, long g_i, boolean f_t)
public void replay_last_requests(org.omg.CORBA.Any a, LogRecord[] lrr, LogRecord[] lrnr, LoggingRecoveryController lrc, int ret_id)
public void install_gateway(org.omg.CORBA.Any a, org.omg.CORBA.Object gw)
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)
public void remove_type_id(java.lang.String type_id)
public void modify_class_name_ti(java.lang.String type_id, java.lang.String new_class_name)
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)
public void add_new_method_type_id_s(java.lang.String type_id, MethSignStr the_method)
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)
public void remove_method_type_id(java.lang.String type_id, java.lang.String the_method)
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)
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)
public void modify_meth_type_id_remove_param(java.lang.String type_id, java.lang.String the_method, int pos)
public void modify_meth_type_id_remove_exc(java.lang.String type_id, java.lang.String the_method, int pos)
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)
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)
public void modify_meth_type_id_modify_type(java.lang.String type_id, java.lang.String the_method, char meth_type)
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
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 userpublic 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
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 grouppublic org.omg.CORBA.Object remove_member(org.omg.CORBA.Object object_group, org.omg.CosNaming.NameComponent[] the_location) throws ObjectGroupNotFound, MemberNotFound
object_group
- the CORBA object identifying the replica group
the_location the location where the member to remove runspublic org.omg.CORBA.Object set_primary_member(org.omg.CORBA.Object object_group, org.omg.CosNaming.NameComponent[] the_location) throws ObjectGroupNotFound, MemberNotFound, PrimaryNotSet, BadReplicationStyle
object_group
- the CORBA object identifying the replica group
the_location the location where the member that has to be set to primary runspublic long get_object_group_id(org.omg.CORBA.Object group) throws ObjectGroupNotFound
group
- the CORBA object identifying the replica grouppublic org.omg.CORBA.Object get_group_ref(long group_id)
group_id
- the identifier of the grouppublic org.omg.CosNaming.NameComponent[][] locations_of_members(org.omg.CORBA.Object group) throws ObjectGroupNotFound
group
- the CORBA object designating the grouppublic org.omg.CORBA.Object get_member_ref(org.omg.CORBA.Object group, org.omg.CosNaming.NameComponent[] loc) throws ObjectGroupNotFound, MemberNotFound
group
- the CORBA object identifying the replica group
loc the location of the member whose reference is requestedpublic org.omg.CORBA.Object get_object_group_ref(org.omg.CORBA.Object group) throws ObjectGroupNotFound
group
- the CORBA object identifying the replica group (as known by the caller)public void set_type_properties(java.lang.String type, Property[] props)
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.)public void remove_type_properties(java.lang.String type, Property[] props)
type
- the type identifier of groups for which the properties are removed
props the set of properties that have to be removedpublic Property[] get_type_properties(java.lang.String type)
the
- type of the groups for which properties are requested at returnpublic void set_default_properties(Property[] props)
props
- the properties to be set as default for all groups that are createdpublic void remove_default_properties(Property[] props)
props
- the set of default properties that have to be removedpublic Property[] get_default_properties()
public void set_properties_dynamically(org.omg.CORBA.Object group, Property[] props)
group
- the CORBA object reference of the group for which
props the properties to be set for the specific grouppublic Property[] get_properties(org.omg.CORBA.Object group)
group
- the group CORBA object reference for which the properties are requestedprivate void remove_dyn_props(org.omg.CORBA.Object gr)
gr
- the group for which the properties will be removedpublic void register_fault_notifier(FaultNotifier fn)
public FaultNotifier get_fault_notifier()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |