Welcome to the DB2 Everyplace Version 8.1.4 release
notes. The new DB2 Everyplace Information Center for Version
8.1.4 is available and is located in the
%DSYINSTDIR%\doc\lang\infocenter directory.
These release notes contain information about new features, enhancements,
and updated procedures in the Version 8.1.4 release of the DB2
Everyplace.
The following section begins with a list of features which is followed by
recent fixes for the DB2 Everyplace database.
New features for the database engine
- ADO.Net support for PocketPC and Windows platforms
- DB2 Everyplace has two new system defined scalar functions which enable
you to perform an SQL query regardless of the case of the data that you are
querying. These new functions are LCASE() and UCASE().
- You can now have multiple connections to different databases within the
same process.
- Auto-increment (Identity Column) support
- Piecemeal retrieval of large data through CLI
- Support for Symbian OS Version 7
- Remote Stored Procedure support on Symbian OS Versions 6 and 7, and its
JDBC support
- Support for additional processor types on Neutrino and Linux platforms
- More JDBC support, as well as JSR 169 compatibility
- Additional CLI support including: SQLColumns, SQLGetConnectAttr,
SQLGetInfo, SQLGetStmtAttr, SQLNumParams, SQLSetConnectAttr, SQLSetStmtAttr,
and SQLTables.
- Support for local data encryption on all platforms, including Neutrino,
Linux, Symbian OS 6 and OS 7.
Fixes for the database engine
Problems fixed in DB2 Everyplace Version 8.1, FixPak 1, FixPak 2,
and Version 8.1.4, with an APAR number for your reference if
applicable:
- (APAR IC34759) Data encryption problems:
- If an application accesses more than 8 tables (one of which is an
encrypted table) during a single connection session, DB2 Everyplace
fails.
- Select queries using scrollable cursor on encrypted tables fail.
- GROUPBY queries (with grouping columns) on encrypted tables fail.
- Update queries fail on columns of encrypted tables with indexes.
- (APAR IC34782) The DB2 Everyplace database engine abnormally terminates
when you use the LIKE predicate with a parameter marker when there is an index
on the column (for example, C1 LIKE ?). The index structure
may be corrupted due to an update statement. The failure occurs when
there is more than 1 index on table and a SET value does not change the
original value of the row. If you change the column value, then this
problem does not occur.
- (APAR IC35328) Tables in the DB2 Everyplace engine became inaccessible
while using the DELETE statement, when the following actions occur:
- performing a physical delete
- reading logically deleted records
- no WHERE clause is used with the DELETE statement
- (APAR IC35106) Re-executing a prepared SELECT statement using a scrollable
cursor fails to return any rows.
- (APAR IC35043) On Palm OS, if you have PVCPKCS11.prc library
installed and you repeatedly press the On/Off button the device will
eventually display a system alert and requires a reset.
- (APAR IC35585) Index corruption can occur on Palm OS with error message
SQLSTATE=58004 when performing update and delete operations when the index is
created on columns with column numbers in one of the following sets:
17-32, 48-64, 80-96, 112-128, 144-160, 176-192, 208-226, 240-256.
- (ARAR IC35710) When you create a DB2 Everyplace Visual Basic application
using the db2ecli.bas file for the Pocket PC platform, the
application hangs when it is running on the Pocket PC 2002 emulator.
- (APAR IC35966) Remote stored procedure call problem on Palm. A
fatal error occurs when SQLBindParameter containing SQL_PARAM_OUTPUT
is used, and when acquiring the ResultSet.
- (APAR IC36026) Executing a prepared statement of a SELECT query with
aggregate function without a GROUPBY clause returns an incorrect
answer.
- (APAR IC36027) A searched DELETE (with a WHERE clause) fails to remove all
of the qualified rows when an index on a TIMESTAMP column is used in the
searching of qualified rows.
- (APAR IC36083) The CREATE TABLE and CREATE INDEX statements cause a
failure, if you create an index or primary key on columns with a column number
which is greater or equal to 128.
- (APAR IC36069) If an index is created on a column position that exceeds
256, data corruption may occur or SQLSTATE 58004 will be returned. This
fix also prevents creating a table with more than 256 columns.
- (APAR IC36070) The REORG statement executed against a table with
variable-sized records (for example, VARCHAR or BLOB) can lead to
unpredictable data file corruption or an application failure. This will
most likely occur when record sizes are increased by the execution of the
UPDATE statement.
- (APAR IC36256) DB2 Everyplace sample applications cannot be built
successfully with Microsoft eMbedded Visual C++ 3.0.
- (APAR IC36270) DB2 Everyplace does not optimize some ORDER BY queries
because it fails to choose available indexes.
- (APAR IC37280) The DB2 Everyplace database engine terminates abnormally
when an application tries to connect to a database that contains an empty
DB2eSYSUSERS table. The same behavior can be observed when an
application tries to establish a database connection and provides a wrong
password immediately after the first user ID is created.
- (APAR IC36430) DB2 Everyplace may terminate abnormally during the
execution of a GROUP BY query when the number of SELECT items exceeds the
number of GROUP BY items.
- (APAR IC36695) Connection attempt to an encrypted database causes the DB2
Everyplace database engine to terminate abnormally.
- (APAR IC36570) The DB2 Everyplace database engine returns SQLState 57011
or 58004 when trying to access a database that is stored on an external media
(for example, SD Card, CompactFlash Card, and IBM Microdrive) on a PalmOS
device.
- (APAR IC36688) DB2 Everyplace database engine returns SQLState 58004 when
joining two tables with a join condition that involves VARCHAR colums
containing empty strings (when an index is being used for fetching
data).
- (APAR IC36702) DB2 Everyplace does not match the predicate "LIKE
'%'" against an empty string.
- (APAR IC37281) DB2 Everyplace SampleCLP may return an error or invalid
data when importing a VARCHAR/CHAR column that ends in a quotation
mark.
- (APAR IC37045) DB2 Everyplace does not return SQL State 23505 when the
application inserts two decimal numbers in a primary key column whose values
are slightly different. DB2 Everyplace erroneously accepts them as the
same value.
- (APAR IC37046) DB2 Everyplace returns a syntax error for the string concat
'&bx2020.' operator.
- (APAR IC37048) DB2 Everyplace doesn't accept Traditional Chinese
characters on Acer S60 device with Palm Chinese OS.
- (APAR IC37329) When an UPDATE SQL statement that uses the primary key
index, followed by an DELETE SQL statement that uses the dirty bit index are
executed, subsequent queries to the DB2 Everyplace database engine will return
incorrect result.
The following section begins with a list of features which is followed by
recent fixes for the DB2 Everyplace Sync Server.
New features for the DB2 Everyplace Sync Server
- Support for DataPropagator Version 8
Administration of DataPropagator Version 8 Table Subscriptions requires a
working knowledge of DataPropagator Version 8. The DataPropagator
Capture and Apply Servers, and Subscription Sets, must be created and enabled
using the DB2 Universal Database Replication Center. The DB2 Everyplace
XML Scripting tool can then be used to create the DB2 Everyplace
DataPropagator Table Subscription, associating it to the DataPropagator
Subscription Set.
- XML Scripting Tool
You can now alter existing objects in the Mobile Device Administration
Center using the XML Scripting tool.
- Synchronize with Cloudscape as a backend data source
- Support for the Solaris operating system
- Updates in the Mobile Devices Administration Center:
Note: If the Sync Server is installed with DB2 UDB Version
8.1 and you experience long delays in browsing subscriptions using
MDAC, install DB2 UDB Version 8.1 FixPak4.
- Create JDBC subscription and Edit JDBC subscription window:
- New Replicate now check box (replication not performed during
administrative operations unless this is selected)
- Control over the order of subscriptions sets
You can now specify the order in which subscription sets are sent down to
the client. You can control the order of subscription sets for a group,
the order of subscriptions in subscription sets, and the order of tables in a
subscription.
- Change user window
You can now specify more than one user for each mobile device.
- A new check box has been added to the Add Table window. If you
select the Override join filter global setting check box you will
enable the row filter out- of- scope parameter. This
parameter must be set to avoid row filter out-of-scope
problems.
- Remote Mobile Devices Administration Center and Server Group
Administration
Enables the Mobile Device Administration Center to run remotely from the
server or servers that it is supporting. This supports multiple server
configurations by allowing the administration of all server to be done from a
separate physical machine and location.
- For a DB2 data source, users can now specify the default database and
table space for the internal control tables created by the Sync Server.
- Synchronization support for .NET using the DB2 Everyplace
ISync.NET provider.
- Foreign-Key constraints allowed in JDBC Replication Sources
You can now subscribe tables in parent-to-child order provided the
referential integrity relationship is contained within your JDBC
subscription.
- Standalone and install-time migration
Installing Sync Server Version 8.1.4 will automatically
migrate earlier version configurations to Version 8.1.4.
Migration includes Control tables. In addition, you can upgrade your
evaluation version to a full licensed install without having to uninstall the
evaluation version.
Fixes for the DB2 Everyplace Sync Server
Problems fixed in DB2 Everyplace Version 8.1, FixPak 1, FixPak 2,
and Version 8.1.4, with an APAR number for your reference if
applicable:
- (APAR IC35310) If a vertical-filtering parameter name is undefined or
misspelled in the Group definition, the Sync Server hangs during
synchronization.
- (APAR IC35329) If you reset a file subscription in the Mobile Device
Administration Center and then perform a synchronization, the new file changes
on the server are not synchronized to the client.
- (APAR IC34823) The Mobile Device Administration Center wouldn't start
if you were using DB2 Universal Database with FixPak 7.
- (APAR IC35308) The Palm device automatically powers off when the
synchronization takes longer than the specified transport timeout (plus 30
sec.).
- (APAR IC35309) The XML Scripting Tool fails to drop a subscription if the
source is down.
- (APAR IC35334) A certain sequence of clicks in the Palm OS GUI will cause
the GUI to fail.
- (APAR IC35335) File subscriptions do not work with Symbian 6 mobile
devices.
- (APAR IC36067) Server Group ID set to "Installation corrupted".
- (APAR IC36016) Refresh cases fail on the WinCE Sync Client when local data
encryption is enabled. The client gives an error of type
ISCEVTTYPE_Error with codes ISCEVT_ErrUnauthorized or
ISCEVT_ErrConnectData.
- (APAR IC35794) On Windows32/non-UNICODE, the code page setting located in
the configuration file (CONFIG-ISYN), is incorrect for non-Latin character
sets (Cp1252). After synchronization, the data is displayed as
"garbage" characters. This problem occurs for the languages Chinese,
Japanese, Korean, Arabic, Hebrew, and Czech.
- (APAR IC36082) An "unexpected call to getUpdate" assertion failure occurs
when trying to resume a canceled synchronization.
- (APAR IC35403) You receive the error SQL1040N when trying to synchronize
clients.
- (APAR IC35539) Inserts and updates fail for OS/390 source tables with
error DSYD028I.
- (APAR IC35535) The Advanced Subscription Definition panel in MDAC does not
retain your selections.
- (APAR IC35653) Replication fails (DSYS005E) after a device which has
recently synchronized is reset, and the replication is not recoverable through
the automatic recovery.
- (APAR IC35398) A right-parenthesis cannot immediately follow a parameter
name in a WHERE clause. Otherwise, it would result in the DB2
error: "SQL0312N The host variable "{parameter}" is used in a dynamic
SQL statement a view definition, or a trigger definition.
SQLSTATE=42618."
- (APAR IC35980) The DB2 Everyplace control database (DSYCTLDB) can become
corrupted when you perform an edit or delete on a subscription.
- (APAR IC36017) NullPointerException being reported by the
ReplicationDbMgr.
- (APAR IC36165) When editing a file subscription, if the subscription name
and linked file (or pointer) are changed, the new linked file is not
transferred to device until the user ID is reset in Mobile Device
Administration.
- (APAR IC36189) When creating a JDBC table subscription to tables on a DB2
for OS/400 source database, the subscribed tables may not be writable
following the subscription creation, until the Mobile Devices Administration
Center process is closed. The error message is: [SQL0913] Row or
object xxxx xxxx type *FILE during replication. This problem also
occurs in both JDBC and upload subscriptions.
- (APAR IC36261) Domino source databases fail to replicate with the DB2
Everyplace mirror database.
- (APAR IC36262) When closing the Mobile Devices Administration Center, the
java.exe enters into an infinite loop collection stage that eventually
posts the error message, "java.lang.OutOfMemory".
- (APAR IC36264) Error message "DSYC401 failed to connect to the target data
" when attempting to synchronizing from a client device to a Domino data
source.
- (APAR IC36265) When a source table is subscribed with a JDBC replication,
you cannot read the data on the source table when replication is in
progress. On most platforms, there is no error message, but the reader
just waits until replication finishes, and then the reader proceeds
normally. If the source is DB2 on AS/400, with the default AS/400 file
configuration, the reader would receive the following error message:
SQL0913N Unsuccessful execution caused by deadlock or timeout.
- (APAR IC36266 ) You can now create an encryption password with up to 256
characters. The previous limit was 18 characters.
- (APAR IC36267) Customers using the iPlanet HTTP server with IBM WebSphere
Application Server (to run the DB2 Everyplace Sync Server) may receive
authentication errors on the client device during synchronization. The
error messages is, "DSYC304E: Fatal Error authentication failed".
This problem occurs because the iPlanet server performs a case conversion on
the header of the message sent by the Sync Client.
- (APAR IC36419) In the Mobile Device Administration Center, if you disabled
replication by unchecking the check box on the Replication page, and then
restart the Synchronization Server, the default value is reinstated and
replication becomes erroneously enabled.
- (APAR IC36409) During the synchronization of a subscription that involves
a horizontal filter with a user--defined WHERE clause to filter rows from
the mirror database to the device, the Sync Server may abruptly terminate with
the following error:
"ava.lang.ArrayIndexOutOfBoundsException: 1 at
java.util.Vector.elementAt(Vector.java(Compiled
Code)) at
om.ibm.mobileservices.adapter.rdb.LookupFiltering.genUnionPhrase(LookupFiltering.java:1534)".
The probability of encountering this error is generally low, but increases
with high concurrency.
- (APAR IC36411) Creation of a JDBC subscriptions which accesses a Microsoft
SQL data source fails with the following error in the Mobile Device
Administration log: DSYJ001E A database error occurred.
'[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Incorrect syntax
near the keyword 'TABLE'. SQL state=HY000 Error
code=156'
- (APAR IC36407) If a JDBC subscription contains a table with a column of
the CHAR datatype and the AS/400 Toolbox JDBC driver is used, the Sync Server
rejects every row sent from users with the following error message:
CLI0143E Invalid precision value. SQLSTATE=HY104f
- (APAR IC36330) You will receive this error if your horizontal filter
contains a parameter that is not immediately followed by one the following
characters:
- space
- single quote
- newline
- comma
- vertical stroke
- less than
- greater than
- equal
The Sync Server did not replace a parameter with the appropriate value if
the parameter name was not followed by one of the characters listed
above.
The following section begins with a list of features which is followed by
recent fixes for the DB2 Everyplace Sync Client.
New features for the DB2 Everyplace Sync Client
- New GUI for the IBM Sync which takes advantage of the following new
features and is more user-friendly:
- Configurable target directory on the client for each subscription
- Configurable Sync Client message size based on the network speed
- Server proxy support
- Configurable servlet path
- Synchronize data using the new DB2 Everyplace Cloudscape Sync Client
- Synchronization support for .NET using the DB2 Everyplace
ISync.NET provider
- Configurable timeout on all client platforms
- SSL support:
- For WebSphere Everyplace Access, Version 4.3 environments
only: SSL support on Palm OS, Win32, and WinCE (Pocket PC 2002 only) and
Linux.
To use SSL in the IBM Sync: In the Server settings panel of the IBM
Sync GUI, specify the HTTPS protocol in the server URL (Uniform Resource
Locator). If the configured SSL port is not the default (443), then
provide the SSL port as well. To configure the Sync Server for SSL,
please refer to the appropriate WebSphere Everyplace Access
documentation.
Developing applications that use SSL: A new Sync Client C-API
(iscServiceOpenEx) is created for developing applications with SSL
support.
- New supported client devices:
- Symbian 7 (Sony Ericsson P800)
- Linux (Sharp Zaurus SL 5500 and SL 5600)
- Palm OS Version 5.0
- The target directory (secondary storage) is generally available from the
IBM Sync application, and it can be specified from the Client Settings
panel.
- Sync Client API for Java
Java application developers can now use the Sync Client Java API (isync4j
package) to perform data synchronization. There are two native
synchronization providers available. One synchronization provider uses
JNI to invoke the native Sync Client libraries to perform the
synchronization. The other provider is used for J9 VM for PalmOS
only. See the DB2 Everyplace Application Development Guide
and the isync4j Javadoc for additional information.
- Sync Client API for C
The IBM Sync Client API has changed, which will provide better clarity,
more flexibility, new functionality. The IBM Sync Client API
v.7.2.1 is still supported with an API wrapper, but new
features are only accessible using the new API.
- Synchronization for MIDP devices
This feature is now included only in the DB2 Everyplace SDK Edition.
Creates a new J2ME MIDP Sync Client to support building applications for J2ME
MIDP that can synchronize subscriptions to the MIDP filesystem for use by the
application. Exploits the J2ME MIDP record management system instead of
DB2 Everyplace (which cannot run on J2ME MIDP).
Fixes for the DB2 Everyplace Sync Client
Problems fixed in DB2 Everyplace Version 8.1, FixPak 1, FixPak 2,
and Version 8.1.4, with an APAR number for your reference if
applicable:
- (APAR IC35552) On Palm OS using local encryption with the Java Sync API,
the scenario is as follows:
- Synchronize.
- Enter your user ID and password, resulting in a successful
synchronization.
- Attempt to query a table and receive the error message SQLSTATE42501
"Authorization ID not permitted to perform specified operation on identified
object".
- (APAR IC35910) The Java Sync API (isync4j.jar) and agent
proxy (dsyagent.dll) files cannot be not found in the WinCE
installation CAB files.
- (APAR IC35980) Abnormal behavior of the Sync Client that the client
returns "Synchronization ended successfully" but no user subscriptions were
actually synchronized.
- (APAR IC36166) You receive the following Sync Client error "dsyc699e
Unknown Network error" when trying to synchronize with Pocket PC and a Sprint
Wireless PCMCIA card. This problem does not occur on the Verizon
Wireless card.
- (APAR IC36206) A problem exists during the Palm authentication
process. IBM Sync stops functioning properly if a user password is
entered incorrectly 3 times or the cancel button is pressed in the "DB2e
authentication" window. Subsequent synchronization attempts will fail
with "DSYC698I: Error internal SQLstate" error.
- (APAR IC36408) When using the traditional Chinese version of IBM Sync on
WinCE devices, there are corrupted characters on the detailed subscription
information panel and the panel for entering the user ID and password for the
encrypted tables. This problem occurs on the user interface only and
does not affect synchronization.
- (APAR IC36410) On Palm devices, the German version of the IBM Sync program
encounters a fatal error during synchronization, and an alert window with the
message "Fatal exception" displays which asks for a system reset. This
problem occurs in the German version only.
- (APAR IC36413) After synchronization, if subscriptions are removed from
the Mobile Device Administration Center, the client has problems updating the
configuration in the subsequent synchronization. The client will still
try to synchronize those to-be-removed subscriptions.
- (APAR IC36412) When using the Java sample program (ISyncSample) on Palm
devices, synchronization of tables will cause the device to abend. On
the Palm emulator, a stack overflow exception will be shown.
- (APAR IC36574) When synchronizing a table whose primary key is composed of
all the columns, if you cancel the synchronization and then synchronize again,
the Sync Client might report a SQLstate 23505.
- (APAR IC36685) When the Sync Client is synchronizing a file subscription,
if it fails, it will not try to synchronize the file subscription again during
future synchronizations until the file subscription (or the user) is reset on
MDAC.
-
- (APAR IC26366) According to the current specification of the API, DB2
Everyplace has a 18-character length limit on the database password, the Sync
Client also allocates a 18-character storage for the application to pass in
the password. Thus, if the application overflows the pre-allocated
storage with a password longer than 18 characters, it will cause an abend in
the Sync Client. This limit applies to all platforms.
- (APAR IC37573) This problem occurs when you are developing a Sync Client
application for the Palm OS using the Sync Client API. With each call
to either of the DB2 Everyplace Sync Client API functions, iscEngineSync or
iscEngineSyncConfig, the client establishes (or dials up) the RAS connection
at the beginning of the synchronization and then shuts down the connection
when the synchronization finishes. Thus, in case of consecutive calls
to those two API functions, you see the Sync Client establishing and
re-establishing the RAS connection several times.
- (APAR IC37580) When synchronizing from a Handspring Treo device via the
wireless phone, the Sync Client reports a connection failure error.
This section contains a list of known considerations and restrictions that
apply to this release of DB2 Everyplace:
- Users of the DB2 Everyplace client database may experience performance
degradation in autocommit mode for UPDATE, INSERT, or DELETE
statements. A workaround for this problem is to explicitly use manual
transaction and group multiple changes in a single commit operation.
- For Ado.NET on the database engine:
- Result set retrieval using a remote stored procedure call has a limitation
on the size of the result set. This restriction will be removed in a
future release.
- For methods or properties that are not supported, a
"System.NotSupportedException" will be thrown.
- When the Sync Client is synchronizing to multiple target databases, local
database encryption is not supported when more then one database contains
encrypted tables.
- The Cloudscape client does not support all the features the DB2 Everyplace
client supports. For example, multiple server, ordering of subscription
sets/subscriptions/tables, and local data encryption are not supported.
- The Join Filtering feature does not support multiple table
references. If a user WHERE clause contains multiple table references,
the Join Filtering feature will be disabled for that WHERE clause and the
warning DSYD029W will be logged. The WHERE clause continues to work
without the Join Filtering feature.
- Referential Integrity is not supported for DataPropagator Table
Subscriptions.
- For DataPropagator Table Subscriptions, replication must always be run on
the mirror database server. This means that if replication needs to be
performed during administrative actions, the Mobile Devices Administration
Center must be run on the mirror database server.
- Database object names which are required to be enclosed in double quotes
are not supported.
- In general, the maximum size of a row in a table is limited by the data
source. Adding the table to a JDBC subscription further restricts the
maximum row size. The additional restriction on the maximum row size is
approximately 125 bytes.
- In general, the maximum size of a row in a table is limited by the data
source. Adding the table to a JDBC subscription further restricts the
maximum row size. The additional restriction on the maximum row size is
approximately 2KB.
The following terms are trademarks of the International Business Machines
Corporation in the United States, or other countries, or both:
AIX
DB2
DB2 Universal Database
IBM
Microsoft, Windows, Windows NT, and the Windows logo are registered
trademarks of Microsoft Corporation in the United States, other countries, or
both.
Other company, product, or service names may be trademarks or service marks
of others.