We recently released an update to our Metacoda Security Plug-ins (V3.0 R2) with support for use with SAS® 9.3 M2. This of course required testing with a variety of SAS Metadata Server versions and different versions of SAS Management Console clients too. We could rule out SAS 9.1.3 because our V3 plug-ins are only supported for use with SAS versions 9.2 and 9.3 but that still leaves SAS 9.2 M3, SAS 9.3 M0 and SAS 9.3 M2 because there are small SAS metadata model differences between all of these. For example SAS 9.3 M0 has new metadata model types CalculatedMember, FavoritesContainer, NamedSet, and Search, which are not present in SAS 9.2. SAS 9.3 M2 also has new metadata model types SecuredLibrary and SecuredTable not present in SAS 9.3 M0.
The obvious combinations to test are the matching SAS Management Console and SAS Metadata Server versions, 9.2 to 9.2, 9.3 M0 to 9.3 M0, and 9.3 M2 to 9.3 M2. However we also need to test mismatched client and server versions because some mixed combinations are allowed. I’m sure you can imagine situations where the SAS Metadata Server version is upgraded but a few client workstations still have older SAS Management Console versions installed. Or perhaps someone is using a newer SAS Management Console version but accidentally connects to an older SAS Metadata Server in the middle of a migration project.
The following table shows the combinations of client and server versions where we have tested connections (to see if we need to test our plug-ins):
|SAS Metadata Server Version|
|SAS 9.1.3 SP4||SAS 9.2 M3||SAS 9.3 M0||SAS 9.3 M2|
|SAS Management Console 9.1.3 SP4||Yes||No||No||No|
|SAS Management Console 9.2 M3||No||Yes||Yes||Yes|
|SAS Management Console 9.3 M0||No||No||Yes||Yes|
|SAS Management Console 9.3 M2||No||No||Yes||Yes|
The grey background cells are combinations which will not connect. SAS Management Console 9.1 cannot connect to any newer SAS Metadata Server versions for example. SAS Management Console 9.3 will also not connect to older version 9.2 or 9.1.3 servers.
The green background cells are combinations that are matched, 9.2 to 9.2, 9.3 M0 to 9.3 M0 etc.
The interesting ones are the yellow background cells. These are combinations where a connection can be made with mismatched SAS Management Console client and SAS Metadata Server versions. Some are older clients connecting to newer server versions (e.g. 9.2 to 9.3) and some are newer clients connecting to older server versions (e.g. 9.3 M2 to 9.3 M0 ). We’ve been careful in our plug-ins to try to only send metadata queries for model types that are supported by both the metadata client API and the metadata server. For example:
- When running inside SAS Management Console 9.3 M2 we don’t send requests for SecuredLibrary objects to the metadata server if the server version is prior to SAS 9.3 M2 because they’re not known to that earlier server version.
- When running inside SAS Management Console 9.3 M0 we don’t send requests for SecuredTable objects to the metadata server, even if the server is 9.3 M2, because those model types are not known to the earlier metadata client API version.
Lately I’ve been wondering what might happen if an older SAS client is used to modify metadata that is based on a newer SAS Metadata Server model. I imagine that in most cases metadata based on the newer server model types wouldn’t be available to be modified in an older client. I guess there is the possibility of metadata associations between older and newer model types and I wonder what would happen if an older client encountered an older model type with an association to a newer model type. Would it retain or drop the association? Or would you not be able to edit the object at all? If any readers know the answers to these questions I’d be keen to hear them. So far we’ve been focused on verifying that our read-only plug-ins won’t cause any problems when running in mismatched client/server version combinations.
Whilst I try to ensure the installation of matching SAS Management Console client and SAS Metadata Server versions (except when deliberately mismatching), I have often thought it would be a nice enhancement to allow an administrator to harden up the rules on what client software and versions are able to connect to a metadata server. Imagine being able to configure, for your own SAS installation, based on your own policies, which clients, versions and hotfix levels are allowed to connect to your SAS metadata server. I know I’d like to be able to do that. Several times in the past I’ve thought it’d be nice to be able to block client software which has not been upgraded to specific hotfix levels. It’d certainly make it easy to track down old client installations too.
Finally, in case it helps anyone with future troubleshooting, here are a few of the error messages we saw whilst doing this testing (I’ve included the text, in addition to screenshots, for the benefit of searches):
SAS Management Console 9.1 connecting to SAS 9.2 Metadata Server
This is the SAS Management Console 9.1 error dialog seen when attempting to connect to any newer SAS Metadata Server version (e.g. 9.2 or 9.3).
The text of the message is:
The specified server is invalid. Please ensure you are connecting to a valid metadata server.
SAS Management Console 9.2 connecting to SAS 9.3 Metadata Server
Whilst I was able to connect to a SAS 9.3 Metadata Server from SAS Management Console 9.2 I did see this error message during the connection. After dismissing the dialog it did appear to have connected ok.
The text of the message is:
Error reading metadata:Improper syntax was detected at location ’46’ in the XMLSELECT option ‘Tree[@TreeType=’TS Config’]SoftwareComponents/ServerComponent[@Name=’FrameworkServer – SAS Framework Data Server’]]’ used to select metadata. The error is ‘An unexpected XMLSELECT character ‘/’ was found in the xpath syntax.’.
The ability of SAS Management Console 9.2 to connect to a SAS 9.3 Metadata Server is documented in SAS Problem Note 46938: SAS® 9.2 SAS® Management Console can connect to a SAS® 9.3 SAS® Management Console profile
SAS Management Console 9.3 connecting to SAS 9.1.3 Metadata Server
Here is the error seen when trying to connect to an old SAS 9.1.3 Metadata Server from SAS Management Console 9.3:
The text of the message is:
The application could not log on to the server “sas91srv:8561”. This application is not compatible with versions of the SAS Metadata Server released prior to SAS 9.2.
SAS Management Console 9.3 connecting to SAS 9.2 Metadata Server
Interestingly the error message is slightly different when you use SAS Management Console 9.3 to connect to an older SAS 9.2 Metadata Server:
The text of the main message is:
The metadata server is not compatible with this application.
… and if you click the Details button the additional text is:
The application cannot connect to the SAS Metadata Server. Metadata server version 9.2 is not supported by this application.