Unsupported methods and methods that behave differently

The following JDBC API methods are not supported by HCL OneDB™ JDBC Driver and cannot be used in a Java™ program that connects to HCL OneDB databases:
  • CallableStatement.getRef(int)
  • Connection.setCatalog()
  • Connection.setReadOnly()
  • PreparedStatement.addBatch(String)
  • PreparedStatement.setRef(int, Ref)
  • PreparedStatement.setUnicodeStream(int, java.io.InputStream, int)
  • ResultSet.getRef(int)
  • ResultSet.getRef(String)
  • ResultSet.getUnicodeStream(int)
  • ResultSet.getUnicodeStream(String)
  • ResultSet.refreshRow()
  • ResultSet.rowDeleted()
  • ResultSet.rowInserted()
  • ResultSet.rowUpdated()
  • ResultSet.setFetchSize()
  • Statement.setMaxFieldSize()

The Connection.setCatalog() and Connection.setReadOnly() methods return with no error. The other methods throw the exception: Method not Supported.

The following JDBC API methods behave other than specified by the JavaSoft specification:
  • CallableStatement.execute()

    Returns a single result set

  • DatabaseMetaData.getProcedureColumns()
    Example:
    DBMD.getProcedureColumns(String catalog,
                String schemaPattern,
                String procedureNamePattern,
                String columnNamePattern)

    Ignores the columnNamePattern field; returns NULL when used with any server version older than 9.x.

    When you use the getProcedureColumns() method, the query retrieves all procedures owned by informix (including system-generated routines) from the sysprocedures system catalog table. To prevent errors, verify that the stored procedures you are using have been configured with correct permissions on the server.

    For example, if you use one of the following statements:
    getProcedureColumns("","","","") 
    getProcedureColumns("",informix,"","")

    The DatabaseMetaData.getProcedureColumns() method loads all server UDRs or all UDRs owned by user informix. If you chose not to install J/Foundation, or if the configuration parameters for J/Foundation are not set to valid values in your onconfig file, the method fails. Also, if any one UDR is not set up correctly on the server, the method fails.

    For information about how to set up J/Foundation on HCL OneDB servers and how to run Java UDRs on HCL OneDB servers, see the HCL® J/Foundation Developer's Guide. For information about how to set up and run C UDRs, see the HCL OneDB User-Defined Routines and Data Types Developer's Guide.

  • DatabaseMetaData.othersUpdatesAreVisible()

    Always returns FALSE

  • DatabaseMetaData.othersDeletesAreVisible()

    Always returns FALSE

  • DatabaseMetaData.othersInsertsAreVisible()

    Always returns FALSE

  • DatabaseMetaData.ownUpdatesAreVisible()

    Always returns FALSE

  • DatabaseMetaData.ownDeletesAreVisible()

    Always returns FALSE

  • DatabaseMetaData.ownInsertsAreVisible()

    Always returns FALSE

  • DatabaseMetaData.deletesAreDetected()

    Always returns FALSE

  • DatabaseMetaData.updatesAreDetected()

    Always returns FALSE

  • DatabaseMetaData.insertsAreDetected()

    Always returns FALSE

  • PreparedStatement.execute()

    Returns a single result set

  • ResultSet.getFetchSize()

    Always returns 0

  • ResultSetMetaData.getCatalogName()

    Always returns a String object containing one blank space

  • ResultSetMetaData.getTableName()

    Returns the table name for SELECT, INSERT, and UPDATE statements

    SELECT statements with more than one table name and all other statements return a String object containing one blank space.

  • ResultSetMetaData.getSchemaName()

    Always returns a String object containing one blank space

  • ResultSetMetaData.isDefinitelyWriteable()

    Always returns TRUE

  • ResultSetMetaData.isReadOnly()

    Always returns FALSE

  • ResultSetMetaData.isWriteable()

    Always returns TRUE

  • Statement.execute()

    Returns a single result set

  • Connection.isReadOnly()

    Returns TRUE only when connecting to a secondary server in HDR scenario (see the following Important note)

Important: HCL OneDB servers do not currently support read-only connections. For the HCL OneDB JDBC Driver, Version 2.21.JC4, the implementation of the setReadOnly() method from the java.sql.Connection interface has been changed to accept the value passed to it by the calling process. The setReadOnly() method simply returns to the calling process without any interaction to the HCL OneDB database server. (Previous versions of the JDBC driver threw an unsupported method exception.) This change has been made to synchronize the functionality present in the HCL OneDB JDBC Driver to the .NET Core Provider JDBC driver and also to achieve a higher level of compliance in the Sun Conformance Test (CTS).