
              IDS Server Version 4.1.5 (Export) Evaluation

Contents
========
  1. Introduction
  2. UNIX Installation
  3. How to Get Help
  4. JDBC Quick Start
     4A. How to Select A Driver
     4B. How to Use the Driver
     4C. Using java2.sql.IDSDriver
     4D. Using j102.sql.IDSDriver
  5. Native Database Interface
  6. Changes


1. Introduction
===============

This is the (*90*) days evaluation version of IDS Server.  There is  a
maximum concurrent thread limit of 16  enforced  in  this  evaluation.
Additional connections will be refused if the  total  number  of  JDBC
and .NET client connections exceeded 16.  The  production  version  of
IDS Server supports unlimited concurrent connections.  If you  try  to
run  the  IDS  Server after the evaluation period expires, the program
will only function normally for 10 minutes.

If after the 90 day trial  you  decided  to  purchase  the  production
version of the IDS Server, please fill out the form in "ORDER.TXT" and
follow the instructions for various payment methods.

The change of United States encryption export policy in  January  2000
allows IDS Software to deliver full strength cryptography technologies
to licensed IDS Server customers outside  of  U.S. and  Canada.   This
includes 128-bit Blowfish,  56-bit DES and  112-bit Triple DES ciphers 
and 2048-bit RSA and ElGamal digital signatures.  It  also  marks  the
end of the Export version of  IDS  Server.  However,  this  evaluation
only supports Export grade encryption, which includes 40-bit  DES  and
Blowfish ciphers  and  512-bit  modulus  public-key.  For  the  latest
information on IDS Server, visit the IDS Software Home Page at

                     http://www.idssoftware.com/


2. UNIX Installation
====================

The Unix distribution is a single tar file.  To install, login as root
and extract the archive to create an installation directory  with  the 
pattern "idss-x.y.z".  Then run the C-Shell script  "install-idss"  in
this directory to finish the installation.  For example,

  $ tar xf IDSS40LP-lnx.tar
  $ cd idss-4.0
  $ ./install-idss

After installing the IDS Server, you can use a  web  browser  to  view
web page idss-x.y.z/File/wwwroot/getstart.htm.   This  page will guide
you through the rest of the installation procedure.


3. How to Get Help
==================

The "IDS Server User's Guide" is the most comprehensive  documentation
for IDS Server, and it is the best source of help.  For  configuration
issues, please refer to Chapter 1.  If you are  only  using  the  JDBC
feature of IDS Server,  you can start with Chapter 4.  Chapter 2 and 3
are devoted to IDS .NET SQL Driver and .NET  Data  Provider.  Finally,
Chapter 5 and 6  discuss  Secure  dbAcces  which  is  the  ability  to 
encryption the connection between the JDBC driver and IDS Server.

The regularly updated "IDS Software FAQ" is another  great  source  of
reference, and it is at  http://www.idssoftware.com/faq.html

If you have more technical questions, please feel free to  contact  us
by email info@idssoftware.com.


4. JDBC Quick Start
===================

4A. How to Select A Driver
--------------------------
The built-in JDBC API in J2SE 1.4 is JDBC 3.0.  The built-in JDBC  API
of J2SE 1.3 and 1.2 is JDBC 2.1, while the older JDK 1.1 has JDBC 1.0.
IDS  JDBC  Driver  supports  all  of  these  J2SE  and  JDK  releases.
Developers can select among six different versions of this driver base
on their deployment requirements.  There are essentially two types  of
deployment: 1) stand-alone Java applications, servlets and  Web  Start
applications; 2) Java  applets.  The  following  table  shows  how  to
select an IDS JDBC Driver that is right for you.  All driver  archives
are installed in directory "IDSServer\classes".


Target Environment                                      Driver Archive
------------------------------------------------------  --------------
* JDBC 3.0 applications, servlets and Web Start         jdk14drv.jar
  applications running with J2SE 1.4.x, J2EE 1.4.x.     
* JDBC 3.0 applets for browers with Java plug-in 1.4.x
------------------------------------------------------  --------------
* JDBC 2.1 applications, servlets and Web Start         jdk13drv.jar
  applications running with J2SE 1.3.x and 1.2.x, 
  J2EE 1.3.x and 1.2.x.
* JDBC 2.1 applets for browsers with Java plug-in 
  1.3.x and 1.2.x.
------------------------------------------------------  --------------
* JDBC 1.0 applications running with JDK 1.1.x.         jdk11drv.jar
* JDBC 1.0 applets for version 4 or newer Web
  browsers (1) with default Java VM.
------------------------------------------------------  --------------
* JDBC 2.1 applets for version 4 or newer Web           jdk13drv-v4browser.jar
  browsers (1) with default Java VM.
------------------------------------------------------  --------------
* JDBC 2.1 applets for version 3 or newer Web           jdk12drv-v3browser.zip
  browsers (2) with default Java VM.                    (3)
------------------------------------------------------  --------------
* JDBC 1.1 applets for version 3 or newer Web           jdk11drv-v3browser.zip
  browsers (2) with default Java VM.                    (3)
------------------------------------------------------  --------------

(1) Version 4 or newer Web browsers are: Internet Explorer 4.0 to 6.x,
    Communicator 4.x. Their default Java VM are JDK 1.1 compatible VM.
(2) Version 3 or newer Web browsers are: Internet Explorer 3.x, Netscape
    Navigator 3.0x, all version 4 or newer Web browsers.  Their default
    Java VM are JDK 1.0.2 compatible VM.
(3) IDS Software no longer actively supports Internet Explorer 3.x and
    Netscape Navigator 3.x.These driver archives  are  from  the  previous
    release of IDS Server 3.5.7.

IDS JDBC Driver consists of  several  Java  packages.  Driver  archive
jdk14drv.jar, jdk13drv.jar and jdk11drv.jar contains  package  ids.sql
that implements the standard java.sql package of the JDBC  API.  These
the first two also  contains  package  ids.jdbc  that  implements  the
javax.sql package of JDBC 3.0 and 2.1 API.

Driver archive jdk13drv-v4browser.jar contains package java2.sql  that
implements the JDBC 2.1 API for Web browsers with a JDK 1.1 compatible
Java VM (Internet Explorer 4.0 to 6.x and Netscape Communicator  4.x).
jdk12drv-v3browser.zip  and  jdk11drv-3browser.zip  contains   package
j102.sql that implements the JDBC API for Web browsers with a JDK 1.02
compatible Java VM (Internet Explorer 3.x and Netscape Navigator 3.x).


4B. How to Use the Driver
-------------------------
Three steps are required to use the IDS JDBC Driver in a Java program:
1) Composing a Connection URL,  2) Initialize the driver,  3) Making a
connection.  A typical Connection URL for looks like this:

  "jdbc:ids://ip_address:12/conn?dsn='MyDB'&uid='MyName'&pwd='sECreT'"

where ip_address:12 is the address and port number of the  IDS Server.
The default port number is 12, but it can be changed in the "idss.ini"
file. 'MyDB' is the ODBC data source name (or Oracle server alias, see
next topic). 'MyName' is the user ID of the target database.  'sECreT'
is the password of the database user ID.  For a complete reference  on
the syntax of the Connection URL, please refer to Section 4.4 and  4.5
of the "IDS Server User's Guide".

There are several ways to initialize the driver and make a connection.
If you like to use the DriverManager.getConnection() method,  you  can
use the following:

    Class.forName("ids.sql.IDSDriver").newInstance();
    Connection conn =
        DriverManager.getConnection(url, "scott", "tiger");

If you like to use the Driver.connect() method, you can create a  JDBC
Connection instance like this:

    Driver drv = (Driver)
        Class.forName("ids.sql.IDSDriver").newInstance();
    Connection conn = drv.connect(url, prop);

There is a much simpler alternative looks like the following. The only
drawback is that this requires you to include the "\IDSServer\classes"
directory in the CLASSPATH environment before compiling.

    Driver drv = new ids.sql.IDSDriver();
    Connection conn = drv.connect(url, prop);


4C. Using java2.sql.IDSDriver
-----------------------------
This driver is for applets using JDBC 2.1 features runing in Version 4
browsers (see 4A.(1)).  When writing applets using this driver,  first
import the java2.sql.* package instead of java.sql.*.  Then initialize
the  driver  class  java2.sql.IDSDriver  instead  of ids.sql.IDSDriver.
The syntax of the Connection URL remains the same. For example,

    import java2.sql.*;  // Instead of import java.sql.*;
    ...

    Driver drv = new java2.sql.IDSDriver();
    Connection conn = drv.connect(url, prop);

You must add archive  "IDS_Server\classes\jdk13drv-v4browsers.jar"  to
the CLASSPATH environment variable before compiling your applet.


4D. Using j102.sql.IDSDriver
----------------------------
This driver is for applets using JDBC 2.1 features runing in Version 3
browsers (see 4A.(2)).  When writing applets using this driver,  first
import the j102.sql.* package instead of java.sql.*.  Then  initialize
the  driver  class  j102.sql.IDSDriver  instead  of ids.sql.IDSDriver.
The syntax of the Connection URL remains the same. For example,

    import j102.sql.*;  // Instead of import java.sql.*;
    ...

    Driver drv = new j102.sql.IDSDriver();
    Connection conn = drv.connect(url, prop);

You must add archive  "IDS_Server\classes\jdk12drv-v3browsers.zip"  to
the CLASSPATH environment variable before compiling your applet.


5. Native Database Interface
============================

Native Database Interfaces use database vender's native API to  access
the database instead of ODBC drivers.  IDS Server now supports  native
interfaces for Oracle (9i, 8i, 7.3), Sybase (12, 11, 10), Informix and
Microsoft SQL Server 2000 and SQL Server 7.

For a complete discussion on how to configure  and  use  these  native
interfaces, refer Section 1.8 of the IDS Server User's Guide.


6. Changes
==========

