Issue 32069  —   Opening database path for new transaction fails if database name is 3 char long

Status:   Planned for resolution in 10.4.01

Solution available in patch(es):      10.3.02.028    9.7.05.041

Description:

 Summary:
 When creating a new instance using TRANSACTION=TRUE and the database name (or
 data source name) in the affected path is exactly 3 characters long then
 opening a new path to the DBMS will fail with a logon error.

 Environment:
 +Uniface:
 Version 9.7.05.018 (and higher)
 Version 10.3.02.005 (and higher)

 +Operating System:
 * OS independent

 +Database:
 * DBMS independent

 Symptoms:
 The instance property TRANSACTION indicates whether a transaction group is
 created for the DBMS I/O associated with this component instance and all
 instances started from it. When set to TRUE, a transaction group is created for
 the DBMS I/O associated with this component instance and all instances started
 from it. For each path referenced by a component instance in this group a new
 path to the DBMS is opened.

 In case the database name (or data source name) of an affected path is exactly
 3 characters long then opening the path for the new transaction will fail with
 a logon error.

 For example:

 * The following MSS path is defined:

   $MSS MSS:ms1:dbms1|user|password

 * When the path is opened for the first time then everything works fine

 * Now an instance with TRANSACTION=TRUE is created; e.g.

   newinstance "CMP1", "INST1", "TRANSACTION=TRUE"

 " When accessing the path $MSS from INST1 then a new path to the database is
 opened

 > The open path fails with the error -9 (DBMS logon error). And when using
 (e.g.) $ioprint=63 the following errors can be seen in the message frame:

 I/O function: L, mode: 0, on driver: MSS; Path: $MSS; Trans# 1
 IM002 [Microsoft][ODBC Driver Manager] Data source name not found and no
 default driver specified
 Logon (|******|******) failed with status -1, Error occurred

Workaround:

 Make sure that the database or data source name in the path is not exactly 3
 characters long.

Notes: