Patch Name: PHSS_25656 Patch Description: s700_800 10.20 HP JDBC DRIVER 1.15 Creation Date: 01/11/08 Post Date: 01/12/11 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: HP SQL/HP-UX A.G3.14 Filesets: ALLBASE-SQL.AB-JDBC,A.G3.14 Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_25656 Symptoms: PHSS_25656: JDBC driver does not handle translations UNICODE<->ROMAN8 Prompt option not supported on MPE client and results in error when used. driver fails to load under JDK 1.2 on MPE or NT fails to handle ESCAPE clause with LIKE expressions Sample app broken on Java 1.2.1. PHSS_21577: Users may see problems with end user tools e.g. StarOffice on Linux, or their own Java application which uses the HP JDBC driver for Allbase. Information about the catalog will not be returned correctly. E.g. the list of tables for the Database may be blank. If tracing is switched on at the server, then the servlog will show a select with a where clause of the form .. column like 'NULL' escape '\' .. whereas it should be .. column is NULL .... Defect Description: PHSS_25656: SR# 8606132652 JDBC driver was not designed to support Roman8 character set In order to support Unicode<->Roman8, some of the methods in classes ByteArray, SolidBuffer and SolidResultSet needs to modified. Roman8 convertion classes are required for this enhancement to work. SR# 8606179196 Creating AWT or Motif window in MPE doesnt make sense since GUI is not supported on MPE. In order to avoid this problem the code has been modified in JdbcDriver.class not to create an AWT or Motif window. SR# 8606110028 Driver loads under JDK 1.2 on MPE or NT SR# 8606154949 Driver can handle ESCAPE clause with LIKE expressions. SR# 5003466086 Sample applications works fine on Java 1.2.1 PHSS_21577: SR# 8606137358 The underlying problem is with methods such as getTables in the DataBaseMetaData interface incorrectly handling 'null'. These methods are used to retrieve information about the structure of the Database. If a parameter to one of these calls is set to =null, rather than ="" then an incorrect select is passed to Allbase so the information is not retrieved correctly. The resolution is to change the methods so that they handle nulls in the same way as an empty string.h DataBaseMetaData methods and handling of 'null' SR: 8606132652 8606179196 8606110028 8606154949 5003466086 8606137358 Patch Files: /opt/allbase/jdbc/READ1ST /opt/allbase/jdbc/RELNOTES /opt/allbase/jdbc/hpjdbc.tar what(1) Output: /opt/allbase/jdbc/READ1ST: None /opt/allbase/jdbc/RELNOTES: None /opt/allbase/jdbc/hpjdbc.tar: TOOLS(ByteArray.jp): Ver:1 $Revision: 1.9 $ $Date: 01/04/16 15:39:20 $ JSOLID(Factory.jp): Ver:1 $Revision: 1.3 $ $Date: 20/0./4. 7.:6.:9. $ JDBC(Jdbc.jp): $Revision: 1.14 $ $Date: 99/04/08 12:10:18 $ JDBC(JdbcCallableStatement.jp): $Revision: 1.10 $ $Date: 99/01/07 07:13:30 $ JDBC(JdbcConnection.jp): $Revision: 1.15 $ $Date: 99/03/30 07:06:52 $ JDBC(JdbcDatabaseMetaData.jp): $Revision: 1.17 $ $Date: 20/0./5. 6.:4.:3. $ JDBC(JdbcDriver.jp): $Revision: 1.15 $ $Date: 01/04/16 15:13:03 $ JDBC(JdbcPreparedStatement.jp): $Revision: 1.10 $ $Date: 99/01/07 08:16:52 $ JDBC(JdbcResultSet.jp): $Revision: 1.13 $ $Date: 99/03/30 07:08:43 $ JDBC(JdbcResultSetMetaData.jp): $Revision: 1.10 $ $Date: 99/03/30 07:09:11 $ JDBC(JdbcStatement.jp): $Revision: 1.11 $ $Date: 99/01/07 08:19:30 $ JDBC(JdbcVersion.jp): $Revision: 1.10 $ $Date: 99/03/30 13:31:44 $ TOOLS(LogonDialog.jp): Ver:1 $Revision: 1.6 $ $Date: 99/04/06 09:56:18 $ JSOLID(ParameterException.jp): Ver:1 $Revision: 1.6 $ $Date: 98/09/22 09:42:34 $ JSOLID(Solid.jp): Ver:1 $Revision: 1.37 $ $Date: 99/03/31 12:02:00 $ TOOLS(tracing.h): Ver:1 $Revision: 1.4 $ $Date: 98/09/22 06:17:30 $ JSOLID(SolidBuffer.jp): Ver:1 $Revision: 1.6 $ $Date: 01/04/16 15:33:06 $ JSOLID(SolidConnection.jp): Ver:1 $Revision: 1.22 $ $Date: 99/01/29 12:47:38 $ JSOLID(SolidDaemon.jp): Ver:1 $Revision: 1.2 $ $Date: 99/05/07 06:17:12 $ JSOLID(SolidException.jp): Ver:1 $Revision: 1.9 $ $Date: 98/11/24 12:51:40 $ JSOLID(SolidParameterSet.jp): Ver:1 $Revision: 1.5 $ $Date: 98/09/22 11:34:01 $ JSOLID(SolidReadThread.jp): Ver:1 $Revision: 1.4 $ $Date: 98/12/22 11:08:47 $ JSOLID(SolidResultSet.jp): Ver:1 $Revision: 1.14 $ $Date: 01/04/16 15:36:37 $ JSOLID(SolidResultSetMetaData.jp): Ver:1 $Revision: 1.7 $ $Date: 98/10/13 08:48:49 $ TOOLS(ThreadInfo.jp): Ver:1 $Revision: 1.1 $ $Date: 98/09/17 06:21:53 $ JSOLID(TimeoutException.jp): Ver:1 $Revision: 1.6 $ $Date: 98/09/22 13:05:45 $ TOOLS(Tracing.jp): Ver:1 $Revision: 1.10 $ $Date: 99/03/31 12:05:09 $ JSOLID(TypeConversionException.jp): Ver:1 $Revision: 1.6 $ $Date: 98/09/22 13:06:24 $ *** SOLID V5.3 HP-UX JDBC Port Monitor built Nov 8 2001 19:01:16 sldmon.c $Revision: 4.40 $ $Date: 20/0./3. 7.:5.:4. $ *** SOLID V5.3 Static Library built Nov 8 2001 18:53:31 sldcrypt.c $Revision: 4.3 $ $Date: 99/09/10 16:47:16 $ sldbuf.c $Revision: 4.2 $ $Date: 99/08/19 16:13:33 $ convapi.c $Revision: 4.13 $ $Date: 20/0./2. 7.:7.:5. $ sldlib.c $Revision: 4.9 $ $Date: 20/0./1. 2.:0.:3. $ convccb.c $Revision: 4.2 $ $Date: 98/09/30 17:13:11 $ convtcb.c $Revision: 4.2 $ $Date: 99/08/19 16:03:50 $ converr.c $Revision: 4.3 $ $Date: 99/08/19 16:02:49 $ convdm.c $Revision: 4.3 $ $Date: 20/0./4. 9.:7.:8. $ kb.c $Revision: 4.3 $ $Date: 99/08/19 16:10:25 $ sldsub.c $Revision: 4.20 $ $Date: 20/0./2. 1.:7.:3. $ slddm.c $Revision: 4.2 $ $Date: 99/08/19 16:15:18 $ slddmlib.c $Revision: 4.3 $ $Date: 20/0./2. 6.:3.:6. $ sldldm.c $Revision: 4.1 $ $Date: 98/09/30 18:00:49 $ sldssl.c $Revision: 4.16 $ $Date: 20/0./2. 4.:0.:4. $ convutil.c $Revision: 4.1 $ $Date: 98/09/30 17:19:01 $ kbstub.c $Revision: 4.1 $ $Date: 98/09/30 17:38:30 $ inspectmon.c $Revision: 1.12 $ $Date: 99/10/28 12:26:05 $ inspectutil.c $Revision: 1.9 $ $Date: 99/10/21 07:48:10 $ iascrypt.c $Revision: 4.4 $ $Date: 99/11/29 16:16:41 $ strutils.c $Revision: 4.11 $ $Date: 20/0./1. 2.:4.:4. $ sldcfg.c $Revision: 4.23 $ $Date: 20/0./3. 1.:8.:5. $ xpprocess.c $Revision: 1.6 $ $Date: 99/11/08 11:51:15 $ xplink.c $Revision: 1.5 $ $Date: 99/11/08 10:26:42 $ *** SOLID V5.3 Utilities Static Library built Nov 8 2001 18:57:53 xppipe.c $Revision: 1.2 $ $Date: 99/10/18 09:22:43 $ HP36217-02A.G3.31 SQLX/9000 ALLBASE/SQL HP36217-02A.G3.31.00 SQL Parser/Linearizer/9000 ALLBASE/SQL 10/23/01 *** Allbase JDBC Data Manager built Nov 8 2001 18:59:28 Allbase Version A.G3.31 albodbc.sql $Revision: 4.6 $ $Date: 99/03/02 09:14:13 $ allbase.sql $Revision: 4.16 $ $Date: 99/07/23 08:13:33 $ albmeta.sql $Revision: 4.10 $ $Date: 99/04/29 17:50:38 $ *** SOLID V5.3 Data Manager Common (JDBC) built Nov 8 2001 18:57:57 dmCommon.c $Revision: 4.21 $ $Date: 20/0./1. 2.:5.:0. $ HP36217-02A.G3.31 NET AF Library ALLBASE/SQL 10/23/01 HP36217-02A.G3.31 NET Library ALLBASE/SQL 10/23/01 HP36217-02A.G3.31 NET VC Library ALLBASE/SQL 10/23/01 sldsrv.c $Revision: 4.26 $ $Date: 20/0./2. 3.:5.:0. $ sldmeta.c $Revision: 4.8 $ $Date: 99/04/29 19:19:25 $ *** SOLID V5.3 HP-UX Data Manager Library built Nov 8 2001 18:52:58 getconfig.c $Revision: 4.5 $ $Date: 20/0./2. 6.:7.:5. $ *** SOLID V5.3 Static Library built Nov 8 2001 18:53:31 sldlib.c $Revision: 4.9 $ $Date: 20/0./1. 2.:0.:3. $ kb.c $Revision: 4.3 $ $Date: 99/08/19 16:10:25 $ sldsub.c $Revision: 4.20 $ $Date: 20/0./2. 1.:7.:3. $ slddm.c $Revision: 4.2 $ $Date: 99/08/19 16:15:18 $ sldldm.c $Revision: 4.1 $ $Date: 98/09/30 18:00:49 $ sldssl.c $Revision: 4.16 $ $Date: 20/0./2. 4.:0.:4. $ kbstub.c $Revision: 4.1 $ $Date: 98/09/30 17:38:30 $ sldcrypt.c $Revision: 4.3 $ $Date: 99/09/10 16:47:16 $ slddmlib.c $Revision: 4.3 $ $Date: 20/0./2. 6.:3.:6. $ sldbuf.c $Revision: 4.2 $ $Date: 99/08/19 16:13:33 $ mbchar.c $Revision: 4.1 $ $Date: 98/10/01 14:28:38 $ myutil.c $Revision: 4.1 $ $Date: 98/10/01 14:31:55 $ *** SOLID V5.3 Allbase Parser built Nov 8 2001 18:57:40 oprlex.l $Revision: 4.2 $ $Date: 99/03/23 06:45:31 $ oprutil.c $Revision: 4.1 $ $Date: 98/10/01 14:51:15 $ oprexec.c $Revision: 4.2 $ $Date: 20/0./4. 4.:4.:9. $ oprgram.y $Revision: 4.1 $ $Date: 98/10/01 14:46:15 $ oprtrav.c $Revision: 4.1 $ $Date: 98/10/01 14:50:12 $ license.c $Revision: 4.13 $ $Date: 20/0./4. 2.:3.:5. $ strutils.c $Revision: 4.11 $ $Date: 20/0./1. 2.:4.:4. $ dumpbuff.c $Revision: 4.4 $ $Date: 99/09/10 19:01:05 $ *** SOLID V5.3 Utilities Static Library built Nov 8 2001 18:57:53 sldcfg.c $Revision: 4.23 $ $Date: 20/0./3. 1.:8.:5. $ cksum(1) Output: 2884846313 2512 /opt/allbase/jdbc/READ1ST 1556820463 1966 /opt/allbase/jdbc/RELNOTES 2244850800 2385920 /opt/allbase/jdbc/hpjdbc.tar Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_21577 Equivalent Patches: PHSS_25657: s700: 11.00 s800: 11.00 Patch Package Size: 2400 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_25656 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_25656.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_25656. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHSS_25656.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_25656.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: Roman8 encoding support for JDBC driver. How to use this feature. 1. In order to use Roman8 encoding, Roman8 option needs to be passed through the URL. For ex: jdbc:allbase://server.roman.com/dbname?encoding=Roman8 IF the encoding option is not passed then the default encoding is used. 2. Along with the driver classes two Roman8 conversion classes areprovided with this package. ByteToCharRoman8.class CharToByteRoman8.class For JDK 1.1.7, the conversion classes are to be added to the CLASSPATH. For JDK 1.2.2 and above, the conversion classes are to be added to the -Xbootclasspath