Version 4.1.5  June 10, 2004

  New Features
  ------------
  + Specifying "dbms=odbc" and "charSet=ASCII" or "charSet=ISO8859_1" in
    Connection URL can force IDS Server to load the ANSI ODBC interface 
    instead of the Unicode ODBC interface, which offers higher text data
    processing performance for English only (8-bit) database data.
  + Upgraded Secure dbAccess to OpenSSL 0.9.7g equivalent.

  Native SQL Server Interface Fix
  -------------------------------
  * Prepared statement submitted with long SQL text and non-forward-only 
    ResultSet type can cause "Internal network or protocol error".

  IDS Server Fixes
  ----------------
  * Allow "shield=" to have no value in Custom DSN definition to disable
    dbShield, where before the line must be removed to disable dbShield.

Version 4.1.4  September 20, 2004

  New Feature
  -----------
  + IDS JDBC and .NET SQL Driver now accepts both semi-colon ';' and '&' 
    as parameter delimiter in Connection URL.

  IDS Server Fixes
  ----------------
  * IDS Server for Solaris may terminate when ECONNABORTED signal is 
    received in Solaris 9.
  * Native SQL Server interface returns "Internal syntax error" when 
    inserting a timestamp into a smalldatetime column.
  * Native Sybase interface returns no rows for DatabaseMetaData.getTables.
  * The ODBC interface truncates long error messages.
  * The HTML body for HTTP errors is incomplete.

Version 4.1.3  June 30, 2004

  New Features
  ------------
  + Upgraded Secure dbAccess to OpenSSL 0.9.7d equivalent.
  + Added binary file db_odbc-r.o (Unicode) and db_odbcA-r.o (ANSI) for 
    relinking the corresponding ODBC interface (db_odbc.so and db_odbcA.so)
    with the ODBC Driver Manager or ODBC drivers of the user's choosing.

  IDS Server Fixes
  ----------------
  * Both Native SQL Server and Sybase interface did not return stored procedure 
    status code correctly when executing CallableStatement.
  * Both Native SQL Server and Sybase interface returned wrong smallmoney and 
    money column and parameter values.
  * Executing RAISERROR in a Sybase stored procedure does not produce an 
    exception in IDS JDBC and .NET Client Components.
  * ODBC interface returned error "[HY104]Invalid precision value" when setting
    SQL_NUMERIC or SQL_DECIMAL parameters of prepared statements.
  * ODBC interface preparing statement pattern "{call abcdefg(?)}" enters an 
    infinit loop.

  Native Oracle Interface Fixes
  -----------------------------
  * Calling clearParameters() repeatedly in a Oracle 8i or Oracle 9i connection
    may cause Oracle error 21500 and lead to the termination of IDS Server process.
  * Added a work-around for an OCI bug in scrollable ResultSet such that if fetch
    forward beyond the last row then fetch backward immediately, it returns the 
    second row from the end instead of the last row of the ResultSet.

  Native SQL Server Interface Fixes
  ---------------------------------
  * When IDSResultSet is of TYPE_SCROLL_SENSITIVE and CONCUR_UPDATABLE, method
    beforeFirst() did not work unless it is already before the first row.
  * Connecting to SQL Server 2000 and setting a float (32-bit) parameter using
    a real (16-bit) value caused "[HY000][IDS Server]Internal syntax error."
  * Did not convert NUMERIC/DECIMAL type to MONEY parameters, which lead to 
    error "[HY000][SQL Server]Disallowed implicit conversion from data type 
    varchar to data type money, table 'X', column 'Y'. Use the CONVERT function
    to run this query."
  * Failed to return an update count in a stored procedure when it is followed 
    by a resultset. Sometimes it may also incorrectly return an extra update 
    count of 0 at the end of a multi-result stored procedure call.
  * Throwed "Unknown token 0x04" exception when executing stored procedure that 
    contains command "FETCH FIRST FROM a_cursor".
  * Executing "{call sp_help('sp_help')}" caused exception "[01000][SQL Server]
    sp_help line 99" and "[01000][SQL Server] sp_help line 161".

  IDS JDBC Driver Fixes
  ---------------------
  * When ResultSet Cache is enabled, IDSResultSet.previous() always returns 
    false after reaching beyond the last row with IDSResultSet.next().
  * IDSResultSet returns one row short when calling rs.previous() to traverse
    backward after reaching beyond the last row with rs.next().
  * IDSPrepared.getMetaData() should confirm with JDBC API 3.0 to return null
    instead of throwing an SQLException when the database does not support 
    returning ResultSetMetaData before the statement is executed.
  * IDSPConnection throws NullPointerException when adding a listener.

Version 4.1.2  February 28, 2004

  IDS Server Fixes
  ----------------
  * Native SQL Server interface incorrectly returns GUID type value from 
    SQL Server as 16 byte binary instead of a 36 character string in
    confirming format.

  IDS JDBC Driver Fixes
  ---------------------
  * When SSL is enabled and the IDS Server terminates the connection due to
    DefSessionTime expiring or other reasons, the client components throws
    a misleading exception "SSL V3.0 record layer error". The appropriate
    exception message should be "Unexpected end of socket stream".
  * The finalizer of IDSStatement, IDSConnection and IDSLob make a needless
    call that will acquire a lock on the corresponding IDSConnection object.

