just tried to restart a driver that had a disabled rule in a policy, which used the ~GCV~ syntax with a GCV name that had not been defined anywhere. Even though the rule was disabled, the driver refused to start:
[01/11/10 13:50:32.112]RV_SelfServ ST:Found DirXMLScript policy.
[01/11/10 13:50:32.109]RV_SelfServ ST:Reading XML attribute vnd.nds.stream://IDM-DEV/system/idm/drvset01/DRV_SelfServ/Publisher/pub-ctp%3A+create+missing+containers
[01/11/10 13:50:32.134]RV_SelfServ ST:Remote Interface Publisher: Received shutdown.
[01/11/10 13:50:32.134]RV_SelfServ ST:Remote Interface Subscriber: Received shutdown.
[01/11/10 13:50:32.141]RV_SelfServ ST:
DirXML Log Event -------------------
Message: Code(-9031) Global Configuration Value 'dynamic-container-default-class' not found: vnd.nds.stream://IDM-DEV/system/idm/drvset01/DRV_SelfServ/Publisher
/pub-ctp%3A+create+missing+containers#XmlData at line 116.
Seems like ~GCV~ substitution is a simple search-and-replace that does not understand the XML it's working on, thus not skipping the disabled rule. Obvious workaround for recent IDM versions is to use the $GCV$ syntax instead, which gets expanded on the fly during processing, something that never happens to disabled rules. Not sure if the behavious was the same in IDM 3.0 and earlier, anyone remembers?
anyway, should be fixed imho.