The SAS
publishing macros are used to publish the formats and the scoring
functions in DB2.
The %INDB2_PUBLISH_MODEL
macro creates the files that are needed to build the scoring functions
and publishes the scoring functions with those files to a specified
database in DB2. Only the EM_ output variables are published as DB2
scoring functions.
For more information
about the EM_ output variables, see Fixed Variable Names.
Note: SFTP is used
to transfer the source files to the DB2 server during the publishing
process. Certain software products that support SSH-2 or SFTP protocols
must be installed before you can use the publishing macros. For more
information, see
Setting up SSH Client Software in UNIX
and Windows Environments for use with the SFTP Access Method located at
http://support.sas.com/techsup/technote/ts800.pdf.
The %INDB2_PUBLISH_MODEL
macro uses some of the files that are created by the SAS Enterprise
Miner Score Code Export node: the scoring model program (score.sas
file), the properties file (score.xml file), and, if the training
data includes SAS user-defined formats, a format catalog.
The %INDB2_PUBLISH_MODEL
macro performs the following tasks:
-
takes the score.sas and score.xml
files and produces the set of .c and .h files. These .c and .h files
are necessary to build separate scoring functions for each of a fixed
set of quantities that can be computed by the scoring model code.
-
if a format catalog is available,
processes the format catalog and creates an .h file with C structures,
which are also necessary to build the scoring functions.
-
produces a script of the DB2 commands
that are used to register the scoring functions on the DB2 database.
-
transfers the .c and .h files to
DB2 using SFTP.
-
calls the
SAS_COMPILEUDF function
to compile the source files into object files, links to the SAS 9.2
Formats Library for DB2, and copies the new object files to
db2path/sqllib/function/SAS
, where
db2path
is the path that was defined during installation.
The object filename is
dbname_schemaname_modelname_segnum, where
segnum is a sequence
number that increments each time the model is replaced or recreated.
The object file is renamed to avoid library caching in DB2.
-
calls the SAS_DELETEUDF function
to remove existing object files.
-
uses the
SAS/ACCESS Interface to
DB2 to run the script to create the scoring functions with the object
files.
The scoring
functions are registered in DB2 with shared object files, which are
loaded at run time. These functions are stored in a permanent location.
The SAS object files and the SAS 9.2 Formats Library for DB2 are stored
in the
db2path/sqllib/function/SAS
directory, where
db2path
is
the path that was defined during installation. This directory is accessible
to all database partitions.
DB2 caches
the object files after they are loaded. Each time that the updated
objects are used, the database must be stopped and restarted to clean
up the cache, or the object files need to be renamed and the functions
reregistered with the new object filenames. The SAS publishing process
automatically handles the renaming to avoid stopping and restarting
the database.
Note: You can publish
scoring model files with the same model name in multiple databases
and schemas. Because object files for the SAS scoring function are
stored in the
db2path/sqllib/function/SAS
directory, the publishing macros
use the database, schema, and model name as the object filename to
avoid potential naming conflicts.