IBM Data Virtualization Manager For z/OS Developer Guide
IBM Data Virtualization Manager For z/OS Developer Guide
1.1
Developer's Guide
IBM
SC27-9302-02
Note
Before using this information and the product it supports, read the information in “Product legal
notices” on page 79.
This edition applies to Version 13 Release 1 of IBM Data Virtualization Manager for z/OS and to all subsequent releases
and modifications until otherwise indicated in new editions.
Last updated: 2023-03-30
© Copyright International Business Machines Corporation 2017, 2022.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
© Rocket Software, Inc. 2017, 2022.
Contents
Figures.................................................................................................................. v
Tables................................................................................................................. vii
iii
Accessibility features.......................................................................................... 77
Index.................................................................................................................. 83
iv
Figures
v
vi
Tables
5. Parameter descriptions...............................................................................................................................52
6. SET commands............................................................................................................................................54
7. Package statement......................................................................................................................................57
8. Return codes............................................................................................................................................... 59
vii
viii
About this information
This information supports IBM Data Virtualization Manager for z/OS (5698-DVM) and contains information
about the drivers and APIs that provide connectivity between Data Virtualization Manager and
applications.
Requirements
The driver requires Java 1.7 or higher and it is supplied as a .jar archive file. The components that
following are included in the archive file.
The following runtime .jar files are required:
• :dv-jdbc-[version #].jar: The driver core implementation file.
• log4j-api-[version #].jar: The logging framework API file.
• log4j-core-[version #].jar: The logging framework implementation file.
The following sample logging configuration file is included:
• log4j2.xml: A sample logging configuration file.
The following command line utilities are included:
Note: Some system-specific environment utilities are available in two formats; Microsoft Windows
command script (.cmd) and Bash shell script (.sh).
• hashpassword.cmd: Use this utility to generate a hashed format of your text password. You can
include the hashed password in your applications connection string or .ini file. The script prompts the
user for the plain text password. To avoid prompting, the password can be specified as a command-line
argument.
• helpdriver: Displays the help text, including a detailed list of all supported driver properties.
• sysinfo.cmd: Displays local system information.
• LICENSE.txt: Provides product licensing information.
• NOTICE.txt: Lists notices related to this product.
• RELEASE-NOTES.txt: Provides details about optional folders.
• optional-charsets folder: Contains additional character sets. Depending on your set up you may
need to place these jars either on you classpath or endorsed classpath.
• Java API documentation
• Optional runtime.jars
• optional-charsets: Depending on your application, you may need to place these .jars on either your
classpath or endorsed classpath.
• optional-pooling folder: Contains jar files to pool Data Virtualization Manager data sources. To pool
a data source, use:
import org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS;
DriverAdapterCPDS driverAdapterCPDS = new DriverAdapterCPDS();
driverAdapterCPDS.setUrl("jdbc:rs:dv:HOST=...");
• optional-logging folder: Contains optional Log4j jar files for adding additional logging features.
jdbc:rs:dv://host:port;Key=Value;Key=value;...
For example, you can use the following connection string to access virtual tables on your Data
Virtualization Manager server, where host is the network hostname or IP address:
jdbc:rs:dv://host:1200;DatabaseType=DVS;user=userid;password=xxxx
If you prefer not to use the //host:port syntax, you can use the following string:
jdbc:rs:dv:Host=host;Port=1200;DatabaseType=DVS;user=userid;password=xxxx
Additional connection properties can be added to influence the behavior of the driver-server
communication.
2 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
JDBC connection properties
The JDBC driver supports the following connection properties. If the same property occurs more than
once in the connection string, the last entry takes precedence. Property names are not case sensitive.
4 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
Compression threshold in bytes. The driver compresses
data for buffers larger than this size. This value can be
post-fixed with a unit like KB (K) or MB (M). For example,
the following values are all equal: 1048576, 1024 K, 1024
CompressionThresholdBytes KB, 1 MB.
Required: false
Default value: 0
Encryption method.
Required: false
EncryptionMethod
Default value: NONE
Valid values: [NOENCRYPTION, NONE, SSL]
6 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
InitialCurrentPackageSet Initial current package set (DB2).
SEPK Required: false
8 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
Use MapReduceClient (MRC) to read query results in
parallel from different connections. When enabled, the
driver creates one master connection and N worker
connections (instances of JDBC connections).
Required: false
Default value: false
Valid values: [true, false, list]
To distribute MapReduce on a single server, select from the
following methods:
MapReduceClient
• Set MapReduceClient to true (MRC=true). The
Alias: MRC, MapReduce MapReduceConnectionCount defaults to the number of
CPU cores discovered (for example: MRCC=10)
• Set MRC=(host, port, taskCount)
To distribute MapReduceClient over multiple
servers, set MapReduceClient: MRC=(host1, port1,
taskCount1), (host2, port2, taskCount2),...
If you are using MapReduceClient with RDBMS or IMS,
you must complete the metadata repository configuration
requirements. See "MapReduce" in the Administrator's
Guide.
MapReduceFillValueMaximumInitialSize This value specifies the initial capacity of the result row
pre-fetch cache for a given buffer that is used after the
Alias: MRFVMIS
MapReduce or Parallel IO read queue exceeds the value set
for MapReduceFillValueThreshold.
Required: false
Default value: 20,000 (rows per buffer)
10 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
NetworkTimeoutSeconds Network timeout in seconds.
Alias: NETWORKTIMEOUT Required: false
Default value: 0
Alias: PIOBC For example, if MXBU is set to 4 MB and PIOBC is set to 10,
the driver uses 40 MB of memory as the read-ahead buffer
(10 x 4 MB buffers).
Required: false. Default value: 0.
The DB2 plan name used for a DB2 connection. This is used
when the subsystem is set to a valid DB2 subsystem name.
Plan Required: false
Default value: SDBC1010 (maximum of eight characters in
length)
Server port.
Port Required: false
Default value: 1200
12 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
SqlAuthorizationId SQL authorization ID.
Alias: ALUS Required: false
<Appenders>
... other appenders here ...
<Collection name="TB">
<PatternLayout>
<Pattern>%d %-5level [%t][%logger]
%msg%n%throwable</Pattern>
</PatternLayout>
</Collection>
</Appenders>
<Loggers>
<Root level="...">
... other appenders here ...
<AppenderRef ref="TB" />
</Root>
UpperCaseAllCharacters This field controls if all character data sent to the host
should be converted to upper case or not. If this field is set
to true, then all character data will be converted to upper
case. If this field is set to false, then character data will not
be converted to upper case.
Required: false
Default value: false
Valid values: [true, false]
14 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 1. JDBC connection properties (continued)
Property names Description
UpperCaseNonLiterals This flag controls if all non-literal values in SQL statements
passed to the driver should be converted to upper case or
not. If this flag is set to true, then strings not in single or
double quotes will be converted to upper case.
Required: false
Default value: true
Valid values: [true, false]
Character sets
The list of available character sets that are returned depends on the specific version and supplier of Java,
as well as the availability of the ICU jar files on the classpath.
The following Charsets (CS) are supported:
Charsets
Adobe-Standard-Encoding,
Big5, Big5-HKSCS, BOCU-1,
CESU-8, cp1363, cp851,
EUC-JP, EUC-KR,
GB18030, GB2312, GB_2312-80, GBK,
hp-roman8, HZ-GB-2312,
IBM-Thai, IBM00858, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145,
IBM01146, IBM01147, IBM01148, IBM01149, IBM037, IBM1026, IBM1047, IBM273, IBM277,
IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420, IBM424, IBM437, IBM500,
IBM775, IBM850, IBM852, IBM855, IBM857, IBM860, IBM861, IBM862, IBM863, IBM864,
IBM865, IBM866, IBM868, IBM869, IBM870, IBM871, IBM918, ISO-2022-CN, ISO-2022-
CN-EXT, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-KR, ISO-8859-1,
ISO-8859-10, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-2, ISO-8859-3,
ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9,
JIS_X0201, JIS_X0212-1990,
KOI8-R, KOI8-U, KSC_5601,
macintosh,
SCSU, Shift_JIS,
TIS-620,
US-ASCII, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, UTF-8,
windows-1250, windows-1251, windows-1252, windows-1253, windows-1254,
windows-1255, windows-1256, windows-1257, windows-1258, windows-31j,
x-Big5-HKSCS-2001, x-Big5-Solaris, x-compound-text, x-ebcdic-xml-us,
x-euc-jp-linux, x-EUC-TW, x-euc-tw-2014, x-eucJP-Open, x-ibm-1047-
s390, x-ibm-1125_P100-1997, x-ibm-1129_P100-1997, x-ibm-1130_P100-1997,
x-ibm-1131_P100-1997, x-ibm-1132_P100-1998, x-ibm-1133_P100-1997, x-
ibm-1137_P100-1999, x-ibm-1140-s390, x-ibm-1141-s390, x-ibm-1142-s390,
x-ibm-1143-s390, x-ibm-1144-s390, x-ibm-1145-s390, x-ibm-1146-s390,
x-ibm-1147-s390, x-ibm-1148-s390, x-ibm-1149-s390, x-ibm-1153-s390,
x-ibm-1154_P100-1999, x-ibm-1155_P100-1999, x-ibm-1156_P100-1999, x-
ibm-1157_P100-1999, x-ibm-1158_P100-1999, x-ibm-1160_P100-1999, x-
ibm-1162_P100-1999, x-ibm-1164_P100-1999, x-ibm-1250_P100-1995, x-
16 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Charsets
Error handling
The JDBC driver reports errors to an application by throwing SQL exceptions, each of which contains the
following details.
• Description of the likely cause of the error, prefixed by the component that generated the error.
• Native error code, if applicable.
All errors, including those generated by the driver framework or the driver layer, have the following
format:
To fully interpret the error message, it may be necessary to refer to the JDBC documentation for possible
resolutions, or refer to the database management system documentation to interpret error codes.
The sample configuration file does not log anything if the status of the entire configuration and level of the
root logger are set to WARN (<Configuration status=="WARN">;<Root level="WARN">). Setting
the configuration’s level to TRACE causes Log4j to log about itself being configured; this is useful when
debugging the configuration file is necessary. Setting the root logger level to DEBUG causes the driver to
log more detailed information, and setting the level to TRACE will allow the tracing of JDBC API entries
and exits. For more information, refer to the following URL:
https://logging.apache.org/log4j/2.x/manual/flowtracing.html
Each driver implementation class has a logger. The logger name is derived from the fully qualified class
name. The logging levels for each of these loggers may be changed independently.
By default, setting the root level to TRACE results in logging hexadecimal dumps of the buffers. To enable
API logging while disabling buffer tracing, use a Log4j filter.
The following example shows how to define the filter DV.BUFFER to the JDBC configuration file:
<Loggers>
…
<Filters>
<MarkerFilter marker="DV.BUFFER"
onMatch="DENY" onMismatch="NEUTRAL" />
</Filters>
</Loggers>
18 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Filtering may also be applied to the communication and SQL operations by setting appropriate values for
the marker attribute. You may choose from the following filters:
• DV.BUFFER
– DV.BUFFER.HEADER
– DV.BUFFER.PARAM
– DV.BUFFER.COMPRESSED
– DV.BUFFER.DECOMPRESSED
– DV.BUFFER.UNCOMPRESSED
– DV.BUFFER.DESCRIPTION
– DV.BUFFER.DESCRIPTION.CONNECT
• DV.COMM
– DV.COMM.SOCKET
• DV.SQL
– DV.SQL.PREPARE.USER
– DV.SQL.BATCH.USER
– DV.SQL.BATCH.SERVER
– DV.SQL.QUERY.USER
– DV.SQL.QUERY.SERVER
– DV.SQL.QUERY.POST
– DV.SQL.UPDATE.USER
– DV.SQL.UPDATE.SERVER
Procedure
1. Add the CLASSPATH.
To load the JDBC driver, the Java Virtual Machine requires that the location and name of the driver and
Log4j implementation files be included in the system CLASSPATH. For example:
install_dir/lib/dv-jdbc-[version #].jar
install_dir/lib/log4j-api-[version #].jar
install_dir/lib/log4j-core-[version #].jar
install_dir/lib/
All jar files in the lib folder must be in the CLASSPATH, and the folder that contains the log4j2.xml
file must be in the CLASSPATH.
On the Windows command line, you can choose to include all files in the install_dir/lib, or you
can choose to list each jar file that you want to include. The following example shows how to include
all files:
classpath install_dir/lib/*;install_dir/lib;
codeph;
classpath install_dir/lib/*:install_dir/lib
To list each jar file individually, rather than using install_dir/lib/*, pass the database connection
information to the driver manager in the form of a connection URL. Using the following URL format as
an example, you can substitute values that are specific to your database management system:
jdbc:rs:dv://host-name:port-number[;property=value[;…]]
Substitute the host-name with the IP address or computer name of the server that hosts the
database management system. Substitute the port-number with the TCP/IP port number on which
the Data Virtualization Manager server listens for incoming requests. Multiple connection properties
must be separated by semicolons.
Note: On the command line on Windows, if a property value contains a semi-colon, you must enclose
the whole connection string in double quotation marks. On *Nix, the same is true for the colon
character.
2. Define the connection string and the connection in your application.
The JDBC driver uses the JDBC Driver Manager to connect to a database server. To connect to the
database management system, use the DriverManager.getConnection() method to pass the
connection URL as the argument, as shown in the following example:
Note: Different database management systems have different required and optional connection
properties. You must understand the DBMS to which you want to connect in order to properly configure
the JDBC driver.
By default, the DatabaseType property is DRDAorDB2, which defaults the subsystem value to NONE.
To specify your subsystem, set the value accordingly.
The Charset must match the SQLENGDFLTCCSID parameter setting of the Data Virtualization
Manager server, and it must be compatible with the MCCSID of the target DB2 subsystem.
To connect to the Data Virtualization Manager server, use the following syntax:
You can use the hashpassword.cmd utility to generate a hashed format of your text password. You
can include the hashed password in the connection string or .ini file for your application. The script
prompts the user for the plain text password. To avoid prompting, the password can be specified as a
command-line argument.
For information on interface methods, see “JDBC driver APIs” on page 27
20 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Buffering data
When sending large amounts of data to the client or the server, one way to optimize performance is by
choosing the appropriate size that the driver uses to divide and send the buffers of data.
The JDBC driver communicates with a server using the Communication Buffer (CMBU) protocol. CMBU
specifies that all communications occur with one or more buffers. The maximum size of a buffer is set
using the MaximumBufferSize(MXBU) JDBC property and the NETWORKBUFFERSIZE parameter in the
server configuration file. You can use the MaximumBufferSize JDBC property as a basic building block
for controlling performance.
Network latency that occurs between the client and the server can have a negative impact on
performance. When setting the MaximumBufferSize value, consider the distance between the client
and the server. The buffer size that works best for clients and servers that are closer in proximity (low
latency), may not be the buffer size that works best for clients and servers that are not close in proxmity
(high latency).
When you execute a large SQL INSERT statement, or a batch of INSERT statements, the statements are
divided into multiple data buffers that are no larger than the size you specify for MaximumBufferSize.
The buffers are then sent to the server. The following illustration shows the buffers of INSERT statements
being sent to the server:
The actual MaximumBufferSize value that the JDBC driver uses is the result of a handshake between
the driver and the server. When the driver logs on to the server, it requests that the server support the
given MaximumBufferSize. In the logon reply, the server tells the driver the actual buffer size value that
the driver must use (NETWORKBUFFERSIZE). This value may be less than the driver requested value.
After executing a SQL SELECT statement, the server divides and returns the requested rows of data in
buffers that have been sized appropriately, one buffer at a time. The following illustration shows the
server sending the client rows of data in a single buffer:
The client can call next() on the result set until all rows are read. When the next() call no longer has
a row to read from the buffer, the driver issues a request to the server for another row buffer. This cycle
continues until the client reads all rows from all buffers. This happens transparently to the JDBC call site.
The following code sample shows how this is implemented:
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
During certain next() API calls, the client can experience a pause while the driver fetches another
buffer of row data. To remove this pause, enable parallel IO buffering by setting the ParallelIoBufferCount
(PIOBC) JDBC driver property.
Parallel IO
To improve performance, enable Parallel IO.
When Parallel IO is enabled, the JDBC driver creates a separate parallel IO thread from which a given
number of buffers that are sent from the server are pre-fetched, read, and placed in a queue. The driver
tries to keep the queue as full as possible so that there is always at least one buffer ready for the next()
API call to use. This eliminates the pause that can occur as a result of certain next() calls. The client
continues to call the next() buffer in the results set, until all rows in all buffers are read and queued.
The ParallelIoBufferCount (PIOBC) property determines the number of buffers to pre-fetch on the
parallel IO thread. The illustration that follows, shows row data being sent to the client using both the
main and the parallel thread.
22 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Figure 3. Parallel IO pre-fetches buffers
The following sample code can be used to convert mainframe bytes to Java objects on the Parallel IO
thread. The schema assumes that when the main thread calls a get API on the result set for a given
column, that it will use the same get API on subsequent rows; for example getString().
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
24 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
MapReduce
MapReduce is a the JDBC driver-controlled feature that is used to improve performance by reading results
from the server faster.
Choose from the following MapReduce options:
• Server-controlled MapReduce – MapReduce is performed on the server using the JDBC driver.
• Client-controlled MapReduce – MapReduce is performed on the client and the JDBC driver is used for a
single connection.
If you are using MapReduce with RDBMS or IMS, you must complete the meta data repository
configuration requirements. See "MapReduce" in the Administration Guide.
To configure MapReduce to use a single server connection, set the MapReduceClient JDBC property as
follows:
For example, the following specifies MapReduce over two servers for client numbers 1 through 4 and 5
through 7: MapReduceClient = (host1, 1200, 7, 1, 4), (host2, 1200, 7, 5, 7)
The maxClientNo must be the same for both servers.
26 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
To enable client-controlled MapReduce, set the MapReduceClientCount and
MapReduceClientNumber driver properties.
The MapReduceClientCount property is used to specify the total number of connections associated
with the group of client connections. The MapReduceClientNumber property specifies a specific client
connection within the group, and has a value between the number 1 and the number specified for the
MapReduceClientCount property.
The JDBC driver executes queries using the single MapReduce connection for the client connection
specified in the MapReduceClientNumber property. Only the rows of data for the specified connection
are returned, as opposed to using MapReduceClientCount over one or more connections to get all rows
of data.
To configure client-side MapReduce, set the JDBC driver MapReduceClientNumber and
MapReduceClientCount parameters as follows:
MapReduceClientNumber,MapReduceClientCount
The following methods are not supported with the java.sql.PreparedStatement interface:
28 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Return type Method name
void setNClob(int parameterIndex, Reader reader,
long length)
void setRowId(int parameterIndex, RowId x)
void setSQLXML(int parameterIndex, SQLXML xmlObject)
The following methods are not supported with the java.sql.Statement interface:
The following methods are not supported with the java.sql.ResultSet interface:
30 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Return type Method name
void updateCharacterStream(String columnLabel,
Reader reader, int length)
void updateCharacterStream(String columnLabel,
Reader reader, long length)
void updateClob(int columnIndex, Clob x)
void updateClob(int columnIndex, Reader reader)
void updateClob(int columnIndex, Reader reader,
long length)
void updateClob(String columnLabel, Clob x)
void updateClob(String columnLabel, Reader reader)
void updateClob(String columnLabel, Reader reader,
long length)
void updateDate(int columnIndex, Date x)
void updateDate(String columnLabel, Date x)
void updateDouble(int columnIndex, double x)
void updateDouble(String columnLabel, double x)
void updateFloat(int columnIndex, float x)
void updateFloat(String columnLabel, float x)
void updateLong(int columnIndex, long x)
void updateLong(String columnLabel, long x)
void updateNCharacterStream(int columnIndex, Reader
x)
void updateNCharacterStream(int columnIndex, Reader
x, long length)
void updateNCharacterStream(String columnLabel,
Reader reader)
void updateNCharacterStream(String columnLabel,
Reader reader, long length)
void updateNClob(int columnIndex, NClob nClob)
void updateNClob(int columnIndex, Reader reader)
void updateNClob(int columnIndex, Reader reader,
long length)
void updateNClob(String columnLabel, NClob nClob)
void updateNClob(String columnLabel, Reader reader)
void updateNClob(String columnLabel, Reader reader,
long length)
void updateNString(int columnIndex, String nString)
void updateNString(String columnLabel, String
nString)
32 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Chapter 2. The ODBC driver V3.1
For non-Java based applications and tools, use the ODBC driver to access data that is made available
through Data Virtualization Manager.
The ODBC driver implements the ODBC Direct network protocol that is used to connect to the Data
Virtualization Manager server, and uses the ODBC API to execute SQL queries. The driver implements all
of the core level 1, and all but one method of the level 2 ODBC functionality.
The driver is available for Windows platforms.
The following ODBC drivers are installed:
• IBM Data Virtualization Manager for z/OS driver
• IBM Data Virtualization Manager for z/OS Debug driver
The Debug driver incorporates an advanced tracing component that allows for detailed tracing of ODBC
calls. It should be utilized during application development in case problems are encountered and there
is a need to contact Customer Support. After applications have been developed and debugged, the
code should be modified to use the IBM Data Virtualization Manager for z/OS driver. The Debug driver’s
performance may be slightly less than the driver.
obConn.ConnectionString=”DRIVER={Data Virtualization
Driver 3.1};
UID=userid;PWD=xxxx;Port=####;HOST=hostname or IPad
dress;
SUBSYS=NONE;DSN=;”
Refer to the list of connection properties for all required and optional KEYWORDS and their interpretation.
34 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
This parameter controls whether a WITH UR clause should be added to
Add WITH UR To queries or not. The WITH UR clause reduces the amount of CPU time needed
Queries for some queries as well as possibly changing the results of these queries by
allowing uncommitted data to be read. If this parameter in set to YES, then
Alias: WIUR a WITH UR clause is added to queries. If this parameter is set to NO, then a
WITH UR clause is not be added to queries. The default is NO.
Allow Repeating This parameter when set allows repeating SQLGetData calls for the same
SQLGetData unbound column while the cursor is still on that result set row. The
exceptions are LOB type columns. They cannot be retrieved repeatedly. The
Alias: RPGT default is NO.
This parameter is used to set the host secondary userid for client
AlternateID applications. This parameter must be eight or fewer characters long. If this
Alias: ALUS parameter is set to a non-blank, non-null value a SET CURRENT SQLID
statement is issued after DSNALI OPEN processing is completed.
This parameter controls what happens if dynamic SQL cannot be converted
to static SQL. If this parameter is set to YES, an error is reported to the
Always Convert application if dynamic SQL cannot be converted to static. If this parameter is
Dynamic SQL set to NO, the dynamic SQL is sent to the host for processing. This parameter
Alias: ALCD is not even tested unless the primary Dynamic-To-Static SQL parameter is set
to YES. This parameter must be set to NO if dynamic SQL, and static SQL are
going to be used together.
The Application Name is sent to the host as part of the login information. The
Application Name is normally used to group SQL statements within a plan. If
Application Name the Application Name is not set, then all of the SQL associated with a plan is
Alias: APNA considered to be part of one large group. If the SQL used with one plan must
be divided into subgroups (for conversion to static SQL), then Application
Name must be set.
Authentication Method This parameter allows the user to choose whether to encrypt logon credential
using DEFAULT encryption mechanism or AES encryption mechanism.
Alias: SECU
DEFAULT
The password is encrypted by using the Data Virtualization Manager
encryption mechanism when the logon request is sent to the host.
AES
The password is encrypted by using Diffie-Hellman key exchange (by
using AES encryption) when the logon request is sent to the host.
When DOMAIN-BASED authentication is selected, the driver will verify that
the user ID associated with the current process has been authenticated by
a domain-based system. For the Windows platforms, this requires that the
user first logs on to a NT domain. For the UNIX platforms, the local machine
must be a member of a NIS domain, and the password database used to
authenticate the user must be NIS-mapped.
Default: DEFAULT
Valid values: [DEFAULT, AES]
Bind DOUBLE as This parameter controls how the driver should bind a DOUBLE input value for
DECFLOAT the target decimal column. When it is set, the driver binds a DOUBLE input
value as a DECFLOAT value. Default is YES, which means that the value of
Alias: DADE target decimal column is rounded, not truncated.
This parameter controls what format of optimization of the buffer is used to
transmit and receive data to the server. Values include:
• CMBU – If this parameter is set to CMBU, the communication buffers are
sent to the server and received from the server in a compressed format.
• CMBV – If this parameter is set to CMBV, the communication buffers are
sent to the server and received from the server truncated row data.
Buffer Format
• CMBZ – If this parameter is set to CMBZ, the communication buffers are
Alias: BUFO sent to the server and received from the server using ZLIB library for
compression and decompression data.
• UNCOMPRESSED – If this field is set to UNCOMPRESSED, the
communication buffers are sent to and received from the server in an
uncompressed format.
Default: UNCOMPRESSED
Bypass Double Quotes This parameter is set to YES if double quotation marks should be left alone.
Alias: BYDB This parameter is provided to fix certain application bugs.
Bypass Optional Output This parameter controls how the driver should handle the optional output
Parameter parameter in the escape CALL syntax {?=CALL procname}. Currently, host
procedure does not return any value for the optional output parameter, so
Alias: BYOP this parameter should always be set to YES, which is the default.
This parameter controls the type of lock that is associated with CALL
CALL Lock Value statements on the host. If this parameter is set to NONE, then the host
code assumes that CALL statements do not obtain any host database locks.
Alias: CALK Other possible values are SHARE, UPDATE, and EXCLUSIVE. The default is
EXCLUSIVE.
This parameter indicates that the table owner (has authorization ID) of the
Catalog Prefix eight DB2 tables that are optimized to support ODBC catalog queries. To set
Alias: CPFX the driver as a hybrid virtualization engine, set this value as SQLENG . Note
that this value has two tailing spaces.
Change Char Data Type This parameter controls if SQLTypeInfo calls should show that variable data
length is 255 bytes long or not. DB2 variable data is only 254 bytes long. However,
some applications do not support this. If this variable is set to YES, then
Alias: CHLN
SQLTypeInfo will return 255 as the length of variable data. If this variable
is set to NO then SQLTypeInfo will return 254. Note that if this keyword is
set to YES, then the behavior of SQLCancel is modified to circumvent vendor
implementation errors. The default is NO.
36 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
This parameter controls the conversion of Dynamic SQL to Auto-Static SQL.
Change Dynamic SQL to This functionality is only available when connected to DB2. Dynamic SQL, and
Auto-Static it can only be converted to Auto-Static SQL if the host supports it and this
parameter is set to YES. If this parameter is set to YES the driver attempts
Alias: AUST to convert all Dynamic SQL to Auto-Static SQL. If this parameter is set to NO
normal Dynamic SQL processing is performed. The default is YES.
"This parameter shows how column names should be returned by the
Column Order Option SQLColumns function that don't specify a column name order. If the order
Alias: CNMD of column names aren't specified, this parameter determines the order that
the SQLColumns function returns.
Connection Mode This parameter controls the connection mode used by ODBC applications.
The connection mode determines how long each physical connection
Alias: CNMD
(session or conversation) lasts and if SQL operations are processed in
blocked. The default is to use a permanent connection and to send each
SQL operation standalone to the server. In BLOCK mode, the session
is permanent. However, SQL operations are blocked and sent together.
In TRANSACTION mode each SQL operation is sent standalone but the
session is terminated at the end of each Logical Unit Of Work (LUOW). In
TRANSBLOCK mode the session is terminated at the end of each LUOW
and SQL operations are blocked and sent together. In MESSAGE mode SQL
operations are blocked and sent together using messages. In MESSAGE
mode, no session is ever maintained.
This parameter is used to specify the connection name. The use of the
Connection Name connection name is application-specific. The connection name can be up to 8
Alias: CNNA bytes long. However, the application may or may not use all of the bytes. The
connection name is padded on the right with blanks.
This parameter controls how long the ODBC client waits for a connection to
Connection Timeout the host server to complete. If this parameter is set to zero, then the system
Value default value is used. Otherwise, the specified value is used. This value
should never be negative, but can be zero. The use of this parameter may
Alias: CNTM cause unpredictable results in many environments. This value is measured in
seconds. The default is zero.
Convert DB2 Date to
CHAR When this parameter is set, the DB2 date field is converted to SQL_CHAR.
The default is NO.
Alias: DTCH
Convert Dynamic SQL to This parameter is used to control converting dynamic SQL to static SQL.
Static SQL Dynamic SQL can only be converted to static SQL if this parameter is set to
YES, and if the .pln file can be located and contains all of the SQL conversion
Alias: CD information.
This parameter controls if nulls (zero bytes) in character string data that
Convert Nulls to Blanks is returned from the server to the client should be converted to blanks or
not. Both fixed length and variable length character data is affected by this
Alias: CVNL parameter. If this parameter is set to YES, then nulls are converted to blanks.
If this parameter is set to NO, then nulls are not converted. The default is NO.
This parameter controls how COUNT(column name) SQL functions are fixed.
Application tools use the COUNT(column name) function two different ways,
both of which are wrong. In some cases, COUNT (column name) means
COUNT() Fix Type COUNT(DISTINCT column name). In other cases it means COUNT(*). If this
Alias: COFX parameter is set to DISTINCT, then the DISTINCT keyword will be inserted.
If this parameter is set to ASTERISK, then the column name will be replaced
with a '*'. If this parameter is set to NONE, then no changes will be made. The
default is DISTINCT.
Create Table Index Tables with a primary key or unique constraint are automatically created with
Automatically an index to enforce the uniqueness. To disable this option, set this parameter
Alias: CRIN to NO.
This parameter is used to set the initial Current Degree value on the host. The
Current Degree only possible values for this parameter are 'ANY' or '1'. No other values are
supported currently. If this parameter is set to a non-blank, non-null value a
Alias: SEDG SET CURRENT DEGREE statement is issued after DSNALI OPEN processing is
completed.
This parameter is used to set the initial Current Package Set value on
the host. This value must be eighteen or fewer or characters long. If this
Current Package Set parameter is set to a non-blank, non-null value a SET CURRENT PACKAGESET
Alias: SEPK statement is issued after DSNALI OPEN processing is completed. The SET
statement assigns the specified value to the CURRENT PACKAGESET special
register.
This parameter is used to set the initial Current Rules value on the host. The
Current Rules only possible values for this parameter are 'DB2' or 'STD'. No other values
are supported now. If this parameter is set to a non-blank, non-null value a
Alias: SERL SET CURRENT RULES statement is issued after DSNALI OPEN processing is
completed.
Current Schema This parameter is used to set the initial Current Schema value on the host. If
this parameter is set to a non-blank, non-null value a SET CURRENT SCHEMA
Alias: SESC statement is issued after DSNALI OPEN processing is completed.
38 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
This parameter controls what value to return for the cursor commit and
rollback behavior SQLGetInfo request. DELETE closes cursors and delete
Cursor Commit/ prepared statements. To use the cursor again, the application must reprepare
Rollback Behavior and re-execute the statement. CLOSE only closes cursors. For prepared
Alias: CRBH statements, the application can call SQLExecute on the statement without
calling SQLPrepare again. PRESERVE will preserve the cursor position and the
prepared statement. The default is CLOSE.
Customer Secret Key
The secret key value for the user.
Alias: SKEY
DB2 Default DB This is the default DB2 database that is used when issuing a CREATE TABLE.
All CREATE TABLE queries are suffixed with “IN DATABASE” and the specified
Alias: PARM value.
DB2 Plan Name This is the DB2 plan name that is used to create the thread to DB2 at connect
Alias: PLAN time. Default setting is blank.
This parameter overwrites the host returned DB2 version string data. This
string should be in the following format: x.y.z --- where x, y and z are all
DB2 Version String numeric digits. x is the DB2 version byte. y is the DB2 modification level. z is
Alias: D2VR the DB2 release level. Both the version byte and the modification level must
be set. If the release level is not set, then 0 is assumed. For example, 2.3 for
DB2 version 2 mod level 3; 4.1.1 for DB2 version 4 mod level 1 and rel 1.
This parameter is used to specify what type of data will be converted to
DBCS data that stored in the column types of GRAPHIC, VARGRAPHIC and
DBCS Mode LONGVARGRAPHIC. If CHAR is specified, then the DBCS data will be treated
Alias: DBMD as character data. If BINARY is specified, then the DBCS data will be treated
as binary data. If GRAPHIC is specified, then the DBCS data will be treated as
graphic data. The default is CHAR.
This parameter controls if blanks are removed from within quoted strings
DBCS Remove Blanks for double byte languages (such as Chinese, Japanese, and Korean). If this
parameter is set to YES, then blanks within quoted strings in SQL being sent
Alias: DBQO to the host is removed. If this parameter is NO, then blanks inside quoted
strings in SQL being sent to the host is not changed. The default is YES.
DBMS Type The type of database to be accessed. Select from DRDAorDB2 or DVS. To set
Alias: DBTY the driver as a hybrid virtualization engine, set this value as DVS.
The driver treats DECIMAL and NUMERIC columns the same. This parameter
Decimal as Numeric determines whether these columns should be reported as DECIMAL columns
or NUMERIC columns. When set to YES, all DECIMAL and NUMERIC columns
Alias: DENU are reported as NUMERIC. When set to NO, all DECIMAL and NUMERIC
columns are reported as DECIMAL. The default is NO.
Default Column Names This parameter controls whether the driver assigns default column names (of
the form COLnnn, where nnn is the column number) when the DBMS does not
Alias: DFCL return names for the columns. The default is NO.
Default DatabaseAlias: This parameter is added to CREATE TABLE statements that do not specify
DBD a database in which to create the table. If the statement includes the
'IN DATABASE' clause, the driver will append this clause using the default
database value. This parameter is required for almost all users, since most
users do not have authority to create tables in DB2's default database.
This parameter controls the default schema for stored procedures with
Default Schema implicit schema name. The default, or value 0, means the procedures are
run as IBM Data Virtualization Manager for z/OS RPC. If the value is set to 1,
Alias: DFSC the server uses RPCDEFAULTSCHEMA value as the schema name. If the value
is a specific schema name, the schema name is used as the default schema.
This parameter controls if prepare of CALL statements is deferred or not. If
this field is set to YES, then prepare is always deferred. If this flag is set to
Defer Prepare for CALLs NO, then prepare is only deferred for CALLs that have one or more parameter
Alias: DFPR markers. That is, prepare is always deferred for CALLs that have parameter
markers. Prepare is deferred for CALLs that do not have parameter markers,
only if this parameter is set to YES. The default is NO.
Description Optional description of the data source.
This parameter when set to YES disables all interactive prompts or
Disable All Prompts informational message boxes. This feature is required for when the driver
Alias: NOPM is being called from an NT service, an UNIX daemon process, or any server
type applications, which cannot be interrupted.
Disable List of Catalogs This parameter disables obtaining a list of catalogs by the SQLTables ODBC
function. Setting this option to YES forces the SQLTables to return RC = -1 and
Alias : DILC
SQLSTATE = 'S1C00' (for ODBC2.0) or SQLSTATE = 'HYC00' (for ODBC3.0). It
allows to circumvent a conflict between using special semantics of SQLTables
call for obtaining a list of catalogs and processing SQLTables calls by MS
Excel to get a list of tables. The default value is YES which means that
obtaining a list of catalogs is disabled."
This parameter sets the prepare/open optimization. Setting this parameter
to NO saves a network round trip for SQLPrepare and SQLExecute by
ignoring the SQLPrepare until SQLExecute is called or an ODBC function
requesting meta-data is called. YES disables this optimization by sending
Disable Prepare/Open the SQLPrepare and SQLExecute in separate network calls. This parameter
Alias: DIPO affects DB2 SQL only. For non-DB2 SQL, a prepare is always sent to the host
at SQLPrepare, and an execute is always sent to the host at SQLExecute.
For applications that access non-DB2 data source and do NOT require meta-
data at prepare time, it is recommended to set WRPR to NO for better
performance since this saves a network roundtrip at prepare time.
40 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
This parameter is used to specify the name of the local plan file that is used
to convert dynamic SQL to static SQL. The plan file name should end with .pln
DTS Plan File and can be a full path name, if need be. This parameter should only be used if
the local plan file does not have the default name and/or is not located in the
Alias: DSFL working directory of the application. The default name of the local plan file
is always planname.pln, where planname is the name of the DB2 plan that is
used by the application.
Enable SQLPrepare for This flag controls the behavior of SQLPrepare for non-DB2 data sources such
ADABAS/VSAM/IMS as ADABAS, VSAM, IMSDB, and VSAM CICS. When this keyword is set to YES
(which is the default), a request is always sent to the host at SQLPrepare
Alias: WRPR
time to obtain metadata for the SQL statement. For applications that access
non-DB2 data sources and do NOT require metadata after the SQLPrepare,
it is recommended to set WRPR to NO for better performance since this will
eliminate a network roundtrip whenever a SQLPrepare is executed.
This parameter is only available if SDEM = YES.
Default: YES
Valid values: [YES, NO]
Specifies the method that the driver uses to encrypt data that is exchanged
between the driver and the database server. The value NONE means the data
Encryption Method that is exchanged is not encrypted. The value TLS1 means the data that is
exchanged is encrypted by using the TLS1 version, TLS1.1 (TLS version 1.1),
Alias: EM TLS1.2 (TLS version 1.2) of the SSL protocol. The value SSL3 means the data
that is exchanged is encrypted by using the SSL3 version of the SSL protocol.
The default is NONE.
This parameter controls if the Extended Cursor Pool should be used or not.
Extended Cursor Pool If this parameter is set to YES, then the Extended Cursor Pool is used. The
Extended Cursor Pool is much larger than the standard cursor pool. The
Alias: EXCU Extended Cursor Pool cannot be used with Auto-Static SQL. If this parameter
is set to NO, then the normal cursor pool is used. The default is NO.
Fix Floating Point Floating point errors are typically seen when a floating point number is
Rounding converted to a decimal or integer value. If this parameter is set to YES, then
floating point values are adjusted before they are converted. If this parameter
Alias: FXFL is set to NO, then no adjustments are made. The default is NO.
This parameter controls if the VALUES clause of each INSERT statement
Fix INSERT Statements should be scanned for dates, times, and timestamps without quotes and
quotes should be added. If this parameter is set to YES, quotes are added to
Alias: FXIS dates, times, and timestamps as need be. If this parameter is set to NO, then
INSERT statements are not modified. The default is NO.
Fix String Length This parameter fixes the bug where some products incorrectly set string
Alias: STFX length to zero when SQL_CHAR field only contains blanks. The default is NO.
German NLS Support This parameter is set to YES to resolve certain problems handling SQL in
the German language environment. This parameter should not be set for any
Alias: NLGR
other reason.
Host User Parm This parameter is sent to the host as part of the logon information. The host
uses this forwarded value to complete the logon to the host security system
Alias: USERPARM
and/or host databases.
Identifier Quote Option This parameter specifies what identifier quotation mark character
should be returned to the application by using SQLGetInfo with
Alias: IDQO
SQL_IDENTIFER_QUOTE_CHAR. This parameter is needed to fix certain
application bugs. The default is DOUBLE quote characters.
Ignore High Bound This parameter controls if SQLFetch should ignore errors for higher-
Column Errors numbered bound columns. If this parameter is set to YES, then SQLFetch
ignores column binding errors. If this parameter is set to NO, then column
Alias: IGHI
binding errors are handled normally. This parameter must be set to YES to
enable ODBC tools (such as Microsoft Excel) to work. The default is NO.
Ignore Underscore This parameters controls if the underscore character should be considered
Characters to be a wild card or just a regular character. If this parameter is set to
YES, then underscore ('_') are handled as a normal byte. If this parameter is
Alias: IGUN
set to NO, then underscore is treated as a wildcard character that matches
other single byte. This parameter is used to solve problems where a table or
procedure name actually has an underscore in the name and the underscore
is misinterpreted as a wildcard. The default is NO.
Keystore Use this parameter to specify the file system location of the keystore file. The
keystore file contains a list of the valid client certificates that are trusted by
Alias: KS
the server for optional Client Authentication with SSL.
Note: The keystore and truststore files may be the same file.
Keep Literal Quotes This parameter is used to retain quotation marks around and/or embedded
in string literals. If this parameter is set to YES, then quotations around
Alias: KEQU
and/or embedded in string literals are retained. This only applies to string
literals passed to Stored Procedures, including MDI Stored Procedures. If
this parameter is set to NO, then quotation marks are removed from string
literals. The default is NO.
42 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
Language ID This parameter is used to specify the language to be used. The possible
values are Arabic (ARB), Simplified Chinese (CHS), Traditional Chinese (CHT),
Alias: LGID
Danish (DAN), Default (DFT), German (DEU), U.S. English Compatibility (ENC),
U.K. English (ENG), U.S. English (ENU), Modern Spanish (ESN), Castilian
Spanish (ESP), Finish (FIN), French (FRA), Canadian French (FRC), Icelandic
(ISL), Italian (ITA), Japanese (JPL), Japanese Latin Extended (JPX), Japanese
Katakana-Kanji JIS X213 (JNL), Japanese Latin-Kanji JIS X213 (JNX),
Japanese Katakana-Kanji Extended (JTL), Japanese Latin-Kanji Extended
(JTX), Korean using US English for SBCS and KSC 5601 for DBCS (KOR),
Micro Decisionware (MDI), Dutch (NLD), Norwegian (NOR), PeopleSoft English
(PPS), Portuguese (PTG), Swedish (SVE), Turkish (TUR), Korean using Code
Page 833 for SBCS and KSC 5601 for DBCS (KRN), and Norwegian with Latin1
for Unix (NGN). The default is ENU.
Long Data Fix This parameters controls if a large number should be returned for the length
and precision of LONG VARCHAR fields, rather than the actual length and
Alias: LGFX
precision. This fix is needed to resolve certain problems in ODBCDirect
GetChunk processing. If this parameter is set to YES, then a large number
is returned for the length and precision of LONG VARCHAR fields. If this
parameter is set to NO, then the actual values are returned for the length and
precision of LONG VARCHAR fields. The default is NO.
Maximum Buffer Size This parameter sets the client-side maximum communication buffer size for
all data exchanges. The default sets the maximum buffer size to 256k. Note
Alias: MXBU
that the final buffer size used by the driver is a negotiated value based on the
server-side setting. The actual run time buffer size could be smaller than the
value specified in this parameter, but not larger. The default is 256k.
Maximum Rows This parameter setting limits the number of rows that are returned from a
single query. If no value or zero is specified, no restriction is placed on the
Alias: MR
number of rows returned.
MDI Text/Keywords This parameter controls if variable text and keywords can be used together
with MDI RSPs. If this parameter is set to YES, then variable text can be used
Alias: MDBO
with MDI keywords. If this parameter is set to NO, then variable text cannot
be used with keywords. The default is NO.
MDI Keep Quotes This parameter controls if quotation marks should be retained around MDI
keyword values. If this parameter is set to YES, then quotations are included
Alias: MDQO
in keyword values and keyword value lengths. If this parameter is set to NO,
then quotations are stripped from MDI keyword values. The default is NO.
MDI Delimited Args This parameter controls whether argument lists delimited by TSQL's special
Syntax delimiters are supported. The default is NO.
Alias: MDSY
MDSY Quoting This parameter sets a configurable quotation character for use in MDI calls.
Character
Alias: MDQC
MDI DATA Padding Limit This parameter allows the user to configure the total combined width of
parameters for MDI calls when used in conjunction with MDSY. The default is
Alias: MDDP
0 (no padding).
ODBC Client Code Page This parameter is used to specify the ODBC client code page. The default
is a set of UNIX code pages for UNIX and Windows Latin 1 (ANSI) for all
Alias: ODPG
supported Windows operating systems. Windows Latin 1 is also known as
ISO 8859. Specifying LATIN1 forces the use of the Windows Latin 1 code
page in any environment. Specifying UNIX forces the use of the UNIX code
pages in any environment.
Operation Timeout This parameter controls the timeout value for all client network operations
Value (that is, query preparation, execution, retrieving result set) AFTER the
connection is established. This value should never be negative, but can be
Alias: OPTM
zero. The use of this parameter may cause unpredictable results in many
environments. This value is measured in seconds. The default is zero.
Optimal Row Count This parameter limits the number of rows that are returned from the host
each time a request for rows is made. Since any number of requests for rows
Alias: OPRW
can be made for one query, this value has no effect on the total number of
rows that are returned by a query. This value can be used to control the size
of the buffers that are used to return rows from the host.
Optimized Fetch This parameter is used to control if Block-Fetch should be used for the
current connection. Specify YES for the block fetch capabilities of the Data
Alias: RO
Virtualization Manager server to be used with your queries. Using optimized
fetch greatly speeds up your queries. The only restriction is that cursor-based
deletes [DELETE WHERE CURSOR OF] cannot be used when this mechanism
is enabled.
Password The password for the user ID.
Alias: PWD
Plan Name The driver uses plan names on the host to establish a connection to DB2.
Alias: PLAN
Port Number The TCP/IP port on which to communicate with the database.
Alias: PORT
Precision Adjustment When this parameter is set, the precision of literal numeric values that are
passed in an RPC call is adjusted to an odd value. For example, the value
Alias: PRAD
12.34 is sent with a precision of 5. The default is YES. NO prevents this
adjustment.
44 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
Procedure Name Filter This parameter is used to filter the procedure names that are returned by
the product. This parameter is only used if it is set to a non-blank value
Alias: PRNF
and if the host application does not provide a procedure name filter string.
The procedure name filter string from either the application or from this
parameter restricts the information that is returned by procedure catalog
inquiries (SQLProcedures and SQLProcedureColumns). Only rows that match
the procedure name pattern that is provided is returned. If this parameter
is set to a single percent sign, then all procedures are returned. There is no
default value for this field.
Procedure Owner Filter This parameter is used to filter the procedure owners that are returned by
the product. This parameter is only used if it is set to a non-blank value
Alias: PROF
and if the host application does not provide a procedure owner filter string.
The procedure owner filter string from either the application or from this
parameter restricts the information that is returned by procedure catalog
inquiries (SQLProcedures and SQLProcedureColumns). Only rows with owner
ID's that match the procedure owner pattern that is provided are returned.
If this parameter is set to a single percent sign, then all procedures are
returned. This parameter defaults to the current user ID or alternate user ID.
Procedure Owner This parameter is used to control how procedure owner values are returned
Handling to ODBC applications. If this parameter is set to NULL, the actual owner value
is used as a prefix to the procedure name and the owner field is returned as
Alias: PROW
a null value. If this parameter is set to EMPTY, the actual owner value is used
as a prefix to the procedure name and the owner field is returned as an empty
string. If this parameter is set to NONE, then the procedure owner value is
not changed. The default is NONE.
Process Escapes This parameter is used to turn off escape clause processing. PRES=NO sets
escape clause processing off and may result in improved performance by
Alias: PRES
reducing CPU overhead. The default is PRES=YES.
Qualifier Name Set this parameter to YES if SQLGetInfo should return a period when it is
Separator called to obtain the SQL_QUALIFIER_NAME_SEPARATOR. This parameter is
provided to fix certain application bugs. The default is NO.
Alias: QUNA
Read Only Set this parameter to YES to make the data source read-only. Setting the
data source to read-only does not prevent update operations. However,
Alias: RDON
setting this parameter to read-only prevents index information from being
returned to the application. This will generally prevent any updates from
being attempted. Note that setting this parameter to YES will greatly improve
the performance of some applications using the standard DB2 catalogs. The
default is NO.
Remove blanks This parameter handles data that is received from the server. If the
parameter is set to YES, single-byte trailing blanks (X'40') are removed from
Alias: RMBL
the data strings (in EBCDIC [Host Code]). This does not affect wide blanks
(X'0E40400F'). The default is NO.
Remove Equals This parameter controls if the = character should be removed from MDI
keyword names as part of MDI RSP (Remote Stored Procedure) invocation.
Alias: RMEQ
If this parameter is set to YES, then the = character is removed from each
keyword name. If this parameter is set to NO, then the = character is not
removed from the keyword name. This flag only applies to MDI RSPs invoked
by using TSQL 0/1/2 syntax. It does not apply to MDI RSPs invoked by using
the extended ODBC CALL syntax. The default is NO.
46 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
SQLExecute Connection This parameter is used to force a connection check during SQLExecute
Check processing. When this parameter is set to YES, SQLExecute always return an
error condition if the connection has been reset or shut down by the server.
Alias: EXCC
If this parameter is set to NO and prepare/open optimization is in effect,
SQLExecute will bypass the connection check and return SQL_SUCCESS. The
default is NO.
Subsystem This keyword specifies the DB2 subsystem. This keyword should only be set
if using DB2; otherwise this keyword must be set to NONE.
Alias: SUBSYS
Suppress Decimal This parameter controls if trailing zeros should be removed from decimal
Trailing Zeros fields. The default is NO.
Alias: STZO
System Engineering This parameter is set to various values to obtain diagnostic and debugging
Value data. This parameter should only be used at the specific request of the
Technical Support staff. The default is zero.
Alias: SEVL
Table & Column Name This parameter controls adjustment of table and column names for DB2.
Modification NONE implies that the names are considered correct and are not processed.
The default is NONE.
Alias: TCLM
Table Filter This parameter is used to filter the table lists returned by the product. This
parameter restricts the information returned by catalog inquiries (SQLTables,
Alias: DP
SQLColumns, SQLTablePrivileges). Only rows that match the table owner
pattern provided are returned. If this parameter is set to a single percent
sign, then all tables are returned. This parameter defaults to the current
userid or alternate userid.
Table Name Filter This parameter is used to filter the table names that are returned by the
product. This parameter is only used if it is set to a non-blank value and if
Alias: TBFL
the host application does not provide a table name filter string. The table
name filter string from either the application or from this parameter restricts
the information that is returned by catalog inquiries (SQLTables, SQLColumns,
SQLTablePrivileges). Only rows that match the table name pattern that is
provided is returned. If this parameter is set to a single percent sign, then all
tables are returned. There is no default value for this parameter.
Table Owner – Synonym This parameter is used to show how table owners should be handled for
Option tables that are actually synonyms. Some of these choices are required to
make specific desktop productivity tools work with the DVS Direct ODBC
Alias: SYOP
driver. The default value is ZERO.
Table Qualifier Option This parameter is used to specify how Table Qualifiers should be returned to
ODBC application programs. Some databases use Table Qualifiers as part of
Alias: TQOP
the overall name of each table. In other words, two tables can have exactly
the same name in all other respects, if their Table Qualifiers are different.
This parameter is used to control how Table Qualifier information is returned
to ODBC applications. There are three possible values. They are NORMAL,
NULL, and ZERO. The default is NULL.
Trace Options This parameter enables the options defined in the logging file.
Alias: TRACEFLAG
Transaction Name This parameter is used to specify the transaction name. The use of the
transaction name is application-specific. The transaction name can be up
Alias: TRNA
to 8 bytes in length. The transaction name is padded on the right with blanks.
Truncate Literal String This parameter specifies whether literal parameters to stored procedures are
changed to parameter markers and sent to the server as bound parameters.
Alias: TRLT
The default is YES.
Truststore When using SSL, this parameter is the path that specifies the location of
the truststore file. The truststore file contains a list of the valid Certificate
Alias: TS
Authorities (CAs) that are trusted by the client machine for SSL server
authentication.
Truststore Password When using SSL and a PKCS12 encoded truststore, this parameter is the
password that is required to access the truststore.
Alias: TSP
Upcase All Character This parameter controls if all character data sent to the host should be
Data converted to uppercase. If this parameter is set to YES, then all character
data is converted to uppercase. If this parameter is set to NO, then character
Alias: UPCH
data is not converted to uppercase. The default is NO.
Upcase All Non-literals This parameter controls if all non-literal values in SQL statements passed
to the driver should be converted to uppercase. If this parameter is set to
Alias: UPNL
YES, then strings not in single or double quotation marks are converted to
uppercase. The default is NO.
Upcase Double Quote This parameter controls if strings in double quotation marks should be
String converted to uppercase. If this parameter is set to YES, then strings in double
quotation marks are converted to uppercase. If this parameter is set to NO,
Alias: UPDB
then strings in double quotation marks are not modified. Strings must be
converted to uppercase in some cases because DB2 treats table names in
double quotation marks as literals and table names must be uppercase. The
default is NO.
Uppercasing Logon This parameter is to allow the user to choose whether to uppercase userid/
Credentials password (and new password if specified) or leave as entered. The default
is YES, which means userid/password/new passwords are converted to
Alias: UCLC
uppercase before sending to host. NO means the userid/password/new
password is left as entered.
User ID Identifier for user account on target database
Alias: UID
Validate Server Set this parameter to YES (the default) to validate the security certificate of
Certificate the server as part of the SSL authentication handshake.
Alias: VSC
Wait for Transaction This parameter controls if the client should wait for the Server to complete
Completion transaction processing when connected in VCF mode (TRANSACTION,
TRANSBLOCK or MESSAGE). The default value is NO.
Alias: WATR
48 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 3. ODBC connection properties (continued)
Parameter name Description
XML Describe Type This parameter determines whether the driver maps XML data type to -1
(SQL_LONGVARCHAR) or -4 (SQL_LONGVARBINARY) data type. The default
Alias: XMDT
is -1 (SQL_LONGVARCHAR).
X/OPEN XA Support This parameter is used to set the XA Transaction Manager type. This
parameter must be set correctly when participating in a distributed
Alias: XAEN
transaction that is coordinated by a monitor. MSDTC sets the manager to the
Microsoft Distributed Transaction Manager used mostly by MTS applications.
The default is NONE which means that this is not a distributed transaction.
Zero Column Names This parameter is set to YES if column names should be set to binary zeros.
This is a performance optimization for production applications. The default is
Alias: ZECL
NO.
Connection pooling
For Windows, connection pooling is configured through the ODBC Data Source Administrator.
Procedure
1. Select the Connection Pooling tab.
2. Highlight the IBM Data Virtualization Manager for z/OS Driver entry.
Depending on the version of the Windows operating system, either
• Enable/disable connection pooling and set the retry wait time directly on the controls that are
displayed on the Connection Pooling tab, or
• Double-click the IBM Data Virtualization Manager for z/OS Driver entry and enable/disable pooling
and set the retry wait time in the pop-up window.
For UNIX/Linux, connection pooling is managed by the ODBC Driver Manager. A driver manager is not
included in the driver installation package; a third-party driver manager must be installed.
Optimized fetch
When optimized fetch is enabled, rows ahead of the current row are asynchronously extracted before the
client application requests them. This data is then returned to the client application in blocks that may
be as large as 32 KB. Enabling optimized fetch helps to minimize network traffic and speeds subsequent
fetches as the requested data is likely already in a returned block.
Optimized fetch is enabled either by including the RO=YES connection property in a connection string (a
connection string may be used with a DSN) or by appending the FOR FETCH ONLY clause to a SELECT
statement.
When optimized fetch is enabled, cursor that is based deletes (DELETE WHERE CURSOR OF) cannot be
used.
Load modules
The following table lists the name and location of the DS Client high-level API load modules.
Procedure
1. Add the hlq.SAVZCLOD library to the DFHRPL concatenation in each CICS region that you want to
connect to the server.
2. Update and assemble the CICS program list table/program initialized (PLTPI) list for the DS Client
task-related user exit, as follows:
a) In the PLTPI list, locate the first DFHDELIM entry:
b) After the first DFHDELIM entry in the PLTPI list, add the following entry for the DS Client task-
related user exit:
AVZCLIEN
A DS Client high-level application is implemented by passing a parameter list on a set of calls to module
AVZCLIEN. The parameter list consists of the following:
1. DVCB control block address. The DVCB address is always required.
2. Send buffer address. The send buffer address is required for a SEND call and ignored for other calls.
3. Receive buffer address. The receive buffer address is required for a RECV call in move mode. A caller
in locate mode should pass a zero in this argument. For other calls, it is ignored.
4. Message buffer address. The message buffer address is optional for a RECV call. For other calls, it is
ignored.
5. SQLDA buffer address. The SQLDA buffer address is optional for a RECV call in move mode. A caller in
locate mode should pass a zero in this argument. For other calls, it is ignored.
The application can be linked with SDXMBIS, or LOAD the module and branch to it.
AVZXMAPD
AVZXMAPD is the base program in the DSSPUFI ISPF panel. The operation of the program is controlled by
JCL EXEC card parameters, SQL statements, and input commands from the IN data set.
52 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 5. Parameter descriptions (continued)
Parameter Options Description
DSID Data Server ID | N/A | NONE 1-4 characters input. Sets the
initial data server id name (DB2
subsystem ID, LUW server name,
or remote AVZ server name).
The SQL92 Engine is used if the
parameter is not set. Specifying
N/A or NONE is equivalent to
ignoring this parameter.
DB2S Data Server ID
MDAT Y|N. The default value is N. Indicates whether metadata
should be included in .
MWC 1-8 digits. The default value is Sets the maximum width of
80. printed character fields.
MWN 1-8 digits. The default value is Sets the maximum width of
33. printed numeric fields.
MXO 1-8 digits. The default value is Sets the maximum number of
250. rows written to //OUT per result
set.
MXP 1-8 digits. The default value is Sets the maximum number of
250. rows written to //FMT per result
set.
MXR 1-8 digits. The default value is Sets the maximum number of
250. rows to receive per result set.
Use MXR=0 to run without a limit.
When MRC parameter is used,
this parameter value is applied to
each MRC connection.
SGRP Server group name | N/A | NONE. 1-8 characters. Sets the name
The default value is None of the server group used
to distribute new DS Client
sessions. Specifying N/A or NONE
is equivalent to ignoring the
parameter.
SQLT 1 character input. Sets the character that indicates
the end of an SQL statement.
SSID 1 -4 characters. Subsystem ID Sets the subsystem ID.
Note: If SSID= is not specified, the driver attempts to use the server group name from SGRP= to
determine the subsystem to use. If neither SSID= nor SGRP= is specified, the driver will use the first
subsystem in the subsystem chain.
IN data set
The //IN data set contains SQL statements, optional input commands, and comments and uses the format
RECFM=FB,LRECL=80. The data in the columns 73-80 is ignored.
//IN DD *
SELECT FILEA_NUMB, FILEA_NAME, FILEA_ADDR, FILEA_PHONE,
FILEA_DATE, FILEA_AMT, FILEA_COMMENT FROM DALE1VSAM;
/*
Input commands
You can use ++SET statements to control some of driver operations. Each statement is in the following
format.
++SET key=value;
Every statement must begin in column 1 and must be contained in a single record. The ending SQL
termination character is optional. Many ++SET commands affect the operation of the SQL statements that
follow them. If a session is open and a ++SET command changes a value that can be set only by an OPEN
call, an implicit CLOSE and OPEN operation is done to enable the value.
The following are the available commands.
54 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Table 6. SET commands (continued)
Commands Valid values Description
MODE= MOVE | LOCATE. The default Indicates whether move mode
value is LOCATE or locate mode is used. May
cause implicit CLOS and OPEN
operation.
MRC= Specifies the number of threads
in the Map Reduce client. If MRC
is specified without MRID, all
MRC connections for the request
is managed by AVZXMAPD. If
MRID is specified, a single MRC
connection is made.
MRID= Specifies the Map Reduce Client
id number of the request. Specify
a number less than or equal to
MRNO to retrieve only a part of
the result set.
MRNO= Alias for ++SET MRC
NUMROWS= 1-8 digits. The default value is Sets the number of rows returned
128. with each RECV call. To request
the maximum number of rows
that fits in each segment, specify
-1. May cause implicit CLOS and
OPEN operation.
PASSWORD= 1-8 characters. Sets the password to be used
for source data access. This
parameter is used with ++SET
USERID. If the statement is
not coded, access is given with
the current credentials for the
address space.
RSCSID= 1-5 digits. The default value is 0. Sets the CCSID (Coded character
set identifier) for the session.
This is the CCSID of the result
set. May cause implicit CLOS and
OPEN operation.
SQCSID= The default value is 0. Alias for ++SET CCSID. Specifies
the CCSID of the SQL statement.
May cause implicit CLOS and
OPEN operation. Also see ++SET
RSCSID.
SQLERRRC= 1-4 digits. The default value is Sets the return code to be used
16. to indicate a SQL error.
SQLPERF= Y | N. 1 character. The default Indicates whether SQL
value is N. performance statistics should be
written to the RPT DD.
//IN DD *
++SET MODE=LOCATE;
SELECT * FROM DB2STAF2;
++SET MODE=MOVE;
SELECT * FROM LUWWRE4 WHERE TM_PERID_ID = 1;
/*
Package statement
You can use ++PACKAGE statements to create bind packages or grant package permissions. You can use
the following format for the ++PACKAGE statement:
++PACKAGE key=value[,key=value[...]];
The statement may span lines, but the first line of the statement must begin in column 1. The ending SQL
termination character is required. The entire statement is converted to uppercase before it is processed.
To use ++PACKAGE, the target DB2 system must have DRDA enabled. To verify that DRDA is enabled, use
option 4 (DB2/Database Control) in the ISPF panel. Find the row with the applicable subsystem name,
and look at the DDF Use Status column (You may need to scroll right to see the column). When DRDA is
enabled and active in the subsystem, DDF Use Status is enabled.
56 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
You can toggle the DDF Use Status with the T line command.
The valid ++PACKAGE statement keys and values are as follows:
++package function=bind-grant,replace=y;
RECFM=VB,LRECL=32756,BLKSIZE=32760
CSV:
The report containing column names and values formatted as comma-separated values.
DUMP:
The report contains the dump of the SQLDA(s) received from the API (as well as other data if the DBG=
JCL parm specifies M or A).
FMT:
The report contains the result sets formatted as printed and underlined column headers with spacing
between column data.
JSON:
The report contains the column names and values in JavaScript Object Notation format. Each column is
written as a single record, with rows surrounded by opening and closing braces, and the entire result set
surrounded by brackets. This produces a JSON array suitable for consumption by web applications.
OUT:
The report contains the raw result set data. Each row is written to a single record if possible, wrapping to
multiple records as necessary to write all of the data.
RPT:
The report contains a summary of statistics for each request, and count for all requests.
SRT:
The SORT program input record is in the following format.
SORT FIELDS=(1,nnn,CH,A)
where nnn is the size of the longest row returned. This can then be input to a DFSORT step to sort the raw
SQL data from the OUT DD. RECFM=FB,LRECL=80.
TRC:
The report contains a trace of program activity, including API calls and other interesting occurrences.
TXT:
The report contains the result sets formatted in fixed-length columns suitable for consumption by the IBM
DB2 Analytics Accelerator (IDAA). Each record in the data set holds one row. If the MDAT=Y JCL parm is
58 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
coded, or if Write TXT metadata? is selected in the DSSPUFI options panel, the report starts with a row
of column names, followed by a record containing a readable column rack.
Sample JCL:
Following is a sample JCL.
Return codes:
Return codes from the DS Client Driver are as follows:
All DS Client calls require the address of a DVCB as the first argument in the parameter list.
The calling program needs to have a DVCB defined in its working storage.
DVCB fields
The following table provides a summary of the fields in the DVCB. The “IN/OUT” column tells whether the
field is input by the application, output by the API, or both input and output. The code in each column
representing an API call tells whether the field is (R)equired, (O)ptional, or (I)gnored.
60 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Name Description IN/ OPEN SEND RECV CLOS
OUT
#DVCB-OPT-PRESERVE- Preserve row order with IN O I O I
ORDER MRC
#DVCB-BLOCKING- Timeout value for blocking IN I I O I
TIMEOUT RECV
#DVCB-SEND-LENGTH Length of SQL statement IN I R I I
string
#DVCB-CNID Connection handle OUT/IN I R R R
#DVCB-RETURN-CODE API return code OUT I I I I
#DVCB-ROW-LENGTH Length of rows returned OUT I I I I
#DVCB-SQLDA-LENGTH SQLDA buffer length IN I I O I
Note: Required
in move mode
when the fifth
argument
(SQLDA buffer
address) is non-
zero.
Example
Following is the Natural data declaration of the DVCB.
* ------------------------------------------------------------------ *
* --- DVCB API CONTROL BLOCK ---
* ------------------------------------------------------------------ *
1 #DVCB (B1/1:256)
1 REDEFINE #DVCB
2 #DVCB-TAG (A4) /* EYECATCHER (IN)
2 #DVCB-VERSION (I2) /* MACRO VERSION (IN)
2 #DVCB-RESERVED1 (A2) /* RESERVED
2 #DVCB-SSID (A4) /* SUBSYSTEM NAME (IN)
2 #DVCB-REQUEST-CODE (A4) /* REQUEST CODE (IN)
2 #DVCB-CNID (B16) /* CONNECTION HANDLE (OUT)
2 REDEFINE #DVCB-CNID
3 #DVCB-CONNECTION (B12)
3 #DVCB-CONNECTED-SSID (A4)
2 #DVCB-SERVER-GROUP (A8) /* SERVER GROUP NAME (IN)
2 #DVCB-USER-PARM (A8) /* A FIELD FOR THE USER
2 #DVCB-SQL-CODE (I4) /* SQL CODE (OUT)
2 #DVCB-DATA-BUFFER-LENGTH (I4) /* DATA BUFFER LENGTH (IN)
2 #DVCB-DATA-RETURNED-LENGTH (I4) /* RETURNED DATA LENGTH (OUT)
2 #DVCB-RESERVED2 (I4) /* RESERVED
2 #DVCB-ROWS-RETURNED (I4) /* NUMBER OF ROWS RETURNED (OUT)
2 #DVCB-OPTIONS (A8) /* OPTION FLAGS (IN)
2 REDEFINE #DVCB-OPTIONS
3 #DVCB-OPT-RECV-MODE (A1) /* LOCATE OR MOVE MODE
3 #DVCB-OPT-AUTO-COMMIT (A1) /* SET AUTO-COMMIT
3 #DVCB-OPT-CLOSE-AFTER (A1) /* CLOSE ON NEXT REQUEST
3 #DVCB-OPT-RESERVED (A1) /* RESERVED
3 #DVCB-OPT-SQLDA (A1) /* REQUEST SQLDA
3 #DVCB-OPT-PRESERVE-ORDER (A1) /* PRESERVER ROW ORDER WITH MRC
2 #DVCB-BLOCKING-TIMEOUT (I4) /* TIMEOUT FOR BLOCKING RECV (IN)
2 #DVCB-SEND-LENGTH (I4) /* LENGTH OF SEND BUFFER (IN)
2 #DVCB-RETURN-CODE (I4) /* RETURN CODE (OUT)
2 #DVCB-DB2-SUBSYSTEM (A4) /* DB2 SUBSYSTEM NAME (IN)
2 #DVCB-ROW-LENGTH (I4) /* LENGTH OF ROWS RETURNED (OUT)
2 #DVCB-SQLDA-LENGTH (I4) /* SQLDA BUFFER LENGTH (IN)
2 #DVCB-MESSAGE-LENGTH (I4) /* MESSAGE BUFFER LENGTH (IN)
2 #DVCB-RESERVED3 (A50) /* RESERVED
2 #DVCB-RETURN-FLAGS (A8) /* RETURN FLAGS (OUT)
2 REDEFINE #DVCB-RETURN-FLAGS
3 #DVCB-ROW-RETURNED (A1) /* ROW DATA IS RETURNED Y/N
3 #DVCB-SQLCODE-RETURNED (A1) /* SQLCODE IS RETURNED Y/N
3 #DVCB-MESSAGE-RETURNED (A1) /* MESSAGE IS RETURNED Y/N
3 #DVCB-SQLDA-RETURNED (A1) /* SQLDA IS RETURNED Y/N
3 #DVCB-END-OF-DATA (A1) /* END OF DATA IS RETURNED Y/N
3 #DVCB-ERROR-RETURNED (A1) /* ERROR IS RETURNED Y/N
3 #DVCB-PARMS-RETURNED (A1) /* DB2 ST PRC PARMS RETURNED Y/N
3 #DVCB-END-OF-RSET (A1) /* END OF RSLTSET IS RETURNED Y/N
2 #DVCB-RESERVED4 (A2) /* RESERVED
2 #DVCB-ROW-LIMIT (I4) /* ROW LIMIT (IN)
2 #DVCB-USERID (A8) /* CLIENT USERID OVERIDE (IN)
2 #DVCB-PASSWORD (A8) /* CLIENT PASSWORD OVERRIDE (IN)
2 #DVCB-MAPREDUCE-ID (I2) /* MAP REDUCE CLIENT ID (IN)
2 #DVCB-MAPREDUCE-NO (I2) /* MAP REDUCE THREAD NO (IN)
2 #DVCB-RESERVED4 (A64) /* RESERVED
2 #DVCB-TAG2 (A4) /* STORAGE CHECK EYECATCHER (IN)
* --- DVCB API EQUATES BLOCK ---
1 #EYECATCHER (A4) CONST<'DVCB'>
1 #OPEN-REQUEST (A4) CONST<'OPEN'>
1 #CLOSE-REQUEST (A4) CONST<'CLOS'>
1 #SEND-REQUEST (A4) CONST<'SEND'>
1 #RECEIVE-REQUEST (A4) CONST<'RECV'>
1 #CLOSE-CONNECTION (A4) CONST<'Y'>
1 #LOCAL-MODE (A4) CONST<'L'>
1 #MOVE-MODE (A4) CONST<'M'>
1 #END-OF-RESULT (I4) CONST<2>
1 #ROW-RETURNED (L)
1 #SQLCODE-RETURNED (L)
62 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
1 #MESSAGE-RETURNED (L)
1 #SQLDA-RETURNED (L)
1 #END-OF-DATA (L)
1 #ERROR-RETURNED (L)
1 #CNID (B16) /* CONNECTION HANDLE (OUT)
DS Client requests
There are four request types supported by DS Client: OPEN, SEND, RECV, and CLOS.
OPEN
The OPEN request creates a session with the DS Client server, and obtains the shared memory object
used to buffer the result set(s). The server can be identified either by subsystem name or by server group
name. (The group name is configured in AVZSIN00 using parameter DSCLIENTGROUP. Connections to
the same server group are distributed in round-robin fashion.) The API will return a connection handle in
#DVCB-CNID; this handle must be maintained and returned on all subsequent API calls.
The OPEN call is optional. If a connection is not open when a request is sent, an implicit OPEN will be
performed.
The following options can be presented on the OPEN call:
• The subsystem name or group name that identifies the Data Virtualization Manager server.
• The Db2 subsystem name (or none to use SQL Engine).
• The row limit for the result set(s)
• The auto-commit option
• The request SQLDA option
• The user ID and password to be used for access to the data source. The default is the API application
user ID.
Connection handle
An explicit or implicit open creates a 16-byte connection handle, which is returned in field #DVCB-CNID.
The application is responsible to preserve this value and present it intact on all future API calls. If the
application must save and restore the connection handle, it must save the value after each OPEN or SEND
API call.
SEND
The SEND request must be the first request following OPEN. It communicates the SQL request to the
server. The SQL statement must be in the buffer pointed to by the second argument of the parameter
list. The request is passed to Data Virtualization Manager for processing, and the result set immediately
begins to flow into the shared memory object.
The send request places the session in request received state. When the request completes, the session is
reverted to open state, at which time another SEND request may be made, or a CLOS request sent to close
the session.
The following options can be presented on the SEND call:
• The Db2 subsystem name (or none to use SQL Engine).
• The row limit for the result set(s)
• The auto-commit option
• The request SQLDA option
Requesting auto-commit
To turn auto-commit on, set #DVCB-OPT-AUTO-COMMIT to A before calling SEND. An implicit commit will
be performed after each update request. To turn auto-commit off, set #DVCB-OPT-AUTO-COMMIT to N.
64 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
CALL 'AVZCLIEN' #DVCB(*) #SEND-AREA(*) #RECEIVE-AREA(*) #ERROR-AREA
#SQLDA-AREA(*)
RECV
The RECV request reads the result set data from the shared memory object. A SQLDA is also optionally
returned. In move mode, the data is copied to the buffer pointed to by the third argument of the
parameter list.
The session must be in request received state when the RECV request is made.
The RECV call will return when the caller’s buffer is full, when the current result set is exhausted, or when
an error occurs. To reduce the number of RECV calls required, make the data buffer as large as possible.
The buffer must be large enough to hold at least one complete row, or an error (40) will be returned
in #DVCB-RETURN-CODE. When this happens, the required buffer size will be returned in #DVCB-DATA-
RETURNED-LENGTH. The application should obtain a buffer of at least this size, update #DVCB-DATA-
BUFFER-LENGTH with the new length, and retry the request, passing the address of the new buffer. The
buffer length can be set to zero to request only a SQLDA and no row data. In this case, the return code will
be zero.
The following options can be presented on the RECV call:
• An optional timeout.
• Auto-close after request completion.
Rows are returned in a fixed length, with all variables padded to their maximum length. The row size is
returned, along with the number of rows, the first-row address, and the SQLCODE.
SQLDA-format data
A SQLDA is needed to process the rows. SQLDATA and SQLIND in the returned SQLDA hold the offsets into
the row of the column data and the null indicator. A null column is indicated by a combination of an odd
value in SQLTYPE, and a value of x’FFFF’ in the area indicated by SQLIND.
Note: The value of SQLIND is always 0 in the first variable. The SQLTYPE field must be examined to
determine the significance of SQLIND.
Return signals
The API returns signals, or flags, in the DVCB from each RECV call to indicate the returned data and
indicators. All signals should be processed in turn before the next RECV call.
Signal Description
#DVCB-ROW-RETURNED = ‘Y’ One or more rows are returned in the area pointed
to by the third argument of the calling parameter
list. Use #DVCB-ROWS-RETURNED and #DVCB-
ROW-LENGTH to process the rows.
Note: This flag is not set in locate mode.
Note: Multiple signals can be returned together. It is essential, for instance, to check #DVCB-ROW-
RETURNED and process the data returned before checking #DVCB-END-OF-DATA.
CLOS
The CLOS request destroys the session and frees all shared resources obtained by the API for the
connection.
The CLOS call is optional. If #DVCB-OPT-CLOSE-AFTER is set to Y, the connection will be implicitly closed
after completion of the current request.
Idle timeout
A DS Client connection that is idle for a prolonged period will be timed out by the server. The timeout
threshold is configured in AVZSIN00 using the DSCLIENTCONNTIMEOUT parameter.
66 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
When a session times out, the shared memory object is detached. Subsequent RECV calls will fail with a
no-connection error (return code 32). A new connection can be created with an OPEN or SEND call.
The following return codes are returned from DS Client. The return code is moved into DVCBRETC, and is
also in general register 15 on return from the DS Client call.
Return Description
code
2 This code is returned if a SQL code is returned from a RECV operation. Check the value in
#DVCB-SQL-CODE.
This code is returned when the request is ended. The session is reverted to open state, and the
next request should be SEND or CLOS. A RECV call following this code will be rejected with a
state error.
8 This code is returned if DS Client is not active in the server. DS Client is activated using the
DSCLIENTACTIVE parameter in AVZSIN00.
12 This code is returned if storage is not available in the DS Client server to process the request.
16 This code is returned if the DS Client server is not able to obtain or share the memory object
buffer.
20 This code is returned if no DS Client server is available to process the request, or if the
specified server does not support DS Client.
24 This code is returned if the server timed the session out for inactivity. The timeout time is set
with the DSCLIENTCONNTIMEOUT parameter in AVZSIN00.
32 This code is returned if the session indicated by the connection handle is not found in the
server.
36 This code is returned if a request is made while the connection is in the wrong state. The state
requirements are discussed under the individual requests.
40 This code is returned if the data to be returned is too large for the buffer. This code can
be returned on a RECV call in move mode. The required buffer size will be in #DVCB-DATA-
RETURNED-LENGTH. Provide a larger buffer, put its size in #DVCB-DATA-BUFFER-LENGTH,
and retry the request.
44 This code is returned if the caller supplied a timeout value, and the RECV call timed out while
waiting for data.
56 This code is returned if a shared memory object is required, but a recovery environment
cannot be built to ensure the SMO is freed.
60 This code is returned if the required SQL statement length #DVCB-SEND-LENGTH is not
provided on a SEND.
72 This code is returned if a RECV request is made in locate mode but the connection was opened
in move mode.
84 This code is returned if the SQLDA to be returned is too large for the buffer. This code can be
returned on a RECV call in move mode. If the buffer is at least 16 bytes, the SQLDA prolog
will be copied into it. The required SQLDA size will be in field SQLDABC. Obtain a larger buffer,
provide its length in #DVCB-SQLDA-LENGTH, and retry the request.
88 This code is returned if the value of #DVCB-TAG is something other than C'DVCB'.
92 This code is returned if the value of #DVCB-VERSION is not supported by the API.
104 This code is returned if a user ID is provided in #DVCB-USERID without a password in #DVCB-
PASSWORD.
108 This code is returned if an error is found in the Map Reduce Client fields on the OPEN call:
• #DVCB-MAPREDUCE-ID is greater than #DVCB-MAPREDUCE-NO, or
• #DVCB-MAPREDUCE-NO is non-zero but #DVCB-MAPREDUCE-ID is zero, or
• #DVCB-MAPREDUCE-NO is greater than the value of ACIMAPREDUCECLIMAX in AVZSIN00.
116 This code is returned on an OPEN call if there is an incompatibility between the API and the
server.
120 This code is returned when a non-recoverable error occurs while processing the request. A
SQL code is returned in XMPLSQLC. The server ends the session. The application should close
the connection.
128 This code is returned when an abnormal termination occurs in the server while processing the
request.
DS Client configuration
The following Data Virtualization Manager server configuration options affect DS Client operations. The
required parameters are DSCLIENTACTIVE and LICENSECODE. The rest are optional.
68 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Parameter Description Values
ACIDVCLIENTMIN Controls the number of internal ACI servers to servers
keep active for future DS Client requests.
Default: 2.
Minimum: 1
Maximum: 10000
The method to invoke an existing module that uses Data Virtualization Manager as well does not change,
so no special instructions are needed.
More specifically, the invocation of a module will also stay the same for modules running in BMP regions
or modules attaching to Db2 for z/OS.
In this example, the module is called using EXEC PGM=, which does not require a BMP region or a
connection to Db2 for z/OS.
70 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Program preparation
The program should be compiled without any specific options.
The program should be linked as follows:
//SYSLIB DD DSN=AVZ.SAVZLOAD,DISP=SHR
//SYSLMOD DD DSN=APPL.LOADLIB,DISP=SHR
//SYSIN DD *
INCLUDE SYSLIB(AVZCLIEN)
NAME module(R)
OPEN request
The following example shows an OPEN request:
Notes:
• The first MOVE identifies the name of the Data Virtualization Manager server that you will work with.
• The second MOVE initializes the message length that will be passed to the server
• The third MOVE will put OPEN in the request.
• The fourth MOVE tells the server that, upon RECV time, metadata information (mostly for debugging)
must be returned in the area that is identified by the fifth parameter of the CALL. Metadata is returned
for each column in the result set. See “Example: DS Client control block (DVCB)” on page 74 for the
structure of this area.
• The fifth MOVE sets the length of this area of metadata information.
The OPEN request will initiate the communication with the Data Virtualization Manager server through the
API called AVZCLIEN.
After the CALL statement is executed, the various one-byte fields in the DVCB-RETURN-FLAGS group of
the DVCB can be tested for a Y value. See the contents of a sample paragraph 5000-CHECK-RESPONSE in
“Typical error checking” on page 76.
Note that a Y for such a flag is not necessarily an error (they are informational), except for DVCB-ERROR-
RETURNED which might be a reason to stop the execution of the program.
The following points are about the metadata information in SQLDA-AREA (the fifth parameter of the
CALL):
SEND request
The following example shows a SEND request:
Notes:
• The first MOVE will put SEND in the request.
• The second MOVE initializes the length of SEND-AREA into the DVCB, in practice the length of the
SQL command. SEND-AREA is a placeholder for the SQL command that you want to pass to the Data
Virtualization Manager server.
Again, check for eventual return information with 5000-CHECK-RESPONSE in “Typical error checking” on
page 76.
You must build the SQL command yourself in your COBOL program, maybe using character functions in
the COBOL language. An example is shown as follows:
STRING
"SELECT STAFFVS_KEY_ID,"
DELIMITED BY SIZE
" STAFFVS_DATA_NAME,"
DELIMITED BY SIZE
" STAFFVS_DATA_DEPT,"
DELIMITED BY SIZE
" STAFFVS_DATA_JOB,"
DELIMITED BY SIZE
" STAFFVS_DATA_YRS"
DELIMITED BY SIZE
" FROM STAFFVS"
DELIMITED BY SIZE
INTO SQL-TEXT.
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6
SQLDA \ 4 STAFFVS_KEY_ID
EDDCC444000E00000F000000000000EECCCEE6DCE6CC4444444444444444
28341000000C05051402000000000E2316652D258D940000000000000000
RECEIVE request
Data Virtualization Manager stores the results of the SQL command in the storage of the Data
Virtualization Manager started task. Those results must be transferred into the program’s working storage.
As the program’s working storage normally is much smaller than the server storage, you must request
reception of the server’s results in a repetitive process until Data Virtualization Manager tells you that all
72 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
data has been received. This concept can be compared to using multi-row fetch from an application with
Db2 for z/OS.
The following example shows a way to receive the results repetitively:
PERFORM 4000-PROCESS-RESULTS
UNTIL DVCB-END-OF-DATA = 'Y'
OR DVCB-ERROR-RETURNED = 'Y'.
******************************************************************
4000-PROCESS-RESULTS.
******************************************************************
* UNCOMMENT THE COMMENTS TO SHOW ONLY FIRST RESULT SET *
******************************************************************
MOVE 0 TO DVCB-ROWS-RETURNED.
PERFORM 3000-GET-RESULTS.
DISPLAY 'RESULT-SET #' RESULT-SET-NUMBER
PERFORM TEST AFTER VARYING W1 FROM 1 BY 1
UNTIL W1 = DVCB-ROWS-RETURNED
DISPLAY DVC-ID (W1) ' '
DVC-NAME (W1) ' '
DVC-DEPT (W1) ' '
DVC-JOB (W1) ' '
DVC-YEARS (W1) ' '
END-PERFORM
ADD 1 TO RESULT-SET-NUMBER.
******************************************************************
3000-GET-RESULTS.
******************************************************************
MOVE FCT-RECEIVE TO DVCB-REQUEST-CODE.
MOVE RECEIVE-LENGTH TO DVCB-DATA-BUFFER-LENGTH.
CALL 'AVZCLIEN' USING DVCB SEND-AREA RECEIVE-AREA
ERROR-AREA SQLDA-AREA.
PERFORM 5000-CHECK-RESPONSE.
DISPLAY 'NUMBER OF ROWS IN BUFFER:' DVCB-ROWS-RETURNED.
DISPLAY 'ROW LENGTH:' DVCB-ROW-LENGTH.
ADD DVCB-ROWS-RETURNED TO TOTAL-ROWS.
The first MOVE will put RECV in the request and the second MOVE initializes the length of RECEIVE-AREA
into the DVCB. This length should be greater than the largest row returned.
RECEIVE-AREA will receive the data back. Note that RECEIVE-AREA can receive many rows of the Data
Virtualization Manager result set.
In this example, the RECEIVE-AREA has 200 positions that can hold 10 rows of the Data Virtualization
Manager result set (one row is 20 positions). The first execution of 3000-GET-RESULTS will return the
rows 1 to 10, and the fourth execution will return rows 31 to 35 (as there are 35 rows in the result set).
The number of rows returned is in DVCB-ROWS-RETURNED.
CLOSE request
The CLOSE request is not required when the field DVCB-OPT-CLOSE-AFTER has been set to Y.
This can be achieved with the following code example:
This is an indication that the connection to the Data Virtualization Manager server is automatically closed
when the RECV request has delivered all rows of the server’s result set.
******************************************************************
* CLOSE CONNECTION TO DV SERVER *
******************************************************************
9000-CLOSE.
MOVE MESSAGE-LENGTH TO DVCB-MESSAGE-LENGTH.
MOVE FCT-CLOSE TO DVCB-REQUEST-CODE.
CALL 'AVZCLIEN' USING DVCB SEND-AREA RECEIVE-AREA
ERROR-AREA SQLDA-AREA.
PERFORM 5000-CHECK-RESPONSE.
74 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
001800 03 DVCB-DATA-BUFFER-LENGTH PIC S9(5) COMP. 00180000
001900 03 DVCB-DATA-RETURNED-LENGTH PIC S9(5) COMP. 00190000
002000 03 DVCB-RESERVED2 PIC S9(5) COMP. 00200000
002100 03 DVCB-ROWS-RETURNED PIC S9(5) COMP. 00210000
002200 03 DVCB-OPTIONS. 00220000
002300 05 DVCB-OPT-RECV-MODE PIC X(1). 00230000
002400 05 DVCB-OPT-AUTO-COMMIT PIC X(1). 00240000
002500 05 DVCB-OPT-CLOSE-AFTER PIC X(1). 00250000
002600 05 DVCB-OPT-REFORMAT PIC X(1). 00260000
002700 05 DVCB-OPT-SQLDA PIC X(1). 00270000
002800 05 DVCB-OPT-RESERVED PIC X(3). 00280000
002900 03 DVCB-BLOCKING-TIMEOUT PIC S9(5) COMP. 00290000
003000 03 DVCB-SEND-LENGTH PIC S9(5) COMP. 00300000
003100 03 DVCB-RETURN-CODE PIC S9(5) COMP. 00310000
003200 03 DVCB-DB2-SUBSYSTEM PIC X(4). 00320000
003300 03 DVCB-ROW-LENGTH PIC S9(5) COMP. 00330000
003400 03 DVCB-SQLDA-LENGTH PIC S9(5) COMP. 00340000
003500 03 DVCB-MESSAGE-LENGTH PIC S9(5) COMP. 00350000
003600 03 DVCB-MAP-NAME PIC X(50). 00360000
003700 03 DVCB-RETURN-FLAGS. 00370000
003800 05 DVCB-ROW-RETURNED PIC X(1). 00380000
003900 05 DVCB-SQLCODE-RETURNED PIC X(1). 00390000
004000 05 DVCB-MESSAGE-RETURNED PIC X(1). 00400000
004100 05 DVCB-SQLDA-RETURNED PIC X(1). 00410000
004200 05 DVCB-END-OF-DATA PIC X(1). 00420000
004300 05 DVCB-ERROR-RETURNED PIC X(1). 00430000
004400 05 DVCB-PARMS-RETURNED PIC X(1). 00440000
004500 05 DVCB-END-OF-RSET PIC X(1). 00450000
004600 03 DVCB-RESERVED3 PIC X(2). 00460000
004700 03 DVCB-ROW-LIMIT PIC S9(5) COMP. 00470000
004800 03 DVCB-USERID PIC X(8). 00480000
004900 03 DVCB-PASSWORD PIC X(8). 00490000
005000 03 DVCB-MAPREDUCE-ID PIC X(2). 00500000
005100 03 DVCB-MAPREDUCE-NO PIC X(2). 00510000
005200 03 DVCB-RESERVED4 PIC X(64). 00520000
005300 03 DVCB-TAG2 PIC X(4) VALUE 'DVCB'. 00530000
005400 01 FCT-SEND PIC X(4) VALUE 'SEND'. 00540000
005500 01 FCT-RECEIVE PIC X(4) VALUE 'RECV'. 00550000
005600 01 FCT-OPEN PIC X(4) VALUE 'OPEN'. 00560000
005700 01 FCT-CLOSE PIC X(4) VALUE 'CLOS'. 00570000
005800 01 OPT-AUTOCLOSE PIC X VALUE 'Y'. 00580000
005900 01 OPT-LOCAL-MODE PIC X VALUE 'L'. 00590000
006000 01 OPT-MOVE-MODE PIC X VALUE 'M'. 00600000
76 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Accessibility features
Accessibility features help a user who has a physical disability, such as restricted mobility or limited
vision, to use a software product successfully.
The major accessibility features in this product enable users to perform the following activities:
• Use assistive technologies such as screen readers and screen magnifier software. Consult the assistive
technology documentation for specific information when using it to access z/OS® interfaces.
• Customize display attributes such as color, contrast, and font size.
• Operate specific or equivalent features by using only the keyboard. Refer to the following publications
for information about accessing ISPF interfaces:
– z/OS ISPF User's Guide, Volume 1
– z/OS TSO/E Primer
– z/OS TSO/E User's Guide
These guides describe how to use the ISPF interface, including the use of keyboard shortcuts or
function keys (PF keys), include the default settings for the PF keys, and explain how to modify their
functions.
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
Such information may be available, subject to appropriate terms and conditions, including in some cases,
payment of a fee.
The licensed program described in this information and all licensed material available for it are provided
by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement, or
any equivalent agreement between us.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs
in any form without payment to IBM, for the purposes of developing, using, marketing or distributing
application programs conforming to the application programming interface for the operating platform
for which the sample programs are written. These examples have not been thoroughly tested under
all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these
programs. The sample programs are provided "AS IS", without warranty of any kind. IBM shall not be
liable for any damages arising out of your use of the sample programs.
Trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the web at
"Copyright and trademark information" at http://www.ibm.com/legal/copytrade.html.
Adobe and the Adobe logo are either registered trademarks or trademarks of Adobe Systems
Incorporated in the United States, and/or other countries.
Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.
Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the Unites States,
other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, and service names may be trademarks or service marks of others.
Permissions for the use of these publications are granted subject to the following terms and conditions:
Applicability: These terms and conditions are in addition to any terms of use for the IBM website.
80 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
Personal use: You may reproduce these publications for your personal, noncommercial use provided that
all proprietary notices are preserved. You may not distribute, display or make derivative work of these
publications, or any portion thereof, without the express consent of IBM.
Commercial use: You may reproduce, distribute and display these publications solely within your
enterprise provided that all proprietary notices are preserved. You may not make derivative works of
these publications, or reproduce, distribute or display these publications or any portion thereof outside
your enterprise, without the express consent of IBM.
Rights: Except as expressly granted in this permission, no other permissions, licenses or rights are
granted, either express or implied, to the publications or any information, data, software or other
intellectual property contained therein.
IBM reserves the right to withdraw the permissions granted herein whenever, in its discretion, the use
of the publications is detrimental to its interest or, as determined by IBM, the above instructions are not
being properly followed.
You may not download, export or re-export this information except in full compliance with all applicable
laws and regulations, including all United States export laws and regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS
ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
AND FITNESS FOR A PARTICULAR PURPOSE.
IBM Software products, including software as a service solutions, ("Software Offerings") may use cookies
or other technologies to collect product usage information, to help improve the end user experience,
to tailor interactions with the end user or for other purposes. In many cases no personally identifiable
information is collected by the Software Offerings. Some of our Software Offerings can help enable you
to collect personally identifiable information. If this Software Offering uses cookies to collect personally
identifiable information, specific information about this offering’s use of cookies is set forth below.
This Software Offering does not use cookies or other technologies to collect personally identifiable
information.
If the configurations deployed for this Software Offering provide you as customer the ability to collect
personally identifiable information from end users via cookies and other technologies, you should seek
your own legal advice about any laws applicable to such data collection, including any requirements for
notice and consent.
For more information about the use of various technologies, including cookies, for these purposes,
see IBM’s Privacy Policy at http://www.ibm.com/privacy and the section titled "Cookies, Web Beacons,
and Other Technologies" in IBM’s Online Privacy Statement at http://www.ibm.com/privacy/details. Also,
see the "IBM Software Products and Software-as-a-Service Privacy Statement" at http://www.ibm.com/
software/info/product-privacy.
A
accessibility
overview 77
applications
connecting an application to a data source 2, 33
C
cookie policy 79, 81
J
JDBC
APIs 27
buffering data 21
Connection properties 3
debugging and tracing 17
MapReduce 25
Parallel IO 22
performance 20
JDBCWeb Services
Error handling 17
L
legal notices
cookie policy 79, 81
notices 79
programming interface information 79
trademarks 79, 80
N
notices 79
O
ODBC 33
P
programming interface information 79
S
screen readers and magnifiers 77
sending comments to IBM xi
T
trademarks 79, 80
Index 83
84 IBM Data Virtualization Manager for z/OS: Data Virtualization Manager Developer's Guide
IBM®
SC27-9302-02