SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 31345: Metadata objects stored in a custom repository are not returned by client applications or metadata query results when they should be

DetailsHotfixAboutRate It

If you have a scenario similar to the following:

  • a Foundation repository and two custom repositories (RepA and RepB).
  • two users (UserA and UserB).
  • UserA has been granted permission to view objects in RepA and Foundation via the Default ACT.
  • UserB has been granted permission to view objects in RepB and Foundation via the Default ACT.
  • Each of the three repositories has a different library defined in it (LibF, LibA and LibB) and all three libraries are assigned to the same application server (such as SASMain).

Given this scenario, UserA should be able to access LibF and LibA, and UserB should be able to access LibF and LibB. And, in fact, if either UserA or UserB logs into SAS® Management Console, they can see the appropriate libraries.

However, other client applications that query the metadata using different techniques might receive incorrect results from the metadata server. For example, if you use the SAS® Open Metadata Architecture API to submit a query like the following:


   <GetMetadataObjects>
      <Reposid>A0000001.A53J8Q6W</Reposid>
      <Type>ServerContext</Type>
      <Objects/>
      <Ns>SAS</Ns>
      <Flags>16780</Flags>
      <Options>
         <XMLSelect search="ServerContext[@Id='A53J8Q6W.AT000001']"/>
         <Templates>
            <ServerContext>
               <DataPackages/>
            </ServerContext>
         </Templates>
      </Options>
   </GetMetadataObjects>

where REPOSID is the Foundation ID and the SERVERCONTEXT ID is that of the application server (SASMain), you might not see all the libraries that your user ID should have access to. The actual results will vary depending upon the order that the custom repositories were initially registered in the server.

For example, if repository RepA was registered before RepB and UserA runs the query above, he will correctly see libraries LibF and LibA. However, if UserB runs the query, he will only see library LibF. UserB should, in fact, see both libraries LibF and LibB.

As the query is being processed it loops through all repositories and libraries, looking for a match for the requested ServerContext association. As long as it continues to find libraries to which that user has access, the results are returned correctly. The problem occurs when a user encounters an authorization denial (such as when UserB attempts to access repository RepA). At this point, the server stops and makes no further attempt to look in additional repositories. The results returned for UserB are incomplete because the query stopped before reading repository RepB.

Note that while this example scenario refers to libraries, the same problem can occur for any type of metadata object you attempt to access.

Select the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemBase SASz/OS9.1 TS1M3 SP4
Microsoft® Windows® for 64-Bit Itanium-based Systems9.1 TS1M3 SP4
Microsoft Windows Server 2003 Datacenter 64-bit Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Enterprise 64-bit Edition9.1 TS1M3 SP4
Microsoft Windows XP 64-bit Edition9.1 TS1M3 SP4
Microsoft® Windows® for x649.1 TS1M3 SP4
Microsoft Windows 2000 Advanced Server9.1 TS1M3 SP4
Microsoft Windows 2000 Datacenter Server9.1 TS1M3 SP4
Microsoft Windows 2000 Server9.1 TS1M3 SP4
Microsoft Windows 2000 Professional9.1 TS1M3 SP4
Microsoft Windows NT Workstation9.1 TS1M3 SP4
Microsoft Windows Server 2003 Datacenter Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Enterprise Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Standard Edition9.1 TS1M3 SP4
Microsoft Windows XP Professional9.1 TS1M3 SP4
64-bit Enabled AIX9.1 TS1M3 SP4
64-bit Enabled HP-UX9.1 TS1M3 SP4
64-bit Enabled Solaris9.1 TS1M3 SP4
HP-UX IPF9.1 TS1M3 SP4
Linux9.1 TS1M3 SP4
Linux on Itanium9.1 TS1M3 SP4
OpenVMS Alpha9.1 TS1M3 SP4
Tru64 UNIX9.1 TS1M3 SP4
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.