DataFlux Data Management Studio 2.8 - Administrator's Guide
DataFlux Data Management Studio 2.8 - Administrator's Guide
DataFlux Data Management Studio 2.8 - Administrator's Guide
SAS® Documentation
September 12, 2019
The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2019. DataFlux® Data Management Server 2.8: Administrator’s
Guide. Cary, NC: SAS Institute Inc.
DataFlux® Data Management Server 2.8: Administrator’s Guide
Copyright © 2019, SAS Institute Inc., Cary, NC, USA
Overview
The September 2019 update for DataFlux Data Management Server 2.8 includes changes
to the profile data that you can generate. New databases are supported.
General Enhancements
• To enhance testing, you can now generate profile data for each node that runs in a
server job. See “Profile Job Nodes”.
• To configure multiple server instances on a single host, separate SAS Home paths are
required. See “Set Directory Permissions”.
• The supported databases for data storage have been updated. For more information,
see DataFlux Data Management Studio 2.8: User’s Guide.
vi What's New in DataFlux Data Management Server
vii
Accessibility
The DataFlux Data Management Server software includes features that improve
usability for the disabled. The usability features are related to accessibility standards for
electronic information technology that were adopted by the United States (U.S.)
Government under Section 508 of the U.S. Rehabilitation Act of 1973, as amended.
If you have questions or concerns about the accessibility of DataFlux products, please
send an email to techsupport@sas.com.
viii Accessibility
1
Chapter 1
Overview
The DataFlux Data Management Server provides consistent, accurate, and reliable
access to data across a network by integrating real-time data quality, data integration,
and data governance routines. With DataFlux Data Management Server, you can
replicate your business rules for acceptable data across applications and systems,
enabling you to build a single, unified view of your enterprise. The server implements
business rules that you create in DataFlux Data Management Studio, in both batch and
real-time environments. DataFlux Data Management Server enables pervasive data
quality, data integration, process orchestration, and master data management (MDM)
throughout your enterprise.
The Data Management Server provides a service-oriented architecture (SOA) application
server that enables you to execute batch or profile jobs on a server-based platform, in
Windows, Linux, or UNIX. By processing batch and profile jobs where the data resides,
you avoid network bottlenecks and take advantage of performance features available
with higher-performance computers.
In addition, the Data Management Server executes real-time data services and real-time
process services. These services can be invoked by any web service application, such as
SAP, Siebel, Tibco, or Oracle. You can convert your existing batch jobs to real-time
services, to reuse the business logic that you developed for data migration or to load a
data warehouse. You can apply your real-time services at the point of data entry to
ensure consistent, accurate, and reliable data across your enterprise.
2 Chapter 1 • Introducing the DataFlux Data Management Server
The following diagram shows how DataFlux Data Management Server connects to other
servers and clients:
Customer
RDBMS Fixed/
Applications,
Delimited Files
Message Queues
ODBC,
Wire drivers,
native text SOAP over
importers TCP/IP HTTP/HTTPS
How It Works
The DataFlux Data Management Server is responsible not only for sending and
receiving SOAP requests, but also for monitoring the progress of all registered data
management services. Job status information is available in DataFlux Data Management
Studio, and, when configured, in the Job Monitor add-in the SAS Environment Manager
software.
On the Data Management Server, SOAP and WLP (web application logic) servers listen
on separate ports. When the server receives a job run request, the server authenticates,
authorizes, and sends the request to a threaded process. The process runs and executes
the real-time data service, real-time process service, batch job, or profile job. When the
job is complete, the server sends data to the client and the process is assigned to the next
job run request.
You can preload processes, spawn new processes, and enqueue job run requests as
needed to customize server performance for the dynamics of your enterprise. The use of
separate processes for job run requests enables robust error recovery and effective
distribution of processing across multiple CPUs.
The Data Management Server handles the following processes:
• Client queries the server to return the names of available services. If the server
receives a list services request, the server simply queries the services directory and
returns the name of each found file.
• Return requested input/output fields for a specified service.
• Pass data and macros to a service, run the service, and receive output data and
macros in return. When the server receives a service request, it identifies an idle
service, sends data to the idle service, and listens for additional requests. If an idle
service is not available, the server will load a new service into memory and pass the
data or macros to the new service. The server monitors the service progress; as soon
as the service returns output, the server sends the output back to the client
application. If the service fails for any reason, the server will terminate the service
process and return an error message to the calling application. After a service
completes a request, both changed and unchanged data and macros will be reset to
their default values.
Overview
The user interface for DataFlux Data Management Server is provided by DataFlux Data
Management Studio. To display the interface, open the Administration riser bar and
click the DataFlux Data Management Servers riser bar. DataFlux Data Management
Studio then displays a tree view of your Data Management Servers in the left-hand
navigation pane. The right-hand information pane displays a list of server names.
4 Chapter 1 • Introducing the DataFlux Data Management Server
Directory Description
Directory Description
\etc\dsn Contains the saved credential files for each data source name
(DSN).
\etc\license By default, the location where the license files reside. The path
to the license file is located in the etc\app.cfg file.
\etc\macros Contains the .cfg files, which specify the macro key and value
pairs. All files in this directory are loaded in alphabetical order.
\etc\security Contains files that specify server commands and permissions for
specific users and groups.
\share Contains message files that are needed by the software. If the
files are removed, the software will fail to run. The directory
also contains a sample copy of the WSDL file, which is used by
the DataFlux Data Management Server.
\var Contains the log files from the running of the DataFlux Data
Management Server as well as job-specific logs.
Chapter 2
Post-Installation Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
First-Time Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Upgrade Server Software Using Manual Migration . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Upgrade Server Software without Manual Migration . . . . . . . . . . . . . . . . . . . . . . . . 8
Update Security Files after Exporting Users and Groups . . . . . . . . . . . . . . . . . . . . . 9
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Run the Dftool Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Summary of Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Specify Default Credentials for Dftool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
About Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Configure Additional Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Address Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Configure the Quality Knowledge Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Configure DataPacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Set Directory Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Configure DataFlux Data Management Server to Run Studio Jobs and Services . 17
Profile Job Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Post-Installation Tasks
Introduction
Complete the following tasks after you install or upgrade DataFlux Data Management
Server software. After you complete these tasks, the server will be fully operational.
If you are installing your first instance of DataFlux Data Management Server, refer to the
next topic “First-Time Install”.
If you are upgrading DataFlux Data Management Server, then your post-installation
tasks differ depending on the type of the upgrade. If your upgrade requires manual
migration, then see “Upgrade Server Software without Manual Migration”.
If your upgrade replaced the previous version of the server software, then migration is
not required. See “Upgrade Server Software without Manual Migration” on page 8.
8 Chapter 2 • Configuring the DataFlux Data Management Server
First-Time Install
Complete the following tasks when you install your first DataFlux Data Management
Server:
• Create and implement a security policy.
• As needed, configure the security features that are supported by DataFlux Secure.
DataFlux Secure enables SSL, advanced encryption, and FIPS compliance, as
described in DataFlux Secure: Administrator’s Guide, at http://support.sas.com/
documentation/onlinedoc/dfsecure/index.html.
• Configure a repository using DataFlux Data Management Studio, as described in
DataFlux Data Management Studio User’s Guide, at http://support.sas.com/
documentation/onlinedoc/dfdmstudio/index.html.
• Set directory permissions.
• Configure the server to run DataFlux Data Management Studio jobs and services.
• Configure additional software such as Address Update and the Quality Knowledge
Base.
Introduction
Use the dftool utility to update local security files after you export users and groups from
DataFlux Authentication Server to SAS Metadata Server. In the security files, the dftool
utility replaces DataFlux Authentication Server IDs with SAS Metadata Server IDs. The
update process ensures that the security files are synchronized with the SAS Metadata
Server.
The dftool utility displays and logs all IDs that were replaced, and also displays and logs
any DataFlux Authentication Server IDs that remain. IDs are replaced only if matching
users or groups are found on the SAS Metadata Server.
Replacing or removing all DataFlux Authentication Server IDs ensures appropriate
access to server resources.
After running dftool, a restart is required for DataFlux Data Management Server.
Prerequisites
The prerequisites for running the dftool utility are as follows:
• As needed, install, update, configure, and start your SAS Metadata Server.
• On DataFlux Authentication Server, make sure that all users and groups were
successfully exported to SAS Metadata Server, as described in DataFlux
Authentication Server: Administrator’s Guide, at http://support.sas.com/
documentation/onlinedoc/dfauthserver/index.html.
• Obtain login credentials that are recognized by SAS Metadata Server. The
credentials must meet the following requirements:
• On SAS Metadata Server, the credentials must be granted the Read Metadata
permission.
• On DataFlux Data Management Server, the credentials must have Read, Write,
and Delete permissions for the following directories:
dmserver-install-path\etc\security
dmserver-install-path\var
You can enter credentials on the command line when you run dftool, or you can
enter default credentials into a configuration file, as described in “Specify
Default Credentials for Dftool” on page 11.
• If DataFlux Data Management Server runs in the UNIX operating environment, then
set the environment variable TKERSA2_LIB_PATH as follows:
TKERSA2_LIB_PATH=/dmserver-install-path/SASHome/DataManagementServer/
release-number/dmserver/lib/tkts export TKERSA2_LIB_PATH
Note: Your instance of the path shown above might contain an incorrect name for
the release-number directory. This occurs when the server software upgrade
process replaces the previous version of the software in the directory of the
previous release. If you are uncertain about the current release of your software,
10 Chapter 2 • Configuring the DataFlux Data Management Server
check the dates on the files in the directory. You can change the name of the
release-number directory without causing errors.
• Configure the DataFlux Data Management Server to authenticate using SAS
Metadata Server. Specifically, in the file dmserver-install-path\etc
\app.cfg, the value of configuration option BASE/AUTH_SERVER_LOC needs
to be the fully qualified network name of SAS Metadata Server. If you have a
clustered SAS Metadata Server, then the network name needs to identify the cluster
configuration file.
• To generate a log file for dftool, the following configuration file must be present on
the server host: dmserver-install-path\etc\dftool.log.xml. If
DataFlux Data Management Server was recently upgraded, then the configuration
file is installed with the name dftool.log.xml.new. This filename has to be
changed before a log file can be generated by the dftool utility. The .new extension
must be removed from the filename.
3. The dftool utility displays a prompt to enter alternate credentials for connecting to
SAS Metadata Server. Select Enter to bypass the entry of alternative credentials.
4. The dftool utility displays its activities and exits. For further information about dftool
processing, including the copying and renaming of security files, see “Summary of
Execution” on page 11.
5. Examine the shell text or the log files to ensure that all IDs from DataFlux
Authentication Server were replaced. Two log files are generated each time you run
dftool: dftool.log and dftool_security.log. The log files are located in the directory
dmserver-install-path\var. Dftool.log is the platform debug log file.
Dftool_security.log is a summary log file that lists only the DataFlux Authentication
Server IDs that were not matched and replaced by SAS Metadata Server IDs.
If no unmatched IDs from DataFlux Authentication Server remain, then the summary
log file will be empty. If unmatched IDs are found, then the summary log file
contains an entry in the following format for each affected security file:
unknown old ID: 'FF4ADD49C7599BA479FB9C13C742E8C0'
unknown old ID: 'FF4ADD49C7599BA479FB9C13C742E8C1'
Processed file: 'C:\Program Files\DataFlux\DMServer\2.7\bin\etc\security\users'
If the log files indicate that unmatched IDs remain, then consider running PROC
ASExport again on your DataFlux Authentication Servers, as described in DataFlux
Authentication Server 4.1 Administrator’s Guide, 2nd Edition. After the export, run
dftool again on DataFlux Data Management Server.
Update Security Files after Exporting Users and Groups 11
If no unmatched DataFlux Authentication Server IDs are found (summary log file
empty), then the cause might be one or more following:
• All IDs were previously replaced.
• Your credentials for running dftool do not have appropriate permission to read or
display users and groups from the SAS Metadata Server.
• PROC ASExport did not run or did not run correctly. Examine the log files to see
the users and groups that were exported to SAS Metadata Server.
If PROC ASExport indicates that all users and groups have been exported,
unmatched IDs can still exist on DataFlux Data Management Server. To resolve this
condition, verify that the unmatched users and groups are not present on your SAS
Metadata Server or DataFlux Authentication Servers. Next, delete those users or
groups from the security settings on your DataFlux Data Management Server, using
the administrative interface in DataFlux Data Management Studio.
6. Restart DataFlux Data Management Server so that the server can read the new
security files into memory.
Summary of Execution
The dftool utility runs as follows:
1. Open app.cfg to determine the network name of SAS Metadata Server, as specified
by the option BASE/AUTH_SERVER_LOC. Also look for alternative credentials in
the options BASE/AUTH_SERVER_USER and BASE/AUTH_SERVER_PASS.
2. Request from SAS Metadata Server the users and groups that were migrated from
DataFlux Authentication Server. If no users or groups are returned, dftool exits.
3. Search the DataFlux Data Management Server security files for user and group IDs
that were generated by DataFlux Authentication Server. If one is found, and if the
associated user or group has a match on SAS Metadata Server, then copy and rename
the security file. In the original security file, replace the old ID with the ID from SAS
Metadata Server. Rename the file with a numeric suffix such as .001 or .012. The
suffix indicates the number of times that the original security file has been replaced
by previous runs of the dftool utility.
If an ID from DataFlux Authentication Server is found, and if a matching user and
group is not found, then log the unmatched ID for that security file.
About Configuration
The configuration of the DataFlux Data Management Server is specified in the server
definition on the SAS Metadata Server, and in the following configuration files:
• dmserver.cfg
• app.cfg
• batch.cfg
• macros.cfg
• service.cfg
The configuration files are stored in the server’s etc directory.
It is important to note that all of the configuration options in these local files override (or
replace) any other option value that might be set elsewhere. The precedence of local
option values is of primary importance with regard to the files dmserver.cfg and app.cfg.
The app.cfg file contains values that pertain to the execution of jobs and services. Jobs
and services are developed and tested in DataFlux Data Management Studio, and then
uploaded to the server for execution. Both DataFlux Data Management Studio and
DataFlux Data Management Server maintain their own instances of app.cfg. It is
important to maintain the same app.cfg file on the DataFlux Data Management Server
and on all instances of DataFlux Data Management Studio that supply jobs to that server.
When you maintain a consistent app.cfg file, you help ensure that jobs and services run
on the server in the same way that they were developed and tested.
The dmserver.cfg file contains options that are also specified in the server definition on
the SAS Metadata Server. The server definition includes configuration settings for host
name, port, SSL, and security. The values in dmserver.cfg override any different values
that are provided by the SAS Metadata Server. For this reason, it is important that the
values in the server definition are the same as those in dmserver.cfg.
The configuration files (batch.cfg, macros.cfg, and service.cfg) are used to configure
connections from network clients, as described elsewhere in this document. The values
in these files might be expected by clients, but these files do not override values that
were set elsewhere.
Overview
You can add data cleansing, data quality, and address verification applications to your
Data Management Server so that job nodes can access the applications on the local host.
These applications are available on the SAS support site, in the downloads and hot fixes
section. See http://support.sas.com/demosdownloads.
You can customize applications such as dfIntelliserver, Quality Knowledge Bases
(QKB), Accelerators, and DataPacks to meet the needs of your service-oriented
architecture.
Configure Additional Software 13
For information about installing dfIntelliserver, QKBs, and Accelerators, see the relevant
software installation documentation. For information about installing and configuring
the DataPacks for address verification, including USPS, Canada Post, and Geocode, see
the DataFlux Data Management Studio Installation and Configuration Guide.
Address Update
3. Configure a DSN on the DataFlux Data Management Server that is identical to the
DSN defined in the NCOA/REPOSDSN option in the app.cfg file. Users need to
save credentials for this DSN.
4. Import your Address Update Lookup jobs from DataFlux Data Management Studio
to the Batch Jobs folder on the DataFlux Data Management Server.
At this point, you are ready to run your Address Update Lookup jobs.
Configure DataPacks
If you download DataPacks, open install-path/etc/app.cfg, remove comment
characters, and update variable values as follows.
CASS (US Data, USPS)
# verify/usps = PATH
# Location of US address verification data.
#
# example: verify/usps = C:\USPSData
Geocode
# verify/geo = PATH
# Location of Geocode/Phone data.
#
# example: verify/geo = C:\GeoPhoneData
World
World Address Verification requires you to enter an unlock code in addition to the
path. The unlock code is supplied with the DataPack.
# verifyworld/db = PATH
# Location of World address verification data.
#
# example: verifyworld/db = C:\Platon
#
# verifyworld/unlk = UNLOCK_CODE
# Unlock code provided by DataFlux for unlocking the World address
# verification functionality.
#
16 Chapter 2 • Configuring the DataFlux Data Management Server
Note: TMPDIR might have to be set in the event that the system's default temp directory
(/TMP) runs out of space while running jobs or services. If this occurs, set the
TMPDIR environment variable to read/write for the run-time user.
Note: It is possible to deploy more than one instance of DataFlux Data Management
Server on a single host. This type of deployment requires separate SAS Home paths
for each server instance. The separate SAS Home paths enable unique configuration
files for each server instance. For assistance, contact SAS Technical Support.
<logger name="DF.RTProfiler.log">
<level value="Trace"/>
<appender-ref ref="ProfFile"/>
</logger>
In the preceding example, the log file shows one comma-delimited line of profile data
for each node or node type in each job. The log file can be opened in Microsoft Excel.
Example log entries for PROFILEBYTYPE:
NX,ARCHITECT_EMBEDDED_JOB,0,5
NX,EXPRESSION,0,5
NX,EXT_PROVIDER,1,5
NX,PASSTHRU,0,5
PR,ARCHITECT_EMBEDDED_JOB,0,1
PR,EXPRESSION,0,1
PR,EXT_PROVIDER,0,1
• Column 1 identifies the type of the action that generated the time value in column 4.
Values can be NX (cumulative time to process rows), PR (time to prepare), or PX
(time to pre-execute).
• Column 2 identifies the type of the node in the job.
• Column 3 records the duration of the action in milliseconds.
• Column 4 records the number of execution loops through the node.
Example log entries for PROFILEBYNODE:
NX,inner2.ddf,1,0,5
NX,inner2.ddf,2,0,5
NX,inner2.ddf,3,0,5
NX,outer2.ddf,1,0,5
NX,outer2.ddf,2,1,5
Chapter 3
Managing Security
Security Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
About Security Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
About Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
About Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Group and User Authorization Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Group Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Authorization Checks Using Access Control Entries . . . . . . . . . . . . . . . . . . . . . . . . 24
Configure a SAS Metadata Server for Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Configure Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Manage Server Configuration Options That Are Set from Metadata . . . . . . . . . . . . 25
Configure Server Restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Additional Configuration after Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Configure Mid-Tier Options for Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Manage Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Configure Default Access Control Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Set Permissions Using a Job List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Remove Users and Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Reference for Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Control Access by IP Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Configure Enhanced Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Enable SOAP with SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
About OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Encrypt Passwords for DSNs and SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Encrypt in Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Encrypt in UNIX and Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Troubleshoot Security Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
401 Unauthorized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
403 Forbidden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
22 Chapter 3 • Managing Security
Security Overview
Security for the DataFlux Data Management Server is implemented as follows:
• Authentication takes place in the operating environment, as managed by the SAS
Metadata Server.
• Authorization is managed and implemented entirely on the DataFlux Data
Management Server. Permissions (access control lists) are managed in the server’s
administrative interface in DataFlux Data Management Studio, or in configuration
files. Any job, service, command, or data can be assigned an access control list by an
administrator.
• Access to all server resources can be explicitly allowed or denied by IP address. This
permission overrides the access control lists.
• Access to all server resources can be explicitly allowed or denied to specified users
or groups. This permission overrides the access control lists.
• By enabling the DataFlux Secure software, client SOAP connections can be
protected with OpenSSL.
• The encryption algorithm for connections to the SAS Metadata Server and the SAS
Federation Server are determined by those servers. By default, the encryption
algorithm is 56-bit SAS Proprietary. By enabling the DataFlux Secure software, the
encryption algorithm can be upgraded to the American Encryption Standard (AES,
up to 256-bit.) In turn, AES can be configured to be compliant with the Federal
Information Processing Standard 140-2. To learn about the implementation of
encryption between SAS servers, see Encryption in SAS 9.4. To enable and configure
the DataFlux Secure software, see the DataFlux Secure: Administrator’s Guide.
The DataFlux Data Management Server can run in unsecured mode, without
authentication or authorization. In this mode, jobs cannot request authentication, and the
DataFlux Data Management Server cannot connect to a SAS Federation Server.
When security is not enabled, you cannot run jobs that request authentication, and you
cannot run jobs that access a SAS Federation Server.
All data sources (DSNs) needed by jobs and services must be defined on the Data
Management Server.
About Authentication
When it is enabled, the authentication process begins when the DataFlux Data
Management Server receives a connection request from a client. The DataFlux Data
Management Server passes the supplied user credentials to a SAS Metadata Server. The
other server then submits the credentials to an authentication provider in the specified
network domain. The result of the authentication attempt is then returned to the
DataFlux Data Management Server. Successful authentication enables the DataFlux Data
Management Server to begin the authorization process.
Authentication is enabled on the DataFlux Data Management Server with the
configuration option DMSERVER/SECURE, in the configuration file dmserver.cfg.
About Authorization
Overview
The authorization process applies access controls to authenticated users. After a user
successfully authenticates, the DataFlux Data Management Server queries the SAS
Metadata Server for the group membership information of the authenticated user. The
DataFlux Data Management Server applies user and group membership information to
its locally defined authorizations to allow or deny access to jobs, services, and
commands.
The authorization types that are available on the DataFlux Data Management Server
consist of access control entries, access control by IP address, and access control by
ALLOW and DENY groups.
If a user is a member of the administrators group, the DENY group, or the ALLOW
group, then access is granted or denied and no further authorization takes place.
Members of the administrators group and the ALLOW group are granted access to all
DataFlux Data Management Server commands and objects.
After group memberships are compared against the access controls entries the DataFlux
Data Management Server determines whether the following command permissions are
set for the user:
• If, for a given command or object, the user has deny set, then the user is denied
access. Access control entries are not checked.
24 Chapter 3 • Managing Security
• If the user has inherit set, authorization checks proceed to group permissions.
• If the user has allow set, and if the request does not apply to a specific object, then
the user is granted access. If the request does apply to a specific object, then the
server checks the object's access control entries.
Group Permissions
Group permissions are handled in accordance with the group's membership hierarchy.
For example, a user can be a member of groups G1 and G2. Group G1 is a member of
group G3. So, G1 and G2 are one step away from the user, and G3 is two steps away
from the user. The authorization process looks at permissions on all group sets in an
increasing order of steps from the user. If a command permission can be determined
from the groups that are one step from the user, then the DataFlux Data Management
Server will not look further.
When the server looks at a set of groups that are the same distance from the user, if any
group has the DENY permission, then the user is denied access. Otherwise, if any group
has the ALLOW permission, then the authorization process checks the access control
entriess. If there are no access control entries, then the user receives access. If
permissions are not set for any group, or the permission is set to INHERIT, then the
authorization checks move to the set of groups one step farther from the user.
If access rights cannot be determined after going through the groups to which the user is
a member, then the next group whose permissions are checked is the USERS group. All
users that have definitions on the SAS Metadata Server belong to the USERS group.
Administrators can set command permissions for the USERS group and use that group in
access control entries in the same manner as any other group.
If access rights have not been determined, based on command permissions, the last step
in the authorization process is to check whether permissions are set for the PUBLIC
group. The PUBLIC group includes all users who are not registered on the SAS
Metadata Server. If the permission is ALLOW, then the authorization process checks the
access control entries. Otherwise, the user is granted access. If the permission is DENY,
INHERIT, or is not set, then the user is denied access.
If neither the user, nor the user’s groups, the USERS group, or the PUBLIC group have
permission set, then the DataFlux Data Management Server denies access without
checking the access control entries. This means that the DataFlux Data Management
Server requires a specific command permission before the Data Management Server will
look at the access control entries of an individual object.
Overview
The DataFlux Data Management Server uses a SAS Metadata Server to authenticate
users and manage users and groups. The DataFlux Data Management Server does not
use the SAS Metadata Server for authorization. Instead, permissions are maintained
locally.
Configure Authentication
Installing a DataFlux Data Management Server sets a value for the configuration option
BASE/AUTH_SERVER_LOC in the file install-path/etc/app.cfg. The
AUTH_SERVER_LOC option identifies the SAS Metadata Server as the authentication
provider.
If your site uses a single host for the SAS Metadata Server, then the
AUTH_SERVER_LOC entry resembles the following example:
BASE/AUTH_SERVER_LOC=iom://Orion.us.southeast.omr.com:8561
The option value is a URL that identifies the host and port number of the SAS Metadata
Server. 8561 is the default port number.
If your SAS Metadata Server is installed as a cluster of multiple hosts, then the option
points to the metadata cluster profile. The pathname used by the option is the physical
location that is recognized by the operating environment. The file must be accessible
from the current process.
The following example illustrates a typical value:
BASE/AUTH_SERVER_LOC=c:\SAS\Config\Lev1\metadataConfig.xml
The example includes the default name and location of the metadata cluster profile.
Manage Permissions
Overview
When security is enabled, each DataFlux Data Management Server maintains
permissions that determine, in part, a user’s access to the jobs, services, data sets, and
commands on that server. The permissions are maintained for each object in access
control entries (ACEs.) Authorization can also be determined by IP address and by
default access control entries.
• Any conflict of ALLOW and DENY permissions generate error messages and
prevent all users from connecting to the DataFlux Data Management Server.
• Any user or group name in the four configuration options that is not recognized by
the SAS Metadata Server generates an error message and prevents all users from
connecting to the server.
Follow these steps to configure your default access control entries:
1. Develop a plan for your default ACE configuration that includes exact syntax for the
users and groups that you plan to assign ALLOW or DENY access.
2. Stop the DataFlux Data Management Server, as described in Stop on page 35.
3. Open the configuration file install-path/etc/dmserver.cfg.
4. For each of the configuration options in your plan, apply the planned list of users or
groups as the values of the options. The lists are all formatted with a delimiter of the
form “ | ” or space|space, as shown in the following example.
DMSERVER/SECURE/DEFAULT_ACE_USERS_ALLOW = Jones, Susan | Jim Albrecht | darusso
5. Save and close the configuration file, and then restart the DataFlux Data
Management Server.
Permission Description
Execute data service When this option is enabled, the user can view and execute real-
time data services. This includes run, preload, and unload a data
service.
Execute process service When this option is enabled, the user can view and execute real-
time process services. This includes run, preload, and unload a
process service.
Execute Batch Job When enabled, the user can run a batch job, get a batch job file
and get a batch job nodes' status.
Execute Profile Job When enabled, the user can get and run a profile job.
Post Data Service When enabled, the user can upload real-time data services to the
server.
Post Process Service When enabled, the user can upload real-time process services to
the server.
Post Batch Job When enabled, the user can upload a batch job to the server.
Post Profile Job When enabled, the user can upload a profile job to the server.
Delete Data Service When enabled, the user can delete a real-time data service.*
Delete process service When enabled, the user can delete a real-time process service.*
Delete batch job When enabled, the user can delete a batch job.*
Delete profile job When enabled, the user can delete a profile job.*
List data service When enabled, the user can list real-time data services.
30 Chapter 3 • Managing Security
Permission Description
List process service When enabled, the user can list real-time process services.
List batch job When enabled, the user can list batch jobs.
List profile job When enabled, the user can list profile jobs.
* In addition to enabling this permission, the user must also be the owner of the object,
or an administrator, when performing these delete functions.
Overview
The DataFlux Secure software is installed by default in a disabled state when you install
your DataFlux Data Management Server. The DataFlux Secure software provides
increased security through the Advanced Encryption Standard and through the use of the
Secure Sockets Layer to protect HTTP client connections. The gSOAP client
connections can be further upgraded to provide compliance with specification 140-2 of
the Federal Information Processing Standard. These security enhancements, and their
configuration on the DataFlux Data Management Server, are addressed in detail in the
DataFlux Secure: Administrator’s Guide.
All of the clients and servers that connect to the DataFlux Data Management Server need
to be configured for the same security features.
DMSERVER/SOAP/SSL/KEY_FILE Specifies the path to the key file that is required when
the SOAP server must authenticate to clients.
About OpenSSL
On Windows hosts, the DataFlux Secure software requires you to install the OpenSSL
libraries from a third-party supplier. On UNIX and Linux hosts, OpenSSL is installed
and configured by default.
The OpenSSL libraries must be available in the execution path for the DataFlux Secure
software. On Windows, when you install OpenSSL, the installer creates libraries in the
appropriate Windows system directory by default. Use OpenSSL version 1.0.x.
DataFlux Data Management Studio is a 32-bit Windows application. Therefore, it
requires the 32-bit OpenSSL for Windows libraries. DataFlux Data Management Server
can be installed on either 32-bit Windows or 64-bit Windows. On 64–bit Windows hosts,
the DataFlux Data Management Server requires 64-bit OpenSSL.
Overview
To improve security, encrypt the passwords of your DSNs and your SSL key file.
Encrypt in Windows
To encrypt passwords in the Windows operating environment, run install-path
\bin\EncryptPassword.exe. Enter the password, confirm your initial entry, and
receive the encrypted password.
Overview
Interpret and resolve the following security errors.
401 Unauthorized
This HTTP error can indicate that the user entered incorrect credentials. The error can
also indicate that a user account has not been created on the SAS Metadata Server.
Troubleshoot Security Errors 33
403 Forbidden
This HTTP error indicates that the user is not authorized to use a particular command on
the DataFlux Data Management Server command. For more information, see “Manage
Permissions”.
34 Chapter 3 • Managing Security
35
Chapter 4
Note: You can also access the service by selecting Start ð All Programs ð DataFlux .
If the DataFlux Data Management Server fails to start or restart, see “Troubleshoot
Server Start or Restart” on page 36.
36 Chapter 4 • Administering the DataFlux Data Management Server
Command Description
If DataFlux Data Management Server fails to start or restart, see “Troubleshoot Server
Start or Restart” on page 36.
Server Dependency
If your DataFlux Data Management Server fails to start or restart, you might need to
resolve a server dependency. The SAS Metadata Server needs to be fully operational
before the DataFlux Data Management Server can start. This server dependency exists
because the DataFlux Data Management Server needs to retrieve several configuration
option values from the SAS Metadata Server at start-up.
The server dependency occurs predominantly in single-machine installs, when all
services start at one time.
You can resolve the server dependency as you see fit, or you can run the following
command on the host of the DataFlux Data Management Server:
sc config "DMServer-service-name"
depends= "SASMetadata-service-name"
Administer DataFlux Data Management Server Log Files 37
The service names are specified in the properties of the service. Do not use the displayed
server names.
Use quotation marks as shown, use no blank space after depends, and use a blank
space after =, as shown in the following example:
sc config "dfx-DMServer-server1"
depends= "SAS [Config-Lev1] SASMeta - Metadata Server"
If your server is installed on UNIX or Linux, then errors will be written to the stdout
location of the shell from which the DataFlux Data Management Server was started.
20110804 is the date, 14.26 is the time, pid5072 is the process ID, and 034C24 is a
unique DataFlux Data Management Server request ID.
Use the following configuration options in dmserver.cfg to change the default logging
behavior:
38 Chapter 4 • Administering the DataFlux Data Management Server
To change the storage location or logging level for dmserver.log, open the file
install-path\etc\dmserver.log.xml. To change the location of the log,
change the option BASE/LOGCONFIG_PATH. To change the logging level, see
“Change Log Events and Thresholds”.
CAUTION:
Setting the DataFlux Data Management Server log to the TRACE level creates a
memory leak. Collecting server log entries at the TRACE level removes from use
approximately 4 megabytes of memory for each 1000 HTTP service requests. To
prevent memory errors, limit the duration of your TRACE sessions accordingly.
Memory leaks do not occur at other levels of logging.
To change the encoding of your server log, set the configuration option BASE/
JOB_LOG_ENCODING in the file install-path/etc/app.cfg. By default, the
log is written in the encoding of the locale of the process that executes the job. For
English-speaking organizations, the encoding can be LATIN-1 or UTF-8. If a log line
contains characters that cannot be represented in the encoding, then the log line is not
written to the log file.
The name of the log subdirectory specifies the date, time, process ID, and server request
ID.
The name of the data service log file is illustrated in the following example:
Administer Log Files for Batch and Profile Jobs 39
10.52.24.226_2778_datasvc_Verify-Address-Job.ddf.log
In the preceding example, 10.52.24.226 is a time stamp, 2778 is the server request
ID, and datasvc is the log file type. The remainder of the name specifies the name of
the real-time service.
Data service logging is configured by default by the following file:
install-path/etc/service.log.xml
If you require additional information to conclude your testing process, contact your
SAS technical support representative.
To change the name and location of the data service log configuration file
service.log.xml, open the following file:
install-path/etc/service.cfg
In the preceding example, 18.00.24.125 is a time stamp, 3727 is the server request
ID, and wfjob is the log file type. The remainder of the name specifies the name of the
job.
Batch and profile job logs are configured by default by the following file:
install-path/etc/batch.log.xml
To change the default name and default location of the batch and profile job log
configuration file, edit the value of the option BASE/LOGCONFIG_PATH. To change
log events and thresholds, see “Change Log Events and Thresholds”. Restart the server
to apply your changes.
To change the encoding of your batch and profile logs, set the configuration option
BASE/JOB_LOG_ENCODING in the file install-path/etc/app.cfg. By
default, the log is written in the encoding of the locale of the process that executes the
job. For English-speaking organizations, the encoding can be LATIN-1 or UTF-8. If a
log line contains characters that cannot be represented in the encoding, then the log line
is not written to the log file.
Contact your SAS Technical Support Representative if you need to route SOAP log
entries to the main server log file.
Troubleshoot ActiveX Error to Display Help 41
The default threshold level captures most of the events that you will need to diagnose
server problems. However, should there be a need to increase logging events and
threshold levels, contact your SAS technical support representative for assistance.
Altering threshold levels above INFO when the server is operational in a production
environment is discouraged since this can result in a reduction in server performance.
When you change a log configuration file, you are required to restart the DataFlux Data
Management Server.
To learn more about logging, see the SAS Logging: Configuration and Programming
Reference and the SAS Interface to Application Response Measurement (ARM):
Reference.
Chapter 5
accesses the domain-enabled connection. This approach ensures that the appropriate
credentials for that domain are applied to the access request.
• Custom Connection - Enables you to create a custom connection string for non-
ODBC connection types. These custom strings enable you to establish native
connections from a SAS Federation Server to third-party databases, or to draw data
from more than one type of data input.
• SAS Data Set Connection - Enables you to create SAS data set connections.
In Windows, DSNs are stored in install-path\etc\dftkdsn.
In UNIX and Linux, DSNs are stored in install-path/etc/odbc.ini.
You can store ODBC credentials for data sources that require login credentials with the
ODBC Credential Manager. With stored ODBC credentials, you can make connections
to data sources without being prompted for login credentials. When a job is run, the
saved user credentials are retrieved and used. The credentials are not stored within the
job. The job references the connection by DSN only. In UNIX and Linux, credentials are
stored in the directory /$HOME/.dfpower/dsn.
When you develop jobs and services in DataFlux Data Management Studio, use the
Data Connections riser to set up and store login credentials for any Open Database
Connectivity (ODBC) data source. The DataFlux Data Management Server can use these
data sources directly if DataFlux Data Management Studio is installed on the same host
as DataFlux Data Management Server.
Stored credentials do not have to be entered each time the job is run, and that
information can be used by any DataFlux application. If you do not use stored
credentials, then your job must authenticate through the SAS Metadata Server.
Use global variables within jobs and services to accept or retrieve data. Using global
variables increases the flexibility and portability of DataFlux Data Management Studio
jobs and services between data sources.
If you want to use ODB drivers other than those that are supplied, note that the DataFlux
Data Management Server is compatible with most ODBC-compliant data sources. Also
note that SAS provides limited support for drivers that are not supplied by SAS.
If you develop jobs that access a SAS Federation Server, then you can use JDBC drivers
and other drivers that are written for native access to popular databases. To learn more
about developing jobs that use Federation Server drivers, refer to the DataFlux Data
Management Studio: User’s Guide and to the SAS Federation Server: Administrator’s
Guide.
The DAC is configured with the following two options in the DataFlux Data
Management Server’s app.cfg file. If necessary, the options can be moved to the
macro.cfg file.
DAC/SAVEDCONNSYSTEM install-path\etc\dsn\
For more information about the app.cfg file, see the DataFlux Data Management Studio:
Installation and Configuration Guide.
For a complete list of Data Access Component options, see the DataFlux Data
Management Studio Online Help.
Administrator. If your server is running in UNIX or Linux, use the dbdfconf tool
that is provided with the DataFlux Data Management Server.
If DataFlux Data Management Studio and DataFlux Data Management Server are
installed and running on the same (Windows) host, then you will need to set up the
ODBC DSN two times. Set up one DSN through ODBC Connections in Studio. For
the DataFlux Data Management Server, set up the DSN again using the ODBC Data
Source Administrator.
Note: If you specify an alternate path in the environment variable ODBCINI, then
the server ignores the default file and the new data source.
Note: You can also use dfdbconf to delete the data sources.
4. Add stored credentials to the data source by executing the following command:
install-path/bin/dfdbview -s data-source-name
6. If the connection succeeds, use the prompt to enter SQL commands to test the
connection. If the connection fails, resolve the errors described in the error messages.
been selected for this connection. You can test the connection by clicking Test
Connection.
10. Click OK to save the new connection.
2. Select the name of the DataFlux Data Management Server for which you want to
manage connections. If you are prompted to do so, enter your user ID and password,
and then click Log On.
3. In the information pane, select the Data Connections tab and click the Manage
ODBC Credentials icon.
4. To create ODBC credentials in the Manage ODBC Credentials dialog box, click New
ODBC Credentials. Enter the ODBC DSN, user name, and password. Review your
entries, and then click OK.
5. To edit ODBC credentials, select a name from the list and click the Edit ODBC
Credentials icon. In the ODBC Credentials dialog box, change the user name or
password that will be used to access the ODBC DSN. Click OK to close the dialog
box. Note that the Edit ODBC Credentials icon is available only when credentials
have been saved for an ODBC DSN.
6. To delete ODBC credentials, select a name and click Delete ODBC Credentials.
You can use Ctrl + left click to select more than one name. Click OK to close the
Manage ODBC Credentials dialog box when you are finished. Use caution when
deleting an ODBC credential. When a name is deleted from the list, clicking Cancel
will not reverse the deletion.
Overview
If your ODBC connections show any of the following symptoms, refer to the following
resolutions.
Chapter 6
Batch Jobs
Batch jobs are designed to be run at specified times to collect data and generate
reports. Batch jobs are not intended to provide real-time responses to client requests.
All batch jobs are logged in dmserver.log. For more information, see “Administer
Log Files for Batch and Profile Jobs”.
Batch jobs are stored in install-path\ var\batch_jobs.
Batch jobs, like real-time process services, are run by the DFWFPROC process. You
can pass input parameters into batch jobs, but not any actual data.
Profile Jobs
Profile jobs are designed to analyze the quality of specified data sets. Profile jobs are
handled as repository objects. They are required to reside in the Data Management
Repository. When you run a profile job, the server finds the job in the repository and
then starts a new instance of the DFWFPROC process. The requested profile is then
run by ProfileExec.djf, which resides in the same directory as the repository. For
more information about the Data Management Repository, see “About the
Repository” on page 80.
Unlike batch jobs, you cannot grant unique user permissions for profile jobs since
they do not have associated object-level access control. To learn more about
permissions, see “Manage Permissions”.
When you install a new version of the DataFlux Data Management Server, you are
required to import all of your profile jobs into a new Data Management Repository.
For more information about importing profile jobs, see “Post-Installation Tasks”.
The following restrictions apply to the name of a job that will be deployed to DataFlux
Data Management Server. You should follow these restrictions for all jobs. A job name
can contain any alpha-numeric characters, white spaces, and any characters from the
following list:
,.'[]{}()+=_-^%$@!~/\
The maximum length of job names is 8,192 bytes. DataFlux Data Management Server
will not upload, list, or run a job name with characters other than those cited above.
In UNIX or Linux, to run a shell command in a job, use the execute() function, as shown
in the following examples. To run the command directly:
execute("/bin/chmod", "777", "file.txt")
The preceding examples return the host authorizations for a text file.
Note: If you are using the SSL security protocol, SOAP client communication must be
enabled and the WLP server must be disabled. For more information, see “Configure
Enhanced Security” on page 31.
Overview
The following sections describe how to use pre-load configuration settings when you
start your DataFlux Data Management Server. This is helpful if you typically use the
same services each time you run DataFlux Data Management Server.
Use the following options to configure pre-load:
• DMSERVER/SOAP/DATA_SVC/PRELOAD_ALL = count
• DMSERVER/SOAP/DATA_SVC/PRELOAD = count:name-of-servicecount:name-
of-service ...
The value count specifies the number of pre-load instances. The value name-of-
service indicates the name of the service element. This can include the directory
where the service is located.
• DMSERVER/SOAP/DATA_SVC/PRELOAD_DURING_RUN = yes|no
By default, the DataFlux Data Management Server pre-loads all configured services
before accepting SOAP requests. When the value is yes, the DataFlux Data
Management Server starts a separate thread to pre-load all configured services at run
Configure the Server to Pre-load Services 59
time, while accepting SOAP requests at the same time. If DataFlux Data
Management Server is stopped while the pre-load thread is still running, that thread
will be terminated.
The first option instructs the DataFlux Data Management Server to pre-load a total of
two instances of all existing services. The second options modify the first as follows:
• Two additional counts of svc1.ddf are added, for a total of four instances. The counts
are added together, and the total is the number of instances that DataFlux Data
Management Server tries to preload.
• The svc2.ddf file, which is found in the subdir1 subdirectory, has a -1 count. This
produces a total count of one for svc2.ddf.
• For the svc3.ddf file, there is a combined total count of zero, so this service is not
loaded at all. The count value must be greater than zero for a service to be pre-
loaded.
Some important points to remember:
60 Chapter 6 • Managing Jobs, Services, and the Repository
To use a web browser to display a list of available process services, enter an address in
the following format:
http://server-hostname:port/procsvc/
To use a web browser to display the WSDL of a data service, enter an address in the
following format:
http://server-hostname:port/dataSvc/path/service-name?wsdl
To use a web browser to display the WSDL of a process service, enter an address in the
following format:
http://server-hostname:port/procSvc/service-name?wsdl
The following example displays the WSDL of a process service named RAM.DDF:
http://dev083:21036/procSvc/RAM.DDF?wsdl
If a WSDL does not already exist for a data service or a process service, then one of the
two things will happen. If the DataFlux Data Management Server is configured to
generate a WSDL in response to GET WSDL requests, then the server generates a
WSDL for display in the browser. Otherwise, the browser displays an error.
To generate WSDLs in response to GET WSDL requests, set the following option in
dmserver.cfg: DMSERVER/SOAP/WSDL/GEN_ON_GET = yes.
Overview
The DataFlux Data Management Server supports a number of SOAP commands that
enable clients to run jobs and services and administer the server. These Simple Object
Access Protocol (SOAP) commands cause the server to return simple types (integers and
strings) or types that are structures built from simple types and other structures. All
requests that are sent to the server must be encoded in UTF-8 format. All responses from
the server are also encoded in UTF-8 format. Definitions of all requests, responses, and
complex types are found in the Web Service Definition Language (WSDL) file, in
install-path/share.
Note: WSDL 2.0 is not supported.
JobStatus Returns status information for one or Batch and profile jobs
more batch jobs or profile jobs. commands
Applies to jobs that are running or that
have already finished.
JobLog Returns the log file and statistics file Batch and profile jobs
(if one exists) for a batch job or profile commands
job. Applies only to already finished
jobs.
DeleteJobLog Deletes the job log, statistics file (if Batch and profile jobs
one exists), and all history for a given commands
job run. Applies only to already
finished jobs.
Error Description
VersionMismatch Pertains to the SOAP Envelope element, which is the root element
for all SOAP messages. Indicates that the recipient of a message
did not recognize the namespace name of the Envelope element.
SOAP-ENV:Client Indicates that the SOAP message did not contain all of the
information that is required by the recipient. This could mean that
something was missing from inside the Body element. Equally, an
expected extension inside the Header element could have been
missing. In either case, the sender should not resend the message
without correcting the problem.
SOAP-ENV:Server Indicates that the recipient of the message was unable to process
the message because of a server problem. The message contents
are not at fault. Instead, a resource was unavailable or process
logic failed.
Define Macros 67
Other fault elements are delivered in the SOAP response, such as the tags faultactor or
detail. These elements do not specify a reason for the fault or indicate the data element
that triggered the error. These tags are generic in nature and are usually returned for any
and all SOAP requests. Because the DataFlux Data Management Server logs information
related to processing errors, these optional SOAP elements are not used for error
messaging. It is necessary to look at a log file to obtain details for problem
determination. Depending on the nature of the problem, the error might be exposed in a
server log or specific service process log. To learn more about logs, see “Administer
DataFlux Data Management Server Log Files” and see “Administer Data Service Log
Files”.
Also note that the nil tags are unused for SOAP fault messaging. It is best not to refer to
these elements for problem determination.
Define Macros
Overview
The macros.cfg configuration file defines macro values for substitution into batch jobs,
and overrides predefined values. This file is located in install-path/etc. Each line
in the file represents a macro value in the form key = value, where the key is the
macro name and the value is its value. The following example of a macro defines a
Windows path:
INPUT_FILE_PATH = C:\files\inputfile.txt
On a UNIX system:
INPUT_FILE_PATH = /home/dfuser/files/inputfile.txt
The example macro is useful when you are porting jobs from one machine to another,
because the paths to an input file in different operating environments often differ. By
using a macro to define the input filename, you do not need to change the path to the file
after you port the job to UNIX. You add the macro to install-path/etc/
macros.cfg in both the Windows and UNIX, and set the path appropriately in each.
The etc directory contains the macros.cfg file and a macros subdirectory. The macros
subdirectory can contain multiple .cfg files. If one or more of the .cfg files exist in that
subdirectory, then they will be read in alphabetical order before the macros.cfg file is
read. The last value read becomes the value that is applied.
If your jobs use system and user-created macros, you must create a combined macro file
to be able to use the macros in DataFlux Data Management Server. For more information
about macros, see the online Help for DataFlux Data Management Studio.
behavior prior to Release 2.2, set the following configuration option in the
service.cfg file:
DATASVC/IGNORE_DECLARED_VARS = yes
Update Macros
About Updates
For each job process, the DataFlux Data Management Server reads configured macros at
the beginning of execution. When a macro changes, you can update the macro on the
server without having to restart the server, using one of the following procedures.
Update Macros for Process Services, Batch Jobs, and Profile Jobs
For real-time process services, batch jobs, and profile jobs, all of which are executed by
separate instances of the DFWFPROC process:
1. In the Data Management Servers tree in Studio, select a server by name.
2. Right-click on the server name and select Unload idle processes from the drop-
down menu.
Unloading idle processes also updates macros for all subsequent instances of the
DFWFPROC process.
Overview
You (or your client) can submit macros or input variables in SOAP commands to
terminate real-time data services and real-time process services. You submit a job run
identifier when you request the service. Later, to kill the service, you include the ID in
the unload command.
Set a Job ID
When you submit a job run request with ArchitectService or WorkFlowService, you set a
job ID, which you can then use to terminate the real-time service. Submit the following
key/value pair in a macro (in the varValue element) or as an input variable (in the inputs
element):
Manage the DFWSVC Process 69
__JOB_METADATA/USER_JOBRUN_ID = your-ID-string
You ensure that the value is unique, as necessary, and not NULL. If the value is not
unique, then the DataFlux Data Management Server will search the active real-time
services terminate the first real-time service with a matching identifier.
Setting a job run identifier provides the job run request with the following two new
elements:
svcType
values can be data or process.
usrJobId
the value is a job run identifier.
Overview
One instance of the DFWSVC process runs one real-time data service. The DataFlux
Data Management Server tracks both idle and active processes. The server also
understands whether any service jobs are loaded and waiting to run. When a request for
a real-time data service is received from a client, the server first tries to finds an idle
DFWSVC process that has the same job loaded. If one does not exist, then the server
looks for a DFWSVC process that does not have any jobs loaded. Finally, if the server
does not find a process to reuse, a new process is started, if the configuration allows.
This depends on the DMSERVER/SOAP/DATA_SVC/MAX_NUM limit. If a new
process would exceed that limit, the process is not started. If the queue is enabled in the
DMSERVER/SOAP/DATA_SVC/QUEUE option, then the new process is placed in the
queue to wait for execution. If the queue is not enabled, an error message is returned.
When an active DFWSVC process is terminated, the DataFlux Data Management Server
records the event in the server log. If an idle DFWSVC process terminates, the server
logs the event and starts a new process when another request is received.
The maximum run time for data services is set by the configuration option DMSERVER/
SOAP/DATA_SVC/MAX_RUNTIME.
5. Click either Unload Process When Idle or Unload Process. Unload Process
unloads the process immediately.
DATASVC/THREAD_STACK_SIZE This option sets the stack size, in bytes, for each
thread of DFWSVC in the UNIX and Linux
operating environments. The default value is
1MB. This option is ignored in the Windows
operating environment.
Manage the DFWFPROC Process Services 73
Overview
The DFWFPROC process runs real-time process services, batch jobs, and profile jobs.
Process services are handled independently of batch and profile jobs, by a pooler. The
DataFlux Data Management Server requests a new process from the pooler. The server
then sends the process the service name and input parameters so that the process can
load and run the service.
The default directories for process services, batch jobs, and profile jobs are located in
install-path/var.
Overview
The DFWFPROC process runs real-time process services, batch jobs, and profile jobs.
Batch and profile jobs are handled independently of process services.
For batch and profile jobs, the DataFlux Data Management Server starts a new
DFWFPROC process and assigns the job to that process. Log entries record job status:
start, running, finished successfully, or terminated due to error. This information is
displayed in the Monitor folder in DataFlux Data Management Studio.
You can also configure the DataFlux Data Management Server to collect job run
statistics for batch and profile jobs. The statistics are parsed from job run log files by the
SAS Job Monitor (in SAS Environment Manager.) The Job Monitor can examine log
entries that are collected during job runs. To learn more about using the SAS Job
Monitor, see “Collect Job Status Information with the SAS Job Monitor”.
The default directories for process services, batch jobs, and profile jobs are located in
install-path/var.
Similarly, when your SOAP clients submit SOAP commands for enqueued jobs, SOAP
Fault messages are returned for all commands except those that stop the job.
Overview
You can run execute jobs on the DataFlux Data Management Server with the command
install-path/bin/dmpexec.
dmpexec Options
The dmpexec command accepts the following options:
76 Chapter 6 • Managing Jobs, Services, and the Repository
Option Purpose
-c filename Reads a configuration file to set option values that are specific to
the job or command, including the authentication option. (See
the -a option.)
-l path-filename Writes job run log messages to a file. Specify different log files
for each job run, The path value is absolute. It is not affected by
the values of any configuration option.
-i key=value Sets the input variable key to a value before running the job.
Note: You can use the -i, -b, and -o options multiple times to set multiple values.
Overview
Jobs and services are configured using the following configuration files, all of which are
stored in install-path/etc :
app.cfg
Specifies options that determine how job nodes interface with the resources on the
Data Management Server. Options in app.cfg specify how job nodes send e-mail, use
a Quality Knowledge Base, and access address verification software. Most of these
options are commented-out by default. They are enabled only when your jobs need
to use a particular resource.
Real-time data services, real-time process services, batch jobs, and profile jobs are
all developed and tested in DataFlux Data Management Studio. When you upload
those jobs to DataFlux Data Management Server, the job execution environment has
to enable the same configuration options that were used to develop and test those
jobs. For this reason, the options that are enabled on the Data Management Server
should be similar to the options that are enabled in DataFlux Data Management
Studio. Option values differ primarily when they reference storage locations.
For more information about the app.cfg file, see DataFlux Data Management Studio
Installation and Configuration Guide.
service.cfg
Specifies options that apply to real-time data services and real-time process services.
This file currently supports one option, BASE/LOGCONFIG_PATH, which specifies
the path to the log file directory that is used by service jobs.
batch.cfg
Specifies options that apply to batch jobs. This file provides an alternate value for the
BASE/LOGCONFIG_PATH option.
macros.cfg
Specifies options (none by default) and macros that apply to all jobs and real-time
services. For information about using macros, see “Define Macros”.
Options are set by order of precedence, starting in the job’s advanced properties. If an
option is not specified in the job, then the server checks for a value in macros.cfg,
followed by either service.cfg or batch.cfg. If no options are specified, then the default
value is retained.
78 Chapter 6 • Managing Jobs, Services, and the Repository
If you do not set the MAINTAIN_GROUP option, then the cancellation of jobs can
allow child processes to persist on remote-access clients. These rogue processes can
become associated with a new group or job.
If you set the MAINTAIN_GROUP, and if remote child processes persist, then you
might have to restart the remote-access client to terminate the processes.
Overview
If your job or service experience any of the following symptoms, refer to the following
resolutions.
The Data Management Server log file might also display one of the following messages:
Data Service error: failed to start
service process: 1 - Child failed to
contact server process. Failed to start
base services, rc=1 (Error loading
dependency library).
It is possible for the Windows event log to not contain entries for DFWSVC and
DFWFPROC, even when the DataFlux Data Management Server logs contain one or
more entries. This symptom often indicates that the failure to start processes is caused by
Windows running too many internal processes. The DataFlux Data Management Server
cannot start new processes.
The log discrepancy occurs when Windows runs out of desktop heap. Specifically, the
desktop heap in the WIN32 subsystem becomes depleted. To free system resources, stop
as many non-essential applications and processes as permissible and try to run the jobs
again on the DataFlux Data Management Server. If the errors persist, you might need to
make a minor change in the Windows registry to increase the SharedSection parameter
of the SubSystems key in HKEY_LOCAL_MACHINE. For additional information, see
the following Microsoft Support articles:
• "Out of Memory" error message appears when you have a large number of programs
running
• User32.dll or Kernel32.dll fails to initialize
• Unexpected behavior occurs when you run many processes on a computer running
SQL Server
DataFlux Data Management Studio, and then select Tools ð Data Management Studio
Options ð Data Management Server. Select the options Connect to Data
Management Server for SAS and Connect to Data Management Server Web
Edition.
SQL Lookup Job Fails on a UNIX or Linux System Using the Driver
for BASE
The Driver for BASE does not allow data sets to be created that cannot be read by SAS.
If you have Driver for SAS files that contains letters that cannot be accessed in the
UNIX or Linux operating environments, then you will need to rename the file to all-
lowercase. Other files that contain mixed case or uppercase letters might also need to be
renamed using lowercase letters. Once the files are renamed, they can then be accessed
in jobs using any case. For example, the file might be named lookupsource. In jobs, you
can reference LOOKUPSOURCE, lookupsource, or LookUPSoUrCe, just to name a
few.
This error and this resolution apply only when the host of your Data Management Server
is running Windows Server 2003.
To resolve this error, edit the job to use the latest Address Verification node, which uses
the latest version of the Address Doctor software.
To resolve this error, ensure that the name of the scheme is entered correctly, as it is case
sensitive. Also ensure that the QKB you are using is an exact copy of the QKB used
when the job was created in DataFlux Data Management Studio.
To copy the QKB from Windows to UNIX or Linux, use FTP or Samba mappings. After
you copy the QKB, restart the DataFlux Data Management Server and run the job again.
In UNIX and Linux, change the scheme name (in the scheme directory of the QKB) as
needed to use all lowercase letters.
http://yourserver.yourdomain.com:port/?wsdl
In the WSDL file, the value of the SOAP:address location reflects the local server's
host name and port number. Using an XML editor, you can update the SOAP:address
location to reflect the host name and port number of any DataFlux Data Management
84 Chapter 6 • Managing Jobs, Services, and the Repository
Server. One note of caution, please do not edit any other values in the arch.wsdl file. For
example:
<service name="dfx-DMServer-instance-name">
<documentation>DataFlux Data Management Server</documentation>
<port name="DQISService" binding="tns:ArchitectService">
<SOAP:address location="http://yourserver.yourdomain.com:21036"/>
</port>
</service>
////////////////////////////////////////////////////////
// 1) Get Object List example
////////////////////////////////////////////////////////
String[] res;
res=stub.getObjectList(ObjectType.ARCHSERVICE);
////////////////////////////////////////////////////////
// 2) Post Object example
////////////////////////////////////////////////////////
byte[] myData; ObjectDefinition obj = new ObjectDefinition();
obj.setObjectName("NAME");
obj.setObjectType(ObjectType.fromString("ARCHSERVICE"));
// read the job file in from the h/d
myData = getBytesFromFile(new File(filename));
// post the job to the server
String res=stub.postObject(obj, myData);
////////////////////////////////////////////////////////
// 3) Delete Object
////////////////////////////////////////////////////////
Customize the WSDL File for Java 85
////////////////////////////////////////////////////////
// 4) Get Data Service Params
////////////////////////////////////////////////////////
GetArchitectServiceParamResponse resp;
FieldDefinition[] defs;
resp=stub.getArchitectServiceParams("MYJOB.ddf","");
// Get Definitions for Either Input or Output
defs=resp.getInFldDefs();
defs=resp.getOutFldDefs();
//Loop through Defs
defs[i].getFieldName();
defs[i].getFieldType();
defs[i].getFieldLength();
////////////////////////////////////////////////////////
// 5) Execute Data Service
////////////////////////////////////////////////////////
FieldDefinition[] defs;
DataRow[] rows;
String[] row;
GetArchitectServiceResponse resp;
// Fill up the Field Definitions
defs=new FieldDefinition[1];
defs[0] = new FieldDefinition();
defs[0].setFieldName("NAME");
defs[0].setFieldType(FieldType.STRING);
defs[0].setFieldLength(15);
// Fill up Data matching the definition
rows = new DataRow[3];
row=new String[1];
row[0] ="Test Data";
////////////////////////////////////////////////////////
86 Chapter 6 • Managing Jobs, Services, and the Repository
////////////////////////////////////////////////////////
// 7) Get Job Status
////////////////////////////////////////////////////////
JobStatusDefinition[] defs;
// if you wanted the status for a single job, you would
// pass the jobid returned from runArchitectJob or runProfileJob
defs=stub.getJobStatus("");
ObjectDefinition obj;
obj=defs[i].getJob();
defs[i].getJobid();
defs[i].getStatus();
obj.getObjectName()
obj.getObjectType()
////////////////////////////////////////////////////////
// 8) Get Job Log
////////////////////////////////////////////////////////
GetJobLogResponseType resp;
FileOutputStream fo;
resp=stub.getJobLog(jobId,0);
// write it to a file
fo = new FileOutputStream (resp.getFileName());
fo.write(resp.getData());
fo.close();
////////////////////////////////////////////////////////
// 9) Terminate Job
////////////////////////////////////////////////////////
String res=stub.terminateJob(jobId);
////////////////////////////////////////////////////////
// 10) Clear Log
////////////////////////////////////////////////////////
String res=stub.deleteJobLog(jobId);
////////////////////////////////////////////////////////
// Imports
////////////////////////////////////////////////////////
// Add Web reference using the DataFlux supplied WSDL
////////////////////////////////////////////////////////
// INITIALIZATION
////////////////////////////////////////////////////////
DQISServer.DQISService mService= new DQISServer.DQISService();
mService.Url = "http://MYDISSERVER" + ":" + "PORT";
////////////////////////////////////////////////////////
// 1) Get Object List example
////////////////////////////////////////////////////////
string[] jobs;
jobs=mService.GetObjectList(DQISServer.ObjectType.ARCHSERVICE);
////////////////////////////////////////////////////////
// 2) Post Object example
////////////////////////////////////////////////////////
DQISServer.ObjectDefinition def = new DQISServer.ObjectDefinition();
def.objectName = "VerifyAddress.ddf";
def.objectType = DQISServer.ObjectType.ARCHSERVICE;
mService.PostObject(req);
////////////////////////////////////////////////////////
// 3) Delete Object
////////////////////////////////////////////////////////
DQISServer.SendDeleteObjectRequestType req = new
DQISServer.SendDeleteObjectRequestType();
DQISServer.ObjectDefinition def = new DQISServer.ObjectDefinition();
def.objectName = "VerifyAddress.ddf";
def.objectType = DQISServer.ObjectType.ARCHSERVICE;
req.job = def;
mService.DeleteObject(req);
////////////////////////////////////////////////////////
// 4) Get Data Service Params
////////////////////////////////////////////////////////
DQISServer.GetArchitectServiceParamResponseType resp;
DQISServer.SendArchitectServiceParamRequestType req;
88 Chapter 6 • Managing Jobs, Services, and the Repository
req=new DQISServer.SendArchitectServiceParamRequestType();
req.serviceName="MYJOB";
resp=mService.GetArchitectServiceParams(req);
string val;
int i;
DQISServer.FieldType field;
// loop through this data
val = resp.inFldDefs[0].fieldName;
i = resp.inFldDefs[0].fieldLength;
field = resp.inFldDefs[0].fieldType;
val = resp.outFldDefs[0].fieldName;
i = resp.outFldDefs[0].fieldLength;
field = resp.outFldDefs[0].fieldType;
////////////////////////////////////////////////////////
// 5) Execute Data Service
////////////////////////////////////////////////////////
DQISServer.SendArchitectServiceRequestType req = new
DQISServer.SendArchitectServiceRequestType();
DQISServer.GetArchitectServiceResponseType resp;
////////////////////////////////////////////////////////
DQISServer.GetArchitectServiceParamResponseType respParam;
DQISServer.SendArchitectServiceParamRequestType reqParam;
reqParam=new DQISServer.SendArchitectServiceParamRequestType();
reqParam.serviceName="ServiceName";
respParam=mService.GetArchitectServiceParams(reqParam);
////////////////////////////////////////////////////////
DQISServer.FieldDefinition[] defs;
DQISServer.DataRow[] data_rows;
string[] row;
defs=new DQISServer.FieldDefinition[respParam.inFldDefs.Length];
for(int i=0; i < respParam.inFldDefs.Length; i++)
{
// Fill up the Field Definitions
defs[i] = new DQISServer.FieldDefinition();
defs[i].fieldName = respParam.inFldDefs[i].fieldName;
defs[i].fieldType = respParam.inFldDefs[i].fieldType;
defs[i].fieldLength = respParam.inFldDefs[i].fieldLength;
}
DataTable table = m_InputDataSet.Tables["Data"]; // externally provided data
// Fill up Data matching the definition
data_rows = new DQISServer.DataRow[Number of Rows];
for(int i=0;i < table.Rows.Count;i++)
{
System.Data.DataRow myRow = table.Rows[i];
row=new String[table.Columns.Count];
for(int c=0;c < table.Columns.Count;c++)
{
row[c] = myRow[c].ToString();
}
Customize the WSDL File for C# 89
////////////////////////////////////////////////////////
// 6) Run Batch Job
////////////////////////////////////////////////////////
DQISServer.SendRunArchitectJobRequest req = new
DQISServer.SendRunArchitectJobRequest();
DQISServer.GetRunArchitectJobResponse resp;
req.job = "JOB_NAME";
req.varValue = varVal;
resp = mService.RunArchitectJob(req);
////////////////////////////////////////////////////////
// 7) Get Job Status
////////////////////////////////////////////////////////
DQISServer.SendJobStatusRequestType req = new
DQISServer.SendJobStatusRequestType();
DQISServer.JobStatusDefinition[] resp;
req.jobId = "";
resp = mService.GetJobStatus(req);
DQISServer.ObjectDefinition def = resp[0].job;
string jobid = resp[0].jobid;
string jobstatus = resp[0].status;
////////////////////////////////////////////////////////
// 8) Get Job Log
////////////////////////////////////////////////////////
DQISServer.SendJobLogRequestType req = new DQISServer.SendJobLogRequestType();
DQISServer.GetJobLogResponseType resp;
req.jobId = "SOMEJOBID";
resp = mService.GetJobLog(req);
string fileName = resp.fileName;
byte []data = resp.data;
90 Chapter 6 • Managing Jobs, Services, and the Repository
////////////////////////////////////////////////////////
// 9) Terminate Job
////////////////////////////////////////////////////////
DQISServer.SendTerminateJobRequestType req = new
DQISServer.SendTerminateJobRequestType();
DQISServer.GetTerminateJobResponseType resp;
req.jobId = "SOMEJOBID";
resp = mService.TerminateJob(req);
string fileName = resp.status;
////////////////////////////////////////////////////////
// 10) Clear Log
////////////////////////////////////////////////////////
DQISServer.SendDeleteJobLogRequestType req = new
DQISServer.SendDeleteJobLogRequestType();
DQISServer.GetDeleteJobLogResponseType resp;
req.jobId = "SOMEJOBID";
resp = mService.DeleteJobLog(req);
string fileName = resp.status;
91
Chapter 7
Configuration Option
Reference
DMSERVER/JOB_LOGS_DIR Specifies the path and directory that is used to store the
log files that are generated for each run of a batch job
or a profile job. This option enables you to separate
your job run logs from other logs and other files that
are generated by job runs. Separating the job run logs
makes it easier to see the files that are used to collect
job run statistics. Statistics can be collected by the Job
Monitor plug-in for SAS Environment Manager.
The default value of this option is specified by
DMSERVER/WORK_ROOT_PATH, which specifies
the storage location for all job-related logs and files.
DMSERVER/JOBS_ROOT_PATH Specifies the location of the root directory for the jobs
and services subdirectories. The default root directory
is install-path\var. The subdirectories for jobs
and services are: data services, process services, and
batch jobs.
DMSERVER/LOG_CHUNK_SIZE Controls the size of each log file or statistics file chunk
that is sent to the client, in response to the getJobLog
request. For a log file, this option controls the number
of characters per chunk. For statistics files, this option
controls the number of bytes per chunk. The default
value is 512K.
Configuration Options Reference for dmserver.cfg 95
DMSERVER/SECURE/ For the groups that are listed in the value of this option,
DEFAULT_ACE_GROUPS_ALLO this option allows access by default to the server’s
W batch jobs and real-time services. This default is
overridden when a batch job or real-time service has
access control entries.
The groups in the list must be defined on the SAS
Metadata Server. The group names in the list are case-
sensitive. The users in the ALLOW groups cannot have
a conflicting permission in any of the other three
DEFAULT_ACE options. Name errors or permission
conflicts generate error messages and prevent all users
from connecting to the server.
In the list of groups, the delimiter is “ | ”, or space|
space, as shown in this example:
DMSERVER/SECURE/
DEFAULT_ACE_GROUPS_ALLOW =
SalesAllRegion | Directors | Finance
For more information, see “Manage Permissions” on
page 27.
Configuration Options Reference for dmserver.cfg 97
DMSERVER/SECURE/ For the groups that are listed in the value of this option,
DEFAULT_ACE_GROUPS_DENY this option denies access by default to the server’s
batch jobs and real-time services. This default is
overridden when a batch job or real-time service has
access control entries.
The groups in the list must be defined on the SAS
Metadata Server. The group names in the list are case-
sensitive. The users in the DENY groups cannot have a
conflicting permission in any of the other three
DEFAULT_ACE options. Name errors or permission
conflicts generate error messages and prevent all users
from connecting to the server.
In the list of groups, the delimiter is “ | ”, or space|
space, as shown in this example:
DMSERVER/SECURE/
DEFAULT_ACE_GROUPS_DENY = Administrators |
Manufacturing | QualityControl
For more information, see “Manage Permissions” on
page 27.
DMSERVER/SECURE/ For the users that are listed in the value of this option,
DEFAULT_ACE_USERS_ALLOW this option allows access by default to the server’s
batch jobs and real-time services. This default is
overridden when a batch job or real-time service has
access control entries.
The users in the list must be defined on the SAS
Metadata Server. The user names in the list are case-
sensitive. The users in the list cannot have a conflicting
permission in any of the other three DEFAULT_ACE
options.
In the list of users, the delimiter is “ | ”, or space|space,
as shown in this example:
DMSERVER/SECURE/
DEFAULT_ACE_USERS_ALLOW = JohnC | box,
don | RAM
For more information, see “Manage Permissions” on
page 27.
98 Chapter 7 • Configuration Option Reference
DMSERVER/SECURE/ For the users that are listed in the value of this option,
DEFAULT_ACE_USERS_DENY this option denies access by default to the server’s
batch jobs and real-time services. This default is
overridden when a batch job or real-time service has
access control entries.
The users in the DENY list must be defined on the SAS
Metadata Server. The user names in the list are case-
sensitive. The users in the list cannot have a conflicting
permission in any of the other three DEFAULT_ACE
options.
In the list of users, the delimiter is “ | ”, or space|space,
as shown in this example:
DMSERVER/SECURE/
DEFAULT_ACE_USERS_DENY = SMITH, John |
Data Admin01 | JJames
For more information, see “Manage Permissions” on
page 27.
DMSERVER/SOAP/LISTEN_PORT Specifies the port on which the SOAP server listens for
connections.
The default value for this option is specified by the
SAS Metadata Server during the invocation of the
DataFlux Data Management Server. If the SAS
Metadata Server does not return a value for
LISTEN_PORT, then the DataFlux Data Management
Server does not start. If a value is returned, and if
dmserver.cfg also contains a value for LISTEN_PORT,
then the local value overrides the metadata value. For
this reason, it is recommended that you not set
LISTEN_PORT in dmserver.cfg when using a SAS
Metadata Server. For more information, see
DMSERVER/NAME and DMSERVER/SOAP/SSL.
102 Chapter 7 • Configuration Option Reference
DMSERVER/SOAP/SSL/ Specifies the path to the key file that is required when
KEY_FILE the SOAP server authenticates clients. If this option is
not used, then comment it out.
DMSERVER/WLP/LISTEN_PORT Specifies the port on which the WLP server listens for
requests from WLP clients. If you are running multiple
instances of the server on the same machine, then a
unique port must be configured for each instance. The
default port is 21037.
Appendix 1
Legal Notices
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
VMware
VMware® virtual environment provided those products faithfully replicate the native
hardware and provided the native hardware is one supported in the applicable DataFlux
product documentation. All DataFlux technical support is provided under the terms of a
written license agreement signed by the DataFlux customer.
The VMware virtual environment may affect certain functions in DataFlux products (for
example, sizing and recommendations), and it may not be possible to fix all problems.
112 Appendix 1 • Legal Notices
If DataFlux believes the virtualization layer is the root cause of an incident; the customer
will be directed to contact the appropriate VMware support provider to resolve the
VMware issue and DataFlux shall have no further obligation for the issue.
113
Recommended Reading
Glossary
ACE
An access control entry (ACE) administers object and user privileges such as read,
write, and execute.
ACL
Access control lists (ACLs) administer object and user privileges.
API
An application programming interface (API) is a set of routines, data structures,
object classes and/or protocols provided by libraries and/or operating system services
in order to support the building of applications.
DAC
A data access component (DAC) allows software to communicate with databases and
manipulate data.
dfwfproc
A process handled by DataFlux Data Management Server that runs process services,
batch jobs, and profile jobs
dfwsvc
A DataFlux Data Management Server process that runs real-time services.
DPV
Delivery Point Validation (DPV) is a USPS database that checks the validity of
residential and commercial addresses.
DSN
A data source name (DSN) contains connection information, such as user name and
password, to connect through a database through an ODBC driver.
LACS
Locatable Address Conversion System (LACS) is used updated mailing addresses
when a street is renamed or the address is updated for 911, usually by changing a
rural route format to an urban/city format.
MMC
The Microsoft Management Console (MMC) is an interface new to the Microsoft
Windows 2000 platform, which combines several administrative tools into one
configurable interface.
116 Glossary
ODBC
Open Database Connectivity (ODBC) is an open standard application programming
interface (API) for accessing databases.
OpenSSL
The open-source implementation of SSL. See SSL.
PID
Process ID; a number used to uniquely identify a process.
QAS
Quick Address Software (QAS) is used to verify and standardize US addresses at the
point of entry. Verification is based on the latest USPS address data file.
QKB
The Quality Knowledge Base (QKB) is a collection of files and configuration
settings that contain all DataFlux data management algorithms. The QKB is directly
editable using DataFlux DataFlux Data Management Studio.
RDI
Residential Delivery Indicator (RDI) identifies addresses as residential or
commercial.
SERP
The Software Evaluation and Recognition Program (SERP) is a program the
Canadian Post administers to certify address verification software.
SOA
Service Oriented Architecture (SOA) enables systems to communicate with the
master customer reference database to request or update information.
SOAP
Simple Object Access Protocol (SOAP) is a web service protocol used to encode
requests and responses to be sent over a network. This XML-based protocol is
platform independent and can be used with a variety of Internet protocols.
SSL
Secure Sockets Layer; security protocol to enable websites to pass sensitive
information securely in an encrypted format.
USPS
The United States Postal Service (USPS) provides postal services in the United
States. The USPS offers address verification and standardization tools.
WSDL
Web Services Definition Language: an XML-based language that provides a model
for describing web services.
117
Index
A data connection
Accelerators 12 create custom 48
access control delete 49
by IP address 30 display 45
access control entries 23 domain-enabled ODBC 47
default 27 edit 49
additional software 12 manage ODBC credentials 49
AES SAS 48
configure 31 troubleshoot 50
APIs 51 data connections
app.cfg 77 create domain-enabled ODBC 47
authentication create using Windows 46
about 23 create with dfdbconf and dfdbview 46
SAS Metadata Server 25 overview, types of 43
authentication provider 25 data service
authorization log 38
about 23 data sources
by IP address 30 See data connections
default access control entries 27 default entries 23
groups 24 dfdbconf
manage permissions 27 create ODBC connections 46
dfIntelliServer 12
DFWFPROC process
B manage jobs 74
batch jobs 73 manage processes 73
batch service DFWSVC process
log 39 manage processes 69
batch.cfg 77 dmpexec
bulk loading 78 authentication for 75
enable log 75
job run command 75
C dmserver.cfg
clients, remote-access 78 server configuration 91
configuration DSN
about 12 create using Windows 46
post-install 26 create, UNIX/Linux 46
configuration options 92
E
D encryption
DAC configure 31
See data access component
data access component
configure 44
118 Index
G pooler 73
groups, remove 29 post-installation tasks 7
pre-load services 58
processes, unload idle 73
I profile job
install server 8 log 39
installation profile jobs 73
post-installation tasks 7
Q
J QKB
job monitor 3 See Quality Knowledge Base
jobs QKBs 12
configure 77 Quality Knowledge Base
monitor 79 memory use 78
permissions 78 Quality Knowledge Bases 12
QKB memory use 78
run with dmpexec 75
troubleshoot 80 R
types of 54 real-time servcies
usage notes 55 unload data services 69
using driver and data source 45 real-time services
jobs, temporary storage for 78 browse available 60
configure 77
data service 69
L preload 58
load-balance process services 73, 74
service requests 83 QKB memory use 78
log terminate 68
batch service, profile jobs 39 troubleshoot 80
data service 38 types of 54
events and thresholds 41 usage notes 55
server 37 repository
SOAP 40 about 80
M S
macros SAS Job Monitor 79
define 67 SAS Metadata Server
macros.cfg 77 configure authentication 25
multi-thread 56 configure clustered 25
configure security 25
secruity
O troubleshoot 32
ODBC 46, 47 security
manage credentials 49 See also AES
troubleshoot 50 See also authentication
OpenSSL See also authorization
supported versions 32 See also SSL
AES, configure 31
by IP address 30
P configure mid-tier 26
permissions configure SAS metadata server 25
list of 29 encrypt password 32
manage 27 import users and groups 9
set using job list 28 overview 22
Index 119
policy 22 configure 31
SSL, configure 31
server
configure restart 26 T
configure to run jobs, services 17 thread pool, shared 56
directories 4 troubleshoot
directory permissions 16 help display 41
import users and groups 9 jobs and services 80
install 8 ODBC 50
log 37 security 32
overview 1 server start/stop 36
process types 3
start/stop Windows 35
start/stop, UNIX or Linux 36 U
troubleshoot start/stop 36 users, remove 29
upgrade 8
upgrade, manual migration 8
user interface, introduction 3 W
WSDL file, customize 83 Wire-Level Protocol (WLP) server
server configuration configure 56
dmserver.cfg 91 WLP server 3
service requests, load-balance 83 WSDL
service.cfg 77 customize for C# 86
SOAP customize for Java 84
commands 61 customize server file 83
log 40 options 61
SOAP server 3 WSDL options 64
configure 56 WSDLs, browse 60
SSL
120 Index