Version 4.1.1  January 9, 2003

  IDS Server Fixes
  ----------------
  * Native SQL Server interface sometimes causes "Unknown token 0x00" error
    when stale JDBC ResultSet or Statement are closed by garbage collection.
  * Native SQL Server interface failed to parse N'unicode' construct, which 
    often leads to "Unclosed quotation mark error".
  * ODBC and OLE DB interface may return bad ResultSetMetaData when ResultSet
    is TYPE_FORWARD_ONLY and ResultSet Caching enabled by method setFetchSize,
    setCacheSize, etc.
    
  IDS JDBC Driver
  ---------------
  * When evaluation expires, NullPointerException is thrown instead of
    SQLException "IDS Server unavailable (evaluation period expired)"
  
Version 4.1  November 25, 2003

  New Features
  ------------
  + Upgraded Secure dbAccess to OpenSSL 0.9.7c equivalent.

  IDS Server Fixes
  ----------------
  * Execute an update in a Statement created with a ResultSet type other than
    TYPE_FORWORD_ONLY causes this exception which should have been an warning:
    "[01000][SQL Server]Executing SQL directly; no cursor. line 0"
  * Native SQL Server interface failed to prepare complex queries with union,
    join and sub-queries.
  * ODBC interface multiple resultset doesn't work if the statement is created
    with ResultSet type TYPE_FORWARD_ONLY. If a returned ResultSet is fetched
    till its end (beyond last row), remaining results are discarded.
  * ODBC interface on Solaris fails to insert parameters via setXXXStream().

  IDS JDBC Driver Fixes
  ---------------------
  * If the data source is defined as read-only, the JDBC driver
    still returns false for calls to Connection.isReadOnly().

Version 4.0.1  September 1, 2003

  New Features
  ------------
  + A public method ids.data.IDSConnection.getConnection() is added to 
    IDS .NET Data Provider to allow access to the underlying IDS .NET
    SQL Driver interface.
  + IDS Server Proxy source code idsx.c is updated for compiling with
    Apache 2.0.x. Users must define symbol DO_APAPI2 at compile time.
  + The native Sybase interface is now in par with the native SQL Server
    interface with added support to ParameterMetaData, set parameters by
    name, get auto-generated keys and other improvements and bug fixes.
  + Linux and Solaris versions now also have the db_odbcA.so module that
    works with older ODBC Driver Managers with no Unicode support.

  IDS Server Fixes
  ----------------
  * The ODBC interface returns wrong stored procedure names with trailing
    garbage characters.
  * On Linux and Solaris, IDS Server can now be shutdown and quickly 
    restarted again without the port number in used error message.

  IDS JDBC Driver Fixes
  ---------------------
  * IDSResultSet.close() now requires a client/server round-trip. This
    method normally need not be called, because closing the Statement,
    executing the Statement again, or getting the next ResultSet will 
    automatically close the previous ResultSet.

Version 4.0  April 1, 2003

  New Features
  ------------
  + Supports .NET applications via IDS .NET SQL Driver and Data Provider.
  + Custom data source prevents unauthorized access to internal data source.
  + dbShield prevents the execution of SQL command unknown to administrator.
  + Native interface to MS SQL Server 2000 and 7 that does not use ODBC.
  + Clob and Blob support for MS SQL Server that maps text, ntext and image
    columns to Clob and Blob data types.
  + Built-in connection pooling and  statement pooling IDSCPDataSource.
  + Supported JDBC 3.0 API features include: scrollable  updatable
    resultset, batch updates, bind parameter by name, parameter meta-data,
    connection and statement pooling, savepoints, auto-generated keys, etc.
  + JDBC 3.0 Distributed Transaction support for Oracle 9i and 8i.
    Distributed Transaction for Microsoft SQL Server is under development.
  + Transparent Unicode handling for MS SQL Server and ODBC 3.5.

  IDS JDBC Driver Fixes
  ---------------------
  * Fixed a SSL library bug that causes "SSL V3.0 record layer error" 
    exception during high encrypted traffics.
  * Fixed a Native Oracle Interface bug in 4.0 Beta that causes "ORA-00162"
    errors if long data source names are used.
  * IDSDBMetaData.GetTables() doesn't work for Native SQL Server Interface
    if the table type is not NULL.
  * IDSDBMetaData.supportsSchemasInXXX() methods report wrong information.

Version 4.0 Beta  January 6, 2003

  IDS JDBC Driver Fixes
  ---------------------
  * Calling close() on streams return by a Clob/Blob cause "Bad Request".
  * Blob.position(Blob, long) and Clob.position(Clob, long) do not work
    if lob size is < 16k.
  * For Oracle8 interface, if the select list has a long column ahead of
    a normal one and they are retrieved out of order, it will cause
    exception "[HY000]ORA-24306: bad buffer for piece (24306)".

