How can you determine the version of the XPS Data Dictionary?
How can you verify the XPS Data Dictionary has been updated properly following the import of the new Data Dictionary running XPSDDInstall?
Release : 12.8.03
Component : SITEMINDER -POLICY SERVER
The XPS Data Dictionary is imported into the Policy Store using the XPSDDInstall command [XPSDDInstall SmMaster,xdd]. The file 'SmMaster.xdd' imports the following data dictionary files:
SmObjects.xdd
FssSmObjects.xdd
SoaSmObjects.xdd
EPMObjects.xdd
CDSObjects.xdd
FedObjects.xdd
SecCat.xdd
SPSObjects.xdd
CHSObjects.xdd
There is no direct way to determine the version of the XPS Data Dictionary.
The XPSDDinstall log [XPSDDInstall.--_.log] should include the following lines:
================================
[Database.cpp:679][InitDB][INFO][sm-xpsxps-00120] Initializing XPS Version 12.8.0400.2278
...
[Database.cpp:679][InitDB][INFO][sm-xpsxps-00120] Initializing XPS Version 12.8.0400.2278
...
[XPSIO.cpp:2100][CXPSIO::MergeSmAndXPS][INFO][sm-xpsxps-00150] XPS Initialized. (354, 0, 0)
[XPS.cpp:937][CXPS::Init][INFO][sm-xpsxps-00150] XPS Initialized.
...
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file smmaster.xdd, please wait...
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: SmObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file SmObjects.xdd, please wait...
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: SmIndexes.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file SmIndexes.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: SmIndexes.xdd
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: SmObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: FssSmObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file FssSmObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: FssSmObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: SoaSmObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file SoaSmObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: SoaSmObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: EPMObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file EPMObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: EPMObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: CDSObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file CDSObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: CDSObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: FedObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file FedObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: FedObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: SecCat.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file SecCat.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: SecCat.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: SPSObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file SPSObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: SPSObjects.xdd
[LoadDictionary.cpp:459][LoadDictionary2][INFO][sm-xpsxps-03980] Including file: CHSObjects.xdd
[LoadDictionary.cpp:335][LoadDictionary2][INFO][sm-xpsxps-03981] Loading file CHSObjects.xdd, please wait...
[LoadDictionary.cpp:469][LoadDictionary2][INFO][sm-xpsxps-03990] Resuming file: CHSObjects.xdd
[XPSDDInstall.cpp:222][XPSDDInstall][INFO][sm-xpsxps-04180] Save Complete.
================================
In r12.8.4, the following Attributes are added to existing Object Classes from the "FedObjects.xdd" file.
(Format: <Parent>.<ID>::<ObjectClass>.<Atribute>)
-------------------------
CA.FED::SPPartnership.ApplicationURL [attribute]
CA.FED::WSFEDPartnershipBase.EnableIdentityMapping [attribute]
CA.FED::WSFEDPartnershipBase.IdentityMappingLink [attribute]
-------------------------
These were the only changes to the Siteminder Data Dictionary in the r12.8.4 version.
You can use an LDAP Query, such as LDAPSearch to verify the objects have been imported into the Policy Store.
SYNTAX:
LDAPSearch -h 1 -p -b "ou=XPS,ou=PolicySvr4,ou=SiteMinder," -s sub -D "AdminDN>" -w "" "xpsGUID=<XPS_OBJECT"
SAMPLE:
LDAPSearch -h 10.74.242.31 -p 33389 -b "ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,o=r1283ps1,c=com" -s sub -D "cn=smadmin1,o=r1283ps1,c=com" -w "Firewall1" "xpsGUID=CA.FED::SPPartnership.ApplicationURL"
LDAPSearch -h 10.74.242.31 -p 33389 -b "ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,o=r1283ps1,c=com" -s sub -D "cn=smadmin1,o=r1283ps1,c=com" -w "Firewall1" "CA.FED::WSFEDPartnershipBase.EnableIdentityMapping"
LDAPSearch -h 10.74.242.31 -p 33389 -b "ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,o=r1283ps1,c=com" -s sub -D "cn=smadmin1,o=r1283ps1,c=com" -w "Firewall1" "CA.FED::WSFEDPartnershipBase.IdentityMappingLink"
If the object exists, you will get a response returned with the XPS data.
Example of Successful Query:
===============================
LDAPSearch -h 10.74.242.31 -p 33389 -b "ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,o=r1283ps1,c=com" -s sub -D "cn=smadmin1,o=r1283ps1,c=com" -w "Firewall1" "xpsGUID=CA.FED::SPPartnership.ApplicationURL"
ldap_simple_bind: Success
version: 1
dn: xpsNumber=0969945238,ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,o=r12
83ps1,c=com
xpsNumber: 0969945238
objectClass: top
objectClass: xpsObject
xpsCategory: 1
xpsClass: 2147482368
xpsGUID: CA.FED::SPPartnership.ApplicationURL
xpsSortKey: 1-0000004200
xpsUpdateBy: Unknown
xpsUpdateMethod: 6
xpsParent: 1537731575
xpsProperty: 2147482367[1]S=ApplicationURL
xpsProperty: 2147482365[1]I=1
xpsProperty: 2147482364[1]I=0
xpsProperty: 2147482363[1]I=1
===============================
If the object does not exist, all you will get is "ldap_simple_bind: success".
The sample queries (above) should query the Policy Store for the existence of the newly added XPS Data Dictionary objects added in r12.8.4 (As compared to r12.8.3). Technically, this might be sufficient as they will be added regardless of which version you're upgrading from.
To determine all of the differences between any two versions, you would need to do a file compare of all of the .xdd files. Compare each .xdd file from the version you're upgrading to with the .xdd file of the version you're currently on. The differences will be the XPS Objects which are added or removed. Query for the existence of those objects to verify whether it has been added.