Add two sections.
The section that describes the new flag for enabling features in 5.17.11,
and the section that describes the removal of disconnected appliers

Rename IMM schema from OpensafImm_Upgrade_5.17.10.xml to 
OpensafImm_Upgrade_5.17.11.xml
---
 samples/immsv/OpensafImm_Upgrade_5.17.10.xml | 120 ---------------------------
 samples/immsv/OpensafImm_Upgrade_5.17.11.xml | 120 +++++++++++++++++++++++++++
 src/imm/README                               |  78 +++++++++++++++++
 3 files changed, 198 insertions(+), 120 deletions(-)
 delete mode 100644 samples/immsv/OpensafImm_Upgrade_5.17.10.xml
 create mode 100644 samples/immsv/OpensafImm_Upgrade_5.17.11.xml

diff --git a/samples/immsv/OpensafImm_Upgrade_5.17.10.xml 
b/samples/immsv/OpensafImm_Upgrade_5.17.10.xml
deleted file mode 100644
index fb70880..0000000
--- a/samples/immsv/OpensafImm_Upgrade_5.17.10.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0"?>
-<imm:IMM-contents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:noNamespaceSchemaLocation="SAI-AIS-IMM-XSD-A.02.13.xsd" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:imm="http://www.saforum.org/IMMSchema";>
-  <class name="OpensafImm">
-    <category>SA_CONFIG</category>
-    <rdn>
-      <name>opensafImm</name>
-      <type>SA_NAME_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_INITIALIZED</flag>
-    </rdn>
-    <attr>
-      <name>maxClasses</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>1000</default-value>
-    </attr>
-    <attr>
-      <name>maxImplementers</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>3000</default-value>
-    </attr>
-    <attr>
-      <name>maxAdminowners</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>2000</default-value>
-    </attr>
-    <attr>
-      <name>maxCcbs</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>10000</default-value>
-    </attr>
-    <attr>
-      <name>scAbsenceAllowed</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_RUNTIME</category>
-      <flag>SA_PERSISTENT</flag>
-      <flag>SA_CACHED</flag>
-      <default-value>0</default-value>
-    </attr>
-    <attr>
-      <name>accessControlMode</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>0</default-value>
-    </attr>
-    <attr>
-      <name>authorizedGroup</name>
-      <type>SA_STRING_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-    </attr>
-    <attr>
-      <name>longDnsAllowed</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>0</default-value>
-    </attr>
-    <attr>
-      <name>opensafImmSyncBatchSize</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>65223</default-value>
-    </attr>
-    <attr>
-      <name>opensafImmNostdFlags</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_RUNTIME</category>
-      <flag>SA_CACHED</flag>
-      <default-value>0</default-value>
-    </attr>
-    <attr>
-      <name>opensafImmEpoch</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_RUNTIME</category>
-      <flag>SA_PERSISTENT</flag>
-      <flag>SA_CACHED</flag>
-    </attr>
-    <attr>
-      <name>opensafImmClassNames</name>
-      <type>SA_STRING_T</type>
-      <category>SA_RUNTIME</category>
-      <flag>SA_MULTI_VALUE</flag>
-      <flag>SA_PERSISTENT</flag>
-      <flag>SA_CACHED</flag>
-    </attr>
-    <attr>
-      <name>minApplierTimeout</name>
-      <type>SA_UINT32_T</type>
-      <category>SA_CONFIG</category>
-      <flag>SA_WRITABLE</flag>
-      <default-value>0</default-value>
-    </attr>
-    <attr>
-      <name>SaImmAttrImplementerName</name>
-      <type>SA_STRING_T</type>
-      <category>SA_CONFIG</category>
-    </attr>
-    <attr>
-      <name>SaImmAttrClassName</name>
-      <type>SA_STRING_T</type>
-      <category>SA_CONFIG</category>
-      <default-value>OpensafImm</default-value>
-    </attr>
-    <attr>
-      <name>SaImmAttrAdminOwnerName</name>
-      <type>SA_STRING_T</type>
-      <category>SA_CONFIG</category>
-    </attr>
-  </class>
-</imm:IMM-contents>
diff --git a/samples/immsv/OpensafImm_Upgrade_5.17.11.xml 
b/samples/immsv/OpensafImm_Upgrade_5.17.11.xml
new file mode 100644
index 0000000..fb70880
--- /dev/null
+++ b/samples/immsv/OpensafImm_Upgrade_5.17.11.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<imm:IMM-contents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:noNamespaceSchemaLocation="SAI-AIS-IMM-XSD-A.02.13.xsd" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:imm="http://www.saforum.org/IMMSchema";>
+  <class name="OpensafImm">
+    <category>SA_CONFIG</category>
+    <rdn>
+      <name>opensafImm</name>
+      <type>SA_NAME_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_INITIALIZED</flag>
+    </rdn>
+    <attr>
+      <name>maxClasses</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>1000</default-value>
+    </attr>
+    <attr>
+      <name>maxImplementers</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>3000</default-value>
+    </attr>
+    <attr>
+      <name>maxAdminowners</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>2000</default-value>
+    </attr>
+    <attr>
+      <name>maxCcbs</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>10000</default-value>
+    </attr>
+    <attr>
+      <name>scAbsenceAllowed</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_RUNTIME</category>
+      <flag>SA_PERSISTENT</flag>
+      <flag>SA_CACHED</flag>
+      <default-value>0</default-value>
+    </attr>
+    <attr>
+      <name>accessControlMode</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>0</default-value>
+    </attr>
+    <attr>
+      <name>authorizedGroup</name>
+      <type>SA_STRING_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+    </attr>
+    <attr>
+      <name>longDnsAllowed</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>0</default-value>
+    </attr>
+    <attr>
+      <name>opensafImmSyncBatchSize</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>65223</default-value>
+    </attr>
+    <attr>
+      <name>opensafImmNostdFlags</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_RUNTIME</category>
+      <flag>SA_CACHED</flag>
+      <default-value>0</default-value>
+    </attr>
+    <attr>
+      <name>opensafImmEpoch</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_RUNTIME</category>
+      <flag>SA_PERSISTENT</flag>
+      <flag>SA_CACHED</flag>
+    </attr>
+    <attr>
+      <name>opensafImmClassNames</name>
+      <type>SA_STRING_T</type>
+      <category>SA_RUNTIME</category>
+      <flag>SA_MULTI_VALUE</flag>
+      <flag>SA_PERSISTENT</flag>
+      <flag>SA_CACHED</flag>
+    </attr>
+    <attr>
+      <name>minApplierTimeout</name>
+      <type>SA_UINT32_T</type>
+      <category>SA_CONFIG</category>
+      <flag>SA_WRITABLE</flag>
+      <default-value>0</default-value>
+    </attr>
+    <attr>
+      <name>SaImmAttrImplementerName</name>
+      <type>SA_STRING_T</type>
+      <category>SA_CONFIG</category>
+    </attr>
+    <attr>
+      <name>SaImmAttrClassName</name>
+      <type>SA_STRING_T</type>
+      <category>SA_CONFIG</category>
+      <default-value>OpensafImm</default-value>
+    </attr>
+    <attr>
+      <name>SaImmAttrAdminOwnerName</name>
+      <type>SA_STRING_T</type>
+      <category>SA_CONFIG</category>
+    </attr>
+  </class>
+</imm:IMM-contents>
diff --git a/src/imm/README b/src/imm/README
index 184ae63..4454b8a 100644
--- a/src/imm/README
+++ b/src/imm/README
@@ -720,6 +720,10 @@ An application/service must design for a static set of OIs 
implying a
 static set of OI names, including a static set of applier OIs and
 a static set of applier names.
 
