SAS Institute. The Power to Know

FOCUS AREAS

Hot Topics

Related Links

SAS®9 Compatibility

Migration

Cross-Environment Compatibility in SAS®9

Heterogeneous computing—for example, a UNIX server together with Windows workstations—is a growing trend. This document introduces the best method for sharing SAS®9 files across different operating environments, followed by references to the alternatives. A good general reference is Moving and Accessing SAS Files.

This document assumes that you are using SAS®9 files in a SAS®9 session, and you know or suspect that you are crossing to a different operating environment. If you are crossing to a different SAS version, see one of the following topics instead:

First Try Compatibility

Generally speaking, when you use a SAS file on a different operating environment family than the one where it was created, the file is foreign. With all the operating environments supported by SAS, you might be confused as to what makes up an operating environment family. This point is important to determine, because native files are entirely compatible but foreign files are processed with SAS cross-environment data access (CEDA), which has a few restrictions.

In this document, first you determine whether a file is native or foreign, and then you learn the difference in processing for native and foreign files. If the file is foreign and CEDA processing is not sufficient for your needs, you can read about other methods of accessing the file.

Is the File Native or Foreign?

The chapter Processing Data Using Cross-Environment Data Access (CEDA) in SAS Language Reference: Concepts provides a thorough explanation of the circumstances where CEDA is invoked. Use the following best practice to know for sure when CEDA is invoked on your system. For greater detail, see also information about why CEDA is invoked for a SAS®9 file in a SAS®9 session.

Best practice

To know when CEDA is being used, set the SAS system option MSGLEVEL=I. That is:

   options msglevel=i;

Here's an example of the message that displays in the log:

   INFO: Data file MYFILES.GRADES.DATA is in a format that is native to 
   another host, or the file encoding does not match the session encoding. 
   Cross Environment Data Access will be used, which might require 
   additional CPU resources and might reduce performance.

Beginning with SAS 9.1.3 Service Pack 4, you get this behavior even if you do not specify MSGLEVEL=I.

Native Processing

If you have determined that CEDA is not invoked, then the file is native in your current operating environment. Your available processing should be just the same as in the SAS®9 session where the file was created.

Foreign Processing

If you have determined that CEDA is invoked, then the file is foreign in your current operating environment.

CEDA processing is summarized in the Migration focus area and fully explained in the SAS online documentation. The Migration focus area topics mention cross-version processing, but CEDA works just the same for cross-environment processing alone.

When CEDA Isn't Enough

If CEDA processing is not sufficient, then you can try one of the many methods described in Moving and Accessing SAS Files. Two topics in the introduction compare the various methods, including CEDA:

Why CEDA Is Invoked for a SAS®9 File in a SAS®9 Session

Character encoding: CEDA is invoked when you share a file with users in another locale who have an incompatible encoding. For more information, see the topic about national language support or see Processing Data Using Cross-Environment Data Access (CEDA) in SAS Language Reference: Concepts.

Operating environment family: In a SAS®9 session, you can run the CONTENTS procedure on any SAS®9 file to determine the operating environment where it was created. To learn the operating environment of your current SAS®9 session, create a quick data set and run PROC CONTENTS on it. If the data representation of the file matches that of your current operating environment, then the file is native on that operating environment. If you're running under AIX, Solaris, or HP-UX, you'll notice all of those operating environments are listed in the log, because those operating environments comprise an operating environment family.