What's New in 4.1 IDS Server


   IDS Server
   IDS JDBC Driver
  .NET Data Provider
  .NET SQL Driver
   What's New

   IDS Server Trial
   ODBC Drivers
   Other Tools



   JDBC Quick Start

   About Us
   Our Customers


There are two classes of IDS Server: the high performance and efficient Native Engine that runs on Windows/Intel, Solaris/Sparc and Linux/Intel platforms; and the platform neutral Java Engine that runs in all Java environments.

IDS Server supports a wide range of database systems, including Oracle, Sybase, Informix, DB2, Microsoft SQL Server 2000, 7 and 6.x, Ingres, PostgreSQL, MySQL, Yard-SQL, mSQL, all OLE DB and ODBC compatible databases including Microsoft Access, dBase, FoxPro, etc.

IDS Server and its client components also provide three state of the art security feature: Custom Data Source, dbShield and Secure dbAccess (formerly known as Secure JDBC).

  • Custom Data Source hides the details of database connections to prevent unauthorized probing of internal data sources.
  • dbShield defines a set of SQL commands allowed to be run on a Custom Data Source to prevent the execution of any SQL commands not known to the application.  It can also hide the actual SQL statement from the program code, which is often downloadable on public Web sites.
  • Secure dbAccess uses the Secure Socket Layer (SSL) protocol to encrypt the data exchanged between IDS Server and its client components against eavesdroppers and malicious attacks. Cryptography technologies used in SSL includes public-key cryptography, 128-bit Blowfish cipher, Triple-DES cipher, RSA and discrete logarithm digital signatures.

IDS Server and its client components offer a rich set of powerful features that make it easy to develop and deploy complex Internet database applications:

  • Native interface to Microsoft SQL Server 2000 and 7 that does not use ODBC and runs on all Native Engine platforms: Windows/Intel, Solaris/Sparc and Linux/Intel.
  • Clob and Blob support for Microsoft SQL Server that maps SQL Server text, ntext and image columns to Clob and Blob data types.
  • Supports OLE DB data sources to offer better performance for flat file and Windows based databases.
  • ResultSet Caching enables seamless, fast and concurrent process of large query results without special programming or third party tools.
  • Built-in connection pooling and statement pooling features that do not require the use of a big fat application server or third party component.
  • 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. 
  • IDS Server can also serve as a simple Web server, so it is possible to deploy a Internet-based database application using IDS Server alone. 
  • IDS Server can also be embedded in popular Web servers like Apache, Microsoft Internet Information Service and Netscape iPlanet.
  • Supports both unixODBC and iODBC drivers and driver manager on Solaris and Linux platforms.
  • IDS Server Proxy allows IDS Server client components to connect to IDS Server through server-side firewalls via a Web server. 
  • A full set of client-side firewall access features includes connecting using SSL tunneling, SOCKS V5.0, V4.3a and 4.0 protocol, and HTTP tunneling.

IDS Software continues to offer two versions of IDS Server: IDS Server Version 4.1, which supports Secure dbAccess; and IDS Server Version 4.1 Lite, which does not support this security feature. Other features and capabilities of the two are identical.


Version 4.1.5  June 10, 2005

  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 .NET SQL Driver Fix
  * The valueOf(String) method of ids.sql.Date, Time and Timestamp can 
    cause exception "[ArgumentOutOfRangeException: Ticks must be between
    DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks. Parameter name: 
    ticks]".  This may occur when ids.sql.IDSResultSet.getObject(Int32)
    or ids.data.IDSDataReader.GetValues(Object[]) are called directly or
    by calling System.Data.Common.DbDataAdapter.Fill(DataSet).

  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.
  * Running idsskey.exe with "-dl" option crashes the program.

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 on
    Linux and Solaris.

  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
    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
  * ODBC, OLE DB and 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.
  * The OLE DB interface fails to execute FoxPro queries directly with the
    "Accessor is invalid" error.

  IDS JDBC and .NET Client Components
  * 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, 2004

  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 and .NET Client Components
  * When evaluation expires, NullPointerException is thrown instead of
    SQLException "IDS Server unavailable (evaluation period expired)"

Version 4.1  November 25, 2003

  New Features
  + Added OLE DB interface for accessing OLE DB data sources.
  + Upgraded Secure dbAccess to OpenSSL 0.9.7c equivalent.
  + All .NET assemblies are now strongly named assemblies.

  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 fails 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 and .NET Client Components
  * If the data source is defined as read-only, JDBC and .NET client components
    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 and .NET Client Components
  * 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

  New Feature
  + IDSSW.exe is added for launching IDS Server in the foreground of 
    Windows and can be iconized into the taskbar tray. Windows 95/98/ME
    users can now run IDS Server without using the Command Window.

  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

  * 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.
  + Included the "Communicator java.security Patch" to enable Netscape
    Communicator to run Secure JDBC for JDK 1.1 (not available in Lite 
    version). Follow the link in the IDS Server Home Page 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
  * 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 
  * 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.

Copyright c 1997-2006 IDS Software. All rights reserved.