+In OpenSAF 5.17.11, a new feature for removing disconnected applies is added
+to IMM. The feature can be enabled to remove disconnected appliers from the
+cluster after applier timeout expires.
+
 Another difference between regular regular implementers and appliers,
 is that regular implementer names and their binding to a set of objects
 will survive a cluster restart, whereas applier names and their binding
@@ -2955,6 +2959,80 @@ In case of CLM node lock, and HEADLESS is triggered 
after CLM node lock, then CL
 node is nullified. The node is considered as HEADLESS and all other agent 
functions 
 supported in HEADLESS are supported.
 
+Notes on upgrading to OpenSAF 5.17.11
+=====================================
+OpenSAF 5.17.11 adds new attribute flag allowing the removal of disconnected
+appliers (#2579). During a rolling upgrade from an earlier OpenSAF release
+to the 5.17.11 release there will be nodes executing the older release 
concurrently
+with nodes executing OpenSAF 5.17.11. Nodes executing the earlier release will 
not
+recognize the new attribute flag originating from nodes executing 5.17.11.
+
+Because of this upgrade issue, the new attribute flag added in OpenSAF 5.17.11 
is
+not allowed unless a flag is toggled on in the opensafImmNostdFlags runtime
+attribute in the object:
+
+   opensafImm=opensafImm,safApp=safImmService.
+
+The following is the shell command:
+
+        immadm -o 1 -p opensafImmNostdFlags:SA_UINT32_T:1024 \
+           opensafImm=opensafImm,safApp=safImmService
+
+This will set bit 10 of the 'opensafImmNostdFlags' runtime attribute inside 
the immsv.
+Operation-id '1' invoked on the object:
+
+ 'opensafImm=opensafImm,safApp=safImmService'
+
+has the meaning of 'flags-ON'. Operation-id '2' has the meaning of 'flags-OFF'.
+This flag (and possibly other relevant flags) needs to be toggled ON when the 
upgrade
+to OpenSAF 5.17.11 has been successfully completed. This would be in some 
final step of
+the upgrade. Any cluster start/restart of an OpenSAF 5.17.11 system will always
+automatically toggle on relevant flags.
+
+An imm xml file containing the extended class definition for OpensafImm has
+been added at samples/immsv/OpensafImm_Upgrade_5.17.11.xml.
+
+In summary:
+
+Bit 1 controls schema (imm class) changes allowed or not (normally off/0).
+Bit 2 controls OpenSAF4.1 protocols allowed or not (normally on/1).
+Bit 3 controls OpenSAF4.3 protocols allowed or not (normally on/1).
+Bit 4 controls 2PBE oneSafe2PBE, see 2PBE feature in OpenSAF4.4 above 
(normally off/0).
+Bit 5 controls OpenSAF4.5 protocols allowed or not (normally on/1).
+Bit 6 controls OpenSAF4.6 protocols allowed or not (normally on/1).
+Bit 7 controls OpenSAF4.7 protocols allowed or not (normally on/1).
+Bit 8 controls OpenSAF5.0 protocols allowed or not (normally on/1).
+Bit 9 controls OpenSAF5.1 protocols allowed or not (normally on/1).
+Bit 10 controls OpenSAF5.17.11 protocols allowed or not (normally on/1).
+
+Removal of disconnected applier (5.17.11)
+=================================================
+Once an implementer is created, it resides in the system to the cluster
+restart. There is no way to remove implementers from the system. Applier is
+a special type of implementers and the same feature applies to appliers.
+
+Applier names usually contain the node name where they are created to avoid
+the collision with the same appliers on other nodes. In systems where new
+nodes come with new names every time they join the cluster, this can be
+a problem and the limit of 3000 implementer and appliers can be reached.
+
+The new feature is introduced in 5.17.11 which will handle the time for
+keeping disconnected appliers in the system. When the time expires,
+disconnected appliers will be removed from the system.
+
+The applier timeout is configurable, and it is set in the new attribute
+minApplierTimeout in IMM object. If minApplierTimeout attribute is set to 0,
+the removal of disconnected appliers is disabled. The unit in counting
+the timeout is in seconds.
+
+With enabling the removal of disconnected appliers, there might be a risk that
+some applications in the cluster rely on reattaching appliers. This will not
+work if the application try to reattach aplliers after the applier timeout
+expires.
+
+To be possible to use this new feature, bit 10 must be set in
+opensafImmNostdFlags attribute in IMM object.
+
 ----------------------------------------
 DEPENDENCIES
 ============
-- 
1.9.1


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to