Version 3.5.7  January 7, 2002

  IDS JDBC Driver Fixes
  ---------------------
  * No longer uses legacy netscape.security package if the browser is
    Netscape 6 or Internet Explorer with Java Plug-in 1.3.1 or higher.

  IDS Server Fixes
  ----------------
  * Fixed a Solaris version crash problem when the Oracle 8 server is
    shutdown while IDS Server is connected to this Oracle 8 server.

Version 3.5.6  October 16, 2001

  IDS JDBC Driver Fixes
  ---------------------
  * The setTimestamp/Date/Time() and getTimestamp/Date/Time() methods
    with a Calendar parameter can now properly insert and retrieve time 
    value in the time zone of the Calendar parameter. Refer to FAQ J15
    on our Web site for a in-depth discussion on these methods.
  * The built-in connection pooling of IDSCPDataSource now properly 
    calls rollback() and setAutoCommnit(false) if the connection is 
    set to manual commit when the connection is returned to the pool.
  * Statement.setMaxFieldSize(int) does not handle value 0 (unlimited)
    correctly, which leads to data truncation error.

Version 3.5.5  September 17, 2001

  New Feature
  -----------
  + IDS JDBC Driver now accept connection string option "&dbms=odbc2"
    which directs the IDS Server to connect to the ODBC driver as an 
    ODBC 2.x application.  The default is for IDS Server to connect to
    the ODBC driver as an ODBC 3.x application.  This option provides 
    backward compatibility to applications developed using IDS Server 
    3.2.2 or older, or the Sun JDBC-ODBC Bridge in JDK 1.2.2 or older.

  IDS JDBC Driver Fixes
  ---------------------
  * Microsoft SQL Server returns NCHAR as type -8, NVARCHAR as type -9,
    and NTEXT as -10, which are not defined in java.sql.Types. This fix
    maps them to CHAR, VARCHAR, and LONGVARCHAR respectively.
  * PreparedStatement.clearParameters() has a side effect that may cause
    SQLException "[HY104][...]Invalid precision value".
  * IDSPrepared.setCharacterStream() fails to insert all data if the size
    of the stream is greater than 64k.
  * Native Oracle8 Interface cannot completely insert or retrieve LONG or
    LONG RAW columns larger than MaxFieldSize.
  * Native Oracle Interface fails to parse some PL/SQL code.

Version 3.5.4  June 15, 2001

  New Feature
  -----------
  + IDS JDBC Driver can detect the "Via:" header added by proxy servers
    and automatically falls back to use HTTP Tunneling.

  IDS JDBC Driver Fixes
  ---------------------
  * When the evaluation expires or exceeds the 16 thread limit, Version 
    3.5.3 and 3.5.2 throw the wrong SQLException "java.io.IOException: 
    Bad data type (possible bad network link)". The correct SQLException
    message is "IDS Server unavailable (evaluation period expired)" or
    "IDS Server unavailable (evaluation thread limit exceeded)" or

Version 3.5.3  May 11, 2001

  IDS JDBC Driver Fixes
  ---------------------
  * Native Oracle Interface cannot do UPDATE statement with two or 
    more LOB columns.
  * Using the technique described in Section 4.6.5 of the User's 
    Guide, IDS Server returns "Internal Server Error" if setBytes() 
    instead of setXXXStream() is called after setNull().
  * Blob.length() and Clob.length() returns incorrect value.
  * If a LOB object is garbage collected, the Connection is closed.
  * IDSPrepared.setCharacterStream() was broken in 3.5.2.
  * IDSPrepared.setObject(int, Object, int) does not use the current
    character encoder if the 2nd parameter is a String. Also, this 
    method changes the data type to LONGVARCHAR or LONGVARBINARY if
    the size of the String or byte array is greater than 255, which
    is the same behavoir of setString() and setBytes().  This fix 
    made the method respect the data type specified in the last 
    parameter regardless of the data size.
  * Fixed a problem with Internet Explorer running the DES cipher
    that throws "SSL V3.0 padding error" exception.

Version 3.5.2  April 20, 2001

  New Features
  ------------
  + Two enhancements for Native Oracle Interface: Insert new BLOB/CLOB
    columns in one statement, and calling stored procedure with more 
    than one returned ResultSets. Refer to Section 4.6.5 of the User's
    Guide for details.
  + A new design of the built-in connection pooling of IDSCPDataSource
    class. Refer to Section 4.5.4 of the User's Guide for details.

  IDS JDBC Driver Fixes
  ---------------------
  * If the applet is not signed, ids.security.IDS class causes the 
    driver (jdk11drv.zip) fail to be loaded in Java Plug-in 1.2 or
    higher and Netscape 6.
  * Calling Oralce stored procedure using OCI 8 (dbms=oracle8) is not
    working. Although it works for OCI 7.3 (dbms=oracle7), but it can
    not handle more than one return ResultSet. Both problems are fixed
    in 3.5.2. Refer to Section 4.6.5 of the Users's Guide for details.
  * IDS JDBC Driver now uses the default platform character encoding of
    the running Java VM.  Users no longer have to explicitly set the
    encoding type.
  * IDSConnection.getCatalog() is faulty such that it does not return
    the new value set by setCatalog().
  * Setting charSet to Unicode in the Conneciton URL causes exception
    "Remote host is not IDS Server".
  * Create and close Oracle 8i statements causes memory leak. The leak
    become significant in long running servlets.
  * IDSStatement.getUpdateCount() returns -1 for multi-statement DML
    (INSERT/DELETE/UPDATE) after getMoreResults() returns false.

