- Changes in the 3.1 release
- Changes in the 3.0 release
- Changes in the 2.9 release
- Changes in the 2.8 release
- Changes in the 2.7 release
- Changes in the 2.6 release
- Changes in the 2.5 release
- Changes in the 2.4 release
- Changes in the 2.3 release
- Changes in the 2.2 release
- Changes in the 2.1 release
- Changes in the 2.0 release
- Changes in the 1.9 release
- Changes in the 1.8 release
- Changes in the 1.7 release
- Changes in the 1.6 release
- Changes in the 1.5 release
- Changes in the 1.4 release
- Changes in the 1.3 release
- Changes in the 1.2 release
- Changes in the 1.1 release
- Changes in the 1.0 release
- Changes in the 0.9 release
- Changes in the 0.8 release
- Changes in the 0.7 release
- Changes in the 0.6 release
- Changes in the 0.5 release
- Changes in the 0.4 release
- Changes in the 0.3 release
- Changes in the 0.2 release
Support for DB2 releases V7.2 and V8.1 has been dropped.
Mike O'Reilly gracefully and patiently pointed out a number of Unix-specific assumptions that have to be corrected to compile the module with ActiveState Perl 5.8.8 for 32-bit and 64-bit Windows.
Most of these affect device and filenames
Add the new DB2 V9.7 configuration parameters, most of which are SSL-related.
db2_constants.pl file translates DB2 constants from symbolic names to numeric values. Previous releases generated the file when the package was created for distribution; the file will now be generated locally as part of the build process. This is necessary because IBM changes the value of some constants in an incompatible manner; so a file generated for V9.5 will not work with V8.2.
ListUtilities method now supports the
Add support for the Backup command, including support for DPF backups (with included logs) in DB2 V9.5.
A second bug in the db2Load command, caused a load from cursor (source type "Statement") to perform an invalid free, sometimes leading to a core dump. Now fixed. Have run valgrind on import/export/load to verify no additional mistakes are present.
A bug in the db2Load command, introduced in the 2.7 release, caused a load from cursor (source type "Statement") to dump core. Now fixed.
A bug in the Load and Import methods prevented load/import operations against mixed-case schema and table names (which have to be double-quoted when passed to DB2). Now fixed.
The re-optimization level can now be set at Rebind time.
The modules/classes have been renamed from DB2API to DB2::Admin as recommended by Tim Bunce.
The Load method now supports loading a list of DEL files in a single command.
Support the TCP/IP v4, TCP/IP v6 and TCP/IP v4 using SOCKS protocol types for the node directory methods.
The Export, Import and Load methods now supports the XML options introduced in DB2 V9.1 (Export, Import) and DB2 V9.5 (Load). Note that the schema-related XML validate / default / ignore / map options are not supported at this time.
Allow the user to specify the program name and connect time-out as connect attributes. Default options can be set with
SetConnectAttributes and per-connect options can be specified with the
ConnectAttr parameter to the
The default program name is no longer
perl5.8, but the script name (the basename of
The NoCharDel option, which is used to handle files where character strings have no delimiters, is now supported for FileOptions parameters of the the Import and Load methods. It was already supported for the Import method.
The implementation of the runstats API contained a bug that made "update profile only" not work. This was due to an discrepancy between the documented constant name in the IBM documentation (DB2RUNSTATS_UPDATE_PROFILE_ONLY) and the actual #define (DB2RUNSTATS_UPDA_PROFILE_ONLY), missing the letters TE from the middle.
The code now handles both cases
The error handling now differentiates between errors and warnings. The default behavior is unchanged - error messages are printed for errors and warnings, and no exception is thrown. However, the 'RaiseError' option now only throws exceptions for errors, not warnings - the new 'RaiseWarn' option handles the latter.
The new DB2RUNSTATS_EXCLUDING_XML flag for the db2Runstats API is now supported as the ExcludingXML option.
The Export, Import, and Load commands now support the CodePage file type modifier. The Load command claimed to support this before,. but the implementation was incorrect.
The SysAdm, SysMaint, SysCtrl and SysMon group instance configuration parameters (SQLF_KTN_xxx_GROUP) were limited to 16 characters in DB2 V8.1 and before. With DB2 V8.2, new configuration parameters were introduced that changed this limit to 30, but had a different name: SQLF_KTN_xxx_GRP. However, the documentation hides this difference and refers to the new parameters by the old name.
DB2 V9.1 introduces a bug in the handling of the old parameters. In order to work around this, the new parameters now override the old ones in the parse_constants script. So in DB2 V8.2 and above, the old names (e.g. 'sysadm_group') can be used and do the right thing by using the new constants.
The get/update instance/database configuration parameters methods have new flags for DB2 V9.1: 'Computed' (get/set) and 'Manual' (set). Add support for these new flags.
The only value that supports 'Computed' as far as I am aware, is 'database_memory'. When the Command Line Processor reports it as 'computed', the admin API can now do the same.
The 'Manual' option allow you to turn off automatic management for parameters while DB2 maintains the last automatically set value.
When IP v4 clients running DB2 V9.1 connect to a database, the application id has a new format and includes the IP address and port in plain text. Support this new format and straighten out the existing IP v4 format so it is now always "<address> port <port>".
On DB2 V9.1, use the "iSetIntegrityPending" field for the db2Load API instead of the "iCheckPending" field.
Support IP v6 addresses for the application-id in snapshot and event monitor data elements (untested)
The following database manager and database configuration parameters are new for DB2 V9.1 and have been added:
The module now compiles on DB2 V9.1. No new features are supported, but the makefiles and various utility scripts have been adjusted and compile issues fixed.
No support has been added for new instance / database configuration parameters or for the new XML-related features of db2Import and db2Export.
A new ClientInfo method can be used to get/set the TPM client information (sqleseti, sqleqryi).
Various DPF-related options for the Load command are now supported. In addition, a more detailed second return value describes the DPF aspects of the load, including each agent, in detail.
Support for the LobPath, LobFile and LobsInFile options of the Export, Import and Load methods has been added. (LobFile is Export specific.)
Support for the 'DelPriorityChar' option for the DEL file type modifiers of Import/Load now supports data files with embedded newlines in column values.
The enhanced deadlock event monitor in DB2 V8.2.2 (FP9) writes a new type of monitoring element, called 'handle' (but really a blob).
Support to decode this has been added (the data is returned as a hexadecimal string).
The XS code was handling load options incorrectly, leading the 'NonRecoverable' flag to set the "HoldQuiesce" flag instead, and leading the "Allow Read Access" flag to set the IndexingMode to "rebuild".
The various constants for database manager, database and application pool ids are now supported. Previously, a numeric code was displayed.
The XS code now detects a fork() has occurred and will mark as closed database connections opened by the parent. This requires some care, as closing the connection in the child will affect the connections in the parent. And, of course, IBM doesn't properly document this.
The code parsing connection names got cross-DPF node connections wrong and spewed out large amounts of "unitialized value" warnings. Now corrected.
The reorg status constants returned by database snapshots are now supported. Previously, a numeric code was displayed.
The HADR-related constants returned by database snapshots (HADR role, state, syncmode, connection status) are now supported. Previously, a numeric code was displayed.
Bugfix for the 'Runstats' method: you can now collect index statistics using a previously set profile without collecting/updating column statistics.
Bugfix for the 'Runstats' and 'Rebind' methods: the low-level administrative API functions used to implement these methods ignore the connection-level auto-commit flag. This means they will continue to hold locks on the catalog until an explicit commit or disconnect is issued.
Both methods now explicitly issue a commit (whether the low-level call succeeded or not).
A new 'TempFilesPath' parameter for the Load method allows users to specify the pathname for load temporary files.
A new 'Runstats' method can be used to collect table and index statistics. Only a subset of options is supported; specifically, the column distribution options and column group features are not supported. This may change in future releases. This method requires DB2 V8.
Minor changes to the 'FileOptions' parameter to the 'Load' method: fix some typos, add 'DumpFileAccessAll', add documentation.
The perl and XS code for 'LOAD' got the caller_action wrong; this was set to SQLU_TERMINATE for a "LOAD TERMINATE", but should always be set to SQLU_INITIAL. This removes code and is a Good Thing...
A new 'ListUtilities' method supports listing currently active utilities. It is implemented using an instance snapshot and requires DB2 V8.
The Load method now supports the optional 'ExceptionTabe' and 'ExceptionSchema' parameters to set the exception table for load exceptions.
The 'utility type' constants returned by instance snapshots are now supported. Previously, a numeric code was displayed.
Add the 'StripZeros', 'DatesISO' and 'DecPlusBlank' options to the Export file modifiers
FileOptions for Import, Export and Load that contain embedded blanks (e.g. a TimestampFormat like 'MMM D YYY H:M:S') are now quoted before being fed to the DB2 APIs.
A new LoadQuery method allows you to query the progress of a Load command against a table.
A new ListHistory method implements the equivalent of the CLP "List History" command that allows you to query loads, backups, rollforwards, etc.
A CONFIG file is used to drive the test suite, externalizing the names of the test database, test tables, schema names, etc.
New Load method provides an API to the table load functions; only a subset of features is supported (most notably, partitioned loads, table hierarchies, TSM media, LOBs and Data Links are not supported).
New parameters to the Import method allow specification of the target columns and selection of the relevant columns from the input file (by position or DEL files and by name for IXF files).
Add import options to the 'Import' method; this allows users to set commit count, warning count, row count, skip count, etc. Most options are available only with DB2 V8.2.
New methods to catalog a database in the database directory or uncatalog one.
New methods to catalog a node in the node directory or uncatalog one.
New methods to catalog a DCS database in the DCS directory or uncatalog one.
The following import options have been added for DEL files:
The following export options have been added for DEL files:
On DB2 V8.2, the new db2Export function is used instead of sqluexpr and the new db2Import function is used instead of sqluimpr.
The DatabaseDirectory() method now uses the db2DbDirXXX functions when available (DB2 V8.2). For global database directories, this means the new 'Alternate Hostname' and 'Alternate Port Number' fields are returned for HADR setups.
Building on the database connection functions, provide limited table export/import methods.
New Connect and Disconnect functions allow database connections; this is implies the database configuration get/set functions can now use the 'Immediate' option.
All medium/high important updatable database manager configuration parameters have been added.
More types of monitor elements are being formatted by the DB2API::DataElement class. This includes lock mode, statement type/operation, server platform, application status.
The EventParser class warns when it encounters un-expected files. It now does not warn for hidden files (dotfiles) that we use internally to keep track of event file state.
Make the module work on Linux/ia64 (Itanium) and DB2 V8.2.0
Make the module work on Solaris 7/8 with DB2 V8.2.0 (32-bit perl only)
When an unknown monitoring element / even code is found, the decoding functions now return "(unknown element XXX)" instead of die()ing.
All tests have been converted to the Test::More framework
Two new methods can be used to force selected applications or all applications. These should obviously be used with care.
A new method allows retrieval of the DCS (gateway) directory
The name of the keys in the GetDatabaseDirectory() and GetNodeDirectory() methods has been changed to match the (Morgan Stanley private) reverse-engineered catalog decoding/generation code.
Add an event file parser module,
DB2API::EventParser which can 'tail' growing event files and delete those marked as processed. A sample program provides the skeleton for a minimal event monitor.
The checking script now warns if IBM-internal configuration parameters are used; more V8.2 configuration parameters have been added.
A number of additional database and database manager configuration parameters have been added; this includes support for a 'float' type, constants used for both the database and the database manager, and a mechanism to try and deal with configuration parameter names that have switched to a new constant name and new type between releases.
Add the 'LockMode' and 'LockObjectType' categories to the
Lookup method; use these in the
DB2API::Elements class has been replaced by
DB2API::DataElement, which decode the information lazily and provide an object-oriented interface to get the data, including a path search loosely modeled after XPath.
These new methods allow retrieval of the database directory and node directory.
The database / database manager config methods now support passing in a single 'Flag' parameter string, or a reference to a hash with multiple flags.
Basically, release 0.2 did not work very well in practice (dealing with 64-bit values, very slow decoding of snapshot data). A number of small fixes were applied to DB2API::Elements to address this.
This new method allows updating of database configuration parameters. Until such time that we support database connections, only delayed database parameters updates are allowed.
This new method allows retrieval of database configuration parameters. Until such time that we support database connections, only delayed and default database parameters may be retrieved.
This new method allows updating of database manager configuration parameters.
This new method allows retrieval of database manager configuration parameters.
This new method allows lookup of meta-data about configuration parameters. The API is provisional, as I have not yet decided how to deal with parameters that change constant name and type between DB2 releases.
The constants generated are now for both