I am new to smarts.What i am trying to do is to modify a property of Instance of Class called ICS_Notification by using Domain Manager Control Program command 'Put'.I am trying this in my local system.
The problem i am facing is that i am able to change the value of certain properties like EventText while i am unable to do the same for certain other properties like ShouldClear or ShouldClearAt.
When i try to modify the preset value for the above property using the command "dmctl -s OIServer put ICS_Notification::NewObj_ICS::ShouldAutoClear TRUE" I get the following error:-
CI-E-EGENERIC-At l:/FOUNDATION-7.2.0.X/18/smarts/repos/mr/prop.c:260 put:
Attempted to call access method which is not available for given attribute
MR-UNAVAILABLE_ACCESS_METHOD-Attempted to call access method which is not
available for given attribute
Why i am not able to change the above property? Is there any way i can change the same?
Thanks and Regards,
It is not possible to modify the ShouldAutoArchivedirectly because this would interfere with notification processing and potentially cause an inconsistent SAM or OI topology/repository.
Attributes such as these are mnaged and relied upon by internal processes and methods. So they are implemented as private class members which can only be modified by methods (functions) of that class. So, put cannot be used to manipulate such an attribute.
In the case of ICS_Notification objects, there are no methods which deal with archiving functionality (see the output of dmctl getOperations on ICS_Notifications). So, the ShouldAutoArchive is not able to be modified externally by any means, since it would be only private (internal) methods which modify its value.
In summary, this attribute can not be modified directly or indirectly, and this is intended by design to avoid corruption of the repository.
EMC Global Services
Thanks Louie for your reply.
But the property in question is ShouldAutoClear and ShouldAutoClearAt not ShouldAutoArchive.
Let me rephrase what i understood When I try to change the value of the certain property and get a message like I mentioned in my first post, it means that those properties/Property can only be modified by the private(Internal) methods which is intended by Design to avoid corruption of repository and this applies to above two properites that I have mentioned here.
Thanks and regards,
The same applies to the ShouldAutoClear and ShouldAutoClearAt attributes as I described for ShouldAutoArchive. I inadvertently focused on the incorrect attribute. Sorry for any confusion.
Your understanding is correct also. However, I do want to clarify 1 point:
As you said, when you receive the error message in the scenario you quoted, this means that the attribute is Private and so can only be accessed by methods of the class (as opposed to setting the variable directly). However, these methods do not necessarily have to be private themselves. They just happen to be in this case.
For example, the Acknowledged attribute of an ICS_Notification object is also private and so can not be set directly either. However, these objects have the public method acknowledge() available (not private) which will change the Acknowledged state from FALSE to TRUE.
I hope this clarifies things.
EMC Global Services