Version 3.5    December 15, 2000

  New Features
  ------------
  + Added JDBC 2.0 BLOB/CLOB support for Oracle 8i
  + Added JDBC 2.0 DataSource and ConnectionPoolDataSource support
  + Added RSA algorithm to Secure JDBC and 8 new cipher-suites
  + Added JDBC connection via named pipe on Windows NT/2000 platforms
  + Added getSocketType() method to IDSConnection (see 4.7.2 of guide).
  + Added IDSResultSet.setCharacterEncode() and getCharacterEncoder()
    for better internationalization support.
  + Automatically set default character encoder if the default character
    set of the Java VM is double byte.

  IDS JDBC Driver Fixes
  ---------------------
  * IDSDataSource class missing setKeyClass() and getKeyClass() methods.
  * The driver does not properly return SQL state and native error code.
  * The driver does not return multiple SQL errors and warnings.
  * Set default rounding mode to BigDecimal.ROUND_HALF_EVEN to make 
    the driver more user friendly for JDBC 1.x programs.
  * updateRow() incorrectly tries to update all columns even when only
    some of the columns are change.
  * Removed IDSDataSource dependency on java.sql.DriverManager class.

Version 3.5 Beta    September 29, 2000

  IDS JDBC Driver Fixes
  ---------------------
  * IDSPrepared.setXXX(int, null) throws NullPointerException, which 
    should have been handled as setNull(int)
  * IDSPrepared.setCharacterStream() throws NullPointerException
  * IDSResultSet.getCharacterStream() does not use the character-set
    converter set for the Statement.
  * Calling getInt() on a decimal column throws NumberFormatException
    Now it returns an integer truncated from the decimal number.
  * If moveToInsertRow() and insertRow() are called right after the 
    ResultSet is created, it causes "[24000][ODBC Driver Manager] 
    Invalid cursor state" error.

Version 3.2.2    February 25, 2000

  New Features
  ------------
  + You can now set DefSessionTime or KeepAliveTimeout to 0 as infinit
    time-out, so that IDS Server never drops a connection. However,
    such configuration is not recommended.
  + Native Oracle Interface now support calling stored function that
    returns a ResultSet. To call such function, use the following code:

        CallableStatement call =
           conn.prepareCall("{?=call func1(?) }");
        call.registerOutParameter(1, Types.OTHER);
        call.setString(2, "dummy only");
        ResultSet rs = call.executeQuery();

    In this example, stored function 'func1' takes a String parameter
    and returns a ResultSet. Note that the parameter 1 (return value)
    is registered as java.sql.Types.OTHER type.

  IDS JDBC Driver Fixes
  ---------------------
  * ResultSet.getRow() returns -1 after calling ResultSet.last() method
    on a scrollable resultset.
  * ResultSet.afterLast() method doen't work at all.
  * Native Oracle Interface Connection.setReadOnly(true) doesn't work in
    all cases.
  * Native Oracle Interface IDSDBMetaData.getProcedureColumns() and
    getProcedure() doesn't return functions/procedures inside a package.
  * Native Oracle Interface fails to parse {?=call xyz()} unless there
    is a space between ? and =.
  * Closing the 1st Statement then opening a second one on a single
    connection takes longer than not closing the first Statement.

  IDS HTML Extensions Fixes
  -------------------------
  * If HTX files are moved on a remote Web server, the cache copy is
    always used.

Version 3.2.1    November 1, 1999

  New Features
  ------------
  + IDS Server can now bind to a specific IP address on a multi-home 
    server machine with multiple IP addresses.
  + Further improves ResultSet Caching performance, especially for 
    stand-alone Java applications on fast machines and for Scrollable
    and Updatable ResultSet.

  IDS JDBC Driver Fixes
  ---------------------
  * Creating statement with ResultSet option TYPE_SCROLL_SENSITIVE and 
    CONCUR_UPDATABLE when using Microsoft SQL Server ODBC Driver as 
    data source throws SQLException "[S1092][Microsoft][ODBC SQL Server 
    Driver] Invalid  attribute/option indentifier."
  * Using ResultSet Cache with Native Oracle Interface throws SQLException
    "[S1000]Unsupported feature."
  * Force HTTP Tunneling when the browser does not use a proxy server 
    for Web access (direct connect) throws IOException.

Version 3.2   August 30, 1999

  New Features
  ------------
  + Support JDBC 2.0 Batch Updates and Scrollable ResultSet.

  IDS JDBC Driver Fixes
  ---------------------
  * Statement.setFetchDirection() should throw exception if direction 
    is not FETCH_FORWARD for scrollable and updatable ResultSet.

Version 3.2 Beta   July 21, 1999

  IDS JDBC Driver Fixes
  ---------------------
  * Method CallableStatement.setNull() is ineffective it if called after 
    registerOutParameter() on an IN and OUT parameter.

