========================
UniVerse for Windows NT
Release 9.5.1.1D
Release Notes
August 1999
========================
Copyright 1999, Ardent Software, Inc. All rights reserved.
Microsoft is a registered trademark of Microsoft Corporation.
Visual Basic and Windows NT are trademarks of Microsoft
Corporation.
UNIX is a registered trademark in the United States and other
countries, licensed exclusively through X/Open Company, Ltd.
All other company or product names mentioned are trademarks or
registered trademarks of their respective trademark holders.
These release notes contain important information about
Release 9.5.1.1 of UniVerse for Windows NT that supplements
the help files and printed documentation.
Using UniVerse Online Help
==========================
UniVerse has a complete online help system. For details,
refer to UniVerse User Reference or UniVerse System
Description.
Technical Support
=================
Ardent Technical Support Center numbers are operated between
8:00 a.m. and 8:00 p.m., Eastern Time. To reach the Center,
simply dial 1-800-729-3553. A support representative will answer
your call and you will be asked to supply your license serial
number, UniVerse release level, and a description of the problem.
If you reach the electronic mail box, please leave your name,
phone number, time of call, license serial number, UniVerse
revision level, and a brief description of the problem. A
support representative will call you back shortly.
If calling from outside the United States, please dial
(508) 366-3888 and request that your call be transferred
to Technical Support.
You can also fax your request for assistance to the
Technical Support fax number at (508) 389-8750.
=========
Contents
=========
64-Bit File System Support
Important Notes about Replication
Differences from Previous Releases
Starting Up and Shutting Down UniVerse
Transferring Accounts to Windows NT
Improving System Performance
Problems and Restrictions
Differences Between PI/open and UniVerse
GTARS File
National Language Support (NLS)
Corrections/Updates to the Documentation
Problems Fixed at This Release
UVODBC 3.7 Release Notes
===========================
64-Bit File System Support
===========================
Starting with Release 9.5.1.1C, UniVerse supports 64-bit file
systems. There is a new UniVerse configurable parameter,
64BIT_FILES, that lets you specify whether UniVerse uses 32-bit
or 64-bit file systems.
New options have been added to the following UniVerse commands:
o CREATE.FILE has two new options that let you
override the current setting of the 64BIT_FILES
parameter. The 64BIT option lets you create 64-bit
files on a UniVerse system using 32-bit file systems.
The 32BIT option lets you create 32-bit files on a
UniVerse system using 64-bit file systems.
o RESIZE has two new options that let you
override the current setting of the 64BIT_FILES
parameter. The 64BIT option lets you resize a file
to 64-bit on a UniVerse system using 32-bit
file systems. The 32BIT option lets you resize a
file to 32-bit on a UniVerse system using 64-bit
file systems.
o FORMAT.CONV has a new -o (Old Style) option that
lets you convert a 32-bit file created or resized
on a UniVerse 9.5.1C or later system to the older
32-bit format used on Releases 7.3.1 through
9.5.1B.
The InterCall ic_fileinfo function does not support 64-bit files at
Release 9.5.1C.
=================================
Important Notes about Replication
=================================
At the A-patch release we added support for Q-pointers, multiple data
files and files with explicit file paths or short file names. This
support essentially requires changes be made to the underlying
replication subsystem. If you are upgrading from UniVerse 9.4.1 or 9.5.1
and you currently use the replication feature of UniVerse, you need
to follow these steps in order to maintain the stability of your
replication configuration. In order to complete this upgrade without
disrupting your systems replication subsystem, all subscriptions,
publications and system definitions must be removed while the patch
release is installed. Once the installation is complete and UniVerse has
been restarted, you can republish and resubscribe your files.
At the C-patch release, the user interface to replication has been
rewritten. Replication now supports the publication and subscription
of file dictionaries and distributed files.
==================================
Differences from Previous Releases
==================================
At this release some functionality may behave differently
from previous releases of UniVerse for Windows NT. Read the
following sections to see how this could affect your
applications.
Changed User Names Default
__________________________
Before Release 9.3.1, UniVerse on Windows NT used short user
names that did not include the domain name. At this release,
fully-qualified user names are used in the format:
<DOMAIN.NAME>\<username>
If you want to use short user names, use the Windows NT
Registry Editor to add an entry to the registry as follows:
1. Choose
HKEY_LOCAL_MACHINE > Software > Ardent Software > UniVerse >
CurrentVersion
On Windows NT 4.0, choose Edit > New > DWORD Value.
Enter the value name UseShortUserNames. Double click
the value name and you are prompted to enter a value.
Enter 0 for long user names or any nonzero number
for short user names, then choose OK.
Short User Names and MESSAGE
____________________________
If you configure UniVerse to use short user names as
described in the previous section, you cannot use the MESSAGE
command to send messages to all users on the local domain, as
the domain name is not present in the user name.
Domain Users and SQL GRANT
__________________________
A domain user and a local user with the same user name are
treated as different users. For example SALES\alice and alice
are not recognised as the same user. This affects the SQL GRANT
statement. If your users can log in both locally and from a
domain, you must specify both the domain and the local user
name in the GRANT statement. For example:
>GRANT CONNECT TO alice, SALES\alice;
FORMAT.CONV Command
___________________
The FORMAT.CONV command is not available in this release. Use
the fnuxi command from a DOS command window.
======================================
Starting Up and Shutting Down UniVerse
======================================
You must be a system or domain administrator to start up or
shut down UniVerse.
You can start up UniVerse in one of three ways:
1. From the UniVerse Control Panel
Choose Start > Programs > Ardent UniVerse> UniVerse Control.
Click Start All Services.
2. From the Windows NT Control Panel
Double-click Services. Scroll down the list of
services until you find four entries for UniVerse:
UniVerse Resource Service, Uni RPC Service,
UniVerse Telnet Service, and UniVerse REXEC Service.
Click UniVerse Resource Service and press Start.
Repeat this for the other three services.
3. From the MS-DOS prompt
At the MS-DOS prompt type the following four commands:
net start universe
net start unirpc
net start uvtelnet
net start hsrexec
Each command reports the name of the service it is starting
and whether the startup is successful.
NOTE: The UniVerse services start automatically when the operating
system is loaded unless you unchecked the automatic startup
boxes during UniVerse installation.
You can shut down UniVerse in one of three ways:
1. From the UniVerse Control Panel
Choose Start > Programs > Ardent UniVerse > UniVerse Control.
Click Stop All Services.
2. From the Windows NT Control Panel
a. Double-click Services. Scroll down the list of
services until you find four entries for UniVerse:
UniVerse Resource Service, Uni RPC Service, UniVerse Telnet
Service, and UniVerse REXEC Service.
b. Click UniVerse Resource Service and press Stop. A window
appears informing you that in addition to the UniVerse
Resource Service the UniVerse Telnet Service will also be
stopped, and asking for confirmation to proceed. Click OK.
The UniVerse Resource and UniVerse Telnet Services are shut
down.
c. Click Uni RPC Service and press Stop. A window appears
informing you that in addition to the Uni RPC Service the
UniVerse REXEC Service will also be stopped, and asking
for confirmation to proceed. Click OK. The Uni RPC and
UniVerse REXEC Services are shut down.
3. From the MS-DOS prompt
a. Type the following command:
net stop universe
This displays a message indicating that if the UniVerse
Resource Service is stopped, it will also stop the UniVerse
Telnet Service and will ask for confirmation to proceed.
Enter Y and press RETURN. The two services are shut down
in turn.
b. Type the following command:
net stop unirpc
This displays a message indicating that if the Uni RPC
Service is stopped, it will also stop the UniVerse
REXEC Service and will ask for confirmation to proceed.
Enter Y and press RETURN. The two services are shut down
in turn.
NOTE: If users are connected to the services when the services are
shut down, the users will not lose their connections; the connections
remain active until the users terminate them. However, it will not
be possible for new users to connect to UniVerse.
To do a complete shutdown of UniVerse, in order to
restart the services, you should ensure that all connections
are terminated.
====================================
Transferring Accounts to Windows NT
====================================
If you want to transfer accounts between UniVerse systems
running UNIX and Windows NT, or between two Windows NT systems,
you can use the uvbackup and uvrestore commands. You cannot
transfer accounts to Windows NT using UniVerse Admin.
If you save an account with uvbackup and want to restore it
to a different operating system, specify relative rather than
absolute pathnames as the directory structure may be different
on the target system.
============================
Improving System Performance
============================
This section contains some ideas for improving system
performance on a Windows NT server.
Tasking
_______
You can improve response time from UniVerse by balancing the
Windows NT tasking so that foreground and background tasks
receive equal CPU time.
On Windows NT 4.0, from the Windows Control Panel, choose
System, then choose the Performance tab. Move the Application
Performance slider to None. Click OK.
Screen Savers
_____________
Use a blank screen saver on your server. Screen savers
with elaborate graphics can use huge amounts of
foreground CPU tasking. This slows down background tasks,
such as a UniVerse telnet session.
=========================
Problems and Restrictions
=========================
This section contains information about some problems and
restrictions associated with this release.
Logging Out Sleeping or Busy Processes
______________________________________
It is not possible to log out a sleeping or busy process
on Windows NT. This affects the MASTER OFF and LOGOUT -pid
commands. For example, if you have used a SLEEP statement
to defer execution of a program sequence, you cannot use
MASTER OFF to kill it, you must wait until the process is
active again.
Phantom Processes and Console Users
___________________________________
If you run a phantom process from the console window, then
quit, the window does not go away until the phantom process
completes. (This can seem like UniVerse is hanging.) To avoid
this, always launch phantoms from a telnet window.
Lowercase Device Names and Transaction Logging
______________________________________________
You cannot configure transaction logging to log to a tape
device whose name is in lowercase. This applies even if
the device name is in lowercase in the &DEVICE& file. The
device appears in the list of possible devices, but if you
select it and then redisplay the list of devices configured
for transaction logging, it is not present. To avoid this
problem, use uppercase device names.
*REMOTE.B Subroutine Calls
__________________________
The *REMOTE.B subroutine encounters problems when it is called
during a UV/Net II connection to a UniVerse system running
under Windows NT version 4.0.
The subroutine works correctly the first time it is run;
the second time it is run it fails and returns an empty
string; the third or subsequent times it works correctly.
Windows NT Shutdown and Data Integrity
______________________________________
Windows NT allows only a very short time for applications to
close during a shutdown of the system. If applications do not
respond quickly, the shutdown process closes the applications
immediately. If your UniVerse application is writing data to
disk during the shutdown you could lose data.
This can have severe consequences for the UniVerse
transaction logging service. If a shutdown request is issued
during a transaction, the transaction logging service must
flush the buffered transaction to disk. If the operating
system shuts down before the write to disk finishes, the
data integrity of the transaction is lost.
To ensure data integrity, always shut down the UniVerse
service from the Services menu before shutting down
Windows NT. If you have a transaction running, check that the
final entry in the uvlogd.info file in your transaction
log directory reads as follows: "Logging system shut down
consistently." If this message is present, it is safe to shut
down Windows NT.
COMO files and VERIFY.SQL
_________________________
If you use a COMO file to collect the output from the
VERIFY.SQL ALL command when the COMO file is closed, an
unexpected error results and UniVerse terminates.
The workaround is to create an entry in the VOC of the account
where you wish to run the verification:
0001: PA
0002: TERM ,9999
0003: VERIFY.SQL ALL
Save the entry under a well known name, for example MY.VERIFY.
Execute the following command from the MS-DOS prompt:
uvsh "MY.VERIFY" >outputfile
The output is captured in the file outputfile.
UniVerse Admin
______________
If you change a configurable parameter that affects the multiuser
environment the configuration editor incorrectly reports that the
uvconfig file is corrupt.
These parameters are GSEMNUM, FSEMNUM, PSEMNUM, FLTABSZ,
GLTABSZand RLTABSZ.
The uvconfig is not corrupt and the data was saved. You
can use the uvconfig file.
=========================================
Differences Between PI/open and UniVerse
=========================================
The following sections describe differences between PI/open
and UniVerse that are in addition to those documented in
Moving to UniVerse from PI/open. These differences may
cause problems for users moving from PI/open to UniVerse.
SELECT SAVING
--------------
If you use the SAVING keyword with SELECT you may encounter
problems if the item being saved consists of multiple fields.
For example, suppose you have a file called TEST.FILE which
contains records whose F1 field contains multiple values
(values separated by value marks). If you execute the
following sentences the number of records saved may not
be what you expect; it depends on the number and size of
the values involved:
LIST TEST.FILE SAVING EVAL "RAISE(F1)"
SAVE.LIST TEST.LIST
With a small number of values, TEST.LIST will contain an
ID for every value in TEST.FILE. However, with a large
number of values, some of the values will not be raised
correctly, leading to a corrupt save list (see also GTAR 15940).
One suggested workaround is to create a new version of
the SAVE.LIST command (e.g., SAVE.LIST2) along the following
lines:
PA
HUSH ON
SAVE.LIST TEMP.NAME
DELETE &SAVEDLISTS& <I2,LIST NAME>>
ED &SAVEDLISTS& TEMP.NAME
DATA SAVE <<I2,LIST NAME>>
DATA QUIT
HUSH OFF
Order of Processing of Prompts in Paragraphs
--------------------------------------------
If a prompt in a paragraph is preceded by the * comment
symbol, the prompt may not appear in the same place in
the output when the paragraph is executed in UniVerse.
This may cause problems for some applications. Consider
the following paragraph:
PA
DATE
* <<I2,Press RETURN to continue>>
In PI/open it gives the following output:
Tuesday, January 31, 1995 06:01 PM
Press RETURN to continue =
:
In UniVerse it gives the following output:
Press RETURN to continue=
Tuesday, January 31, 1995 06:02pm
>
However, if you remove the comment symbol in the UniVerse
example, the ordering of the output is the same as in
PI/open (see also GTAR 15942).
terminfo Definitions
----------------------
If you do not install the UniVerse terminal definitions,
you may find that some display features of your terminal are
not handled as you might expect. In this case UniVerse uses
the version of the terminal definition supplied by the
operating system, but it does not interpret all of the control
sequences correctly. For example, on a Wyse 50, the HP-UX
operating system definition for the clear function is \E*$<20>,
but the UniVerse definition is ^Z. Both are valid, but
when UniVerse attempts to use the system definition, it
does not understand the $<20> syntax and sends the sequence
as printable characters to the terminal, hence it appears in
your output (see also GTAR 15943).
DISPLAY Does Not Support the : Option
--------------------------------------
The DISPLAY command, which can be executed from the
UniVerse prompt, does not support the : option. In PI/open,
if a : is appended to the display string, a newline character
is not sent to the terminal at the end of the string. This
means that the next display position starts immediately
after the last character of the display string; in UniVerse
the next display position is in column 1 of the next line
down (see also GTAR 15946).
Pagination Does Not Support the Suppress Option
-----------------------------------------------
In PI/open, when output is being paginated on the screen,
it is possible for the user to suppress it (i.e., skip to
the end) by typing s in response to the Press <RETURN> to
continue... prompt. This feature is not available in
UniVerse (see also GTAR 15947).
Clearing Distributed Files
--------------------------
In PI/open it is possible to clear all parts of a distributed
file by using the CLEAR.FILE command on the distributed file
itself. This is not possible in UniVerse. Instead you must use
the CLEAR.FILE command on each part file (see also GTAR 15948).
BASIC DEFFUN Statement
----------------------
In UniVerse the BASIC compiler produces an error if you use
the DEFFUN statement to define a function without first
defining its arguments. The following example uses the DEFFUN
statement twice: in the first case the compiler generates an
error; in the second case, the arguments are defined before the
function, and the syntax is accepted by the compiler (see also
GTAR 15453):
DEFFUN MYFUNC1(MAT A)
DIM B(0)
B(0) = ''
DEFFUN MYFUNC2(MAT B)
END
Compilation output:
Compiling: Source = 'BP/DEFFUN.B', Object = 'BP.O/DEFFUN.B'
*
Array 'A' never dimensioned.
1 Errors detected, No Object Code Produced.
BASIC KEYIN Function
--------------------
In a PI/open INFO/BASIC program, the KEYIN function normally
returns the mapped values for system delimiters (unless you
specified the PI/open RAW.INPUT compiler option) as shown in
the following table:
Delimiter ASCII Value Mapping
---------------------------------------------
Text mark 26 251
Subvalue mark 28 252
Value mark 29 253
Field mark 30 254
Item mark 31 255
In UniVerse no mapping takes place, and the KEYIN function
returns the ASCII values shown in the middle column.
BASIC $OPTIONS INFO.CONVERT
---------------------------
The INFO.CONVERT option is not supported in this release.
BASIC INPUT @ Statement
-----------------------
In a PIOPEN flavor compilation (i.e., $OPTION PIOPEN), or in
programs that use the $OPTIONS INPUTAT statement, the screen
position you specify is that of the input prompt, rather than
the input field. That is, the input field begins one column to
the right of the column you specify. Except in PIOPEN flavor,
the INPUT @ statement does not currently provide an automatic
carriage return when the specified number of characters have
been entered into the field (see also GTAR 15767).
BASIC RETURN Statement
----------------------
The UniVerse BASIC compiler produces a warning when the
RETURN statement returns from an internal subroutine within
a function. The warning does not affect the compiled code and
may be ignored (see also GTAR 15447).
FUNCTION BETA
GOSUB INITIALIZE
*
*Main program code
*
RETURN (CODE)
INITIALIZE:
*
* Internal subroutine code
*
CODE = 0
RETURN
END
Compilation output:
Compiling: Source = 'BP/FUNCTION.B', Object = 'BP.O/FUNCTION.B'
**
0018 RETURN
^
WARNING: no RETURN value specified, null used.
Compilation Complete
BASIC Variable Names
--------------------
If you use a variable name in the format INCLUDE.text,
as shown in the following example, the compiler produces
an error (see also GTAR 15451):
LOOP
INPUT INCLUDE.VAR
WHILE INCLUDE.VAR
REPEAT
END
Compilation output:
Compiling: Source = 'BP/INCLUDE.B', Object = 'BP.O/INCLUDE.B'
0007 WHILE INCLUDE.VAR
^
No VOC entry for INCLUDEd file ".VAR".
^
End of Line unexpected, Was expecting: Array Name, CALLable
Variable Name, DIMENSIONable Array Name, Variable name, New
variable name, Expression, "CREATE", "FLUSH", "GET",
"INPUTIF", "LOCATE", "LOCATEP", "LOCK", "MATREAD", "NOBUF",
"OPEN", "OPENPATH", "PROCREAD", "READ", "READBLK", "READNEXT",
"READSEQ", "READT", "READV", "REWIND", "SEEK", "uSEEK",
"TTYCTL", "WEOF", "WRITEBLK", "WRITESEQ", "WRITET", "FIND",
"FINDSTR", "GETLIST", "READLIST", "TTYGET", "TTYSET",
"uINPUT", "TRANSACTION", "OPENCHECK", "BSCAN", "RPC_CALL",
"WRITESEQF"
2 Errors detected, No Object Code Produced.
Terminal Width
--------------
In UniVerse, the default terminal width is set to 79 columns,
and column 80 is reserved for a Return. If your program uses
a terminal width of 80 columns, your reports may be listed
vertically on UniVerse. If you try to avoid this by using
the command TERM 80 to change the default setting, the reports
are listed double spaced because both UniVerse and the
terminal issue a Return at the end of each line. Currently,
the only workaround is to reduce the terminal width to 79
columns (see also GTAR 15434).
PI/open to UniVerse Account Conversion Problem
----------------------------------------------
Record IDs in NEWACC and VOC Files
If the ISYS NEWACC file or any of your PI/open accounts'
VOC files hold record IDs that contain the "special"
UNIX shell $ or \, account conversion may fail. The solution
to this problem is to change the record IDs in PI/open
before you begin the conversion, and change them back in
UniVerse when conversion is complete (see also GTAR 15780).
ISOMODE 2
---------
If you are running with the UniVerse configurable parameter
ISOMODE set to 2 (default value is 1), several System
Administration BASIC routines will fatal due to updating
an administrative file without previously setting a lock.
The menu options include Add Accounts, Modify Accounts, Delete
Accounts, and Devices (see also GTARs 15280, 15281, 15282, and 15283).
===========
GTARS File
===========
The UV account directory has a UniVerse file called GTARS
which contains both the fixed and open bugs associated with
the current release of UniVerse. You can use all the
facilities of RetrieVe to produce reports of these GTARs.
The VOC file of the UV account contains a menu that you can
use to display the following on your terminal:
<0A> All closed GTARs incorporated in the current release
<0A> All GTARs describing unfixed problems in the current
release
<0A> All GTARs submitted under your customer number
<0A> All closed GTARs submitted under your customer number
<0A> All open GTARs submitted under your customer number
To invoke this menu, change directories to the UV account
directory and enter the UniVerse environment by using the
uv command. This will bring you into the UniVerse System
Administration menu system. Press the Esc key to exit the
menu system and return to the UniVerse command prompt. Enter
the command LIST.GTARS to display the GTAR menu. If you do not
know your customer number, please contact your technical
support provider.
================================
National Language Support (NLS)
================================
Multibyte Identifiers
------------------------------------------------------
At Releases 9.4 and 9.5, UniVerse NLS does not support the
following:
- Multibyte UniVerse account names
- Multibyte SQL identifiers (schema names,
table names, view names, etc.)
UVLANG Environment Variable
---------------------------
To set your initial UniVerse locale, use the UVLANG variable.
When you start a UniVerse session, UniVerse retrieves the
value of the UVLANG variable and checks to see of a locale
of the specified name is loaded. If it is, it becomes your
current locale.
Direct UniVerse connections (uvsh), telnet connections, and BCI
connections are all affected by the UVLANG variable.
NLS Map for Windows NT Console
------------------------------
When you install UniVerse on Windows NT, be sure to set up
the NLS map for the console correctly. The default is
probably something like PC850 or MS1252; howeverm this may
not be correct for your version of Windows NT. Choose an
appropriate map. For example, for the Korean version of
Windows NT you should use MS949.
Note: The appropriate map may not be one of the
PCxxx or MSxxxx maps.
If you cannot set the map correctly during installation,
correct it later as follows:
1. Change directory to the UV account directory,
e.g. D:\UV\UV
2. Decompile the console terminal definition:
bin\uvtidc console > tmpfile
3. Use NOTEPAD to edit the tmpfile. Change at80 and at81
to the name of the required NLS map and save the file.
4. Compile the console terminal definition:
bin\uvtic tmpfile
If the map is not set up correctly UniVerse commands that
are run stand-alone or from UniVerse client/server products,
such as UniVerse Admin, may not display messages correctly.
Multibyte NLS Maps and System Delimiters
----------------------------------------
NLS provides maps for a number of multibyte character sets such
as Japanese, Chinese, and Korean. On their own these maps do not
allow the UniVerse system delimiters to be used (which is also
true of the single-byte maps). However, unlike the single-byte
maps where it is possible to use the internal values of the
system delimiters in the external character set, this is not
possible with the multibyte maps because the system delimiters
can be misinterpreted as lead bytes of multibyte characters. For
this reason NLS provides versions of all the multibyte maps
both with and without the UniVerse system delimiters. The maps
provided are as follows:
Without System Delimiters With System Delimiters
------------------------- ----------------------
BIG5 BIG5+MARKS
GB2312 GB2312+MARKS
JIS-EUC+ JIS-EUC++MARKS
JIS-EUC JIS-EUC+MARKS
JIS-EUC2+ JIS-EUC2++MARKS
JIS-EUC2 JIS-EUC2+MARKS
KSC5601 KSC5601+MARKS
PRIME-SHIFT-JIS PRIME-SHIFT-JIS+MARKS
SHIFT-JIS SHIFT-JIS+MARKS
TAU-SHIFT-JIS TAU-SHIFT-JIS+MARKS
The UniVerse system delimiters are mapped into the following
values for each character set:
Value (in hex) System Delimiter
-------------- ----------------
1A Text mark
1C Subvalue mark
1D Value mark
1E Field mark
1F Item mark
In addition, the null value is mapped to the hexadecimal value
19.
The NLS.UPDATE.ACCOUNT Command and the UV Account
--------------------------------------------------
The NLS.UPDATE.ACCOUNT command must be run in the UV account if
you want to use non-ASCII data. This ensures that all UniVerse
system files are configured with the appropriate NLS maps.
Code Page Configuration on Multibyte Windows NT
-----------------------------------------------
On Windows NT the code page detected by UniVerse client programs
may not be the real code page in use. This information is
returned by an operating system call and is outside of the
client's control. The code page information is passed to the
server, which looks it up in the NLS.CLIENT.MAPS file, part of
the NLS database. If there is no entry in
the file, a default is selected either from the NLS.CLIENT.MAPS
file, if one exists, or from the NLSDEFSRVMAP configurable
parameter in the uvconfig file. It should be clear from this that
the server can select the wrong map for the client.
For example, suppose you are running on the Korean
version of Windows NT. This returns the code page number 1252,
though the real code page is 949. The client sends an identifier
of WIN:1252 to the server. The server tries to find a record for
WIN:1252. If it finds the entry that is shipped with UniVerse, this
sets the NLS map to MS1252, which is wrong. You can do one of
three things to resolve the problem:
- Change the WIN:1252 entry to point to the correct NLS map,
e.g
Record id: WIN:1252
0001: Korean character set
0002: KSC5601+MARKS
- Delete the WIN:1252 entry and set the WIN:DEFAULT entry to
point to the correct NLS map.
- Delete both WIN:1252 and WIN:DEFAULT entries and set the
NLSDEFSRVMAP tunable parameter to the correct NLS map.
The first of these options is preferable.
Known NLS Problems at Release 9.4
=================================
International Currency Symbol in DEFAULT Locale
-----------------------------------------------
The DEFAULT locale is built during the initial installation of
NLS. This does not build the international currency symbol
correctly. It will be displayed as USD<SP> rather than USD ,
that is, USD followed by one space character.
This can be fixed as follows:
1. Change directory to the UV account directory.
2. Enter UniVerse.
3. Execute the following command:
ED NLS.LC.MONETARY DEFAULT
4. Change field 6 to USD , that is USD followed by one space
character. Save the record.
5. Use the NLS.ADMIN tool to create a new locale where all of
the categories are set to DEFAULT. Build the locale.
6. Shut down and restart UniVerse to load the new definition
into shared memory.
CURR_SYMBOL, POS_SIGN and NEG_SIGN Must Be Unique
-------------------------------------------------
The CURR_SYMBOL, POS_SIGN and NEG_SIGN fields of a locale must all
contain unique characters. If not, it is impossible to distinguish
the sign from the currency symbol meaning that an ICONV of
currency values can fail.
This problem has been raised as GTAR 21197.
BASIC Programs and Multibyte Filenames and Record IDs
------------------------------------------------------
The verbs which allow the you to compile, catalog and examine
programs work only with ASCII filenames and record ids. That
is, you cannot create a program with a multibyte name in a
file with an ASCII name, or a program with an ASCII name in a
file with a multibyte name. The BASIC command will not compile
the program and you will not be able to catalog it. Commands
affected are:
BASIC
CATALOG
DECATALOG
DELETE.CATALOG
VCATALOG
This problem has been raised as GTAR 21509.
uvrestore and Multibyte Characters
-----------------------------------
Dynamic files are not restored properly from a full uvbackup if
the dynamic file name contains multibyte characters and the
dynamic file currently exists in the directory where the file
is to be restored. Before attempting such a restore, delete the
dynamic file from the account. The file will then be recreated
properly by the uvrestore process.
Additionally, if the NLS map on a type 1 file has been changed
since the time of the full backup, the type 1 file must be
deleted for the original NLS map to be restored properly. If
the map has not changed, the warning messages printed will not
stop the file from being restored properly.
List of Outstanding NLS GTARs at This Release
---------------------------------------------
The following is a list of NLS relate GTARS that are outstanding
at this release. Some of the problems noted above are repeated
in this list.
GTAR. Long Description...........................................
16834 When using T.READ to display the contents of a tape, if
NLS is active and the byte count of a character is not
equal to the display length then the display can become
corrupted.This will only happen with NLS active and
multi-byte data on the tape.
21007 The uvrestore fix under Gtar 20150 was implemented
incorrectly. The functions iftoef and eftoif should have
been called but instead were included verbatum inside the
uvbackup.c module. Further modifications to the iftoef
and eftoif functions will not be available to the
uvrestore process because of this. Need to change
uvrestore to call these functions.
21112 The functional spec for NLS locales says that the
MT conversion code should allow the HMS separator to be
any single non-numeric character, which may be enclosed
in quotes (single or double). As implemented today, if
NLS is off it can be any character, but cannot be
quoted. With NLS on it can be any character enclosed in
single or double quotes. No check is made to see if the
character is nonnumeric, in either case.
21153 BCI must reject connections to ODBC data sources when NLS
is ON (because BCI maps user data to UTF8 before writing
and from UTF8 after reading, so data other than 7bit
ASCII is changed)...NOTE: needs reconsideration; may be
ok.
21197 The CURR_SYMBOL, POS_SIGN and NEG_SIGN fields of a locale
must all contain unique characters. If not, it is
impossible to distinguish the sign from the currency
symbol meaning that ICONV of currency values can fail.
The solution is to modify NLS.BUILD to verify that all
the characters chosen are unique.
21269 Install (or possibly just re-install) of NLS on NT does
not set the terminal map correctly for the console. You
can specify the map you want during the install, but it
seems to be ignored.
21370 The LISTU command does not display the date correctly
when running on NT with a multibyte character set. The
code does not take NLS into account and the month
displays with unmappable characters.
21474 There are two problems with the default MT conversion
code (field 7) in the Korean locale: (1) it is defined
as MTP[...etc...], giving an hour, minutes, seconds
separator of 'P' (should be ':'); (2) the text in []
following the MT is missing a leading ' for the seconds
separator:['^xC2DC','^xBD84',^xCD08'] =>
['^xC2DC','^xBD84','^xCD08']
21485 Uvrestore will not restore a dynamic file with a
multibyte name if the file already exists on disk
and the user is attempting a full restore. Also,
the .Type1 and .uvnlsmap files associated with Type1
files are not being removed are restored properly.
21486 CREATE.FILE <multibyte name> will not work when the file
already exists on disk but does not have a corresponding
VOC record. The command fails with the error messages:
Maximum file number has been reached. ***Processing
cannot continue***
21487 Revise does not display associated multivalued fields
properly if these fields contain double width characters.
An extra blank space appears to be printed for each
double width character being displayed.
21488 mkdbfile.c and do_mkdb.c have places where internal and
external file names are not being mapped properly when
NLS is on.
21509 Verbs which provide the BASIC compilation and cataloging
environment cannot be used with multi-byte filenames or
record ids. At present only ASCII filenames and record
ids are guaranteed to work.
21510 ANALYZE.FILE does not display the Pathname of the file
correctly when the filename is multi-byte. The Filename
*is* displayed correctly, however.
21511 When building the NLS-DEFAULT locale during an initial
install of NLS you get a message warning that the
MNEMONICS map is not loaded and that the locale may not
be built correctly if it contains mnemonics. This affects
the MONETARY category of NLS-DEFAULT because the
international currency symbol is defined as USD<SP>.
This is taken as the literal currency symbol - the <SP>
should be replaced by a space character, but is not. The
fix is to change the definition to have a real space
rather than <SP> in the definition.
=============================================
Corrections and Updates to the Documentation
=============================================
The C-patch release includes a new UniVerse Online Library on
CD-ROM. This is a completely updated documentation set for
UniVerse 9.5.1D. It supersedes the previous UniVerse
Online Libraries for Release 9.5.1, Release 9.5.1A, and
Release 9.5.1C.
Use the following notes in conjunction with the UniVerse
documentation described in the Ardent Technical Publications Catalog.
The following sections describe updates to the documentation
that are applicable for Releases 9.5.1 and later.
The following technical bulletins have been corrected on the
web at http:\\www.ardentsoftware.com.
UVEXPORT: The UniVerse Export Facility, updated for
Release 7.3.3 Part No. 74-0074 Revision Date: 6/94
WordPerfect Versions 5 and 6 Part No. 74-0063
Revision Date: 6/94
===============================
Problems Fixed at This Release
===============================
Problems fixed in release 9.5.1.1D
----------------------------------
10531 A BASIC program will no longer hang when using the FINDSTR
command on a string that includes a CHAR(255).
13071 SMAT no longer takes up a universe license seat.
17755 !AMLC will now work properly with keys 4 and 5.
19623 When the uvconfig file is modified and uvregen is run, NT systems
no longer incorrectly display a message referring to DBsetup.
21895 FILEINFO, FINFO$IS.AKFILE will now return a 0 if no indexes are
found. This is now consistent with documentation.
23420 The -SUPPRESS option was added to the "MESSAGE" command to suppress
the display of the message announcement "Message from USERNAME"
when receiving a message.
23637 Implemented utility to automatically generate record ids.
TABLES now allow no PRIMARY KEY or PRIMARY KEY DEFAULT
NEXT_AVAILABLE. Files support DICT entry of NEXT_AVAILABLE.
24039 The DN date conversion code now defaults to DY when NLS is off.
24302 FILEINFO, FINFO$PATHNAME now returns the correct pathname when
when the file is opened using the VOC pointer with a relative
pathname.
24432 The "FROM" keyword is now case insensitive in the command
"DELETE from table".
24452 Cache memory is now cleared in a PICK flavor account both before
and after execution of verbs with a Z mode in field 4.
24593 Fixed query optimizer problem so that I-descriptors will now be
evaluated after simple AND nodes involving the same field.
24674 A new tunable is now available in the uvconfig file called
PIOPENDEFAULT which, when set on, will affect the default behavior
of PIOPEN flavor accounts in the following manner
$OPTIONS INFO.CONVERT will be turned on when the program is
recompiled.
$OPTIONS PIOPEN.EXECUTE will be turned on when the program is
recompiled.
24683 EVAL with a TRANS no longer causes an abnormal termination of
universe.
24687 Implement support for multiple forms within UV spooler.
24695 Fixed the compiler to store both $COPYRIGHT and $COMMENTS at the
end of the object code. VLIST will now print out $COPYRIGHT at
the top along with the other header info. If source is
available the $COMMENTS print out as part of the source code. If
source is not available, the $COMMENTS print out after the
$COPYRIGHT.
24916 When RLTABSZ < MAXRLOCK and an SQL command is being executed, if
1. the process has consumed all record lock entries in a group
lock semaphore, set where a new record lock is to be inserted
2. all the record lock entries are for the file on which the new
record lock is being obtained
3. the process holds less than MAXRLOCK record locks on the file
on which the new record lock is being obtained
then a File lock of the appropriate strength will be obtained in
lieu of the record lock. Furthermore, on each subsequent commit
of a (sub)transaction, any record locks that were rendered
redundant due to the acquisition of a File lock will be released.
24943 Within a transaction, after escalating to a File Lock because
there are more than MAXLOCK record locks, the File Lock is no
longer prematurely released by FreeStmt-CLOSE.
25004 HS.SCRUB...AUTOFIX DATA will no longer loop indefinitely.
25013 If an error occurs when listing a printer on NT while doing a
SPOOL -LIST, all other printers will now be listed properly.
25046 The SICA has been enhanced to allow more than 18 bytes for
Schema and Table name in NLS mode.
25123 Printing to the HOLD file with NLS ON will no longer generate
an available memory exceeded error after 55 jobs are spooled.
25128 UVRestore of some Dynamic files with very large records will
now restore the files correctly.
25138 Changes to spooler including (1) adding support for SETPTR
extension specifying USEROPTS, (2) sending USEROPTS , Page-width,
and Page-length to the usd driver script, and (3) allowing spooling
to a bogus print queue.
25184 A core dump will no longer occur when running a BASIC program
using the INT function with a number that is too large.
25189 SQL CONSTRAINT CHECK will now work for the upper set of 8 bit
characters (eg Japanese) in column names.
25190 Foreign key constraints will now work correctly with Japanese
tables.
25191 Extra field marks are now removed from capture files. This change
has been implemented as part of the $OPTIONS PIOPEN.EXECUTE
under gtar 25267.
25245 Correct spelling of Japanese year "Heisei" in the file NLS.LC.TIME.
25267 HS.FILEINFO will no longer abort if the dictionary contains an
uncompiled itype.
25273 Query will no longer abnormally terminate when being executed
through a PROC.
25275 Universe will no longer give improper errors when it is unable
to open files due to no file units being available.
25276 Implemented $OPTIONS PIOPEN.EXECUTE to generate a more PIOPEN
compatible version of the Basic EXECUTE command, where a new
layer is not setup which will enable select lists created in an
EXECUTE level to remain active unless they are instead returned
back to the calling level via the RTNLIST clause.
25283 Implemented BREAK COUNT command. When this command is issued,
the number of times that breaks have been turned off will be
returned.
25330 uvlictool in report_lic mode will no longer generate an unhandled
exception on NT.
25379 UvAdmin will now install properly when loaded on a system
without Visual Basic.
25396 HS.SCRUB no longer exceeds available memory if there are too
many data anomalies.
25398 CONVERT.SQL will now correctly handle leading zeros in dictionary
LOC fields.
25414 Dynamic files will now correctly handle a SPLIT.LOAD greater
than 87 percent.
25454 A record can now be deleted out of a directory when the VOC entry
is in lower case.
25455 COPY will now properly copy records in type 1 and type 19 files.
25459 CREATE.FILE (in PICK flavor) will now create a file using the
specified modulo when the resulting file size is greater than
0x7fffffff hex.
25475 HS.FILENFO will now provide better reporting when creating the
file information cache.
25479 New style 32bit files will no longer produce BLINK error
messages when the file is actually intact.
25494 UvAdmin will now work properly when using short names with the
UV account or UV directory option in UvAdmin.
25503 UVObjects will now detect a network failure on a read or write.
25522 See Gtar 25494.
25524 UVNET will now work successfully between NT and unix at the
9.5.1.1D release.
25537 RESIZE no longer corrupts a file that has records sizes over 512
bytes.
25549 The domain name in UV_USERS on NT systems can now be changed by
using the command "CREATE.DOMAIN OLD-domain NEW-domain user".
25556 UVNET will no longer core dump when trying to open a remote file
that does not exist.
25557 Universe cleanup could remove memory segments with an ID of 0
under some circumstances. Users attempting to enter universe
would receive an initialization error 2 2. This has been
corrected.
25597 HS.SCRUB now detects an uncompiled itype amd restarts itself only
once.
25621 UVnet will now connect properly between the "D" release and
releases prior to 9.5.1.1C.
25681 Update HEADING command documentation
Problems fixed in release 9.5.1.1C1
-----------------------------------
GTAR Short Description
---- -----------------
24374 Fix LSEEK support for 64 bit files.
24414 Memory will now be properly allocated for SDML queries.
24993 Fix problems in filetool for 64 bit files.
25141 UNLOCK ALL will now properly release locks. Latches will now
be release properly on Alternate Keys.
25242 NFS file stat calls will now work properly with 64-bit files.
25273 Query will no longer abnormally terminate when executing a
query via a PROC.
25295 SISO maps will now work properly on UNIX systems.
25364 Filepeek will now work properly with files larger than 2 gigabytes.
25426 Fix dereferencing of variable in transaction logging.
25457 Fix possible hangs in UCI.
Problems fixed in release 9.5.1.1C
----------------------------------
GTAR Short Description
---- -----------------
22647 Implement 64-bit file support in UniVerse.
23221 DROP TABLE will now handle removing all tables with
multibyte names.
23406 Fix problem with machine name matching in Replication Access List.
23624 UV/ODBC does not require the server's host file (on AIX) to
contain an entry for every client if the rexecd process is started
with the "-c" parameter. In the /etc/inetd.conf file on the AIX
server, the "-c" parameter should be added to the "rexecd" command.
Then, at unix level use the command "refresh -s inetd" so the new
option will take effect.
23626 Allow publication and subscription of multiple files in replication.
23641 It is now possible to replicate dictionaries along with data files.
23663 Warn users that files with old style headers will not work with
replication.
23762 Duplicate print ids will no longer exist on spooler startup.
23928 SET.SQL REPORTING will now report the current VOC.CACHE setting.
23932 USING clause for SQL joined tables will now work correctly.
24058 The uv.rc will now log out the creator of shared memory segments.
24069 All SQL keywords in CREATE TABLE will now be case insensitive.
24140 Improve performance of replication.
24137 Disable CNAME command on files marked for replication.
24138 Add a new interface for Replication in UVAdmin.
24139 Increase user debugging support for replication.
24144 BASIC non-transactional Write will release any record lock
on the item after the trigger/cascade have completed.
24411 UCI will now support SQLParamOptions.
24504 The return value from the UCI/BCI command SQLRowCount will no
longer have its return value truncated to 16 bits.
24564 Performance enhancement for UCI/BCI in INSERT/UPDATE/DELETE.
24635 Accessing accounts via the UV.ACCOUNT file will now
work properly for accounts containing multibyte characters.
24637 Fix VOC entry for udtconv on NT.
24638 RESIZE no longer fails when dealing with oversized records.
24673 BCI connected to an ODBC database will now return the correct
result for SQL.COLUMN.MONEY.
24682 The file tool and uvfixfile will now detect invalid record
padding values.
24693 OPENSEQ and CREATE with multibyte files containing "\"
as a trail byte character will now function properly.
24705 It is now possible to delete and then recreate multi-column
UNIQUE indexes in a table that is not empty.
24706 BUILD.INDEX will now work correctly on an SQL table where
the index has a multi-column UNIQUE constraint.
24749 Memory will no longer be freed incorrectly when an NLS
mapping error occurs.
24767 A backup of all UniVerse accounts on NT run through UVAdmin will
now work with a long list of pathnames. This is a change to the
UVAdmin client at this release and requires the version of UVAdmin
shipped with this and later releases.
24768 Fixed uvbackup to properly wait between I/O operations.
24770 Pathnames will now be stored correctly in SQL control
files when NLS is enabled.
24799 The EMPTY.NULL option will now allow empty numeric fields with
INSERT ... SELECT.
24800 SQL SELECT statement with IN keywords will no longer abort.
24862 Calls to OCONV for time conversions will no longer dump core
when a bad specification string is passed.
24880 Core dumps will no longer occur while adding or deleting a right
justified null index.
24893 Record locks will no longer be left in certain cases on type 25
files.
24920 The install script now correctly calls /usr/sbin/slibclean for the
IBM.
24925 FORMAT.CONV will no longer dump core when processing files with
new style padding.
24938 A uvnet process with a shared memory id of 0 will no longer
terminate during initialization.
24940 The uv.rc script will now log out users regardless of the
length of their PID.
24956 RD Group locks will now be released properly on type 25 files.
24958 Update HS.ADMIN interface to support UniOLEDB as well as UV/ODBC.
24993 Update UniVerse File Tool to support 64-bit files.
24998 DROP INDEX will no longer take an unhandled exception on NT
due to memory problems.
25063 Uninitialized portions of NLS maps will no longer cause checksum
problems.
25082 Raid test 3620 in the QA suite no longer coredumps on the IBM.
25103 Unable to get shared memory segment messages will no longer appear
when upgrading to release 9.5 from a previous release.
Problems fixed in release 9.5.1.1B
----------------------------------
GTAR Short Description
---- -----------------
22879 The READU statement without a LOCKED clause will
now wait on a lock if the row in the lock table is
full until it can be obtained or until the timeout is
reached. Note that the ELSE clause will still be taken
if the lock cannot be obtained after the timeout period
(default is one hour).
23019 UVObjects - Problems with string arguments with a char(0)
in them. This has been found to be a problem with
native Visual Basic.
23221 DROP TABLE will now remove tables from DISK when NLS is enabled
and the table name contains multibyte characters.
23740 UVobjects will now properly release memory associated with
file objects.
23842 Record locks will be released correctly when the lock
table has been filled.
24234 Extend SET.SQL TRACE to put trace entries into an external
file.
24251 Added support for multiple database specification in the
uvrpc services file.
24266 Uvrestore will now work properly on NT systems
24278 Extend SET.SQL TRACE facility to the UCI/BCI Server.
24308 The remote UCI/BCI server now returns only the used size
buffer with each LS_SQFetch request, not the MAXBUFFSIZE size.
This is a performance improvement, especially for slow modems.
24336 Remove an 'extranious' NLS on induced data mapping from
BCI/UCI Server. Doing it twice resulted in bad data.
24341 A UCI/BCI client could not do row fetching from a second
server which used a larger MAXBUFFSIZE fetch buffer.
24352 NLSSTRmap() will now correctly map strings containing only
SISO characters.
24353 UVread will no longer take an access violation in certain
circumstances when NLS is off.
24378 Test TL.5B1.1 in the akstress testbed will no longer coredump.
24401 NLS will now generate one unmappable character (instead of two)
when a valid lead byte is followed by an invalid trail byte.
24402 NLS will no longer generate shift characters in internal
data when unmappable characters are input.
24404 Corrected tamdem command in Feed mode on HP systems
24405 The BCI/UCI does not ship a LS_SQDefine request to the Server
for each subsequent SQLBindParameter call if the SqlType field
did not change. Performance improvement.
24413 Fixed several core dump problems when NLS is on
(opening remote partfiles of a distributed file, invoking
UVFIXFILE with -LOG or -OUTPUT option and executing
SORT from a BCI client program).
24426 BUILD.INDEX on AIX and NT no longer fail with fault type 11.
24432 Release 9.5.1 supports mixed case keywords in SQL's DML. The
FROM keyword was missed. This GTAR now allws 'from' to be
mixed case.
24449 Update JPN- shift-in, shift-out maps.
24454 SET.FILE.MAP will now work for SISO maps with myltibyte shift
characters.
24467 Provide an alternate shift-JIS map and associated collation
sequence.
24484 A numeric column's value was not being compared correctly
when it was in a multi-column index. This caused the
optimizer to produce incorrect results when it tried to use
the index to get row sets that met the WHERE clause criteria
(column contained unnormalized data, like 075).
24486 ALTER TABLE will now successfully add a column to a table
containing multi-column UNIQUE constraints.
24500 Add the NLS map MS1252+MARKS.
24501 Enhanced UCI to support Unidata DBMSType.
24502 Added two new functions: SQLUseCfgFile and SQLDataSource.
24506 Uvbackup will no longer leave groups locked after -R option
is used.
24512 LIST will no longer display garbage when the field of a
large record in a dynamic file is empty.
24530 Japanese Shift maps will now consistantly ignore spurious
shift sequences.
24533 The SQL GROUP BY function will now work properly with NLS
locales enabled when grouping by more than one column.
24536 When NLS is enabled, SEQPath() will now return a proper error
when the file name does not map into the OS character set.
24540 SEQPath() will now decompose a UTF pathname properly.
24552 In Sql, deleteing more then 'about' 2000 rows caused any
INDEX not to be updated.
24554 Enhanced BCI to support new datatypes returned by SQLTables when
using SQL Server 7 ODBC driver.
24577 See gtar 24552.
24591 ICONV Date conversion codes with delimiters will now
correctly handle years less than 100 when the year is specified
in the first or second format position in the conversion code.
For example, ICONV("0001-01-01","DYMD").
24605 Enhanced UCI to support OLEDB
24608 Fix problem with broken overflow blocks.
24616 Certain SQL queries will no longer core dump when NLS is
enabled. These involved UNIONs.
24619 Dynamic files will be properly restored using uvrestore.
UVFIXFILE will no longer find problems with the
T30first flag and file load discrepancy.
24631 DROP TABLE will now longer leave some records locked on the
SQL catalog tables.
24644 It is now possible to attach to an account via the api when the
account name contains multibyte characters.
Problems fixed in release 9.5.1.1A
----------------------------------
GTAR Short Description
---- -----------------
21797 It is now possible to publish or subscribe a file where the
VOC entry for the file does not match the name of the file
located in the current directory. (This includes files with
Q pointers, long VOC entries with truncated OS filenames,
and files located in remote accounts.)
23255 If Data Replication has been setup with some published files
that have the hot backup box checked and some which are only
replicated (hot backup box not checked), then when synchronizing
on the Publisher after a failover, the SYNC command is now
successful.
23662 Replication no longer allows you to unpublish a file until all
subscriptions have been removed.
23680 The FORMAT.MAP option will now produce formatted output when
NLS is active. The FORMAT.MAP mapname will no longer be reset to NONE
after a PRINT is done. Also, if a FORMAT.MAP mapname is changed
and the new mapname length is larger than the original mapname length,
a core dump will no longer occur at a future PRINT time.
23804 When modifying SETPTR settings, an implicit PRINTER CLOSE is
now correctly done. This sends a pending print job to the
spool queue.
23830 Using READLIST with the SETTING option will now set the
variable to the correct number of records.
23937 See gtar 23421.
24036 Correct internal naming conventions for clarity.
24037 The C option for LIST now correctly generates the reference number
for the extra parameter for the LENDP, FMTDP and FOLDDP opcodes.
24057 If a file has keys greater than 64 characters in a type 25 file,
the records will now be accessed correctly.
24064 Corrected memory error when accessing an index within a view.
24073 On NT, if a view's data file is missing, DROP VIEW now clears up
the SQL catalog, removes the view's dictionary file, and deletes
the view's VOC pointer.
24116 A BCI client running remotely will no longer 'hang' on NT if it
receives a NOWAIT error return on a SQLFetch.
24131 HELP files now exist in UVADMIN.
24132 Running a UCI or BCI program with the sequence of calls similar to
SQLPrepare, SQLFreeStmt Close, SQLExecute with an ORDER BY or GROUP
BY clause will no longer cause the uvsrvd process to produce a core
dump.
24232 The UNIX and NT installer no longer write an entry for "&NEXT.AVAIL&"
to any new UDR configuration file dictionaries.
24261 Enhanced universe file tool.
24271 When viewing the list of published files on a replication server, the
details button on that dialog will now correctly use the publication
ID as the publication key.
24277 The display of LIST.READU will no longer line wrap with the Group
information.
24280 Improved existing multibyte code.
24284 Add support for shifting in and out of multiple maps within UniVerse
NLS
24285 Export unishared function from universe.dll.
24287 When opening more than 48 files, UVOBJECTS no longer fails with an
application error.
24292 Changed uvfixfile to follow latch concurrency rules for type 25 files.
24337 NLS string mapping functions will now work properly if a ShiftIn/ShiftOut
map is missing.
24342 Fixes to NLS SISO code.
24348 Fix SPOOL -LIST -PRINTER command.
24352 NLSSTRmap() will now correctly map strings containing only SISO
characters.
24353 UVread will no longer take an access violation in certain circumstances
when NLS is off.
24358 When reinstalling uniVerse release 9.5 from cdrom onto a Solaris 2.7
machine, the install no longer aborts when copying certain files into
the uvhome/INCLUDE directory.
===================================================
End of UniVerse for Windows NT Release Notes.
===================================================
================================
UniVerse ODBC Server Version 3.7
Release Notes
================================
Copyright 1998, Ardent Software, Inc.
All rights reserved.
UniVerse ODBC, UV/ODBC, UniVerse ODBC Config, UV/ODBC Config,
HyperStar, HyperStar Server, HyperStar FP Server, STAR/Config, STAR/ODBC,
UniVerse, UniVerse Call Interface, PI/open, Prime
INFORMATION, and Ardent are trademarks of Ardent Software, Inc.
Cognos and Impromptu are trademarks of Cognos Inc.
DG/UX is a registered trademark of Data General Corporation.
Hewlett-Packard and HP-UX are trademarks of Hewlett-Packard Company.
IBM and AIX are trademarks of the IBM Corporation.
Microsoft is a registered trademark and Open Database
Connectivity, Windows, Windows NT, and Windows 95 are trademarks of
Microsoft Corporation.
Powersoft and Powerbuilder are trademarks of Sybase Inc.
UNIX is a registered trademark in the United States and other countries,
licensed exclusively through X/Open Company, Ltd.
Solaris and SPARC are trademarks of Sun Microsystems, Inc.
All other company or product names mentioned are trademarks or
registered trademarks of their respective trademark holders.
=============================
Compatibility and Limitations
=============================
UniVerse ODBC Server version 3.7 is compatible with the
following UniVerse ODBC client software:
UniVerse ODBC Driver version 3.7
UniVerse ODBC Config version 3.7
* If the Encrypt Passwords option is used, the configuration file
can be used only by version 3.7 client software.
STAR/Config Version 2.1 or later
* Configuration files with encrypted passwords are not supported.
STAR/ODBC FP and STAR/ODBC FP 32 Version 3.0
* Configuration files with encrypted passwords are not supported.
* ODBC procedures are not supported.
* Data source connection options for NLS are not supported.
STAR/View, STAR/DDE, STAR/C and STAR/ODBC (non-FP) clients do not work
with any UniVerse ODBC server.
Compatibility of older UniVerse ODBC servers with UniVerse Release 9.5
----------------------------------------------------------------------
UniVerse ODBC (HyperStar) non-FP server versions 3.0 and earlier will
continue to operate after upgrading your UniVerse installation to
Release 9.5 on UNIX platforms ONLY.
UniVerse ODBC server releases for Windows NT earlier than version 3.5
will NOT operate with UniVerse Release 9.5.
===============================
Tested ODBC Client Applications
===============================
UniVerse ODBC Server version 3.7 has been tested with the
following 16-bit Windows ODBC client applications:
* Microsoft Access Version 2.0
* Microsoft Query Version 1.0
UniVerse ODBC Server version 3.7 has been tested with the
following 32-bit Windows ODBC client applications:
* Microsoft Access Versions 95 (7.0) and 97
* Microsoft Visual Basic Enterprise Edition Versions 4.0 and 5.0
* Microsoft Query Versions 2.0 and 8.0
* Powersoft Powerbuilder 5.0
* Cognos Impromptu Version 3.0
Microsoft Access
----------------
The performance of running queries in Microsoft Access can be
significantly affected if the primary key field of a UniVerse file,
table, or view is not UniVerse ODBC accessible. This would occur if
the primary key field is excluded from the @SELECT phrase in the
dictionary of a file, table, or view, or the primary key field is
excluded and ID.SUP is specified in the '@' phrase of a file
dictionary where there is no '@SELECT' phrase (note that the '@'
phrase is ignored by UniVerse for SQL tables and views). To get the
best possible performance from Microsoft Access, we strongly recommend
that the primary key field be UniVerse ODBC accessible. For more
information about UniVerse ODBC accessible fields, see chapter 4,
Accessing UniVerse Data, in "UniVerse ODBC Server Guide".
Microsoft Access has the following functional limitations imposed
by its use of the Microsoft Jet database engine:
* Only the first 255 columns of an ODBC table are accessible.
All other columns are hidden from the user.
* Access does not allow importing or linking ODBC tables with table or
column names longer than 64 characters.
Fields defined with a UniVerse SQL data type of DECIMAL or NUMERIC and
a precision greater than 15 digits are converted to Text fields by
Microsoft Access.
When inserting new rows into a table whose underlying UniVerse
representation is an association or unassociated multivalued field, be
sure to enter a value for the @ASSOC_ROW pseudo-column (with name
mapping on, this column will be called Z_ASSOC_ROW). Failure to
specify a value for @ASSOC_ROW can cause Access 97 to abort with an
"access violation" error.
When creating a query in Microsoft Access, you have the option to
specify an SQL statement as the basis of the query. Due to a bug in
Access, any SQL statement that contains the UNION keyword will fail to
execute. Before submitting the query to ODBC for execution, Access
rewrites the SQL and puts parentheses around each SELECT statement,
which is invalid ODBC SQL syntax. For example:
SELECT * FROM U_TABLE UNION SELECT * FROM U_TABLE
would be rewritten by Access as:
( SELECT * FROM U_TABLE ) UNION ( SELECT * FROM U_TABLE )
Microsoft Query (accessed via "Get External Data" from Microsoft Excel)
---------------
Attempting to connect to a UniVerse account that has a file, table, or
view whose name is greater than 65 characters will fail with a
"General ODBC Error". This is due to a bug in Microsoft Query, which
fails to allocate enough memory to accomodate ODBC table names, which
can contain up to 128 characters as defined in the ODBC 2.0
specification. Microsoft has confirmed that this is a problem with
Query, but is not planning to provide a fix in any future release.
When connecting to a UniVerse account that is not an SQL schema, only
UniVerse files referenced by that account are made available by
Microsoft Query. All UniVerse SQL tables and views are excluded from
the list of available tables, and the dropdown list of available
schemas is disabled. Microsoft has confirmed that this is a problem
with Query, but is not planning to provide a fix in any future
release.
When connecting to a UniVerse account that is an SQL schema, only
UniVerse SQL tables and views are made available by Microsoft Query.
UniVerse files are excluded from the list of available tables. Due to
a bug in Microsoft Query, any ODBC tables reported with an empty
string as the ODBC Table Qualifier are ignored. Since Universe files
are not part of a Universe SQL schema, UniVerse ODBC reports their
ODBC Table Qualifier as the empty string, in conformance with the ODBC
2.0 specification. Microsoft has confirmed that this is a problem
with Query, but is not planning to provide a fix in any future
release.
Microsoft Query Version 1.0 quotes numeric literals in the SQL
statements it generates for queries which select on numeric columns.
This causes a "Data type conflict" error to be returned when the query
is executed, as the quoted numeric literal is interpreted as a string
and cannot be used in a numeric comparison. This problem has been
fixed in Version 2.0 of Microsoft Query, which is included with
Microsoft Excel for Windows 95 Version 7.0.
Microsoft Query only provides visibility to the first 255 columns of
an ODBC table. All other columns are hidden from the user.
Microsoft Query does not allow adding tables to a query that have
column names longer than 64 characters. Attempts to do so fail with a
"Can't access table" message. However, such tables are accessible by
building a query using an SQL statement which SELECTs the table. To
execute an SQL statement, choose "Execute SQL..." from the File menu.
It is suggested that Query Designer be used with Microsoft Query 8.0
(available in Microsoft Office 97) rather than Query Wizard. If Query
Wizard is used to create queries having any selection criteria,
Microsoft Query will generate an SQL statement having invalid syntax
and the query will fail to execute. Microsoft has confirmed that this
is a problem with Query, but is not planning to provide a fix in any
future release. To use Query Designer, make sure the box labeled 'Use
the Query Wizard to create/edit queries' is unchecked when presented
with the 'Choose Data Source' dialog box.
File DSNs
---------
If you are having problems using File DSNs, you can generally circumvent
the problem by using the file DSN as a "pass-through" mechanism to an
existing User or System DSN. You do this by manually editing the file DSN
file and inserting a single line after the "[ODBC]" section header as
follows:
[ODBC]
DSN=<your User or System DSN name as defined in the registry>
No other lines should be present in the ODBC section. When your
application requires a file DSN (because it uses the FILEDSN keyword in its
SQLDriverConnect call,) the Driver Manager will find the file DSN and then
extract all needed connection information from the User or System DSN.
Visual Basic
------------
Data Access Objects have the following functional limitations imposed
by their use of the Microsoft Jet database engine:
* Only the first 255 columns of an ODBC table are accessible.
All other columns are hidden from the user.
* ODBC Tables with table names longer than 64 characters are inaccessible.
* ODBC Tables with column names longer than 64 characters are accessible
for queries, but attempts to insert, update, or delete rows from the
table will fail.
The above limitations do not exist with Remote Data Objects.
===================
General Usage Notes
===================
Connection Licenses
-------------------
Each connection from an ODBC client application to the UniVerse ODBC
requires one UniVerse ODBC server connection license and one UniVerse
user license. If your application makes multiple simultaneous
connections to UniVerse, each one uses one UniVerse ODBC server
connection license and one UniVerse license.
Fetching Data from Multiple Statement Handles
---------------------------------------------
To fetch data from multiple open statement handles using SQLFetch, the
application must be in manual-commit transaction mode. To enable
manual-commit mode, auto-commit mode must be turned off by calling the
SQLSetConnectOption ODBC function as follows:
SQLSetConnectOption(hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF);
It is not possible to concurrently fetch data using SQLFetch on two or
more statement handles in auto-commit mode due to the cursor commit
behavior of the UniVerse Call Interface (UCI), which the UniVerse ODBC
server uses to access UniVerse data. UCI has a cursor commit behavior
of SQL_CB_CLOSE, which means that all allocated statement handles
(apart from the statement which caused the auto-commit) in the
'executed' state are closed and returned to the 'prepared' state.
Result sets associated with closed statement handles are no longer
available to be retrieved using SQLFetch.
To fetch rows from multiple open statement handles using SQLFetch, use
manual-commit mode. For more information on cursor commit behavior
and transaction modes in ODBC, see "Microsoft ODBC 2.0 Programmer's
Reference".
==============
Error Messages
==============
The following error messages are not documented in "UniVerse ODBC
Guide":
1. Invalid Cursor State - Cursor unprepared by an autocommit caused by a
previously executed statement.
Error ID: 8 Severity: ERROR Facility: OCLIERR
=============================
Problems Fixed in UniVerse ODBC version 3.7
=============================
The following problems have been fixed in UniVerse ODBC Server 3.7.
GTAR Description
-------------------------------------------------------------------------
20850 Error when A-correlative refers to field 0
21664 HS.ADMIN menu doesn't reprompt correctly
21789 Correlative with group extract codes are invisible
22493 Pick associations with correlative in controlling field are invisible
23117 Can't change transaction isolation level
23750 Several HS.SCRUB problems fixed
23752 SQLSpecialColumns() fails to identify some SQL_BEST_ROWIDs
==================================================
Functionality changed in UniVerse ODBC version 3.7
==================================================
The following functionality has changed in UniVerse ODBC 3.7 Server. For
details of UniVerse ODBC functionality, see the UniVerse ODBC Guide.
GTAR Description
-------------------------------------------------------------------------
23746 HS.SCRUB supports DATE, TIME, VARCHAR(n)
23748 HS.SCRUB creates @SELECT phrase in dictionary
23747 HS.SCRUB creates @EMPTY.NULL phrase in dictionary
24061 Support ODBC SQL FOR UPDATE clause
24061 Support UniVerse SQL keywords EXPLAIN and NOWAIT
24061 Support parameter markers in {native} and reparsed SQL statements
24061 Improved server debug logs
===================================================
End of UniVerse for Windows NT Release Notes.
===================================================