13.01.2013 Views

Progress OpenEdge 10.1C04 Service Pack Readme

Progress OpenEdge 10.1C04 Service Pack Readme

Progress OpenEdge 10.1C04 Service Pack Readme

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Progress</strong> <strong>OpenEdge</strong> <strong>10.1C04</strong> <strong>Service</strong> <strong>Pack</strong> <strong>Readme</strong><br />

READMESP.txt<br />

Ports: All<br />

Date: June 2009<br />

--------------------------------<br />

Copyright(c) 1984-2009 <strong>Progress</strong> Software Corporation. All rights reserved.<br />

To access third party product licenses, go to the 'licenses' directory<br />

located in the <strong>OpenEdge</strong> installation directory. For example, go to<br />

C:/<strong>OpenEdge</strong>/licenses.<br />

Read these On-line Release Notes<br />

================================<br />

It is important to read these on-line release notes. They are the<br />

primary release notes. The hard-copy release notes supplement them,<br />

but do not replace them.<br />

The on-line release notes are on the distribution medium as two<br />

text files:<br />

* READMESP<br />

* READMESP.txt<br />

The files have identical content that includes a list of known issues followed by a list of issues<br />

fixed in this release.<br />

In addition, the distribution medium includes the following HTML report<br />

files which list the issues addressed in all <strong>Service</strong> <strong>Pack</strong>s for this<br />

release - organized by version, issue number (CR ID), or product component.<br />

* oe--version.htm (Lists fixed issues by Version)<br />

* oe--issue.htm (Lists fixed issues by Issue Number)<br />

* oe--component.htm (Lists fixed issues by Component)<br />

--------------------------------<br />

This readme file contains the following information:<br />

- Installation Instructions<br />

- Product Notes<br />

- List of Issues Addressed in this <strong>Service</strong> <strong>Pack</strong><br />

========================================================================<br />

INSTALLATION INSTRUCTIONS<br />

--------------------------------------------------------------------------------<br />

This section contains the following information:<br />

- Before you install this <strong>Service</strong> <strong>Pack</strong>.<br />

- About the Backup and Selective Install Functionality.<br />

- Starting the <strong>Service</strong> <strong>Pack</strong> Installation.<br />

- Installing the <strong>Service</strong> <strong>Pack</strong> in Silent or Batch Mode.<br />

- Recovering a Previous Installation.<br />

- Reporting Problems with the <strong>Service</strong> <strong>Pack</strong> Installation.<br />

BEFORE YOU INSTALL THIS SERVICE PACK:<br />

-------------------------------------<br />

1. Make sure you shut down any instances of <strong>OpenEdge</strong> that you<br />

Page 1


READMESP.txt<br />

have running before installing this <strong>Service</strong> <strong>Pack</strong>. If you do not,<br />

when you run the <strong>Service</strong> <strong>Pack</strong> installation, you might receive messages<br />

indicating that some files could not be copied on top of other files<br />

(because they are locked/in use by another process). Check with your system<br />

administrator if you do not know how to shut down <strong>OpenEdge</strong>.<br />

2. Read through the entire INSTALLATION INSTRUCTIONS (see next section below)<br />

before proceeding.<br />

3. If your client and server are installed on the same physical machine<br />

and have different levels installed, your machine might experience shared<br />

memory problems. For more information about this issue, refer to the<br />