Version 3.1.2   July 21, 1999

  IDS Server
  ----------
  * Fixed a rare Windows 30-day evaluation period control problem. This
    bug does not effect the Solaris and Linux version.
  * Several minor changes in the Native Oracle Interface so that class
    ids.sql.IDSDBMetaData returns accurate database meta information.

Version 3.1.1   April 15, 1999

  Genernal
  --------
  * The IDS Server CGI Gateway is renamed to IDS Authentication Gateway.
    The old name has created much confusion on the purpose of this program.
    Refer to the rewritten Section 2.1.3 of the User's Guide for detail.

  IDS JDBC Driver Fixes
  ---------------------
  * Both the HTTP Tunneling and the IDS Authentication Gateway (formerly
    known as IDS Server CGI Gateway) cannot use the web browser's own 
    authentication dialog box.
  * HTTP Tunneling sometimes throws EOFException when prepared statements 
    are closed by garbage collector instead of explicitly calling close().
  * When HTTP Tunneling is enabled, the multi-threaded statement option 
    does not work properly.
  * When both SSL and HTTP Tunneling are enabled, the server may cause
    a "SSL V3.0 record layer error" exception.

Version 3.1    February 18, 1999

  New Features
  ------------
  + HTTP Tunneling for IDS JDBC Driver to connect across firewalls.

  IDS JDBC Driver Fixes
  ---------------------
  * Fixed a HTTP Tunneling problem in 3.1 beta that may lock up IE and
    Netscape after a JDBC connection is disconnected.

Version 3.1 Beta    December 18, 1998

  IDS JDBC Driver Fixes
  ---------------------
  * Further ResultSet Caching fix for Internet Explorer when the total 
    number rows in the query is less than the cache size.
  * PreparedStatement.setXXX() and setObject() is not working properly
    if the parameter is an empty string.

Version 3.0.2    October 30, 1998

  IDS JDBC Driver Fixes
  ---------------------
  * ResultSet Caching sometimes return wrong rows when the total number
    rows in the query is less than the cache size.
  * ISAPI DLL "idss.dll" causes JDBC connections to fail with exception
    "Incompatible IDS JDBC Driver..."
  * Exception caused by calling ResultSet.close() if the ResultSet was
    returned by DatabaseMetaData.

  IDS HTML Extensions Fixes
  -------------------------
  * When a wrong database username or password is submitted, the server
    may become unstable.

Version 3.0.1    August 20, 1998

  New Features
  ------------
  + ResultSetType and ResultSetConcurrency support. Please refer to
    Section 4.6.4 of the IDS Server User's Guide for details.

  IDS JDBC Driver Fixes
  ---------------------
  * Problem with Oralce ODBC Driver 2.05.0301 which causes exception
    "[22026]String data, length mismatch" when calling setUnicodeStream().
  * Problem with Oracle ODBC Driver 2.05.0301 which causes error 
    on a LONG or LONG RAW column when the column size > MaxFieldSize and  
    is retrieved via an InputStream from Statement.getXXXStream().
  * Problem with Microsoft Oracle ODBC Driver 2.573.2927 which causes
    numeric OUTPUT parameter of a stored procedure to be truncated.
  * ResultSet.getCursorName() returns null if Statement.setCursorName()
    has not been called before.
  * Problem with SQL Server ODBC Driver when returning two LONGVARxxx
    columns in the same query.
  * InputStream.available() returns 0 if column size < MaxFieldSize.
    The InputStream object is created from Statement.getXXXStream().
  * Statement.cancel() now works properly, where before it closes the 
    statement altogether.
  * "String data: right truncate" error with SQL Server ODBC driver
    when handling VARCHAR(n) type parameters in PreparedStatements.

Version 3.0    June 20, 1998

  New Features
  ------------
  + Supports native Oracle database interfaces.  Native interfaces 
    do not rely on ODBC drivers.
  + Supports running IDS Server as an ISAPI or NSAPI application.
  + The IDS Server API is now available for developers to integrate 
    IDS Server into their applications.
  + By default, shares the same network connection and server-side 
    thread for all Statements created from the same Connection. This
    helps single-threaded JDBC applications run much more efficiently.
  + All JDBC connect options can now be specified in both the URL and
    the java.util.Properties parameter.
  + Honors HTTP keep-alive headers for higher Web server performace.
  + Uses HTTP/1.1 chunked transfer-encoding to achieve keep-alive 
    after HTX processing.
  + Uses HTTP cookies to identify different HTX client sessions, so IDS
    Server can service HTX clients connected through a proxy server.
  + Outputs URL encoded HTX macros, making it easy to create hyper-
    linked drill-down reports instead of using <FORM> tags.
  + Generates NCSA style access log for both HTTP and JDBC accesses.

  IDS JDBC Driver Fixes
  ---------------------
  * Bug with ResultSet Caching that hangs some Java programs when 
    the cache size is greater than number rows returned.
  * ResultSet.getObject() does not properly return null for null 
    columns of primitive data type (Boolean, Integer, Long, Float, Double).
  * Problem with Export version which cannot explicitly set 
    cipher suite DH_ELGAMAL_WITH_DES40_CBC_SHA.
  * "Invalid cursor state" exception when clearParameter()
    is called more than once on the same PreparedStatement.
  * Database locking bug when auto-commit is disabled and the JDBC 
    program closes the Connection without calling commit().

  IDS HTML Extensions Fixes
  -------------------------
  * Bug in 3.0 beta which causes client cookies expires when the
    client's system clock is not correct (e.g. 1 hour behind).
  * Bug in 3.0 beta which prevents untrusted clients login through
    IDSC.EXE to access IDS Server as a web server.

