Is there anywhere I can get a list of SAS Product Codes and their corresponding product names?
I'm writing a program to parse the SAS RTRACE logs. The RTRACE logs show which products are being accessed in a particular SAS installation. I'm trying to determine what SAS products we're actually using as we prepare for a migration to a new server. If we're not using a product, then we don't need to license it on the the new server. On the other hand, if we are using a product, then we'd darned well better license it or our code won't run.
I've got the output from sas.tools.viewregistry.jar, so I've identified the product names corresponding to 95% of the product codes on our server, but there are still three product codes that I can't identify:
Probably these are some fairly basic things and probably come with every installation, but I'd like to be sure, and I'd like to get the product names that these product codes correspond to. Is there a list anywhere? Google hasn't come up with anything.
Thanks,
Jim
I am not sure, but I have an idea that the names you mention refer to .dll files (on Windows, that is, the link libraries are probably called something else on other platforms). So maybe you can find files with those names in the product directories of the SAS installation.
Otherwise, the names seem to suggest that "cbase" and "basecom" are SAS/Base, and as for "rlink" I would guess at SAS/Connect.
If that does not help, you may want to run some test sessions yourself, with the RTRACELOC system option empty; the RTRACE information will then be written to the standard SAS log file, so that you can see what modules are being called when.
@s_lassen, yes, you are essentially correct in your surmise that dll's are what is listed in an RTRACE log, but it's just a bit more complicated than that.
The RTRACE log lists every file reference. For example, whenever a dynamic load library, a dll, is referenced, an entry is placed in the log. When I analyze the RTRACE log, I:
One good thing here is that one can see from the RTRACE log which folder each dll is in, giving one at least a general sense of what category a given dll is in. If one is using SAS Enterprise Guide, one can also look at WORK._ProdsAvail which has more information about installed products, their names, and their codes.
Based on the folder structure(s) and the information in WORK._ProdsAvail, I agree with you that cbase and basecom are part of the base product (they are both in the "Core" folder) and that rlink is part of SAS/Connect. Still, it would be nice if there were a master list somewhere, or, even better, a SAS function that returns the product name based on the product code. There may be such a function; I'm just not familiar with it if there is.
Lastly, your idea regarding using RTRACE without an RTRACELOC is a really good one. One can see exactly what is called in the chain of events if the RTRACE is stored in the same log as everything else. I hesitate to set this up as part of a Production configuration because it could make the regular SAS log quite lengthy and difficult to interpret for the average person. However, if one sets up RTRACE as part of a command line instantiation, it should be a good and useful technique, so I thank you for that.
Jim
I like your thinking. I suggest you contact your local SAS office and ask if SAS got some "utility code" to help you with this analysis. I'd also be really interested if you could share a bit more in-detail how you determine what gets used.
What consequences your findings will have for your new environment/licensing will depend on your current licenses. Some "stuff" is licensed as bundles where it doesn't make a difference if you use a specific component or not. And it can be more cost effective to license a bundle from start than to pick things apart and license things individually - only to then have to license the last component which would have made up the bundle one year later (I've seen this happening) - so it's not only about current use but also about probable future use (your road-map).
The contents of an RTRACE log look something like the below. What I do is first look for the text string '\sasexe\'. When I see this, I know some type of executable is being used. I then look for the next string token, which is a dll. I grab the token, remove the extension, and then feed the result to the data step function TSLVL which returns the SAS product code. See my response to @s_lassen above for more details if you're interested.
Jim
File referenced: E:\Program Files\SASHome\SASFoundation\9.4\sasv9.cfg File opened: E:\Program Files\SASHome\SASFoundation\9.4\sasv9.cfg File closed: E:\Program Files\SASHome\SASFoundation\9.4\sasv9.cfg File opened: E:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg File closed: E:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg File referenced: E:\Program Files\SASHome\SASFoundation\9.4\autoexec.sas File referenced: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\msgdir.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\msgdir.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\saswztx.dll File closed: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\msgdir.msg File referenced: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\casdminf.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\casdminf.msg File closed: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\casdminf.msg File referenced: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\dbimet.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\dbimet.msg File closed: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\dbimet.msg File referenced: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\host.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\host.msg File referenced: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\core.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasmsg\core.msg File opened: E:\Program Files\SASHome\SASFoundation\9.4\SAS.EXE File opened: E:\Program Files\SASHome\SASFoundation\9.4\sashost.dll File referenced: E:\Program Files\SASHome\SASFoundation\9.4\baseui\sasexe\sasvwu.dll File referenced: E:\Program Files\SASHome\SASFoundation\9.4\baseui\sasexe\sasvwu.dll File referenced: E:\Program Files\SASHome\SASFoundation\9.4\baseui\sasexe\sasvwu.dll File referenced: E:\Program Files\SASHome\SASFoundation\9.4\baseui\sasexe\sasvwu.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\baseui\sasexe\sasvwu.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\resource\SASVRES.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\resource\SASVICON.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\resource\SASVBMP.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\saswzx.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\saswob.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\saswobs.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxkern.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxkini.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasyh.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sase7.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\saswzsd.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasyzcrl.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasyzcr2.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkeutil.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxkrin.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\casconnctsub\sasexe\sasycc.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkproto.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkepdl.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkitcp.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkcal.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxshel.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkinstance.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasext\tkstring.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxkloc.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxdtu.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sasexe\sasxbam.dll File opened: E:\Program Files\SASHome\SASFoundation\9.4\core\sashelp\core.sas7bcat
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.