following <strong>Progress</strong> Solutions (accessible via the <strong>Progress</strong> Software Support<br />

Web site: http://www.progress.com/openedge/support)<br />

P132 :"What Type of Connection is Possible from Client to Server when the<br />

<strong>Progress</strong> versions differ?"<br />

P13987: "What causes shared memory version errors 1178 and 1423?"<br />

4. Log in as "Administrator" or as a user with Administrator privileges. If you<br />

do not know the Administrator password for your system, check with your<br />

system administrator.<br />

5. For UNIX only: Make sure the DLC environment variable is set to the directory<br />

that contains the <strong>OpenEdge</strong> installation you want to <strong>Service</strong> <strong>Pack</strong>.<br />

If the DLC variable has not been set, then enter one of the<br />

following commands to set it:<br />

Shell Commands (assume "/dlc" is the <strong>OpenEdge</strong> directory)<br />

------- ---------------------------------------------sh,<br />

ksh DLC=/dlc ; export DLC<br />

csh setenv DLC /dlc<br />

ABOUT THE BACKUP and SELECTIVE INSTALL FUNCTIONALITY<br />

----------------------------------------------------<br />

The <strong>Service</strong> <strong>Pack</strong> installation offers you two key functions:<br />

* The option to create a backup of existing files.<br />

* The ability to install only those files relevant to your license.<br />

The <strong>Service</strong> <strong>Pack</strong> installation will ask if you want to backup existing<br />

files. If you choose to create a backup, you will have the option of<br />

changing or accepting the default backup location, and the backup will<br />

be created for only those files that are about to be updated via the<br />

<strong>Service</strong> <strong>Pack</strong>.<br />

The <strong>Service</strong> <strong>Pack</strong> installation will then determine what <strong>OpenEdge</strong><br />

license(s) have been installed. Based on that information, the install<br />

will unpack from the <strong>Service</strong> <strong>Pack</strong> archives, only the files that are<br />

relevant for the license(s) installed.<br />

The end of the installation presents the option to review the <strong>Service</strong><br />

<strong>Pack</strong> README file (this file) and the SP(n)-log.txt file which contains<br />

a list of files installed and backed up if a backup was executed.<br />

The installation saves the readmesp and log files to your Install directory<br />

so you can also view them later.<br />

Page 2


STARTING THE SERVICE PACK INSTALLATION<br />

--------------------------------------<br />

READMESP.txt<br />

UNIX:<br />

-----<br />

1. If you have downloaded the <strong>Service</strong> <strong>Pack</strong> image, unpack the image to its own<br />

directory.<br />

OR<br />

If you have received the <strong>Service</strong> <strong>Pack</strong> on CD-ROM, mount the CD to your CD-ROM<br />

drive.<br />

2. From a directory other than the <strong>Service</strong> <strong>Pack</strong> cdimage directory, issue<br />

the following command:<br />

/<br />

Windows:<br />

--------<br />

1. If you have downloaded the <strong>Service</strong> <strong>Pack</strong> image, unpack the image to its own<br />

directory.<br />

OR<br />

If you have received the <strong>Service</strong> <strong>Pack</strong> on CD-ROM, insert the CD into your<br />

CD-ROM drive.<br />

2. Using Windows Explorer, go to the <strong>Service</strong> <strong>Pack</strong> directory, and double-click<br />

the 'Setup' icon to begin the installation.<br />

INSTALLING THE SERVICE PACK IN SILENT OR BATCH MODE<br />

---------------------------------------------------<br />

Silent or batch install is available for <strong>Service</strong> <strong>Pack</strong>s on UNIX and Windows.<br />

UNIX<br />

----<br />

A normal (interactive) installation will prompt you for required<br />

information with dialog boxes.<br />

A batch install will not prompt for your input. It will read the required<br />

information from an installation INI file. By default, the batch install<br />

will look for the "install.ini" file in your current directory.<br />

You must create the INI file before you run a silent install.<br />

If no INI file is found, the installation will fail.<br />

Here are the contents of a sample INI file:<br />

[<strong>Service</strong> <strong>Pack</strong>]<br />

<strong>Progress</strong>InstallDir=/usr/<strong>OpenEdge</strong>/101B/dlc<br />

ReInstall=1<br />

Backup=1<br />

BackupDir=/usr/<strong>OpenEdge</strong>/101B/SP_Backup<br />

BackupOverwrite=1<br />

To perform a batch install, run the following command (all one line):<br />

/proinst -b /install.ini -l<br />

Page 3


READMESP.txt<br />

If you do not specify a filename with the -l switch, the install script uses the<br />

install.log filename, by default. If you do not specify a directory for the -l<br />

switch, the install script uses the first of the following environment variables<br />

found: TMP, TEMP, TMPDIR.<br />

Windows<br />

-------<br />

A normal (non-silent) installation will prompt you for required information<br />

with dialog boxes.<br />

The silent install will not prompt for input. It will read the required<br />

information from a response file, typically named response.ini. A response.ini<br />

file is automatically generated when you run an interactive installation. There<br />

is a file named response.ini that is kept in the \install<br />

directory.<br />

You must create the response.ini file before you run a silent install.<br />

To have the install program create a response.ini file, run an interactive<br />

(non-silent) install and specify to record the user inputs with the following<br />

command:<br />

drive:\setup.exe -psc_r -psc_f1=c:\\response.ini<br />

Alternately, you can manually create a response.ini file. The following<br />

sample provides the default responses to an initial <strong>Service</strong> <strong>Pack</strong> install:<br />

==========================<br />

BEGIN SAMPLE RESPONSE FILE<br />

==========================<br />

[InstallShield Information]<br />

Version=7.1.100.1242<br />

[Application]<br />

Name=<strong>OpenEdge</strong><br />

Version=10.1B<br />

Company=<strong>Progress</strong> Software<br />

File=Response File<br />

;<br />

; DESCRIPTION of Welcome Dialog<br />

;<br />

; Result - is used as the return code for this section. Only a value of 1 is<br />

; acceptable.<br />

;<br />

[Welcome Dialog]<br />

Result=1<br />

[<strong>Service</strong> <strong>Pack</strong> Backup Directory Dialog]<br />

_nSPBackup=0<br />

_sSPBackupDir=C:\<strong>Progress</strong>\<strong>OpenEdge</strong>\SPBackup<br />

Result=1<br />

;<br />

; DESCRIPTION of Summary Dialog<br />

;<br />

; Result - is used as the return code for this section. Only a value of 1 is<br />

; acceptable.<br />

;<br />

[Summary Dialog]<br />

Result=1<br />

[SdFinish]<br />

Page 4


Result=1<br />

bOpt1=0<br />

bOpt2=0<br />

==========================<br />

END SAMPLE RESPONSE FILE<br />

==========================<br />

READMESP.txt<br />

To perform a silent install, issue the following command:<br />

drive:\setup.exe -psc_s -psc_f1=c:\\response.ini<br />

[-psc_f2=c:\\setup.log]<br />

If you choose to create a log file, the contents of a successful silent install<br />

will be as follows:<br />

[InstallShield Silent]<br />

Version=v7.00<br />

File=Log File<br />

[ResponseResult]<br />

ResultCode=0<br />

RECOVERING A PREVIOUS INSTALLATION<br />

----------------------------------<br />

If you created a backup during the <strong>Service</strong> <strong>Pack</strong> installation, you can<br />

restore your installation to its original state if so desired. Because<br />

the backup saves the files just prior to installing the <strong>Service</strong> <strong>Pack</strong><br />

it is possible only to return to that point. If multiple <strong>Service</strong> <strong>Pack</strong>s<br />

have been installed, it is not possible to roll back through each<br />

<strong>Service</strong> <strong>Pack</strong> unless backups have been saved for each installation in<br />

separate directories. Each backup would have to be restored in the<br />

reverse order from which they were installed.<br />

To restore your installation to its original state prior to<br />

installing the <strong>Service</strong> <strong>Pack</strong>, do the following:<br />

UNIX:<br />

1. cd <br />

2. cp -R * <br />

WINDOWS:<br />

1. Using Windows Explorer, navigate to the<br />

/.<br />

2. Choose Edit->Select All, and choose Edit->Copy.<br />

3. Go to and choose Edit->Paste.<br />

This will recursively copy the files saved in the backup to your<br />

10.1B installation directory, thereby restoring the DLC area to its<br />

original state prior to installing the <strong>Service</strong> <strong>Pack</strong>.<br />

REPORTING A PROBLEM WITH THE SERVICE PACK INSTALLATION<br />

------------------------------------------------------<br />

If you encounter problems with the installation of the <strong>Service</strong> <strong>Pack</strong>,<br />

or with the <strong>OpenEdge</strong> product as a result of installing the <strong>Service</strong> <strong>Pack</strong>,<br />

please contact Technical Support at www.progress.com.<br />

Page 5


READMESP.txt<br />

=========================================================================<br />

PRODUCT NOTES<br />

1. ABL<br />

Language Issues<br />

Object-oriented ABL<br />

ProDataSet<br />

Web <strong>Service</strong>s client<br />

XML<br />

2. Adapter for Sonic ESB<br />

3. ADE Tools and Runtime<br />

ADE Common Tools<br />

GUI Rendering<br />

Tools<br />

4. Database<br />

Database Utilities<br />

Failover Clusters<br />

RDBMS<br />

5. DataServers<br />

MS-SQL<br />

MS-SQL/ODBC<br />

ORACLE<br />

6. Documentation<br />

ABL<br />

7. Graphical User Interface<br />

8. Open Client<br />

.NET<br />

Java<br />

Web <strong>Service</strong>s Provider<br />

9. <strong>OpenEdge</strong> Architect<br />

Tools for Business Logic<br />

10. <strong>OpenEdge</strong> Replication<br />

Agent<br />

Replication<br />

11. Security<br />

Tools<br />

12. SQL<br />

SQL Explorer<br />

Tools<br />

13. WebSpeed<br />

Diagnostics<br />

================================================<br />

ABL -<br />

================================================<br />

Note: OE00160376 Type: Behavior Change<br />

XCODE-SESSION-KEY Attribute for the SECURITY-POLICY Handle<br />

---------------------------------<br />

When distributing encrypted code, the application provider is expected to<br />

distribute a compile program that compiles the application at the end-user site.<br />

The core of this program is one or more COMPILE statements with the XCODE<br />

option. With the addition of the XCODE-SESSION-KEY attribute, the encryption<br />

key can be specified once for all subsequent COMPILE statements and run-time<br />

compilations.<br />

XCODE-SESSION-KEY Attribute for Security-Policy<br />

Indicates the XCODE encryption key to be used by the COMPILE statement for<br />

Page 6


encrypted ABL code.<br />

Data type: CHARACTER<br />

Access: Writeable<br />

Applies to: SECURITY-POLICY system handle<br />

READMESP.txt<br />

Set the XCODE-SESSION-KEY attribute to indicate the encryption key for the ABL<br />

COMPILE statement. The key set must be the same as the key used with the XCODE<br />

utility. The XCODE-SESSION-KEY attribute has an eight character limit. If<br />

XCODE-SESSION-KEY attribute is set to a key longer than eight characters, only<br />

the first eight characters will be used and no warning or error message will be<br />

issued by the compiler. If the XCODE-SESSION-KEY attribute is queried, then the<br />

compiler will return an error message at run time. This attribute does not have<br />

a default or an initial value. Once it has been set, it can be cleared by<br />

setting it to the Unknown Value (?).<br />

If the compiler detects that the file to be compiled is an encrypted source file<br />

it will use the key specified in the XCODE option. If one is not provided, it<br />

will check if the XCODE-SESSION-KEY attribute on the SECURITY-POLICY system<br />

handle has been set. If this attribute has not been set, it will use the<br />

built-in default key.<br />

If the XCODE-SESSION-KEY attribute is set, if the file being compiled is<br />

encrypted, and if the XREF, XREF-XML, or LISTING options are used with the<br />

COMPILE statement, then the compiler will issue a run-time error. If the<br />

XCODE-SESSION-KEY attribute is set and the DEBUG-LIST option is specified on the<br />

COMPILE statement, then the DEBUG-LIST option will be silently ignored by the<br />

compiler and a debug listing file is created with no ABL code. This file<br />

contains the words ***Encrypted Source***.<br />

Once the XCODE-SESSION-KEY attribute has been set, it applies to every COMPILE<br />

statement encountered in all ABL code. It also applies to run-time compilations<br />

of encrypted source. In order to have it not apply to a specific COMPILE<br />

statement or a run-time compilation, the XCODE-SESSION-KEY can be cleared by<br />

setting it to the Unknown Value (?).<br />

Note: OE00166340 Type: Behavior Change<br />

Integer overflow message has changed<br />

---------------------------------<br />

When an integer overflow is detected by ABL the message:<br />

"Value too large to fit in INTEGER datatype. (13682)" is displayed<br />

usually followed by the message:<br />

"Unable to do run-time conversion of datatypes. (5678)".<br />

This second message no longer appears and is replaced with this message:<br />

"** Unable to update Field. (142)".<br />

Note: OE00166777 Type: Behavior Change<br />

New SESSION:TIMEZONE attribute<br />

---------------------------------<br />

The new TIMEZONE attribute of the SESSION system handle directs the TODAY, TIME,<br />

NOW, MTIME and TIMEZONE functions to return values relative to the<br />

SESSION:TIMEZONE value, and will initialize TODAY and NOW database and<br />

temp-table fields with values relative to SESSION:TIMEZONE.<br />

Description: Specifies the time zone offset from UTC, in minutes, to use in the<br />

TODAY, TIME, NOW, MTIME and TIMEZONE functions, as well as the values for DATE,<br />

DATETIME and DATETIME-TZ database and temp-table fields with initial values of<br />

TODAY or NOW.<br />

Data type: INTEGER<br />

Access: Readable/Writeable<br />

Applies to: SESSION system handle<br />

Page 7


READMESP.txt<br />

The default value is unknown (?) meaning use the <strong>OpenEdge</strong> session's time zone<br />

offset.<br />

If SESSION:TIME-SOURCE contains a value other than "local" or "", meaning get<br />

time-related data from a database server machine, SESSION:TIMEZONE is ignored.<br />

Valid values range from -840 to +840 (-14:00 to +14:00).<br />

Note: OE00168578 Type: Known Issue<br />

RETURN ERROR behavior change<br />

---------------------------------<br />

If a RETURN ERROR statement has an invalid expression for the<br />

, then ERROR will not be raised in the caller as of 10.1C. Prior<br />

to 10.1C, even though the expression was invalid, ERROR would<br />

still be raised in the caller. The following example illustrates the change in<br />

behavior.<br />

PROCEDURE epoo:<br />

RETURN ERROR SUBSTRING("abc", 1, -10).<br />

MESSAGE "after return error epoo".<br />

END PROCEDURE.<br />

RUN epoo.<br />

MESSAGE "after epoo".<br />

In 10.1B you will not see the message "after epoo", because ERROR was raised in<br />

the caller. In 10.1C you will see the message, since ERROR is not raised.<br />

Note: OE00170185 Type: Behavior Change<br />

DEFINE VARIABLE AS LONGCHAR INITIAL ? initialize to unknown value<br />

---------------------------------<br />

Previously, when assigning the initial Unknown Value ? to a LONGCHAR variable,<br />

it behaved as if it had been assigned the question mark character "?".<br />

DEFINE VARIABLE AS LONGCHAR INITIAL ?.<br />

The variable now contains the Unknown Value ?, instead of the question mark<br />

"?".<br />

Note: OE00174992 Type: Known Issue<br />

TEMP-TABLE creation is slower in <strong>OpenEdge</strong> 10.x compared to 9.1<br />

---------------------------------<br />

See the <strong>Progress</strong> Knowledge Base, Solution P122597.<br />

Note: OE00177532 Type: Behavior Change<br />

Non-empty RETURN-VALUE from AppServer CONNECT procedure returns ERROR<br />

---------------------------------<br />

RETURN behaves the same as RETURN ERROR when used in an<br />

Application Server CONNECT procedure (srvrConnectProc property). With <strong>OpenEdge</strong><br />

Release 10.1C03 this has been changed so that RETURN sets RETURN-VALUE<br />

to the string in the client after the server CONNECT statement.<br />

Note: OE00177626 Type: Behavior Change<br />

DECIMALS attribute for TEMP-TABLE field now returns expected value<br />

---------------------------------<br />

If a TEMP-TABLE DECIMAL field was defined with DECIMALS 0, the DECIMALS<br />

attribute used to return 30, instead of 0 as expected. It now returns the<br />

correct value of 0.<br />

Note: OE00179248 Type: Behavior Change<br />

GEt CURRENT [table] NO-LOCK for a TEMP-TABLE sometimes refreshes the record<br />

---------------------------------<br />

Prior to <strong>OpenEdge</strong> Release 10.1C, GET-CURRENT(NO-LOCK) would not refresh a record<br />

Page 8


READMESP.txt<br />

if it had been previously updated, because an update implies an EXCLUSIVE-LOCK.<br />

From Release 10.1C through Release 10.2A, a TEMP-TABLE record was sometimes<br />

refreshed incorrectly, due to a difference in certain TEMP-TABLE assignments.<br />

If the assignment to the TEMP-TABLE record was very simple (ttField = x), then<br />

the lock upgrade to EXCLUSIVE-LOCK was optimized out. This behavior has been<br />

changed, such that future releases will behave the same as releases prior to<br />

Release 10.1C.<br />

Note that updates to database fields, followed by GET-CURRENT(NO-LOCK), have<br />

always worked correctly and are unaffected by this issue.<br />

Note: OE00179792 Type: Behavior Change<br />

Errors raised on RETURN statement are not handled in a consistent manner<br />

---------------------------------<br />

When the RETURN statement is followed by an expression, it is possible that the<br />

expression could result in an ERROR condition. Using Structured Error Handling<br />

it should be possible to catch these errors in the block in which the RETURN<br />

statement appears. This works as expected for application errors (AppError).<br />

However, system errors (SysError) do not get handled by a CATCH in the block in<br />

which the RETURN statement appears, but get returned to the caller and handled<br />

there.<br />

For Release 10.2B, a CATCH block covering a RETURN statement will catch errors<br />

raised during the evaluation of the expression on the RETURN statement, rather<br />

than raising error in the caller. These errors will propagate to the caller<br />

automatically if the RETURN statement is covered by a ROUTINE-LEVEL ON ERROR<br />

UNDO, THROW statement.<br />

================================================<br />

ABL - Language Issues<br />

================================================<br />

Note: OE00164453 Type: Behavior Change<br />

CREATE BUFFER statement now gets shared schema lock<br />

---------------------------------<br />

Prior to 10.1C02 the CREATE BUFFER statement did not get a shared schema lock on<br />

the database containing the table for which the buffer was being created. If an<br />

application consisted entirely of programs and classes that contained only<br />

dynamic references to buffers for database tables, it is possible that the<br />

database schema could be changed even though there were running programs with<br />

dependencies on the existing schema. The results on running programs impacted<br />

by the schema change is indeterminate and could result in database corruption.<br />

As of 10.1C02 this potential hole in the schema lock protocol has been fixed.<br />

In general, no application should see any change in behavior unless it changes<br />

existing table definitions while the database is online and that schema change<br />

occurs at a time when all running programs have only dynamic references to<br />

tables in the database.<br />

Note: OE00166641 Type: Behavior Change<br />

Buffer change will be backed out if error on expression<br />

---------------------------------<br />

If a buffer operation occurs during the evaluation of a statement that has<br />

NO-ERROR on it and an error occurs, that operation should be backed out. This<br />

was not being done in the case where the statement is an "expression statement"<br />

-- a standalone expression that is not part of an assignment (for example a call<br />

to a UDF or a method, or several such calls chained together).<br />

This bug has been fixed, but it introduces a change in behavior that may affect<br />

existing ABL code. If an expression statement (as described above) caused a<br />

buffer change while executing, that change would persist even if the statement<br />

resulted in an error being raised. Now the buffer change will be rejected.<br />

Page 9


READMESP.txt<br />

Although this fix may affect existing applications, it was deemed necessary<br />

since the bug could cause database inconsistency.<br />

================================================<br />

ABL - Object-oriented ABL<br />

================================================<br />

Note: OE00176050 Type: Known Issue<br />

Re-throw of error from constructor is caught in subclass<br />

---------------------------------<br />

If a catch block exists at the routine level of a constructor and the<br />

application re-throws the error (UNDO, THROW ), the error<br />

is thrown to a subclass constructor where it calls SUPER and raises ERROR on<br />

that statement.<br />

The re-thrown error should cause the object instantiation to abort and ERROR to<br />

be raised on the NEW statement.<br />

Note: OE00176121 Type: Known Issue<br />

RETURN ERROR from a method called by a constructor aborts object instantiation<br />

---------------------------------<br />

RETURN ERROR from a method called by a constructor aborts object instantiation<br />

and raises ERROR on the NEW statement. When a constructor calls a method which<br />

returns ERROR, ERROR should be raised on the statement where the method is<br />

called.<br />

================================================<br />

ABL - ProDataSet<br />

================================================<br />

Note: OE00167745 Type: Behavior Change<br />

ATTACH-DATA-SOURCE must come before QUERY-PREPARE for recursive Dataset<br />

---------------------------------<br />

Prior to Release 10.2A, it was possible to run the QUERY-PREPARE method for a<br />

Data-Source's query for the top buffer of a recursive Dataset, and then call the<br />

ATTACH-DATA-SOURCE method for that buffer. For Release 10.2B, the AVM will<br />

raise error at compile-time. The query will not compile correctly during the<br />

recursion unless the ATTACH-DATA-SOURCE method is called before the<br />

QUERY-PREPARE method.<br />

================================================<br />

ABL - Web <strong>Service</strong>s client<br />

================================================<br />

Note: OE00167644 Type: Behavior Change<br />

Analyzer crashes when wrapped document/literal is too complicated<br />

---------------------------------<br />

When the analyzer encounters a particular type of complex argument in a wrapped<br />

document/literal SOAP message definition it crashed.<br />

As of this release, this situation is now properly handled and documentation for<br />

the web service operation is generated.<br />

Note: OE00172317 Type: Known Issue<br />

ProSOAPView forces HTTP version 1.0 in HTTP requests<br />

---------------------------------<br />

If a Web service client sends an HTTP 1.1 request while running ProSOAPView as a<br />

proxy, the HTTP version header is altered. The header displayed by ProSOAPView<br />

indicates that the message is an HTTP 1.0 request. In addition, the message sent<br />

on to the Web service provider contains that same header.<br />

Page 10


READMESP.txt<br />

If this becomes an issue during development of an ABL Web service or Web service<br />

client, use another utility such as TCPMon.<br />

Note: OE00174178 Type: Behavior Change<br />

Incorrect SOAP Request sent with complex input parameter<br />

---------------------------------<br />

When calling a Web service operation with two parameters, one input LONGCHAR and<br />

one output LONGCHAR, an incorrect SOAP request could be sent.<br />

This problem occurred when the SOAP messages used the Wrapped Document/Literal<br />

convention and the input parameter was a complex value. An input parameter that<br />

is a complex value must be sent as a text value containing XML.<br />

The incorrect SOAP message might look something like the following. Note the<br />

second, nested, occurrence of the parameter element:<br />

<br />

<br />

<br />

testing<br />

<br />

<br />

<br />

The message should look something like the following:<br />

<br />

<br />

testing<br />

<br />

<br />

This problem has been fixed.<br />

Note: OE00178005 Type: Behavior Change<br />

-SOAPEndpoint CONNECT value truncated<br />

---------------------------------<br />

Previously, the value for the -SOAPEndpoint parameter of the CONNECT method was<br />

truncated if the parameter was longer than 128 characters. The parameter length<br />

may now be up to 1024 characters.<br />

================================================<br />

ABL - XML<br />

================================================<br />

Note: OE00158228 Type: Known Issue<br />

SAX-READER and X-DOCUMENT fail with basic HTTP authentication<br />

---------------------------------<br />

The XML processing methods in ABL cannot handle HTTP requests with basic<br />

authentication (username & password embedded in URL). They fail to locate the<br />

file. These URLs take the form of<br />

http://:@/<br />

Note: OE00171318 Type: Behavior Change<br />

WRITE-XML serializes temp-table rows with all fields as attributes differently<br />

---------------------------------<br />

If you have a temp-table with all fields having XML-NODE-TYPE="Attribute", and<br />

the temp-table row is not the parent in a NESTED DATA-RELATION, the XML<br />

serialization for the row will be slightly different. This change provides XML<br />

more compatible with validation tools.<br />

Before this release, the resulting XML is a set of open and closed tags with no<br />

Page 11


content:<br />

<br />

<br />

Now, the result is a single empty tag:<br />

<br />

================================================<br />

Adapter for Sonic ESB -<br />

================================================<br />

READMESP.txt<br />

Note: OE00166441 Type: Behavior Change<br />

New Feature - ABL Procedure file Drag and Drop<br />

---------------------------------<br />

<strong>OpenEdge</strong> Release 10.1C introduced the Native Invocation Methodology for the<br />

<strong>OpenEdge</strong> Adapter for Sonic ESB. The Native Invocation Methodology enables ABL<br />

procedures and user-defined functions to be called natively from a Sonic ESB<br />

process, as opposed to treating them as Web services. This new feature includes<br />

the creation of .esboe files from <strong>OpenEdge</strong> Architect or from ProxyGen, for use<br />

in Sonic Workbench when developing ESB business processes (itineraries) that<br />

include calling ABL code.<br />

<strong>OpenEdge</strong> Release 10.1C01 adds the ability at development time to drag and drop<br />

ABL procedure files directly into a Sonic ESB itinerary. Dragging ABL procedure<br />

files directly into a Sonic ESB itinerary eliminates the need to create and<br />

import a .esboe file. If your source code is not already annotated with ESB<br />

annotations when you do the drag and drop, a wizard walks you through the steps<br />

required to add the annotations.<br />

To take advantage of this new feature, you must have Sonic V7.6 and you must<br />

have integrated <strong>OpenEdge</strong> Architect and Sonic Workbench into one Eclipse<br />

environment.<br />

The creation of an ESB itinerary based on .esboe files remains fully supported.<br />

================================================<br />

ADE Tools and Runtime - ADE Common Tools<br />

================================================<br />

Note: OE00173188 Type: Known Issue<br />

Crash using ADE tools with UNC working directory<br />

---------------------------------<br />

When your working directory is a UNC pathname, some functionality in the<br />

AppBuilder and common ADE tools might cause a crash. The problem relates to<br />

providing a list of files in the working directory. The following are known to<br />

cause a crash:<br />

- Adding an image to a window in the AppBuilder<br />

- Building the list of files in the Widget ID Assignment Utility<br />

- Using adecomm/_fndfile.p to search for files<br />

The workaround is to map the UNC path to a drive letter.<br />

================================================<br />

ADE Tools and Runtime - GUI Rendering<br />

================================================<br />

Note: OE00165123 Type: Behavior Change<br />

IndexInformation always retrieved on the first request<br />

Page 12


READMESP.txt<br />

---------------------------------<br />

In Release 10.1A, the SDO retrieves the IndexInformation property from the<br />

server only when the SDO is batching. Beginning with Release 10.1C01, the SDO<br />

always retrieves the property from the server on the first request. This<br />

behavior is closer to the SDO's behavior before Release 10.1A. Also note that<br />

beginning with Release 10.1A, the property only applies to a single table.<br />

Before Release 10.1A, the property contains information on all tables joined in<br />

the SDO. You can override getIndexInfoTables if you want it to return info for<br />

more tables.<br />

Because of the changes to the IndexInformation property, an SDO on a client<br />

without batching now retrieves more context information on the first request.<br />

The context information for even a single table might be large and affect<br />

performance.<br />

================================================<br />

ADE Tools and Runtime - Tools<br />

================================================<br />

Note: OE00182559 Type: Behavior Change<br />

Appbuilder supports declarative statements like USING<br />

---------------------------------<br />

The Procedure Settings Dialog has additional functionality that allows the user<br />

to add declarative statements, like USING and ROUTINE LEVEL ERROR. A new button<br />

on the right hand side opens a dialog that allows you to add this code in an<br />

editor.<br />

The declarative statements added here are generated into a new section in the<br />

source code. This section is written before both the optional temp-table<br />

definitions and the optional AppServer include. This ensures that these<br />

statements are added before any definitional and executable statement as<br />

required for proper compilation.<br />

================================================<br />

Database - Database Utilities<br />

================================================<br />

Note: OE00070876 Type: Known Issue<br />

PROUTIL IDXFIX -silent is not silent<br />

---------------------------------<br />

Running PROUTIL IDXFIX with the -silent parameter does not suppress the display<br />

of repetitive messages or prevent repetitive messages from being written to the<br />

log file.<br />

Note: OE00145523 Type: Known Issue<br />

PROUTIL IDXACTIVATE errors when table-name specified in useindex qualifier<br />

---------------------------------<br />

The documentation for the [useindex table-name.index-name] qualifier of the<br />

PROUTIL IDXACTIVATE command is incorrect. The useindex qualifier should not<br />

include the table-name. The correct syntax is: [useindex index-name].<br />

Note: OE00153473 Type: Limitation<br />

Negative integers are not supported by specified binary dump.<br />

---------------------------------<br />

Negative integers are not supported by the specified binary dump utility as<br />

input parameters. You can dump all negative values by specifying a value range<br />

as "LT 0" for the column, but specifying any negative integer, such as "LT -1",<br />

fails. The specified binary dump utility cannot interpret command lines with a<br />

"-" negative sign in the input parameter on command line.<br />

Note: OE00164984 Type: Behavior Change<br />

Page 13


READMESP.txt<br />

New temporary file for PROUTIL IDXCHECK and PROUTIL IDXFIX<br />

---------------------------------<br />

PROUTIL IDXCHECK and PROUTIL IDXFIX use a temporary file to store the list of<br />

indexes being checked or fixed during execution of some options. Starting with<br />

this release, the temporary file is named ..xb. The file is<br />

deleted when the process successfully completes. If the process terminates<br />

unsuccessfully, the file may not be deleted.<br />

PROUTIL IDXBUILD continues to use the temporary file .xb. The behavior<br />

of IDXBUILD is not changed.<br />

================================================<br />

Database - Failover Clusters<br />

================================================<br />

Note: OE00077124 Type: Limitation<br />

Failover clusters and multiple APWs<br />

---------------------------------<br />

Configurations where there are multiple APWs enabled may find that only one APW<br />

will restart when fail over of a database resource occurs to the same node on<br />

which the failure has occurred.<br />

Note: OE00077583 Type: Known Issue<br />

Manually stopping an APW on MS Windows Server 2003 running Clusters<br />

---------------------------------<br />

When manually stopping a pagewriter on a Windows 2003 Server cluster (after a<br />

PROCLUSTER enable and PROCLUSTER start), the cluster administrator does not<br />

properly show the updated (failed) status of the particular pagewriter.<br />

Note: OE00083648 Type: Limitation<br />

Clusters -- the hour might be incorrect in the db.Appserver.log file (AIX only)<br />

---------------------------------<br />

The hour position time value displayed in the db.Appserver.log file might be<br />

incorrect for some messages. This usually occurs when database related<br />

processes/ancillary processes that were enabled with the database are dead or<br />

killed.<br />

Note: OE00085049 Type: Known Issue<br />

Pagewriter error message on PROCLUSTER start can be ignored<br />

---------------------------------<br />

When executing a PROCLUSTER start, and no pagewriters were specified in your<br />

PROCLUSTER enable, a grep error message is displayed looking for the<br />

{db-name~Resources.cluster file. This file only exists if pagewriters are<br />

specified during the PROCLUSTER enable. This error message is harmless and can<br />

be ignored.<br />

Note: OE00085074 Type: Known Issue<br />

First PROCLUSTER enable must complete<br />

---------------------------------<br />

The first database register, i.e. PROCLUSTER enable, must be allowed to complete<br />

before issuing additional PROCLUSTER enable commands. This is to allow the<br />

proper registration of the <strong>Progress</strong> Cluster type (PRGS.clstr). Once the<br />

PRGS.clstr registration is complete, PROCLUSTER commands can be entered without<br />

any restrictions.<br />

Note: OE00147498 Type: Limitation<br />

Failover Clusters node ordering<br />

---------------------------------<br />

The node the cluster chooses to fail over to is a default preference Clusters<br />

accepts from the cluster manager. If you want to tailor this, you must use your<br />

operating system cluster management utilities. Clusters does not alter node<br />

ordering.<br />

Page 14


READMESP.txt<br />

Note: OE00147499 Type: Limitation<br />

Failover Clusters excluding nodes from fail over<br />

---------------------------------<br />

All clustered systems provide a means for disallowing hosts from hosting a<br />

resource. You must use your operating system cluster management utilities to do<br />

this. Clusters does not provide a means to disallow a host.<br />

Note: OE00147500 Type: Known Issue<br />

Watch Dog should be enabled for Clusters<br />

---------------------------------<br />

When enabling a database for clusters using the PROCLUSTER enable command, the<br />

Watch Dog must always be enabled.<br />

For example:<br />

procluster /usr/wrk/foo enable WDOG<br />

Note: OE00147501 Type: Limitation<br />

Failover clusters helper processes that do not start on another machine<br />

---------------------------------<br />

If any of the helper (APW, BIW, or AIW) processes or the watchdog process<br />

specified to start with a particular database fails, they will not be started on<br />

another machine during a failover. They will produce an OFFLINE status.<br />

Note: OE00147507 Type: Product Notice<br />

Clusters -- two databases using the same port (AIX only)<br />

---------------------------------<br />

A cluster-enabled database attempting to use a port currently in use fails to<br />

come ONLINE because the port is already in use. The database retries the<br />

attempt to come ONLINE the number of times specified by the restart count.<br />

During the period of time that the retries occur, querying PROCLUSTER <br />

isalive/looksalive or HACMP clfindres for status of resource group returns<br />

ALIVE/UP as the status. This is correct because there are other resources in the<br />

resource group that have been brought ONLINE at that time. After the database<br />

resource has unsuccessfully retried the specified number of times, the status of<br />

the resource group is updated to DOWN.<br />

Note: OE00147509 Type: Product Notice<br />

Failover Clusters Sun Cluster uses global devices<br />

---------------------------------<br />

Clusters only supports databases stored on global devices. The Sun Cluster uses<br />

global devices to provide cluster-wide, highly available access to any device in<br />

a cluster, from any node, without regard to where the device is physically<br />

attached. In general, if a node fails while providing access to a global<br />

device, the Sun Cluster software automatically discovers another path to the<br />

device and redirects the access to that path. The local disks on each server are<br />

not multi-ported, and thus are not highly available devices. Multi-ported<br />

global devices provide more than one path to a device. In the case of multi-host<br />

disks, because the disks are part of a disk device group hosted by more than one<br />

node, the multi-host disks are made highly available.<br />

Note: OE00147833 Type: Known Issue<br />

Clusters -- simultaneous enable of two different databases<br />

---------------------------------<br />

If you simultaneously execute a PROCLUSTER enable command for two databases, you<br />

get the following error for one of the databases:<br />

Unable to synchronize cluster resources, Perform synchronization manually and<br />

identify error cluster REGISTER command was UNSUCCESSFUL.<br />

Though the cluster registration reported it was unsuccessful, both databases are<br />

successfully registered and automatically brought online by the cluster<br />

manager/administration tools. To avoid this error message, disallow multiple<br />

Page 15


READMESP.txt<br />

cluster administrators from having access to the cluster administration at the<br />

same time, and execute PROCLUSTER commands one at a time.<br />

================================================<br />

Database - RDBMS<br />

================================================<br />

Note: OE00164667 Type: Known Issue<br />

_Connect-IPAddress in the _Connect VST is not assigned a value<br />

---------------------------------<br />

The _Connect-IPAddress field of the _Connect VST is not assigned a value at this<br />

time.<br />

================================================<br />

DataServers -<br />

================================================<br />

Note: OE00071427 Type: Limitation<br />

No support for IDENTITY fields<br />

---------------------------------<br />

The MS SQL Server DataServer has no specific support for MS SQL Server IDENTITY<br />

fields outside of its own use of IDENTITY fields to provide <strong>Progress</strong> RECID<br />

functionality.<br />

Note: OE00101888 Type: Limitation<br />

hpuxia64 platform is only supported with Oracle 10g<br />

---------------------------------<br />

The hpuxia64 platform is only supported with Oracle 10g. It is *not* supported<br />

with Oracle 9i or any earlier release of Oracle. When using the Oracle<br />

DataServer with an Oracle 9i instance on the hpuxia64 platform, you may run into<br />

the following error:<br />

"ORACLE failed to convert a number to a 4 bytes integer."<br />

This error does not occur on any other supported platform, and does not occur<br />

when using an Oracle 10g instance.<br />

Note: OE00147562 Type: Known Issue<br />

Compilers tested with OEBUILD<br />

---------------------------------<br />

The following compilers were used and tested with the OEBUILD utility in<br />

<strong>OpenEdge</strong> 10. While other versions and/or patch levels may work, it is<br />

recommended that the same compiler version be used with OEBUILD where possible.<br />

Solaris (32 & 64 bit):<br />

Compiler & version:<br />

Sun Forte 6 Update 2, C version 5.3 with patch 111679-10<br />

AIX (32 & 64 bit):<br />

Compiler & version:<br />

IBM VisualAge 6 c/C++ C++ (June 2005 PTF)<br />

HP-UX (32 & 64 bit):<br />

Compiler & version:<br />

HP C/ANSI C version 11.11.08 with patch PHSS_29484<br />

Compaq (HP) Tru64:<br />

Compiler & version:<br />

Page 16


Compaq (HP) C V6.5-011<br />

Linux:<br />

Compiler & version:<br />

G++ version 2.96<br />

Microsoft Windows:<br />

Compiler & version:<br />

Visual Studio .Net 2003<br />

READMESP.txt<br />

Unixware:<br />

Compiler & version:<br />

Optimizing C Compilation System (CCS) 4.2 05/11/04 (uw714.bl3af)<br />

HP Itanium:<br />

Compiler & version:<br />

HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003], with<br />

C++ Runtime Library patch PHSS_29659<br />

Note: OE00157557 Type: Behavior Change<br />

Change in log format for 'dataserv.lg' log file<br />

---------------------------------<br />

In 10.1C for all DataServers, user will notice a change in the output format of<br />

the dataserv.lg log file. In versions prior to 10.1C, the dataserv.lg was<br />

logged directly from the DataServer code layer and was essentially free<br />

format as follows:<br />

11:21:28 : Login to dataserver db as user nmanchal. (2689)<br />

11:21:28 : Completed connection startup; 5 secondary connections requested all<br />

good.<br />

11:21:28 : MSS version: Microsoft SQL Server 08.00.0194 (4203)<br />

The new output format is derived from changes in the DataServer layer<br />

that integrate the "Enhanced Logger" architecture which was first<br />

introduced in the <strong>OpenEdge</strong> product in 10.1A to standardize <strong>OpenEdge</strong> logging and<br />

log formats. The new format looks like the following:<br />

[08/01/22@11:30:38.985+2300] P-006908 T-011492 1 MSS -- Logging level set to<br />

= 2<br />

[08/01/22@11:30:38.985+2300] P-006908 T-011492 1 MSS -- Log entry types<br />

activated: DS.DEBUG<br />

[08/01/22@11:30:38.985+2300] P-006908 T-011492 1 MSS -- Login to dataserver<br />

db as user nmanchal. (2689)<br />

[08/01/22@11:30:39.048+2300] P-006908 T-011492 1 MSS -- Completed connection<br />

startup; 5 secondary connections requested all good.<br />

[08/01/22@11:30:39.048+2300] P-006908 T-011492 1 MSS -- MSS version:<br />

Microsoft SQL Server 08.00.0194 (4203)<br />

NOTE: New Enhanced Logger features are not fully implemented for<br />

DataServers in 10.1C. The only noticeable difference customers should<br />

encounter are the prefix format of written log messages as described above.<br />

All existing -Dsrv parameters available in earlier releases for setting log<br />

attributes continue to be available in 10.1C and are not affected by the new<br />

logging infrastructure.<br />

Note: OE00166827 Type: Product Notice<br />

Microsoft SQL Server 2008 Certified<br />

---------------------------------<br />

The Dataserver for MS SQL Server has been certified for MSS 2008 using the<br />

following drivers.<br />

(1) Distributed by Microsoft Corporation<br />

Page 17


READMESP.txt<br />

(a) SQL Server (2000.85.1117.00) - SQLSRV32.DLL (32-bit)<br />

(b) SQL Server (2000.86.3959.00) - SQLSRV32.DLL (64-bit) (10.2A only)<br />

(c) SQL Native Client 9 (2005.90.1399.00) - SQLNCLI.DLL (32-bit)<br />

(d) SQL Native Client 9 (2005.90.1399.00) - SQLNCLI.DLL (64-bit)(10.2A only)<br />

((2) Distributed via <strong>OpenEdge</strong> 10.2A and <strong>OpenEdge</strong> 10.1C <strong>Service</strong> <strong>Pack</strong> 2<br />

Installation<br />

(a) Datadirect ODBC Wire Protocol driver for MS SQL Server (5.30.00.54) -<br />

P1MSSS23.DLL (32-bit)<br />

(b) Datadirect ODBC Wire Protocol driver for MS SQL Server (5.30.00.55) -<br />

P2MSSS23.DLL (64-bit)(10.2A only)<br />

This certification asserts that for all features tested, <strong>OpenEdge</strong> clients<br />

exhibit consistent results using the DataServer for MS SQL Server to connect MS<br />

SQL Server 2008 and all earlier supported database versions.<br />

IMPORTANT NOTE:<br />

SQL Native Client 10 drivers distributed by Microsoft Corporation with MS SQL<br />

Server 2008 are not yet certified for <strong>OpenEdge</strong> releases. You must obtain the<br />

SQL Native Client 9 drivers distributed by Microsoft in order to ensure full<br />

<strong>OpenEdge</strong> compatibility with MS SQL Server 2008. SQL Native CLient 10 drivers<br />

are expected to be certified in a future release and/or service pack.<br />

================================================<br />

DataServers - MS-SQL<br />

================================================<br />

Note: OE00106079 Type: Limitation<br />

-Dsrv switch to turn off validation in DataServer client<br />

---------------------------------<br />

To prevent a bad write to the database, the DataServer for MS SQL Server does<br />

advanced validation based on schema information. This occurs before an <strong>OpenEdge</strong><br />

trigger is executed. In cases where you would prefer to explicitly turn off this<br />

validation, i.e. when a trigger takes care of the validation, use the new switch<br />

"-Dsrv PRGRS_PREVALIDATE,0". By default, validation is on; "-Dsrv<br />

PRGRS_PREVALIDATE,1" is the default.<br />

Note: OE00146405 Type: Behavior Change<br />

Changes as part of certifying SQL Server 2005<br />

---------------------------------<br />

Microsoft has made changes to the Query Optimizer in SQL Server 2005 to generate<br />

better and more appropriate query plans automatically when compared to earlier<br />

versions of SQL Server. However, a change in behavior is noticed in SQL Server<br />

2005 when compared to SQL Server 2000 for some lock contention scenarios when<br />

"read committed" isolation level is used.<br />

Changes have been incorporated in DataServer for MS SQL Server, as part of an<br />

effort to provide consistent behavior to an application when used with a newer<br />

version of SQL Server (SQL Server 2005). This consistency feature is leveraged<br />

only when used with SQL Server 2005 and above.<br />

Note: OE00151726 Type: Behavior Change<br />

SQL Server DataServers will now insert NULL value ("?") on creating new records<br />

---------------------------------<br />

SQL Server DataServers will now insert the NULL value if the ABL assigns the<br />

unknown value ("?") while creating new records.<br />

Previously the DataServer for MS SQL Server stored the default value from the<br />

schema holder into the column instead of NULL when the ABL assigned the only<br />

Page 18


READMESP.txt<br />

unknown value and all other column assignments came from default values. This<br />

was incorrect since the unknown value in the ABL should always be equated to a<br />

SQL NULL in the DataServer products when the user deliberately assigns such<br />

value.<br />

For example,<br />

A customer table with 3 fields - name, city and state.<br />

In the schema holder, the city and state columns have default values of<br />

'Bedford' and 'MA', respectively.<br />

Based on the following ABL code<br />

CREATE customer.<br />

ASSIGN name = "john".<br />

state = ?.<br />

The above would previously have created a new customer record with<br />

set to:<br />

(name,city,state)<br />

('john', 'Bedford', 'MA')<br />

where "Bedford" and "MA" are default values in the schema image for "city" and<br />

"state" fields, respectively..<br />

Now it takes the unknown value ('?') assigned to the "state" field and properly<br />

translates it into a NULL column. Therefore in the example provided, the new<br />

record would now be created as:<br />

('john', 'Bedford', NULL)<br />

Note: OE00160512 Type: Behavior Change<br />

Datetime/tz support in MS SQL DataServer<br />

---------------------------------<br />

In <strong>OpenEdge</strong> Release 10.1C <strong>Service</strong> <strong>Pack</strong> 1 (10.1C01), the DataServer for MS SQL<br />

Server has been enhanced to support DATETIME data types in SQL Server (until SQL<br />

Server 2005) with full support for DATETIME data types and NO SUPPORT for<br />

DATETIME-TZ.<br />

1. Prior to <strong>OpenEdge</strong> 10.1C01, the MSS DATETIME datatype mapped to a OE DATE<br />

datatype as default. With DATETIME support in 101C01, DATETIME datatype in SQL<br />

Server can be directly mapped to <strong>OpenEdge</strong> DATETIME datatype. The default<br />

behavior will be retained for backward compatibility, i.e. MS SQL Server<br />

DATETIME would be pulled as an <strong>OpenEdge</strong> DATE datatype by default. However, the<br />

user can set 'OE_101C_DATETIME=yes' and then MSS 'Datetime' can be pulled as OE<br />

'Datetime' in the schema-holder by default. Note that the user can anytime<br />

change the mapping of MS SQL Server DATETIME to <strong>OpenEdge</strong> DATETIME, DATE, or<br />

CHARACTER as per his or her requirement.<br />

2. Please note that In MS SQL Server, subsecond accuracy is upto .333 seconds or<br />

1/300th of a second. Rounding at the millisecond level is granular to a third<br />

of a millisecond, so values will round to .000, .003, and .007 seconds.<br />

Users who write datetime comparison expressions in their ABL code, especially<br />

equality matching, should use caution when using the DataServer for MS SQL<br />

Server. The user must be careful about the millisecond precision of the values<br />

he/she is comparing due to the 1/300 millisecond rounding performed internally<br />

by Windows and MS SQL Server.<br />

One way for customers to avoid this issue is to ensure that all their datetime<br />

values are derived from a Windows or SQL Server source rather than obtaining<br />

them from the <strong>OpenEdge</strong> client or an <strong>OpenEdge</strong> database where the datetime values<br />

Page 19


READMESP.txt<br />

can be fabricated with greater precision. By setting their TIME-SOURCE<br />

attribute to their logical database of their MS SQL Server DataServer schema<br />

holder, the values derived for MTIME, NOW, TIME and TODAY will be generated from<br />

a Windows time source. This can avoid application conflicts with time values<br />

derived from other time sources with precision values of finer granularity.<br />

3. When using RUN STORED-PROCEDURE to execute an MS SQL Server stored procedure,<br />

the user must initialize the OUTPUT param with an initial value other than<br />

UNKNOWN (?). This initial value will be overwritten by whatever the SQL Server<br />

returns to the Output parameter. In case when a NULL is returned, the initial<br />

value will remain unchanged.<br />

Note: OE00163021 Type: Limitation<br />

Compatibility issues between 32-bit and 64-bit RECIDs in some versions of 10.1B<br />

---------------------------------<br />

As part of the effort to introduce 64-bit data addresses into the <strong>OpenEdge</strong><br />

database for Release 10.1B, the default implementation of PROGRESS_RECID in the<br />

DataServers for MS SQL Server and ODBC were changed to a 64-bit value. In<br />

releases prior to 10.1B, PROGRESS_RECID was a 32-bit value.<br />

This produced some PROGRESS_RECID incompatibilities for schema holders created<br />

or maintained in <strong>OpenEdge</strong> 10.1B using the 10.1B Dictionary utilities. These<br />

incompatibilities also affect schema holders that were created and maintained<br />

prior to 10.1B but are used in a 10.1B application environment or a schema<br />

holder created or maintained by the 10.1B Dictionary that is now used in a 10.1C<br />

application environment.<br />

The incompatibilities are resolved in Release 10.1C and by a hot fix to patch<br />

level 10.1B03 by simply performing a schema pull from the Dictionary utilities.<br />

Therefore, if you are using or maintaining a schema holder from the OE 10.1B<br />

Dictionary (prior to Release 10.1C and prior to the 10.1B hot fix) you will need<br />

to re-pull your server definitions into that schema holder using the 10.1B03 hot<br />

fix patch or 10.1C Dictionary utilities to avoid application conflicts with the<br />

PROGRESS_RECID.<br />

After re-pulling definitions into your schema holder using the 10.1B hot fix or<br />

using 10.1C, you should encounter no further problems with PROGRESS_RECID.<br />

Note: OE00163062 Type: Limitation<br />

No support for IDENTITY fields<br />

---------------------------------<br />

The MS SQL Server DataServer does not have any specific support for MS<br />

SQL Server IDENTITY fields outside of its own use of IDENTITY fields to<br />

provide <strong>Progress</strong> RECID functionality.<br />

Note: OE00163063 Type: Behavior Change<br />

Avoid using SHARELOCK if possible<br />

---------------------------------<br />

The transaction isolation levels define the type of locks acquired on<br />

read operations. The default isolation level for MS SQL Server is Read-<br />

Committed. This isolation level typically puts some form of database<br />

dependent SHARE LOCK on records, pages, and/or tables that it reads.<br />

Under this isolation level, only committed changes can be read from<br />

existing data. For simplicity and DataServer efficiency, <strong>Progress</strong> Software<br />

Corporation<br />

recommends that you avoid using the SHARELOCK if possible. The<br />

DataServer for MS SQL Server can support the NO-LOCK condition in <strong>Progress</strong> with<br />

the<br />

help of -Dsrv connection parameter to set the isolation level to Read-<br />

Uncommitted as follows: "-Dsrv TXN_ISOLATION,1". This is a connection-level<br />

switch<br />

only. SHARE-LOCK is treated like NO-LOCK at this isolation level. Therefore if<br />

you set Read-Uncommitted for your session, all non-EXCLUSIVE-LOCK statements<br />

(statements w/SHARE-LOCK, NO-LOCK, or unspecified statements) will perform as<br />

NOLOCK.<br />

In <strong>OpenEdge</strong> DataServer for MS SQL Server 2005, Read-Uncommitted is set<br />

Page 20


READMESP.txt<br />

as default isolation level for the DataServer applications. This change would<br />

come into effect in the service pack 10.1B01. Currently for using SQL Server<br />

2005 with DataServer release 10.1B, it is required to explicitly set the<br />

isolation level to 1 (Read-Uncommitted) with the -Dsrv connection parameter, to<br />

ensure compatibility with prior releases of MS SQL Server. SQL Server 2005<br />

SNAPSHOT Isolation & <strong>OpenEdge</strong><br />

---------------------------------------------<br />

The <strong>OpenEdge</strong> ABL is pessimistic and transactional (OLTP) in nature and<br />

for the <strong>OpenEdge</strong> DataServer technology to emulate the NO-LOCK/EXCLUSIVE-LOCK<br />

lock types of the <strong>OpenEdge</strong> database; it uses the READ UNCOMMITTED isolation<br />

level to provide the best and most efficient match. SQL Server 2005 SNAPSHOT<br />

ISOLATION (row versioning) provides an optimistic locking environment for<br />

read-intensive operations (OLAP). However, READ UNCOMMITTED isolation is still<br />

recommended for transaction-intensive (OLTP) applications due to the added load<br />

imposed on the server running update transactions with snapshot isolation.<br />

The <strong>OpenEdge</strong> DataServer for MSS will function against a SNAPSHOT ISOLATION<br />

(row versioned) enabled MSS database but any <strong>OpenEdge</strong> ABL logic that<br />

relies on pessimistic lock management (for instance, conditions where the<br />

<strong>OpenEdge</strong><br />

client might issue a " is in use by USER ABC" message will be<br />

affected and therefore alter application behavior. Conflict resolution is also<br />

handled differently between pessimistic and optimistic locking models and so<br />

data integrity issues will also be of concern if SNAPSHOT ISOLATION is used with<br />

the<br />

<strong>OpenEdge</strong> Dataserver technology. To obtain the best concurrency control and<br />

inter-transactional protection in your ABL applications, progress recommends not<br />

using SNAPSHOT isolation. SNAPSHOT isolation, in effect, provides alternate<br />

implementations of SERIALIZABLE and READ COMMITTED levels of isolation that use<br />

optimistic locking to control concurrent access rather than pessimistic locking.<br />

Unless your <strong>OpenEdge</strong> ABL application requires one of these two isolation levels,<br />

<strong>Progress</strong><br />

recommends that customers consider neither transaction-level nor statement-level<br />

SNAPSHOT isolation for their applications using the DataServer for MS SQL<br />

Server. While<br />

SNAPSHOT isolation can be used to emulate SERIALIZABLE and READ COMMITTED<br />

isolation levels, progress also recommends not using SNAPSHOT isolation to<br />

acheive them.<br />

Note: OE00171762 Type: Behavior Change<br />

A new -Dsrv switch for NO-WAIT functionality has been introduced<br />

---------------------------------<br />

A new connection-level switch PRGRS_NOWAIT_OVERRIDE has been added for the<br />

DataServer for MS SQL Server:<br />

Currently the PRGRS_NATIVE_LOCKWAIT setting permits an application to set the<br />

maximum time a statement waits on MS SQL Server for a blocked resource. Note<br />

that the ABL client is also blocked while the PRGRS_NATIVE_LOCKWAIT period is<br />

active on the server. This new switch may be useful to those who want the<br />

NO-WAIT instruction on an ABL database request to override the<br />

PRGRS_NATIVE_LOCKWAIT period in which the application is blocked on the server.<br />

The new PRGRS_NOWAIT_OVERRIDE connection-level switch will resolve the scenario<br />

for NO-WAIT queries. The valid values for PRGRS_NOWAIT_OVERRIDE switch are 0<br />

and 1. By default PRGRS_NOWAIT_OVERRIDE will be disabled (i.e. 0). Setting of<br />

this new switch alone will be ignored by the DataServer and would otherwise have<br />

no affect on the NO-WAIT conditions in your application because the default<br />

PRGRS_NATIVE_LOCKWAIT period is zero which means the server returns immediately<br />

to the client anyway when it encounters a locked resource. The override setting<br />

is only meaningful when specified alongside the PRGRS_NATIVE_LOCKWAIT connect<br />

option. Note that the PRGRS_NOWAIT_OVERRIDE switch only applies to server side<br />

blocking associated with the PRGRS_NATIVE_LOCKWAIT. Client side resource<br />

blocking, as timed by the -lkwtmo switch, is not affected by<br />

PRGRS_NOWAIT_OVERRIDE switch and is already designed to unblock in response to a<br />

NO-WAIT ABL instruction.<br />

Page 21


READMESP.txt<br />

In the following client startup example the client lock wait time out is set to<br />

180 seconds, the native lock wait time out is set to 50 milliseconds and the<br />

PRGRS_NOWAIT_OVERRIDE switch is set on:<br />

prowin32.exe mydb -lkwtmo 180 -Dsrv<br />

PRGRS_NATIVE_LOCKWAIT,50,PRGRS_NOWAIT_OVERRIDE,1<br />

Let us assume that a "customer" resource is already blocked on the server and<br />

continues to be blocked indefinitely, then using the following ABL statement:<br />

FIND FIRST customer NO-WAIT.<br />

The behavior as seen from the ABL client is the following:<br />

1. Because of the NO-WAIT ABL condition and the PRGRS_NOWAIT_OVERRIDE,1 setting,<br />

control is returned immediately to the client despite the non-zero value for<br />

PRGRS_NATIVE_LOCKWAIT.<br />

NOTE: Had the PRGRS_NOWAIT_OVERRIDE switch not been set, the server would have<br />

blocked a maximum of 50 milliseconds assuming the resource was not otherwise<br />

made available prior to the server time out period.<br />

2. The client's lock wait time out period of 180 seconds begins when the server<br />

returns to the client. In this case, the NO-WAIT instruction in the ABL and the<br />

switching on of the PRGRS_NOWAIT_OVERRIDE option means that the client's lock<br />

wait time out period begins immediately.<br />

NOTE: When the PRGRS_NOWAIT_OVERRIDE is off, the initial PRGRS_NATIVE_LOCKWAIT<br />

period (spent blocked on the server) is NOT accumulated by the client side<br />

"-lkwtmo" period because the '-lkwtmo' period doesn't begin until the client has<br />

control. This is not a concern when the PRGRS_NOWAIT_OVERRIDE switch is on and<br />

the ABL specifies NO-WAIT because no additional time is accumulated waiting on<br />

the server, i.e., the PRGRS_NATIVE_LOCKWAIT period is overridden by the NO-WAIT<br />

action.<br />

3. The ABL application takes immediate control and receives the "LOCKED" ABL<br />

condition indicating that the resource is unavailable.<br />

NOTE: If the ABL had not specified NO-WAIT and the resource continued to be<br />

unavailable after the PRGRS_NATIVE_LOCKWAIT period, the the client side -lkwtmo<br />

period would now commence and would wait 180 seconds, repeatedly cycling to the<br />

server in an effort to obtain the locked resource.<br />

Additional Notes (not related to the above test case):<br />

1 Had the NO-WAIT ABL condition not been specified and had the 180 second wait<br />

on the client expired without obtaining the resource, the ABL client would then<br />

fail with a "lock wait timeout exceeded" error message.<br />

2. Had the NO-WAIT ABL condition not been specified, and the<br />

PRGRS_NOWAIT_OVERRIDE switch were set to off, and the resource remained<br />

unavailable, the start of the client -lkwtmo period would be delayed by the 50<br />

milliseconds that it blocked on the server. Also, because of the difference in<br />

the 'seconds' granularity of the '-lkwtmo' switch as compared to the<br />

'milliseconds' granularity of the 'PRGRS_NATIVE_LOCKWAIT, some rounding could<br />

cause the actual '-lkwtmo' period on the client to be 181 seconds, versus the<br />

specified 180 seconds.<br />

3. Generally, PRGRS_NATIVE_LOCKWAIT should be set to a small number of<br />

milliseconds in order to allow the server a reasonable opportunity to resolve<br />

resource locks before returning control to the client that is expected to handle<br />

recovery programmatically. In such cases, the small PRGRS_NATIVE_LOCKWAIT value<br />

Page 22


READMESP.txt<br />

setting is probably negligible enough to make the PRGRS_NOWAIT_OVERRIDE switch<br />

unnecessary for NO-WAIT ABL requests. The PRGRS_NOWAIT_OVERRIDE switch has<br />

greater applicability if the PRGRS_NATIVE_LOCKWAIT value is set to a<br />

non-negligible period. Only then does the potential negative affect on<br />

application response time for ABL code that uses the NO-WAIT condition become a<br />

concern for which the PRGRS_NOWAIT_OVERRIDE might be applied.<br />

4. The DataServer for MS SQL Server uses a default server lock wait timeout of<br />

zero - which results in no server blocking from lock contention (and negates the<br />

need for the PRGRS_NOWAIT_OVERRIDE switch). The maximum value you can wait on<br />

the server using the PRGRS_NATIVE_LOCKWAIT switch is 32767. Any value larger<br />

than 32767 is the equivalent of an infinite time period whereby the server would<br />

block infinitely. If the server were to wait indefinitely for a resource and<br />

the PRGRS_NATIVE_LOCKWAIT period were infinite then meaningful use of the<br />

client-side '-lkwtmo' switch would be negated and the need for turning on the<br />

PRGRS_NOWAIT_OVERRIDE switch would be necessitated in order to ensure a client<br />

response could be received from the NO-WAIT ABL condition.<br />

Note: OE00181255 Type: Behavior Change<br />

Schema update required when MSS table contains 'timestamp' fileld<br />

---------------------------------<br />

A native "timestamp" data was not previosly allowed to be present in a database<br />

table pulled into a schema holder for MS SQL Server. The <strong>OpenEdge</strong> DataServer<br />

for MS SQL Server can now accept such columns into a schema holder as an<br />

non-updateable column.<br />

You should re-build your schema holders (or perform update schema) on MSS table<br />

containing 'timestamp' columns that you could not previously pull.<br />

================================================<br />

DataServers - MS-SQL/ODBC<br />

================================================<br />

Note: OE00147564 Type: Limitation<br />

DataServers for MSS and ODBC data type support<br />

---------------------------------<br />

The DataServers for MSS and ODBC do not support any of the data types that are<br />

new in <strong>OpenEdge</strong> Release 10 through 10.1C FCS with one exception: The <strong>OpenEdge</strong><br />

DataServers began supporting the INT64 data type starting in <strong>OpenEdge</strong> Version<br />

10.1B.<br />

================================================<br />

DataServers - ORACLE<br />

================================================<br />

Note: OE00147570 Type: Workaround<br />

Change to ORACLE genclntsh required for ORACLE 9.0.2 on Linux<br />

---------------------------------<br />

The ORACLE genclntsh file must be modified for proper operation of the ORACLE<br />

DataServer with ORACLE 9.0.2. Change the definition of LD to use gcc shared as<br />

follows:<br />

Sample of original content:<br />

---------------------------<br />

LD="ld -i -G -z text -L${ORACLE_HOME~/lib"<br />

shared library link command<br />

LD="ld -shared -L${ORACLE_HOME~/lib"<br />

shared library link command<br />

LD_RUNTIME="-R${ORACLE_HOME~/lib"<br />

LD_OPT="-Map ${MAPFILE~ -h ${CLNT_LIB~"<br />

Page 23


name inserted into library<br />

LD_SELF_CONTAINED="-z defs"<br />

READMESP.txt<br />

Change to:<br />

----------<br />

LD="gcc -shared -L${ORACLE_HOME~/lib"<br />

shared library link command<br />

LD_RUNTIME="-Xlinker -R${ORACLE_HOME~/lib"<br />

LD_OPT="-Xlinker -Map -Xlinker ${MAPFILE~ -Xlinker -h -Xlinker ${CLNT_LIB~"<br />

name inserted into library<br />

LD_OUT="-o ${LIB_DIR~/${CLNT_LIB~"<br />

output specification<br />

LD_SELF_CONTAINED="-Xlinker -z -Xlinker defs"<br />

Note: OE00147572 Type: Known Issue<br />

Building Oracle DataServer Executables<br />

---------------------------------<br />

For most UNIX platforms, the default client and DataServer executables are able<br />

to locate and load Oracle's shared library. On the platforms where this is not<br />

the case, you must build executables using the scripts in the<br />

/oebuild/make directory.<br />

For <strong>OpenEdge</strong> Release 10, executables must be built on AIX, and may need to be<br />

built on 32-bit HPUX.<br />

Note: OE00150026 Type: Limitation<br />

Oracle support with HP 32-bit product is dropped<br />

---------------------------------<br />

The last Oracle client that supports HP 32-bit is Oracle 8 which no longer works<br />

with <strong>OpenEdge</strong> starting with 10.1C. Any customer that needs to use Oracle on HP<br />

must migrate to the HP 64-bit product. The HP 64-bit product works on all<br />

modern HP PA-RISC hardware. Please contact your sale represntative if you need<br />

to make this platform version change.<br />

Note: OE00160075 Type: Behavior Change<br />

Date/Time/TZ support in DataServer for Oracle<br />

---------------------------------<br />

In <strong>OpenEdge</strong> Release 10.1C <strong>Service</strong> <strong>Pack</strong> 1 (10.1C01), The DataServer for Oracle<br />

has been enhanced to support Oracle DateTime data types and their mapping to<br />

<strong>OpenEdge</strong> DateTime data types. The two Oracle DateTime data types, TIMESTAMP (TS)<br />

and TIMESTAMP WITH LOCAL TIME ZONE (TSLTZ), introduced in Oracle Release 9i will<br />

be supported in OE Release 10.1C01. Oracle 9i or later releases of the OCI<br />

client libraries are required for support of these new data types.<br />

The following datatype mapping will be supported from <strong>OpenEdge</strong> to the Oracle<br />

schema holder:<br />

1. Prior to OE 10.1C01, the Oracle DATE types mapped to a DATE column which held<br />

the date portion and a surrogate INTEGER column that held the time portion of an<br />

Oracle DATE data type to seconds precision. This default behavior will be<br />

retained for backward compatibility.<br />

2. The Data Dictionary migration utility has been upgraded to handle the mapping<br />

of an <strong>OpenEdge</strong> DATETIME data type to an Oracle TIMESTAMP (TS) data type. When<br />

the Oracle TIMESTAMP is pulled back into a schema image, the Oracle TIMESTAMP is<br />

then mapped to an <strong>OpenEdge</strong> DATETIME data type by default. Alternatively, users<br />

are allowed to change the Oracle TIMESTAMP mapping in their schema image to an<br />

<strong>OpenEdge</strong> CHARACTER or DATE type.<br />

3. The Oracle TIMESTAMP WITH LOCAL TIME ZONE (TSLTZ) data type can also be<br />

Page 24


READMESP.txt<br />

pulled from an Oracle data source into an Oracle DataServer's schema image.<br />

This is mapped as DATETIME data type by default. Users are also allowed to<br />

change the schema image mapping to <strong>OpenEdge</strong> DATE data type. The value in the<br />

column is translated from the database time zone into the time zone of the<br />

<strong>OpenEdge</strong> client when retrieved into a client application, and visa versa when<br />

written.<br />

The DataServer for Oracle has been enhanced to handle OE DATETIME,DATE and<br />

CHARACTER datatypes that are mapped to Oracle TIMESTAMP datatype in the WHERE<br />

clause of an <strong>OpenEdge</strong> client database request.<br />

SESSION TIME-SOURCE has been enhanced to support expansion of SYSDATE to<br />

SYSTIMESTAMP. This expands existing support for session:time-source for DATE<br />

functions to timestamps for DATETIME functions.<br />

NOTE 1: When a <strong>OpenEdge</strong> CHARACTER value is mapped to an Oracle TIMESTAMP, it<br />

must be formatted into a fixed session-level timestamp format of<br />

'YYYYMMDDHH24MISSFF'. The sesssion level format cannot be changed during the<br />

DataServer session if character data from the client application is to be<br />

interpreted correctly in data translation to the server.<br />

NOTE 2: The <strong>OpenEdge</strong> DATETIME data type supports fractional seconds up to<br />

millisecond accuracy and must round off values it receives from Oracle with<br />

greater precision.<br />

NOTE 3: After connecting to Oracle Database, DataServer for Oracle issues<br />

statement 'ALTER SESSION SET TIME_ZONE = '00:00'' . This statment sets the<br />

Oracle Session Time Zone to UTC. This is essentially done to optimize the<br />

timestamp conversions requirement for Oracle TIMESTAMP WITH LOCAL TIMEZONE<br />

datatype column. It is required not to override this setting.<br />

Not all features of DATETIME are supported in <strong>OpenEdge</strong> Release 10.1C <strong>Service</strong><br />

<strong>Pack</strong> 1.<br />

In particular the following DATETIME features are NOT supported in 10.1C <strong>Service</strong><br />

<strong>Pack</strong> 1:<br />

1. Support for the Oracle TIMESTAMP WITH TIME ZONE (TSTZ) datatype will be<br />

unavailable.<br />

2. Support for <strong>OpenEdge</strong> DateTime-TZ datatype will be unavailable.<br />

3. Support for Oracle TIMESTAMP WITH LOCAL TIME ZONE mapped to CHARACTER will be<br />

unavilable.<br />

4. Support of Datetime/Datetime-TZ as a parameter to, or in the result sets of,<br />

a RUN STORED-PROCEDURE statement. This includes the SEND-SQL-STATEMENT<br />

procedure, the PROC-TEXT-BUFFER results record and the LOAD-RESULTS-INTO phrase.<br />

5. On migration, Openedge DATETIME datatype will be mapped to Oracle TIMESTAMP<br />

datatype by default. Support for mapping OE DATETIME datatype to Oracle<br />

TIMESTAMP WITH LOCAL TIME ZONE datatype will be unavailable on migration.<br />

Note: OE00162745 Type: Behavior Change<br />

CLOB support in Oracle DataServers<br />

---------------------------------<br />

Support for Unicode for the DataServer for Oracle begins in <strong>OpenEdge</strong> Version<br />

10.1C. The CLOB data type is also introduced in Release 10.1C for the specific<br />

purpose of supporting the character widening that is possible in a Unicode<br />

implementation. Previously, data that exceeded the maximum size of a VARCHAR2<br />

data type (4000 bytes) was converted to a LONG data type when migrated to an<br />

Oracle server. Since only one LONG data type is allowed per Oracle table, it<br />

was anticipated that CLOB support would be needed in its place to handle large<br />

amounts of character data in a Unicode database implementation.<br />

The dictionary utility has been updated to migrate <strong>OpenEdge</strong> database CLOB data<br />

types to Oracle CLOB data types and to migrate <strong>OpenEdge</strong> CHARACTER data types<br />

that exceed Oracle's VARCHAR2 4000-byte maximum size into ORACLE CLOB data<br />

Page 25


READMESP.txt<br />

types. Oracle CLOBs are also pulled from the server into the Oracle<br />

DataServer's Schema Image as CLOB types.<br />

As there are code pages associated with <strong>OpenEdge</strong> CLOB data types, they will be<br />

set to match the code page defined to the Oracle schema holder. The<br />

column-level CLOB code pages in an Oracle schema image are not modifiable and<br />

will always be set to match the schema holder code page even if the schema<br />

holder code page is changed after the database is created.<br />

Not all features of the CLOB data type made it into the 10.1C FCS Release.<br />

In particular the following two CLOB features are not supported in 10.1C:<br />

1. Support for Oracle's Unicode CLOB data type (NCLOB) will be unavailable.<br />

NOTES:<br />

Other Oracle Unicode character data types are supported in the Unicode<br />

implementation for the ORACLE DataServer.<br />

Oracle implementations that define a Unicode database code page and define their<br />

Unicode data to CLOB data types are supported in the 10.1C release.<br />

2. Support for CLOB and LONGCHAR data types with stored procedures. This<br />

deficiency includes the following subcategories:<br />

A. Support for LONGCHAR data types as parameters to stored procedures.<br />

B. Support for a CLOB result set value in the "PROC-TEXT-BUFFER" record upon<br />

return from "SEND-SQL-STATEMENT" stored procedure execution.<br />

C. Support for CLOBs in result sets into a VIEW record format.<br />

D. Support for CLOBs in result sets using LOAD-RESULTS-INTO temp table record<br />

formats.<br />

E: Support for CLOBs in result sets using LOAD-RESULTS-INTO with indeterminate<br />

temp table handles and dynamic server type evaluation.<br />

Note: OE00167101 Type: Product Notice<br />

Oracle 11g Certified<br />

---------------------------------<br />

The DataServer for Oracle has been certified for Oracle 11g against all <strong>OpenEdge</strong><br />

DataServer client platforms. Using the same Oracle database featues, no<br />

differences in application behavior have been detected between <strong>OpenEdge</strong><br />

connections to 11g and earlier supported Oracle versions.<br />

Note: OE00169023 Type: Behavior Change<br />

Connect from Dataserver to Oracle LDAP Server<br />

---------------------------------<br />

In 10.1C service pack 2 (10.1C02) and 10.2A release, the Dataserver for Oracle<br />

is enhanced to support external password credentials. In particular, <strong>Progress</strong><br />

has tested and certified the use of LDAP directory authentication through the<br />

global user management capabilities of the Oracle Internet Directory (OID).<br />

The Oracle DataServer makes database connections through bound OCI client<br />

libraries that can interface with an Oracle Server using Oracle Advanced<br />

Security. When an Oracle database environment is configured to use external<br />

authentication, a centralized service can be shared by Oracle and other<br />

application environments to provide security and single sign on capability. For<br />

instance, an LDAP directory service can be configured to provide global user<br />

authentication and authorization using the "ldap.ora" and/or "tnsnames.ora"<br />

configuration files. LDAP directory services are one of several ways Oracle<br />

databases can be configured to use centralized enterprise-level authentication.<br />

Other external third party authentication mechanisms/adapters are also available<br />

but have not been tested, including OS authentication, Kerberos, SSL, smart<br />

cards, and fingerprints.<br />

Oracle DataServer users obtain external authentication by sending a connection<br />

Page 26


READMESP.txt<br />

request with only a user id and password delimiter, absent the actual user id<br />

and password, as follows:<br />

/@.<br />

Depending upon the mechanism used, external credentials may or may not be<br />

provided independent of the global user management features of the Oracle<br />

Internet Directory. For instance, public key infrastructure (PKI) digital<br />

certificates can be passed directly to a target Oracle Enterprise server.<br />

Oracle Wallets can also be provided in an external password store and may<br />

perform authentication in conjunction with a particular external authentication<br />

server.<br />

Note: OE00170690 Type: Behavior Change<br />

'session' context of time zone for OE DatServer client application<br />

---------------------------------<br />

In <strong>OpenEdge</strong> Release 10.1C <strong>Service</strong> <strong>Pack</strong> 2 (10.1C02), Release 10.2A and later,<br />

DataServer for Oracle has been enhanced to allow the use of 'session' context of<br />

the time zone for their <strong>OpenEdge</strong> application. Session context or session time<br />

refers to the time zone context of the OCI driver session to which the Oracle<br />

DataServer is connected.<br />

The use of session time zone context in this new feature is not the default<br />

behavior of the Oracle DataServer. Normally the time zone context of an<br />

<strong>OpenEdge</strong> application is the client's time zone. Under normal circumstances,<br />

Oracle's "session" context or session time is pre-set by the DataServer to<br />

Universal Time (UTC). This should not be modified in a normal <strong>OpenEdge</strong> client<br />

application since this fixed context allows the Oracle DataServer to properly<br />

convert time zone values to and from the time zone context of the <strong>OpenEdge</strong><br />

client session.<br />

To override default behavior and turn on session context of the time zone, you<br />

are required to set -Dsrv switch named "native-tz-context" at the time of<br />

<strong>OpenEdge</strong> logical database connection to an Oracle server. Having this option<br />

turned on causes data transfer to and from the Oracle database to be performed<br />

using session context. This connect option can be provided with or without a<br />

comma-separated value, as follows:<br />

-Dsrv native-tz-context<br />

Or,<br />

-Dsrv native-tz-context <br />

Where is a valid character string that would be acceptable to<br />

the TIME_ZONE session value passed into the OCI driver, for example, local,<br />

-5:00, -8.00, dbtimezone, or Europe/London.<br />

Note: Whenever you specify the '-Dsrv native-tz-context' parameter without a<br />

corresponding value, the switch will omit the DataServer setting of session<br />

timezone which is currently set to UTC by default, the expectation is that the<br />

application is consciously managing the setting external to the <strong>OpenEdge</strong><br />

DataServer client application, such as through the RUN STORED-PROC interface.<br />

The Oracle command used to set the OCI session time zone context is the<br />

following:<br />

ALTER SESSION SET time_zone = '';<br />

Note: OE00180196 Type: Product Notice<br />

Buffer storage optimization for NUMBER columns in Oracle DataServers<br />

---------------------------------<br />

The Oracle DataServer translates numeric data types from Oracle as NUMBER<br />

columns and then stores the character format of that NUMBER in <strong>OpenEdge</strong> record<br />

buffers when used in an <strong>OpenEdge</strong> application.<br />

Page 27


READMESP.txt<br />

Prior to changes for this fix, the Oracle DataServer used a fixed length buffer<br />

size of 41 bytes to store the native Oracle type in an <strong>OpenEdge</strong> buffer column.<br />

This translation expands the storage requirements of the column in the <strong>OpenEdge</strong><br />

record buffer. This may lead to unexpected overflow when an <strong>OpenEdge</strong> record<br />

approaches the maximum record size of 30,000 bytes.<br />

To minimize the expansion requirements, the Oracle DataServer now optimizes<br />

buffer storage for NUMBER columns by considering the precision and scale of the<br />

NUMBER column before expanding for character translation. This means that<br />

NUMBER columns whose precision and scale require less than 41 bytes in character<br />

format will now be reduced in size. 41 bytes will still remain the maximum<br />

translation size for a NUMBER column. Please refer to the following examples:<br />

(1) NUMBER(1) -> buffer storage size is now 4 (previously it was 41)<br />

(2) NUMBER(3,7) -> buffer storage size is now 10 (previously it was 41)<br />

(3) NUMBER(10,-9) -> buffer storage size is now 22 (previously it was 41)<br />

(4) NUMBER(*,10) -> buffer storage size is now 41 (previously it was 41)<br />

(5) NUMBER -> buffer storage size is now 41 (previously it was 41)<br />

(6) FLOAT(5) -> buffer storage size is now 41 (previously it was 41)<br />

Consider NUMBER(p,s): When both 'p' and 's' are specified, buffer storage is the<br />

size of whichever is the maximum, either 'p' or 's', plus 3 bytes (for the sign,<br />

radix and NULL terminator). When 's' is negative, storage size is the sum of<br />

'p' and the absolute value of 's' plus three (for the sign, radix and NULL<br />

terminator). If neither 'p' nor 's' is specified, or if the native column is a<br />

floating point number, buffer storage will be 41 bytes.<br />

Note:-<br />

Stack overflow errors are most likely when dealing with very large tables.<br />

Please increase stack size using '-s' startup parameter on getting stack<br />

overflow errors.<br />

================================================<br />

Documentation - ABL<br />

================================================<br />

Note: OE00171248 Type: Known Issue<br />

SERVER attribute incorrectly specified as Readable only<br />

---------------------------------<br />

The reference entry for the SERVER attribute in <strong>OpenEdge</strong> Development: ABL<br />

Reference indicates that the SERVER attribute is Readable. However, for the<br />

call object handle, the SERVER attribute is also Writable.<br />

================================================<br />

Graphical User Interface - ABL<br />

================================================<br />

Note: OE00165299 Type: Behavior Change<br />

ASSIGN on unmodified hidden editor moves data to record/variable<br />

---------------------------------<br />

If there is no data in the screen field, the ASSIGN statement does not move data<br />

into a field or variable. There is no data in the screen field unless you enter<br />

data in the screen field or DISPLAY data to that field. For example, using an<br />

ASSIGN statement on an unmodified and hidden editor should not move data into a<br />

target field or variable.<br />

However, in previous releases, the ASSIGN statement moved the Unknown value (?)<br />

into the target. Release 10.1C01 fixes this incorrect behavior. You should<br />

examine any application that might have relied on the previous behavior.<br />

Page 28


================================================<br />

Open Client - .NET<br />

================================================<br />

READMESP.txt<br />

Note: OE00129730 Type: Behavior Change<br />

Correct Behavior for CancelAllRequests() with .NET Open Client<br />

---------------------------------<br />

When calling CancelAllRequests(), an exception is now generated indicating that<br />

a STOP has been received from the AppServer. This behavior is the intended<br />

behavior and is compatable with the Java Open Client. In previous releases, this<br />

API call would wait until a fixed timeout occurred before returning.<br />

Note: OE00171828 Type: Behavior Change<br />

Output DataSets in .NET Send Schema Information<br />

---------------------------------<br />

An Output DataSet or DataTable parameter in .NET sends schema information to the<br />

AppServer even if the SetNoSchemaMarshal method is used and the AppServer is<br />

running with the -ttmarshal parameter set to 4.<br />

This is because the c# compiler considers an output parameter unassigned and it<br />

must be assigned before its value is used, therefore, the .NET proxy code is not<br />

able to look at the output DataSet or DataTable object to detect if<br />

SetNoSchemaMarshal was called.<br />

The .NET client programmer can now specify that they do not want the schema<br />

info sent from .NET to the AppServer for output DataSet or DataTable parameters<br />

by setting the new RunTimeProperties.NoSchemaMarshal property to true. It should<br />

be set before the proxy method is called.<br />

Note: The property will be used on all DataSet and DataTable parameters for that<br />

method call. Remember to reset the NoSchemaMarshal property back to false for<br />

subsequent proxy method calls if desired.<br />

The property can be used in place of the ProDataTable SetNoSchemaMarshal()<br />

method. This would be the case if you wanted all DataSet and DataTable<br />

parameters in a single proxy method to not pass schema info from .NET to the<br />

AppServer.<br />

Example code:<br />

RunTimeProperties.NoSchemaMarshal = true;<br />

appObj.getMyDSet(1, out myOutDS);<br />

See the existing SetNoSchemaMarshal() documentation for more details.<br />

Note: OE00180718 Type: Behavior Change<br />

OpenClient DLLs available in a strongly named but digitally unsigned version<br />

---------------------------------<br />

<strong>OpenEdge</strong> now ships a third version of the following OpenClient DLLs for<br />

applications that need strongly named DLLs that are not digitally signed:<br />

<strong>Progress</strong>.ssl.dll<br />

<strong>Progress</strong>.o4glrt.dll<br />

<strong>Progress</strong>.Messages.dll<br />

These DLLS are located in the following directory:<br />

/dotnet/deploy/strongnamed.<br />

These new DLL versions are shipped in <strong>10.1C04</strong>, 10.2A02, and 10.2B.<br />

To support this choice, the ProxyGen tool was updated and made available in the<br />

Page 29


READMESP.txt<br />

<strong>10.1C04</strong> and 10.2A02 service packs, as well as version 10.2B.<br />

The new version of ProxyGen replaces the "Use Strong-named Runtime" checkbox in<br />

the .NET tab with a combo box. The combo box provides the following three<br />

choices:<br />

Digitally Signed<br />

Strongnamed Signed<br />

Strongnamed<br />

The new combo box is initially be set to "Digitally Signed", which is the<br />

default behavior.<br />

================================================<br />

Open Client - Java<br />

================================================<br />

Note: OE00172110 Type: Product Notice<br />

Java null integer and logical not unknown when passing dataset<br />

---------------------------------<br />

When passing datasets between Java and <strong>OpenEdge</strong> through the AppServer, fields<br />

with Java primitive data types (integer or boolean) cannot pass null values from<br />

Java or the unknown value from <strong>OpenEdge</strong>. On the Java side, a primitive data type<br />

field with no assigned value is passed or received as the default value for the<br />

primitive type (0 for integer fields and false for boolean fields). The ABL<br />

types affected are INTEGER, LOGICAL, INT64, RECID, COM-HANDLE, and<br />

WIDGET-HANDLE.<br />

To override this behavior, the RunTimeProperties class now includes the<br />

RunTimeProperties.setDatasetNullInitials(true) method. An OpenClient application<br />

calls this method to enable support for passing null or unknown values in<br />

datasets between <strong>OpenEdge</strong> and Java. The runtime property only takes effect<br />

during the definition of the ProDataObjectMetaData object.<br />

================================================<br />

Open Client - Web <strong>Service</strong>s Provider<br />

================================================<br />

Note: OE00174458 Type: Behavior Change<br />

R-code header version change when XML-NODE-NAME defined<br />

---------------------------------<br />

The <strong>OpenEdge</strong> Web services provider now supports XML-NODE-NAME in ProDataSet<br />

parameter definitions. This requires a version change of the r-code header, and<br />

previous versions of ProxyGen are not able to parse r-code compiled in versions<br />

starting with 10.1C03 or 10.2A that contain XML-NODE-NAME in DATASET,<br />

TEMP-TABLE, or TEMP-TABLE field definitions.<br />

Note: OE00176644 Type: Behavior Change<br />

Web <strong>Service</strong> returns incorrect values for TEMP-TABLE DATE fields<br />

---------------------------------<br />

In previous <strong>OpenEdge</strong> releases, it was possible for values in DATE columns of a<br />

TEMP-TABLE to become corrupted when received by a Web <strong>Service</strong> client.<br />

This problem occurred when more than one Web <strong>Service</strong> client simultaneously<br />

requested data from TEMP-TABLE(s) through the same <strong>OpenEdge</strong> Web <strong>Service</strong> Adapter<br />

(WSA). If more than one of the TEMP-TABLEs contained a DATE column, it was<br />

possible for DATE fields in the TEMP-TABLEs to become corrupt.<br />

With this release of <strong>OpenEdge</strong>, the issue is now fixed.<br />

Page 30


READMESP.txt<br />

================================================<br />

<strong>OpenEdge</strong> Architect - Tools for Business Logic<br />

================================================<br />

Note: OE00166839 Type: Behavior Change<br />

Tools for Business Logic links now have Recursive and Not-Active properties<br />

---------------------------------<br />

In a Tools for Business Logic dataset diagram, links between temp tables and<br />

links between temp tables and buffers now have Recursive and Not-Active<br />

properties. Set the value of these properties to "true" to have them generated<br />

in the ABL code. With any other value, the NOT-ACTIVE or RECURSIVE flag for the<br />

dataset data relation is not set. Please note that there is no migration for<br />

these properties. Datasets created in a previous version of Tools for Business<br />

Logic do not have these properties available. To make them available, delete<br />

the link and then re-add it.<br />

Note: OE00172430 Type: Workaround<br />

Temp table diagrams not updated properly under Eclise 3.4<br />

---------------------------------<br />

If you use Eclipse 3.4, columns and indexes added to a Tools for Business Logic<br />

temp table diagram are not immediately visible. The newly added components<br />

become visible when you resize/move/rename the diagram.<br />

================================================<br />

<strong>OpenEdge</strong> Replication - Agent<br />

================================================<br />

Note: OE00146527 Type: Known Issue<br />

Processing if <strong>OpenEdge</strong> Replication Agent Failure Occurs<br />

---------------------------------<br />

If an <strong>OpenEdge</strong> Replication agent failure occurs (for example, if the rpagent<br />

process ends abnormally), the only way to restart the agent is to restart the<br />

target database. Under normal circumstances, the broker or watchdog process<br />

dynamically backs out active transactions for a process after that process<br />

unexpectedly ends. The dynamic backout process cannot be performed on behalf of<br />

the <strong>OpenEdge</strong> Replication agent because target database updates must always be<br />

driven from the source database. Dynamic backout does, however, update the<br />

database.<br />

In the event of an unexpected <strong>OpenEdge</strong> Replication agent failure, dynamic<br />

transaction backout does not occur and the target database is left in an<br />

inconsistent state. This could cause ABL or SQL processes accessing the<br />

database to end abnormally. After the target database is restarted and<br />

synchronization is performed, all target database access should proceed<br />

normally.<br />

Note: OE00146536 Type: Known Issue<br />

If First Agent Terminates While Two Agents Connect the Server Shuts Down<br />

---------------------------------<br />

In a two-agent scenario, if one Replication agent connects to the Replication<br />

server and then terminates while the server is connecting to the second<br />

Replication agent, the Replication server terminates with an error-1.<br />

================================================<br />

<strong>OpenEdge</strong> Replication - Replication<br />

================================================<br />

Note: OE00146529 Type: Known Issue<br />

Startup Parameter -DB<strong>Service</strong> is Case-Sensitive<br />

---------------------------------<br />

The -DB<strong>Service</strong> startup parameter is case-sensitive. If you do not enter the<br />

Page 31


READMESP.txt<br />

parameter in the correct case, an error appears and indicates that the -S<br />

parameter is missing.<br />

Note: OE00146532 Type: Known Issue<br />

Do Not Enable a Quiet Point before Restart of the Replication Server<br />

---------------------------------<br />

If the Replication server crashes and you plan to restart it using the following<br />

command:<br />

DSRUTIL sdb -C restart server<br />

where sdb is the name of your source database, do not enable a quiet point on<br />

the source database before you restart the Replication server.<br />

================================================<br />

Security - Tools<br />

================================================<br />

Note: OE00147103 Type: Behavior Change<br />

Behavior change recording auditing events during index rebuild<br />

---------------------------------<br />

This bug fix changes the behavior of recording audit events during an index<br />

rebuild.<br />

During index rebuild, the _index records for the indexes to be rebuilt are first<br />

changed to "inactive". After the rebuild is complete, they are changed to<br />

"active".<br />

Before this fix, if there was a audit policy defined to record updates on _index<br />

records for the indexes to be rebuilt, auditing recorded the change.<br />

After this fix, the events are not recorded. The reason is, if the indexes are<br />

in a rebuild state, the indexes used to get auditing policies might be invalid<br />

and we can not get the schema and policy records needed to record the event.<br />

================================================<br />

SQL -<br />

================================================<br />

Note: OE00184692 Type: Behavior Change<br />

Changed response time for query with OR predicates on index key<br />

---------------------------------<br />

As of OE <strong>10.1C04</strong>, OE SQL will, at times, use a different data access strategy<br />

when a query WHERE clause contains OR'd predicates on an index key.This can<br />

occur when the index key value can be fetched directly from the index, which is<br />

so for numeric datatype key columns.<br />

For this situation, prior releases of OE SQL would at times use a table scan to<br />

access the data, which gives rapid response time but often poor total execution<br />

time. Now, OE SQL will use a strategy using index scans, which can provide much<br />

better total execution time, but may provide slower response time.<br />

Note - by response time, we mean the time between a query's execution beginning<br />

and the return of the first row of result set data to the application.<br />

================================================<br />

SQL - SQL Explorer<br />

================================================<br />

Page 32


READMESP.txt<br />

Note: OE00176806 Type: Behavior Change<br />

Enabling an sqlexp ssl connection<br />

---------------------------------<br />

The old sqlexp ssl parameters: ssl, nosessionreuse, nsr, nohostverify, nhv, have<br />

been deprecated. They have been replaced by keywords on a new sqlexp -driverUrl<br />

option. The basic format of this new option is as follows:<br />

driverurl<br />

"jdbc:datadirect:openedge://:;databaseName=;User=;Pass<br />

word=


cpinternal and cpstream (utf8.pf).<br />

READMESP.txt<br />

================================================<br />

ADE Tools and Runtime Tools<br />

================================================<br />

Issue Number: OE00182559<br />

Declarative statements not supported in AppBuilder<br />

When a .w file defines a temp table or a buffer or is Appserver aware, the<br />

declarative statements USING and ROUTINE LEVEL ERROR cannot be added in the<br />

definition section (or anywhere) through the Appbuilder without causing the<br />

file not to compile.<br />

To address this issue the Procedure Settings Dialog now has additional<br />

functionality that allows the user to add declarative statements like<br />

USING and ROUTINE LEVEL ERROR. A new button on the right hand side opens a<br />

dialog that allows you to add this code in an editor.<br />

The declarative statements added here are generated into a new section in<br />

the source code. This section is written before both the optional<br />

temp-table definitions and the optional appserver include, thus ensuring<br />

that these statements always are added before any definitional and<br />

executable statement as required for the file to compile.<br />

================================================<br />

DATASERVER DataServer<br />

================================================<br />

Issue Number: OE00183297<br />

SQL Server DS crashes doing find prev if no record is available<br />

SQL Dataserv crashes doing find prev if there was no record available<br />

================================================<br />

DATASERVER MSSQLSRV<br />

================================================<br />

Issue Number: OE00181014<br />

Client hang/crashes after REPOSITION with MSS DataServer<br />

The client may crash or hang after it has executed a REPOSITION on a table<br />

with a fields with non-default collation and when you turn off binding.<br />

Issue Number: OE00181255<br />

ABL client gpf with a simple query if timestamp field is present<br />

ABL client gpf with a simple query syntax check if timestamp field is<br />

present on the MS SQL server database. The timestamp field is removed from<br />

schema holder for non-support.<br />

Issue Number: OE00181560<br />

SYSTEM ERROR: Date in where clause with native client 10 driver<br />

When the given ABL is executed with SQL native client 10 driver it raises<br />

errors, for example:<br />

- SYSTEM ERROR:Assignment error.(6177)<br />

- 22005:[Microsoft][SQL Server Native Client 10.0][SQL Server]Operand type<br />

clash: datime2 is incompatible with int.<br />

- 37000: [Microsoft][SQL Server Native Client 10.0][SQL Server]Statement(s)<br />

could not be prepared.<br />

Issue Number: OE00182302<br />

getting sequence number randomly writes irrelevant data<br />

Page 34


READMESP.txt<br />

when two sessions concurrently running getting sequence number randomly<br />

writes irrelevant data<br />

Issue Number: OE00183323<br />

Preselect query with by clause with non-indexed field crashes<br />

Running a PRESELECT query with a BY clause that includes a field that isn't<br />

part of an index causes the client to crash<br />

Issue Number: OE00183774<br />

Buffer-value returns 14/02/01 when Initial value is Today<br />

Temp-Table buffer-value always returns the initial value Today of a date<br />

field as 14/02/01 when connecting to the SQL Database Schema Holder<br />

================================================<br />

DATASERVER ORACLE<br />

================================================<br />

Issue Number: OE00180196<br />

Buffer overflow errors when a foreign table contains many fields<br />

The following errors are eager to occur when querying an Oracle table that<br />

contains a large number of columns (array extents):<br />

ORACLE row may exceed 32k - can't allocate buffer for table ADMINOPALE.PRO<br />

(328) (6447)<br />

Insufficient memory to allocate buffer for ORACLE (5038)<br />

Issue Number: OE00182056<br />

Oracle ORA-01841 seen in certain situations with date in where<br />

In certain situations error "ORA-01841: (full) year must be between -4713<br />

and +9999, and not be 0" is seen using bind variables and having date in<br />

the where clause. In the dataserver log it can be seen that the wrong<br />

variable type is being used for the query.<br />

Issue Number: OE00182856<br />

BLOB field prevents correct display of other fields<br />

Oracle Dataserver: A BLOB field created before fields with other datatypes<br />

may prevent these other fields being displayed correctly in a FOR EACH<br />

...NO-LOCK query.<br />

Issue Number: OE00184406<br />

High CPU usage after disconnection when using external credentia<br />

When executing "select * from v$session", the session was still be there.<br />

================================================<br />

DATASERVER Other<br />

================================================<br />

Issue Number: OE00184262<br />

Error 11076 connecting more than 31 DataServer schemas<br />

Error 11076 connecting the 31st DataServer schema reported in the<br />

dataserv.lg file, with o.s error 0 (zero)<br />

================================================<br />

DB bm<br />

================================================<br />

Issue Number: OE00183719<br />

TYPE II not reusing space after table delete<br />

Page 35


READMESP.txt<br />

Chanalys reports error 14160 after chains are rebuilt through dbrpr<br />

following table schema deletion, which leads to clusters being unavailable<br />

for re-use.<br />

================================================<br />

DB DBTLS<br />

================================================<br />

Issue Number: OE00183665<br />

DBTool failure to fix SQL-WIDTH causes Query to fail<br />

DBTool failure to fix the SQL WIDTH of a decimal field causes SQL query to<br />

fail<br />

================================================<br />

DB dbutil<br />

================================================<br />

Issue Number: OE00182083<br />

Prodb fails to mapped vm drive with (8265) and (4524) errors<br />

Prodb/procopy fail with (8265) and (4524) errors when creating a database<br />

without an existing void structure on a mapped vm drive.<br />

================================================<br />

DB lat<br />

================================================<br />

Issue Number: OE00184551<br />

Latch performance benefit by changing select() to nanosleep().<br />

Improved latch performance can be achieved by changing select() to<br />

nanosleep()<br />

================================================<br />

DB Other<br />

================================================<br />

Issue Number: OE00182956<br />

The VST _Logging-AiJournal is not accurate<br />

The VST _Logging-AiJournal always shows after imaging as enabled, even if<br />

it is disabled.<br />

================================================<br />

DB prolog<br />

================================================<br />

Issue Number: OE00180941<br />

prolog fails if lg file > 2 GB<br />

prolog (offline and online) fails if the lg file > 2 GB<br />

================================================<br />

DB PROSTRCT<br />

================================================<br />

Issue Number: OE00175730<br />

Adding extent online doesn't allow for EGID on new extent<br />

Sometimes doing a prostrct addonline fails even though all clients could<br />

access the new extent due to the use of a script with setgid setting up an<br />

EGID on the users process<br />

================================================<br />

DB proutil<br />

================================================<br />

Issue Number: OE00179310<br />

Page 36


READMESP.txt<br />

idxcompact requires more bi file space in 10.1x than 9.1E<br />

Using idxcompact with tables where a large number of records are deleted<br />

and the indexes are not freed up at record delete time (leaving blocks<br />

associated with them), can exhaust bi during the idxcompact operation.<br />

================================================<br />

DB rc<br />

================================================<br />

Issue Number: OE00181132<br />

Error 11425 after binary load into a type II storage area<br />

A table residing in a type I storage area was binary dumped then the table<br />

definitions were loaded into a type II storage area and data was binary<br />

loaded back.<br />

RAW-TRANSFER statement fails on any records binary loaded.<br />

================================================<br />

DB rfutil<br />

================================================<br />

Issue Number: OE00180748<br />

hotspare db crashes during undo phase of crash recovery<br />

If an OS copy is taken for a hotspare databaseline, it fails during crash<br />

recovery during Logical Undo Phase, with error 49 when first accessed.<br />

<strong>Progress</strong> Solution P141248 for details.<br />

Issue Number: OE00181957<br />

Roll forward AI fails fails when sequence is larger than 65535<br />

When the ai sequence number is larger than 65535, rolling forward fails<br />

with an (8019) error.<br />

================================================<br />

GUI 4GL<br />

================================================<br />

Issue Number: OE00180108<br />

Unable to display content of variable using READ-FILE and ASSIGN<br />

When using READ-FILE() and ASSIGN to read data into an editor, the data is<br />

not displayed if the editor is not enabled.<br />

Issue Number: OE00181543<br />

Session hangs when setting the format of a browse column<br />

Setting the format of a browse column to a longer format may cause the<br />

session to crash or hang.<br />

Issue Number: OE00182118<br />

Return error on db trigger generates wrong events on the UI<br />

Return error on database trigger generates wrong events on the UI<br />

Issue Number: OE00182809<br />

Using browse scrollbar arrows truncates column values<br />

When the browse scrollbar arrows are used to scroll up and down the browse,<br />

some values in the browse may be truncated. Scrolling the browse by moving<br />

the scrollbar's thumb or paging up or down by clicking above or below the<br />

thumb redisplays the correct values<br />

================================================<br />

Page 37


READMESP.txt<br />

GUI BROWSE<br />

================================================<br />

Issue Number: OE00178473<br />

Crash in Browse widget on Vista<br />

The session may crash when selecting the scrollbar down arrow on the BROWSE<br />

widget. The crash occurs when the browse widget does not contain more rows<br />

than are able to fit in the viewport at one time.<br />

================================================<br />

Install NetSetup<br />

================================================<br />

Issue Number: OE00180338<br />

NetSetup silent install shows messages for registered filetypes<br />

A NetSetup Silent installation may show message boxes prompting to<br />

re-register file assoications with the new installation. This means the<br />

installation is not silent. The messages show up for any extension that we<br />

try to register that is registered to another application, the most common<br />

scenario being if multiple <strong>OpenEdge</strong> releases are installed on the same<br />

machine.<br />

================================================<br />

LANG 4GL<br />

================================================<br />

Issue Number: OE00179792<br />

Error is not raised properly for RETURN statements<br />

If an error occurs during the evaluation of an expression on a RETURN<br />

statement it cannot be caught by a catch block covering the block<br />

containing the RETURN statement. Furthermore such errors do not propagate<br />

up the call stack properly when the routine is covered by a ROUTINE-LEVEL<br />

ON ERROR UNDO, THROW statement.<br />

Issue Number: OE00180112<br />

Application crashes with error 51 when MEMPTR() is used<br />

Application crashes with SYSTEM-ERROR sizdtm - invalid type(51) when<br />

MEMPTR() is used.<br />

Issue Number: OE00180972<br />

RETURN ERROR from AppServer = No .NET Exception<br />

Doing a RETURN ERROR from a 4GL program on the AppServer back to a .NET<br />

Open Client will no longer raise Runtime4GLErrorException.<br />

Issue Number: OE00181523<br />

FILE-INFO:FULL-PATHNAME, PATHNAME sometimes incorrect<br />

FILE-INFO:FULL-PATHNAME and FILE-INFO:PATHNAME incorrectly return the root<br />

directory rather than the correct path under the following conditions:<br />

1. The file has a two-character name.<br />

2. PROPATH must be searched to find the file.<br />

3. PROPATH contains the directory that contains the file.<br />

4. The PROPATH entry is not relative to the <strong>OpenEdge</strong> working directory.<br />

This problem was introduced in 10.1C02 and 10.2A.<br />

Issue Number: OE00182677<br />

Session crashes when adding then dropping table<br />

Session crashes when adding and dropping tables in two seperate<br />

transactions when the program or any of its callers have references to the<br />

Page 38


database.<br />

READMESP.txt<br />

================================================<br />

LANG DATASET<br />

================================================<br />

Issue Number: OE00166863<br />

Inconsistent shared record lock during save-row-change<br />

A save-row-changes tries to put a share lock on the record when connected<br />

via TCP/IP to the database. This causes error 12300.<br />

Issue Number: OE00180257<br />

DATA-SOURCE:QUERY before ATTACH causes incorrect FILL()<br />

Referencing the QUERY attribute of a DATA-SOURCE prior to attaching the<br />

DATA-SOURCE to a DATASET's BUFFER causes the FILL operation on the DATASET<br />

to behave as if REPOSITION was specified for the DATA-RELATION relative to<br />

the specific BUFFER.<br />

================================================<br />

LANG I18N<br />

================================================<br />

Issue Number: OE00179233<br />

SET/UPDATE with "-" can fail with -cpinternal UTF-8<br />

If using the SET or UPDATE statements to read input from a file, and the<br />

input field contains the "skip" character ("-"), the ABL client might fail<br />

to correctly handle the data if using -cpinternal UTF-8.<br />

If there is a LOGICAL field in the SET or UPDATE frame, the program might<br />

generate the following errors:<br />

** Input value: should be yes/no. (87)<br />

** : Unable to evaluate field for assignment. (143)<br />

For other datatypes, if the fields in the SET frame are pre-filled (e.g.<br />

with a DISPLAY statement), each field that is skipped with "-" will be<br />

empty.<br />

================================================<br />

LANG OO4GL<br />

================================================<br />

Issue Number: OE00177551<br />

WebClient doesn't support static class members or DYNAMIC-NEW<br />

Code which works under regular <strong>Progress</strong> will fail when run in WebClient.<br />

Issue Number: OE00179791<br />

GET accessors of PRIVATE STATIC class properties do not execute<br />

The GET accessor of a PRIVATE STATIC class property does not execute, even<br />

if it has an implementation. The current value of the underlying storage is<br />

retrieved directly, without executing the body of the GET.<br />

Issue Number: OE00181972<br />

DYNAMIC-NEW gives error 14291 with PUBLIC and STATIC constructor<br />

DYNAMIC-NEW gives error 14291 when instantiating a class with both a PUBLIC<br />

and STATIC constructor with the same signature.<br />

Issue Number: OE00183044<br />

Compiling a class file with SAVE XREF hangs compilation<br />

Page 39


READMESP.txt<br />

Compiling a class file with SAVE XREF hangs the compilation:<br />

-- It is a NEW statement in a constructor that causes this to happen when<br />

an XREF file is being generated.<br />

-- The compilation keeps running, without stopping until the prowin32.exe<br />

process is killed in Task Manager<br />

-- The output XREF file keeps growing until the prowin32.exe process is<br />

killed<br />

-- About 50% of the CPU's resources are used during this period<br />

-- The problem did not occur in 10.2A FCS.<br />

================================================<br />

LANG Other<br />

================================================<br />

Issue Number: OE00181377<br />

Non-English PROMSGS may be truncated<br />

If using a non-English PROMSGS file, long messages might be truncated if<br />

the AVM's -cpinternal does not match the codepage of the PROMSGS file. The<br />

first occurrence of the message is displayed correctly, but all subsequent<br />

occurrences will appear truncated.<br />

================================================<br />

LANG Web <strong>Service</strong>s Client<br />

================================================<br />

Issue Number: OE00169465<br />

Web<strong>Service</strong> client sometimes does not time-out during Async call<br />

Web <strong>Service</strong> client sometimes does not time-out when performing an<br />

Asynchronous call after the defined time-out period has expired. The<br />

client waits for the response when the request should be canceled.<br />

Issue Number: OE00180710<br />

Memory leak with WSO CONNECT<br />

Client leaks memory when connecting/disconnecting to Web <strong>Service</strong>s<br />

Issue Number: OE00181528<br />

LONGCHAR parameters cause memory leak with Web <strong>Service</strong>s client<br />

The <strong>OpenEdge</strong> Web <strong>Service</strong> client has a memory leak when repeatedly calling a<br />

Web <strong>Service</strong> with LONGCHAR parameters.<br />

================================================<br />

Management DBAgent<br />

================================================<br />

Issue Number: OE00180526<br />

Scripted database doesn't send abnormal shutdown alert<br />

When a scripted database has an abnormal shutdown, no alert is sent from<br />

Management.<br />

================================================<br />

Management Monitors<br />

================================================<br />

Issue Number: OE00171764<br />

File -> Log file Monitor polling not releasing file handle<br />

Every poll of a log file monitor configured under File -> log file takes a<br />

file handle but does not release it.<br />

================================================<br />

Open Client .NET<br />

Page 40


READMESP.txt<br />

================================================<br />

Issue Number: OE00180718<br />

AppServer connection from .NET open client takes one minute<br />

When there is no Internet connection on the server, the .NET open client<br />

takes over 60 secs to connect to the AppServer due to the validation of the<br />

digital signatures of the signed DLLs.<br />

================================================<br />

Open Client Java<br />

================================================<br />

Issue Number: OE00172110<br />

Java null integer and logical not unknown when passing dataset<br />

Java null value (or the unknown value on the <strong>Progress</strong> side) integers and<br />

logicals come through as 0 and false, respectively, when passing datasets<br />

between Java and <strong>Progress</strong> via the AppServer.<br />

Issue Number: OE00181499<br />

Java OpenClient ResultSet not fully JDBC compliant<br />

The temp-table ResultSet returned by a java OpenClient proxy does not<br />

provide a fully JDBC 2 compliant java.sql.ResultSet interface. JDBC clients<br />

expecting full JDBC compliance will fail with an exception calling the<br />

following methods:<br />

getBigDecimal(int columnIndex)<br />

getBigDecimal(String columnName)<br />

getRow()<br />

getType()<br />

getConcurrency()<br />

getFetchDirection()<br />

There is no commitment from <strong>Progress</strong> Software to make the ResultSet fully<br />

JDBC compliant.<br />

Issue Number: OE00182038<br />

Java Open Client setNoHostVerify problem<br />

The setNoHostVerify option of the RuntimeProperties class in Java Open<br />

Client does not suppress SSL host name verification.<br />

================================================<br />

Replication AGENT<br />

================================================<br />

Issue Number: OE00181622<br />

RPLA crashes when DB table has a recid over 4 billion<br />

Replication agent will crash when processing recid over 4 billion (2^32)<br />

range, producing 'RPLA (435) SYSTEM ERROR: lkrels record not locked' error<br />

messages.<br />

================================================<br />

Replication Other<br />

================================================<br />

Issue Number: OE00183953<br />

Querying _Repl VST causes session crash<br />

Querying the _ReplSrv VSTs of the target, then the source and then the<br />

target again causes the session to crash.<br />

================================================<br />

Server Technology Other<br />

================================================<br />

Page 41


READMESP.txt<br />

Issue Number: OE00182654<br />

Error when making Async AppServer Calls Can Cause Error (49)<br />

If a communication error occurs when making a call to an asynchronous<br />

AppServer, the client making the request might crash with error (49).<br />

================================================<br />

SQL ESQL92<br />

================================================<br />

Issue Number: OE00180766<br />

"Already existing value specified" error when running SQL query<br />

A query that works in 10.1C and 10.1C01 fails in 10.1C02, 10.1C03, and<br />

10.2A with:<br />

[DataDirect][<strong>OpenEdge</strong> JDBC Driver][<strong>OpenEdge</strong>] Already existing value<br />

specified.<br />

================================================<br />

SQL ODBC Drivers<br />

================================================<br />

Issue Number: OE00175958<br />

The SQLGetData ODBC API returns invalid data length<br />

The SQLGetData ODBC function returns invalid data length in the<br />

StrLen_or_IndPtr output parameter when retrieving data in multiple parts,<br />

for example from a CLOB field.<br />

================================================<br />

SQL Server<br />

================================================<br />

Issue Number: OE00178930<br />

Performance of SQL query worse after UPDATE STATISTICS 10.1C<br />

Performance of a query degrades dramatically after running UPDATE<br />

STATISTICS in 10.1C, going from less than a second to +/- 50 minutes.<br />

Issue Number: OE00180243<br />

SQL92 server dies with complex UNION queries<br />

The SQL92 server dies with complex UNION queries that worked in 10.1C and<br />

regressed in 10.1C02 and 10.2A.<br />

Issue Number: OE00180311<br />

SQL Crashes on a select query<br />

SQL Crashes on a select query when duplicate field in the index<br />

Issue Number: OE00181154<br />

SQL-92 ROUND returns wrong results with negative numbers<br />

ROUND function can incorrectly round negative values, generating incorrect<br />

results.<br />

Issue Number: OE00182790<br />

Server crash is likely error with 10.1C03<br />

Server crash is likely error with 10.1C03 when running the attached SELECT<br />

statement<br />

Issue Number: OE00183274<br />

Encountered internal error at 1934 in rds/xec_qfns.cxx<br />

The error Encountered internal error in SQL ENGINE at 1934 in<br />

Page 42


READMESP.txt<br />

Z:/vobs_sql/sql/src/rds/xec_qfns.cxx. is caused by the following<br />

caused by LEFT OUTER JOIN with SELECT in the ON clause<br />

================================================<br />

SQL SQL<br />

================================================<br />

Issue Number: OE00175556<br />

UPDATE STATISTICS degrades query performance in 10.1C01<br />

SQL query runs much more slowly after UPDATE STATISTICS is executed against<br />

the database than it did before.<br />

Issue Number: OE00178647<br />

[DataDirect][<strong>OpenEdge</strong> JDBC Driver][<strong>OpenEdge</strong>] Internal error -2<br />

[DataDirect][<strong>OpenEdge</strong> JDBC Driver][<strong>OpenEdge</strong>] Internal error -2 (a column<br />

with the specified column id does not exist in the row) in SQL from<br />

subsystem<br />

Issue Number: OE00181695<br />

Internal error in SQL ENGINE when comparing fields with =<br />

Getting an internal error in sql engine when evaluating a query that<br />

compares fields in derived tables. If the match is anything but an<br />

equality match then the problem doesn't occur.<br />

The error that is returned follows:<br />

=== SQL Exception 1 ===<br />

SQLState=HY000<br />

ErrorCode=-211022<br />

[DataDirect][<strong>OpenEdge</strong> JDBC Driver][<strong>OpenEdge</strong>] Encountered internal error in<br />

SQL ENGINE at 338 in Z:/vobs_sql/sql/src/rds/opt_jfn1.cxx. Contact <strong>Progress</strong><br />

Technical Support<br />

Issue Number: OE00182153<br />

Query that ran OK under 10.1B crashes under 10.1C03<br />

A query that ran error free under 10.1B03, 10.1C, 10.1C01 crashes the ODBC<br />

and the JDBC clients when executed under 10.1C02 and 10.1C03.<br />

Issue Number: OE00182556<br />

SQL DELETE statement fails with WORD indexed ARRAY fields<br />

Internal error -2 error is generated by the SQL DELETE statement if the<br />

result set is not empty and a WORD indexed ARRAY field exists in table.<br />

Issue Number: OE00182639<br />

Using delete with nested queries and derived tables causes crash<br />

Running a Delete or Update statement that includes 3 levels of nested<br />

queries involving at least one derived table may cause a server crash.<br />

================================================<br />

SQL SQL Explorer<br />

================================================<br />

Issue Number: OE00182382<br />

Conv910 causes SQLWidth errors<br />

Converting a 9.1D database to 10.1C02 or 10.2A with proutil dbname -C<br />

conv910 causes sqlexp or ODBC or JDBC app no resultset contents to be<br />

returned but ErrorCode=-210012<br />

[DataDirect][<strong>OpenEdge</strong> JDBC Driver][<strong>OpenEdge</strong>] Column in table has value<br />

Page 43


exceedi<br />

ng its max length or precision.<br />

READMESP.txt<br />

================================================<br />

TTY 4GL<br />

================================================<br />

Issue Number: OE00181109<br />

Incorrect events may be generated upon leave of a fill-in<br />

Incorrect events may be generated when a fill-in loses focus. This issue<br />

is more likely to occur when events are programmatically applied to the<br />

fill-in in response to the ENTRY or LEAVE events.<br />

================================================<br />

DBNav Other<br />

================================================<br />

Issue Number: UNUM00000442<br />

DB Navigator breaks on BLOB field if max size = ?<br />

Using Data Dictionary, it's possible to specify the maximum size for a BLOB<br />

(or CLOB) field to be unknown. The database engine handles this correctly<br />

by defaulting to the hard-coded limit of 1GB.<br />

The DB navigator in OE Architect trips over this. Changing the BLOB's<br />

properties becomes impossible and it will fail to display all fields<br />

correctly at all times.<br />

Page 44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!