osaf/services/saf/immsv/immpbed/immpbe_daemon.cc |  19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)


When PBE is running in 1safe2PBE mode, syncing admin op to the second PBE will 
be skipped.
Adding OPENSAF_IMM_FLAG_2PBE1_ALLOW check to OPENSAF_IMM_PBE_CLASS_CREATE, 
OPENSAF_IMM_PBE_CLASS_DELETE and OPENSAF_IMM_PBE_UPDATE_EPOCH will skip sending 
unnecessary admin op to slave PBE.

diff --git a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc 
b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc
--- a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc
+++ b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc
@@ -244,6 +244,12 @@ static bool pbe2_start_prepare_ccb_A_to_
 
        osafassert(sPbe2 && !sPbe2B); /* Must be 2PBE and NOT at slave. */
 
+       if((sNoStdFlags & OPENSAF_IMM_FLAG_2PBE1_ALLOW)) {
+               // 2PBE is in 1safe2PBE state. Sending syncing admin op will be 
ignored
+               TRACE_LEAVE();
+               return true;
+       }
+
        do{
                rc2B = saImmOmAdminOperationInvoke_2(sOwnerHandle, 
&slavePbeRtObjName, 0, OPENSAF_IMM_PBE_CCB_PREPARE,
                        params, &slavePbeRtReply, SA_TIME_ONE_SECOND * 10);
@@ -436,7 +442,9 @@ static void saImmOiAdminOperationCallbac
 
                osafassert(className.size());
 
-               if(sPbe2 && !sPbe2B) {
+               if(sPbe2 && !sPbe2B && (sNoStdFlags & 
OPENSAF_IMM_FLAG_2PBE1_ALLOW)) {
+                       LOG_IN("PBE is in 1safe2PBE state. Ignoring class 
create towards slave PBE");
+               } else if(sPbe2 && !sPbe2B) {
                        /* Primary PBE forwards class create to slave PBE. */
                        SaAisErrorT rc2B = SA_AIS_OK;
                        SaNameT slavePbeRtObjName;
@@ -650,7 +658,9 @@ static void saImmOiAdminOperationCallbac
 
                osafassert(className.size());
 
-               if(sPbe2 && !sPbe2B) {
+               if(sPbe2 && !sPbe2B && (sNoStdFlags & 
OPENSAF_IMM_FLAG_2PBE1_ALLOW)) {
+                       LOG_IN("PBE is in 1safe2PBE state. Ignoring class 
delete towards slave PBE");
+               } else if(sPbe2 && !sPbe2B) {
                        /* Primary PBE forwards class delete to slave PBE. */
                        SaAisErrorT rc2B = SA_AIS_OK;
                        SaNameT slavePbeRtObjName;
@@ -774,8 +784,9 @@ static void saImmOiAdminOperationCallbac
                        ++ix;
                } while (param);
 
-
-               if(sPbe2 && !sPbe2B) {
+               if(sPbe2 && !sPbe2B && (sNoStdFlags & 
OPENSAF_IMM_FLAG_2PBE1_ALLOW)) {
+                       LOG_IN("PBE is in 1safe2PBE state. Ignoring update 
epoch towards slave PBE");
+               } else if(sPbe2 && !sPbe2B) {
                        /* Primary PBE forward update epoch to slave PBE. */
                        SaAisErrorT rc2B = SA_AIS_OK;
                        SaNameT slavePbeRtObjName;

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to