Version 3.0 Beta    May 1, 1998

  IDS JDBC Driver Fixes
  ---------------------
  * "Invalid descriptor index" exception with SQL Server when calling
    PreparedStatement.setXXXStream().
  * Bug in DatabaseMetaData.getTables(,,, String types[]) when 
    there are more than one table types is specified.
  * JDK1.1 encoding does not translate the initial connection 
    exception message.
  * NullPointerException if method close() is called on streams
    created by getXXXStream().
  * Problem that if CallableStatement.setXXX() is called before 
    registerOutputParameter(), the output parameter is truncated if it 
    is longer than the input parameter.
  * IDS JDBC Driver 2.0 or older returns "Unexpected end of..." if the 
    IDS Server is 2.5. The right message should be "Incompatible..."

  IDS HTML Extensions Fixes
  -------------------------
  * Bug causing <fetch> tags to fail when they are nested deeper
    than 8 levels.
  * Bug causing <#macro#> processing sometimes fails or ends 
    prematurely.
  * Timeout problem when submitting large size HTML <FORM>.
  * HTX <if> tag expression #xyz%=s# does not trim the string.
  * The default #$BASE# now takes the value from the HTTP "Host:" header.

Version 2.5    January 1, 1998

  * Fixed bug that causes a "Not all SQL parameters were bound." error
    in HTX files when used with SQL Server ODBC Driver V3.05.0303.
  * Fixed "[22003][Microsoft][ODBC SQL Server Driver]Numeric value out of range"
    problem with SQL Server ODBC Driver V3.05.0303.
  * Fixed bug that the "DatabaseIdleTime" is always 10 minutes regardless
    the setting in the "idss.ini" file.
  * Fixed "runtime error R6025" that shutdowns the IDS Server.

Version 2.5 Beta

  * Fixed Oracle bug which stored procedure causes "Invalid character"
    or "Invalid SQL statement" error.
  * Fixed Oracle bug which returned character column contains an extra
    null character at the end.
  * Fixed getXXXStream() bug when returned column > 128k.

Version 2.0.2

  * Fixed bug in JDBC CallableStatement when IDS Server is run with
    Microsoft SQL Server ODBC Driver Version 3.50.0303.
  * The "UseOdbcCursor" option introduced in 2.0.1 does not work with
    Microsoft SQL Server ODBC Driver Version 3.50.0303, thus removed.

Version 2.0.1

  * Introduced a new configuration setting "UseOdbcCursor" to idss.ini.
    Setting this value to 1 can enable Microsoft SQL Server ODBC Driver
    to support multiple Statements on a single Connection.
  * Fixed "NoClassDefFoundError: j102.ssl.SSLSocket" exception in 
    Internet Explorer 4.0 final release.

Version 2.0

  * Fixed Web server document date comparison bug due to the use of the 
    obsulete RFC850 date time format in Netscape Navigator.
  * Fixed HTX file name matching bug when the HTX file is not specified 
    using fully qualified URL.
  * Fixed VERIFIER ERROR in SSLContext.class, MD5.class and SHA.class.
  * Fixed "Invalid cursor state" bug when a prepared statement is 
    executed twice.
  * Fixed problems with "idsc.exe" when used with Netscape FastTrack 2.0 
    and O'Reily WebSite 1.1, and allow the use of "nph-idsc.exe".
  * Fixed JDBC driver reporting "ArrayIndexOutOfBoundsException" when
    some systems are under heavy network load.

Version 1.4.2
  * Allows calling getDate() and getTime() on a TIMESTAMP type column 
    in ResultSet.
  * Fixed the problem with returning 'smalldatetime' type columns of 
    MS SQL Server databases.
  * Fixed a bug in returning output only stored procedure parameters of 
    Oracle databases.
  * Fixed a bug in ResultSet.close() if the ResultSet is created from 
    DatabaseMetaData, such that it makes the program easier to exceed 
    the evaluation thread limit.
  * Fixed the available() method of InputStream (created from ResultSet) 
    returning incorrect values for large size data.
  * Fixed 3 faulty methods in DatabaseMetaData: getCatalog(), getSchema() 
    and getTableTypes().
  * Fixed incorrect return values of the three supportsANSI92xxxx() methods
  * Fixed the missing ResultSet column problem in several DatabaseMetaData 
    methods because the underlying DBMS does not return these columns.
  * Fixed the problem with old ResultSet not being properly closed when 
    a Statement instance is used for multiple queries.

-----------
