远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况,现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。
在SAP Support Portal网站或者google上搜索Targeted CR List for ASE,可以看到针对不同版本的CR(CR表示Change Request)简单描述信息列表。
需要注意的是:Targeted CR List for ASE列出的CR虽然绝大多数是BUG,但有一些是更改需求。
以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息!

如有问题,请联系我!

QQ :289965371 点击这里给我发消息
Email:
不仅仅包括BUG的详细描述信息,还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程;有些BUG还提供了Workaround来临时解决该BUG带来问题。

 

CR:386024
CR Number:   386024
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1655 11 Apr 2005 Fixed
9.0.2 3106 11 Apr 2005 Fixed
Description
The method QATextMessage::readText() is used to read the text from a QATextMessage in pieces. If readText() was called when there was no more text, it would have returned an empty string. The next call to readText() would then have returned -1, indicating no more text. This has been fixed, now readText() returns -1 as soon as there is no more text, as documented.



CR:386025
CR Number:   386025
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5256 05 May 2005 Fixed
9.0.1 2030 05 May 2005 Fixed
9.0.2 3126 05 May 2005 Fixed
Description
When attempting to rebuild a strongly encrypted database with the Unload utility with the 'rebuild and replace database'command line option (-ar), if the database was involved in replication or synchronization, the current transaction log offset of the newly rebuilt database would not have been set correctly. When rebuilding databases of this type, the Unload utility will now assume that the encryption key specified with the -ek or -ep switch is the encryption key for both the database being rebuilt, and the newly rebuilt database. In addition, using the -ar option will now return an error in the following situations, where previously the database would have been rebuilt but the log offset would not have been set correctly :



1) The database is involved in replication or synchronization, but the encryption key provided with the -ek or -ep switch is not a valid encryption key of the database being rebuilt.

2) The database is involved in replication or synchronization, the database being rebuilt is strongly encrypted, but the -ek or -ep switch was not provided on the dbunload command line.
Workaround Description
 None.



CR:386033
CR Number:   386033
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1661 12 Apr 2005 Fixed
9.0.2 3108 12 Apr 2005 Fixed
Description
Date formating strings containing the AM/PM indicators "aa" or "pp" could have resulted in mangled characters in Chinese dates. This has been fixed.



CR:386047
CR Number:   386047
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1661 11 Apr 2005 Fixed
9.0.2 3108 11 Apr 2005 Fixed
9.0.1 2010 11 Apr 2005 Fixed
Description
When using an AWE cache, the server could have failed with a "memory exhausted" error (not to be confused with the "dynamic memory exhausted" fatal error), other fatal errors or other operations problems, such as failures loading DLL for Remote Data Access or external stored procedures could fail. The problem was that the server would allocate space for use by the cache up to the available address space less 64MB; effectively leaving only 64MB of address space for other purposes, which was frequently insufficient. Note that the amount of address space allocated never exceeded the amount of physical memory allocated for the AWE cache. Now, the database server allocates up to the available address space less 512MB



An undocumented command line option "-cm <size>" has always existed to control the amount of address space allocated for an AWE cache. As a work-around, this option can be added to the server's command line to leave more address space for purposes other than the cache.



Each process on 32-bit Windows is given 2GB of address space in total (that's an OS and 32-bit architecture limitation) except on Windows 32-bit Advanced Server, Enterprise Server and Datacenter Server where they are given 3GB of address space in total, provided "/3GB /PAE" is in the boot.ini and there is no more than 16GB of RAM installed. Again, these are OS and 32-bit architecture limitations. 32-bit programs running on Windows x64 Edition are given the full 4GB of address space, although running native 64-bit programs on Windows x64 Edition is preferable (they are not limited to 4GB of address space).



A description of "address space" is probably helpful at this point. Address space essentially refers to the amount of memory that can referenced by a program at any given time. You can think of this as the number of unique 1-byte memory addresses that can be referenced by a pointer value. On a 32-bit architecture, pointers are limited to 32-bits, or 4GB, of addressability. On Windows, the OS uses 1GB or 2GB of each process's address space for its own purposes leaving 3GB or 2GB for the process to use. Usually, every piece of memory allocated has address space associated with it. That includes memory containing code (the database server code & all DLLs loaded) or data. On Windows, "virtual memory" allows the actual physical contents of a page of memory to be written to disk to allow the physical RAM to be used temporarily for another purpose but the address space remains allocated. When the memory is paged back in, the contents could be in a different physical piece of memory but its address (pointer value) will be the same.



With an AWE cache, physical memory and address space are allocated separately. The database server may use, for example, 1GB of address space and 7GB of physical memory for the cache. Physical memory allocated for an AWE cache is not virtualized -- it is never swapped out to disk. Because the database server has only 1GB of address space for the cache, it can only access 1GB worth of the cache at any given time. If a cached page exists in physical memory but has not been assigned some address space, the server must pick a piece of the address space (in 4K chunks) that was allocated for the AWE cache and ask the OS to change the process's page table so that the given address space now refers to a different piece of physical RAM. The old piece of physical RAM is no longer visible to the database server.



Changing the AWE memory mappings is very fast and definitely much faster than doing an IO; however, it is not absolutely free. For optimal performance, you want your address space to be as large as possible to minimize the number of AWE mapping changes that are performed but small enough that you don't run out of address space.



Since some operations such as loading DLLs can occur after the database server cache has been created and the database server cannot predict the address space that will be needed by those operations, the minimum amount of address space reserved for purposes other than the AWE cache has been increased to 512MB instead of 64MB (which should be sufficient in most cases) and can be controlled manually in exceptional cases with the "-cm <size>" switch.



CR:386109
CR Number:   386109
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1667 13 Apr 2005 Fixed
9.0.2 3111 13 Apr 2005 Fixed
9.0.1 2013 13 Apr 2005 Fixed
8.0.3 5239 13 Apr 2005 Fixed
Description
The AsaDataAdapter object was very slow when filling a DataSet or a DataTable which had primary key. This problem has been fixed.



CR:386187
CR Number:   386187
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.1 3860 05 Feb 2007 Fixed
9.0.2 3443 05 Feb 2007 Fixed
Description
If a LIKE predicate was used on a LONG BINARY value that was longer than would fit in a VARCHAR (32767), and the option String_rtruncation was set to 'on', then a truncation error could inappropriately have been given. This has been fixed.



The following example demostrates the error:

create table patterns( c1 long binary );

insert into patterns values( repeat('a', 50000);

select count(*) from patterns where c1 like '%aaa%'

The following error was returned: "Right truncation of string data" SQLCODE: -638 SQLSTATE: 22001



CR:386385
CR Number:   386385
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1662 12 Apr 2005 Fixed
12 Apr 2005 Not a Bug
9.0.2 3109 12 Apr 2005 Fixed
9.0.1 2011 12 Apr 2005 Fixed
Description
While attempting to send a message to a JMS provider, if a QAnywhere connector received certain varieties of Java exceptions from that provider, then the connector would have stopped sending, and could only be restarted by restarting the hosting MobiLink server. The variety of Java exceptions that would instigate the problem were any that had a "null" return from the standard "getMessage" Exception method. This type of exception is seen in certain situations where a connection to the JMS provider is lost. This has now been fixed.



CR:386422
CR Number:   386422
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1663 11 Apr 2005 Fixed
12 Apr 2005 Failed
9.0.2 3109 11 Apr 2005 Fixed
9.0.1 2011 11 Apr 2005 Fixed
Description
If a MobiLink server was started with QAnywhere enabled using the -m command line option and that QAnywhere server was using a connector to a JMS provider, shutting down the MobiLink server using the GUI shutdown button, the text console enter key, or dbmlstop, may not have shut down MobiLink cleanly. That is, the MobiLink server output file may not have contained the line "MobiLink server finished", as well dbmlstop may have terminated with an error indicating that it could not shutdown MobiLink, when in fact, MobiLink had shut down. This has now been fixed.



CR:386434
CR Number:   386434
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Linux
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2069 27 Mar 2006 Fixed
9.0.2 3284 27 Mar 2006 Fixed
Description
Trying to create or start the database server on a Linux file system that does not support Asynchronous I/O system calls, would have failed or caused the server to hang. This has been fixed.



A work-around is to use the -ua server command line option, or remove the library libdblaio(a|d){ver}.so from the installation directory, where {ver} is the

SQLAnywhere major version number.



CR:386569
CR Number:   386569
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1666 12 Apr 2005 Fixed
9.0.2 3110 12 Apr 2005 Fixed
9.0.1 2012 12 Apr 2005 Fixed
8.0.3 5004 12 Apr 2005 Fixed
Description
The index corruption caused as a result of Engineering Case 383145 could not have been detected by database validation. Validation of an index with this type of corruption will now generate an assertion failure, (such as 100305, 102300, or 201601). Dropping and recreating the index will solve the problem.



CR:386705
CR Number:   386705
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1682 26 Apr 2005 Fixed
9.0.2 3119 26 Apr 2005 Fixed
Description
The optimizer will occasionally recommend indexes that degrade query performance. When the Index Consultant detects this siyiation, it discards the query from its analysis. A check for whether a query had been discarded or not was missing from the new analysis viewer, which could cause the Index Consultant to report a NullPointerException, making unviewable the list of affected queries for a recommended index. This has been fixed.



CR:386742
CR Number:   386742
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1667 13 Apr 2005 Fixed
Description
When an ODBC connection is in auto-commit mode, SQLFreeStmt( SQL_CLOSE ) and SQLMoreResults() both close the cursor and do a commit. If the auto-commit had failed, these functions would have incorrectly returned success. This has been fixed so that these functions now return SQL_ERROR if the commit fails.



CR:386756
CR Number:   386756
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3113 12 Apr 2005 Fixed
Description
The server can now dump the SQL text or graphical plans of expensive queries to the request-level log. A new server command line option, -zx <cost>, has been added to turn on this feature and define the threshold above which queries are considered expensive. Expensive queries can be handled in two ways: when the -zp option is also specified, detailed graphical plans will be sent to the request-level log. Otherwise, only the SQL text of the expensive queries will be logged.



When both -zx (LogExpensiveQueries) and -zp (RememberLastPlan) are set:

-queries whose estimated cost is greater than <cost> milliseconds will be built with full statistics gathering gear, and a graphical plan will be dumped to the request-level log at build time

-queries whose estimated cost is less than <cost> milliseconds will be built with low-detail statistics gathering gear

-queries whose actual run-time is greater than <cost> milliseconds will have their graphical plan dumped to the request-level log when their cursor is closed; plans will contain whatever level of statistical detail was determined for them at optimization time (as described in the first point)



When only -zx is set:

-queries will be built with low-detail statistics gathering gear

-queries whose actual run-time is greater than <cost> milliseconds will have their SQL text dumped to the request-level log when their cursor is closed



The request-level log must be directed to a file for these lines to appear (by using the -zo command line option or by setting the RequestLogFile property). However, these lines will still appear even if the RequestLogging property is 'None'.



Plans appear as a single PLAN line in the request-level log; SQL text appears as a single INFO line. They are prefixed by a header which indicates whether they were dumped at build time or cursor completion time, and what the associated cost at that time was. Plans dumped at build time are prefixed by [XB <cost>], plans dumped at cursor completion time are prefixed by [XC <cost>], and SQL text dumped at completion time is prefixed by

[XS <cost>] (where all costs are given in seconds, the same as displayed in graphical plans).



The LogExpensiveQueries property can be set by the -zx <cost> command line option, or by setting the LogExpensiveQueries server option with sa_server_option(). Setting <cost> to 0 (zero) turns this logging off.



CR:386757
CR Number:   386757
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.03
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1667 13 Apr 2005 Fixed
Description
The default maximum cache size for servers running on Windows systems is now limited to the lesser of the available address space, less 512MB, (previously, this was hard-coded as 256MB); or 90% of (total physical memory less 4MB), but not less than 2MB. Available address space is roughly 1.7GB on 32-bit Windows XP and Windows Server, 2.7GB on 32-bit Windows Advanced, Enterprise and Datacenter Servers (if /3GB is in boot.ini), 3.7 GB for 32-bit executables running on Windows x64 Edition, and 9TB or so for 64-bit executables running on Windows x64 Edition.



These changes affect conventional caches only -- not AWE cache.



CR:386918
CR Number:   386918
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1669 14 Apr 2005 Fixed
9.0.2 3111 15 Apr 2005 Fixed
9.0.1 2014 15 Apr 2005 Fixed
8.0.3 5240 15 Apr 2005 Fixed
Description
When an error occurred in a subselect that was part of a procedural statement (for example, SET, MESSAGE, IF/WHILE conditions, etc.), the server would have failed to release part of the cache that was used by that subselect. Subselects that are part of queries that return results sets, explicitly opened cursors, insert...select, or select...into statements, are not affected. This would not cause any immediate problems, however if a large number of calls were made to such procedures, an increasing portion of the database server cache would have become unavailable to the server for normal use. This would then have caused the cache to grow larger than necessary, and eventually, given enough such calls, have failed with a 'Dynamic Memory Exhausted' error. This may also have shown up as steadily decreasing server performance. This problem was more likely to appear if stored procedures were written with exception handlers or ON EXCEPTION RESUME. This has now been fixed. A workaround is to restart the server whenever performance drops below an acceptable level, or at shorter intervals than the memory exhaustion error is reported.



CR:387038
CR Number:   387038
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1674 19 Apr 2005 Fixed
9.0.2 3113 19 Apr 2005 Fixed
9.0.1 2015 19 Apr 2005 Fixed
Description
When connecting using the "Connect" dialog, and specifying a DSN or FileDSN that contained a LINKS connection parameter, the connection would have failed if the "Search network for database servers" checkbox on the "Database page" was checked. The problem was that the "Search network" checkbox causes "LINKS=ALL" to be added to the end of the connection string, which overrides any LINKS information contained in the DSN or FileDSN. This has been fixed so that now when the "ODBC Data Source name" or the "ODBC Data Source file" radio buttons are selected on the "Identification" page, the "Search network for database servers" checkbox is automatically unchecked. The names of the server, database, and database file are also reset. Users are free to modify these fields if they need to override the contents of the data source.



CR:387061
CR Number:   387061
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1669 15 Apr 2005 Fixed
9.0.2 3112 15 Apr 2005 Fixed
9.0.1 2014 15 Apr 2005 Fixed
8.0.3 5241 15 Apr 2005 Fixed
Description
The locked_heap_pages and main_heap_pages statistics were being reported incorrectly if the performance monitor was left running during server restarts. Further, these counters were not being reported as accurately as they could have been. These problems have been corrected.



CR:387070
CR Number:   387070
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 20 Apr 2005 Fixed
9.0.2 3114 20 Apr 2005 Fixed
9.0.1 2016 20 Apr 2005 Fixed
8.0.3 5242 20 Apr 2005 Fixed
Description
The the method AsaDataAdapter.Fill may have caused an InvalidCastException if the query returned columns which had the same name and different data types. This problem has been fixed, but it is not recommanded to use duplicate column names when filling a DataSet.
Workaround Description
 Alias the column where the cast exception occurs.



CR:387156
CR Number:   387156
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1670 15 Apr 2005 Fixed
9.0.2 3112 15 Apr 2005 Fixed
9.0.1 2014 15 Apr 2005 Fixed
Description
Attempting to grant a large number of column permissions, (the actual number depended on the cache page size), for one table/grantor/grantee combination, would have caused assertion failure 101506 - "Allocation size too large when re-allocating memory". This has now been fixed.



CR:387180
CR Number:   387180
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1671 18 Apr 2005 Fixed
9.0.2 3112 18 Apr 2005 Fixed
9.0.1 2014 18 Apr 2005 Fixed
Description
The server may have stopped with an 'out of memory' fatal error when it did not need to do so. For this to have occurred, there must be very few reusable pages left in the cache.

While this specfic problem has been fixed, the server may still fail later on with an 'out of memory' error.



CR:387212
CR Number:   387212
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1674 18 Apr 2005 Fixed
9.0.2 3113 18 Apr 2005 Fixed
9.0.1 2015 18 Apr 2005 Fixed
Description
Attempting to use the FileDSN connection parameter to connect to a database would have caused Interactive SQL to fail to connect, if the file was not in the current directory and the file name contained no path information. The error message: "The ODBC data source file could not be found" would have been displayed. This has been fixed.



Note, this problem would affect connecting in all of the graphical administration tools.



A workaround would be to use a qualified name for the DSN file -- either relative or absolute.



CR:387224
CR Number:   387224
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1671 18 Apr 2005 Fixed
9.0.2 3112 18 Apr 2005 Fixed
9.0.1 2014 18 Apr 2005 Fixed
Description
If a query involved the ROLLUP or CUBE operator over more than 255 columns, memory would have been corrupted, which could have lead to unexpected behaviour. This was very unlikely to occur in practice, and an error would have been returned for ROLLUPs or CUBEs on 65 to 255 columns. An error is now returned for ROLLUP or CUBE operations over 64 columns.



CR:387276
CR Number:   387276
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1673 18 Apr 2005 Fixed
9.0.2 3113 18 Apr 2005 Fixed
Description
Predicates with constant arguments can be evaluated at optimization time, which allows them to be simplified, potentially giving a better estimate of selectivity. For example, the following predicate would give an estimate of 15% when not simplified, but an estimate of 0% when it is: "1 IN (2, 3, 4)". Now with this change, LIKE and IN predicates are simplified in this way. In addition, BETWEEN predicates where the first argument is a constant NULL value, are now simplified to UNKNOWN.



In addition to improving selectivity estimates, these simplifications may allow the optimizer to discover sargable predicates that permit a cheaper access pattern. For example, the query:



select *

from rowgenerator

where 1 in (2,3,4) or row_num = 2



would have used a sequential scan before this change, but now would use a scan on the primary key.



In the above discussions, host variables and procedure variables are also considered as "constants" for the purposes of simplifying predicates.



CR:387397
CR Number:   387397
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 20 Apr 2005 Fixed
9.0.2 3113 20 Apr 2005 Fixed
Description
Closing an HTTP connection to the server could have caused the server to crash, or other existing or subsequent HTTP connections to fail. While rare, this problem was slightly more likely on multi-processor machines. This problem has now been fixed.



CR:387508
CR Number:   387508
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 19 Apr 2005 Fixed
21 Apr 2005 Not a Bug
9.0.2 3114 19 Apr 2005 Fixed
9.0.1 2016 19 Apr 2005 Fixed
Description
Message transmission rules are specified using the -policy <filename> command line option of QAnywhere Agent. If the last rule in the rules file did not end in a newline the rule was ignored. This is now fixed such that the last rule no longer needs to be terminated by a newline.



CR:387511
CR Number:   387511
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 19 Apr 2005 Fixed
9.0.2 3114 19 Apr 2005 Fixed
Description
The QAnywhere JMS sample program for sending and receiving messages, used a combination of API methods that was not always supported by JMS providers. The QueueSender was being initialized with a specific Queue and then the QueueSender method send() was being called with a specific (and identical) Queue. Some providers would throw an UnsupportedOperationException. The sample has been fixed to use the QueueSender send() method that does not specify a Queue.



CR:387522
CR Number:   387522
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 19 Apr 2005 Fixed
9.0.2 3114 19 Apr 2005 Fixed
Description
It was possible for the server to crash when starting up more than one database, or when servicing the first few requests after startup, if a checkpoint was also occurring. This problem was timing dependent and likely very rare, but was more likely on multiprocessor machines. This has now been fixed.



CR:387530
CR Number:   387530
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1675 21 Apr 2005 Fixed
9.0.2 3114 21 Apr 2005 Fixed
Description
When run on 32-bit x86 Linux systems, the server could have reported an incorrect value for property( 'NativeProcessorArchitecture' ). The value could randomly have been any of 'X86', 'X86_64' or 'IA64'. This has now been corrected.



CR:387625
CR Number:   387625
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1679 25 Apr 2005 Fixed
9.0.2 3117 25 Apr 2005 Fixed
9.0.1 2017 25 Apr 2005 Fixed
Description
In some cases compressing a database that was using checksums with the Compression utility, could have corrupted it. This has been fixed.



CR:387676
CR Number:   387676
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1678 22 Apr 2005 Fixed
9.0.2 3117 22 Apr 2005 Fixed
9.0.1 2017 22 Apr 2005 Fixed
Description
After creating a procedure using the syntax



CREATE PROC [owner.]name ...



Sybase Central would have incorrectly displayed the procedure's SQL as



ALTER PROCEDURE [owner.]nameCREATE PROC [owner.]name ...



This has been fixed. Now the procedure is displayed as



ALTER PROCEDURE [owner.]name ...



CR:387852
CR Number:   387852
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3112 21 Apr 2005 Fixed
10.0.0 1683 27 Apr 2005 Fixed
Description
The server will now dump cache information when it gets a 'dynamic memory exhausted' assertion. The dump file will contain information about the cache contents, and help engineering diagnose the cause of the out of memory condition. The filename will be of the form asa_cache.dmp.<pid>, and will be placed in one of the following directories:

- the directory specified by the environment variable ASA_DIAG_DIR

- the current directory of the server process

- the temp directory of the operating system



CR:387869
CR Number:   387869
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1690 27 Apr 2005 Fixed
9.0.2 3119 03 May 2005 Fixed
Description
When executing a batch using the PreparedStatement object, it is proper practice to use the PreparedStatement.executeUpdate() method to execute the batch and retrieve the single update count associated with it. However, applications sometimes (incorrectly) use the PreparedStatement.executeBatch() method instead. The iAnywhere JDBC driver has now been modified to support the PreparedStatement.executeBatch() method in this manner.



CR:387997
CR Number:   387997
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1698 05 May 2005 Fixed
9.0.2 3124 05 May 2005 Fixed
9.0.1 2025 05 May 2005 Fixed
8.0.3 5267 17 Jun 2005 Fixed
Description
A database file may have grown, even when free pages existed in the dbspace, if the free space was fragmented such that no 8-page cluster aligned on an 8-page boundary existed within the dbspace, and pages for a large table (one with bitmaps) were being allocated. When growing a large table prior to this change, the server always allocated table pages in clusters of eight pages so that group-reads could be performed on a sequential scan. If no clusters were found, the dbspace was grown to create one. Now, if no free cluster is found, the server will attempt to allocate pages from a cluster that has both free pages as well as pages allocated to the table that is being grown. If no free pages are found by this method, the server will use any free page in the dbspace. So now te dbspace will not grow until there are no free pages left in the dbspace.



As a work-around, periodically running REORGANIZE TABLE on all tables will generally avoid the problem



CR:388068
CR Number:   388068
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1683 28 Apr 2005 Fixed
9.0.2 3119 28 Apr 2005 Fixed
9.0.1 2017 28 Apr 2005 Fixed
Description
If a connection that had the Wait_for_commit option set to 'On', issued a request which violated referential integrity, and the next commit was done as a result of a SET OPTION statement that set a permanent option for a different user, the server could have failed assertion 104301 "Attempt to free a user descriptor with non-zero reference count", when the server was stopped (e.g. by autostop option), or a subsequent connection revoked CONNECT permission from the user the option was set for. This has been fixed.
Workaround Description
 None



CR:388072
CR Number:   388072
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1690 03 May 2005 Fixed
9.0.2 3119 03 May 2005 Fixed
9.0.1 2019 03 May 2005 Fixed
Description
The INPUT...PROMPT statement would never have stopped prompting for column values when Interactive SQL was run in console mode. This problem did not occur when run in windowed mode. This bug has been fixed.



CR:388141
CR Number:   388141
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3119 25 Apr 2005 Fixed
Description
If the FIPS option was selected during installation, FIPS encryption will be available, but calling the system function property('IsFipsAvailable') would have returned 'NO'. The server was checking for the existence of the dll libsb.dll only in %WINDIR%. This has been fixed, the server now checks in the usual places and then checks %WINDIR% if it can't find it. A workaround is to copy the libsb.dll from %ASANY9%\win32 to %WINDIR%.



CR:388142
CR Number:   388142
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1682 25 Apr 2005 Fixed
9.0.2 3119 25 Apr 2005 Fixed
Description
The system functions encrypt() and decrypt() did not respect the -fips server switch. This has been fixed, if the -fips switch is specified, then the algorithm used for encrypt() and decrypt() will be 'aes_fips', otherwise 'aes' (or no algorithm) is specified.



CR:388164
CR Number:   388164
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1677 26 Apr 2005 Fixed
Description
A new connection property, RequestStatus has been added. Calling CONNECTION_PROPERTY('RequestStatus') will return one of the following values:



"Idle" - The connection is not currently processing a request

* "Unscheduled" - The connection has work to do and is waiting for a worker thread

* "BlockedIO" - The connection is blocked waiting for a I/O

* "BlockedContention" - The connection is blocked waiting for access to shared engine data structures

"BlockedLock" - The connection is blocked waiting for a locked object

"Executing" - The connection is executing a request



The values marked with '*' are only available if the RequestTiming server option is ON (see below), if the option is OFF (the default), these cases are reported as "Executing". These properties are also returned by calling sa_conn_properties().





A new server option RequestTiming has also been added. When it is on, additional timing information is maintained for each request. The option is off by default, and it can be turned on either by specifying the new "-zt" command line option, or by calling sa_server_option('RequestTiming', 'ON'). The current value of the option can be retrieved using PROPERTY('RequestTiming'). When the RequestTiming option is on, the following statistics are recorded:



"ReqCountUnscheduled" "Number of times waited for scheduling"

"ReqCountActive" "Number of requests processed"

"ReqCountBlockIO" "Number of times waited for I/O to complete"

"ReqCountBlockLock" "Number of times waited for a lock"

"ReqCountBlockContention" "Number of times waited for atomic access"

"ReqTimeUnscheduled" "Time spent unscheduled"

"ReqTimeActive" "Time spent processing requests"

"ReqTimeBlockIO" "Time spent waiting for I/O to complete"

"ReqTimeBlockLock" "Time spent waiting for a lock"

"ReqTimeBlockContention" "Time spent waiting for atomic access"



These values can be retrieved using CONNECTION_PROPERTY( <name> ), or by calling sa_conn_properties(). If the RequestTiming server property is off, these return NULL. Alternatively, a new internal stored procedure has been created to efficiently summarize request timing for all connections. Procedure dbo.sa_performance_diagnostics() returns the following columns (each of which corresponds to the connection property of the same name):

Number int,

Name varchar(255),

Userid varchar(255),

DBNumber int,

LoginTime timestamp,

TransactionStartTime timestamp,

LastReqTime timestamp,

ReqType varchar(255),

ReqStatus varchar(255),

ReqTimeUnscheduled double,

ReqTimeActive double,

ReqTimeBlockIO double,

ReqTimeBlockLock double,

ReqTimeBlockContention double,

ReqCountUnscheduled int,

ReqCountActive int,

ReqCountBlockIO int,

ReqCountBlockLock int,

ReqCountBlockContention int,

LastIdle int,

BlockedOn int,

UncommitOp int,

CurrentProcedure varchar(255),

EventName varchar(255),

CurrentLineNumber int,

LastStatement long varchar,

LastPlanText long varchar,

AppInfo long varchar



The procedure dbo.sa_performance_diagnostics() can be used to identify connections that have spent a long time waiting for engine requests to complete.



For example:



SELECT Number, Name,

cast( datediff( second, LoginTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS T,

ReqTimeActive / T AS PercentActive

FROM dbo.sa_performance_diagnostics()

WHERE PercentActive > 10.0

ORDER BY PercentActive DESC

Alternatively, you could find all requests that are currently executing, and have been executing for a long time:

SELECT Number, Name,

cast( datediff( second, LastReqTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS ReqTime

FROM dbo.sa_performance_diagnostics()

WHERE ReqStatus <> 'IDLE' AND ReqTime > 60.0

ORDER BY ReqTime DESC





The following new performance statistics have also been added:

CacheFree, CacheFile, CacheFileDirty, CacheAllocated, CachePanics, CacheScavenges, CacheScavengeVisited, MultiPageAllocs, HeapsRelocatable, HeapsLocked, HeapsQuery, HeapsCarver, LockedCursorPages, QueryHeapPages, CarverHeapPages. These statistics are useful for diagnosing how the server is using memory



These statistics are all accumulated for the entire server, and this aggregate value can be retrieved using PROPERTY(name). In addition, some of the statistics are also recorded on a per-connection basis (marked as "con/eng" in the details below). The per-connection value can be retrieved with CONNECTION_PROPERTY(name). In addition, these values can be retrieved using the Windows performance monitor. Alternatively, a new internal stored procedure has been created to efficiently retrieve performance statistics. Procedure dbo.sa_performance_statistics() returns the following results:

DBNumber INT,

ConnNumber INT,

PropNum INT,

PropName VARCHAR(255),

Value INT



This procedure can be used to efficiently retrieve all server, database, and connection performance statistics.



For example:



unload

select current timestamp, *

from sa_performance_statistics()

to 'dump_stats.txt' append on



will unload all performance statistics to a text file. This approach is much faster than retrieving statistics individually.





Memory Diagnostic Statistic Details:

The following gives more details for each performance statistic (name, perfmon label, and description). Counters marked as "eng" are available only at the server-level. Those marked as "con/eng" are additionally available per-connection.



CacheFree eng

Cache Pages: Free

"Number of cache pages not being used"



CacheFile eng

Cache Pages: File

"Cache pages used to hold data from database files"



CacheFileDirty eng

Cache Pages: File Dirty

"Cache pages that are dirty (needing a write)"



CacheAllocated eng

Cache Pages: Allocated Structures

"Cache pages that have been allocated for server data structures"



CachePanics eng

Cache: Panics

"Number of times the cache manager has failed to find a page to allocate"



CacheScavenges eng

Cache: Scavenges

"Number of times the cache manager has scavenged for a page to allocate"



CacheScavengeVisited eng

Cache: Scavenge Visited

"Number of pages visited while scavenging for a page to allocate"



LockedCursorPages eng

Mem Pages: Pinned Cursor

"Number of pages used to keep cursor heaps pinned in memory"



QueryHeapPages con/eng

Mem Pages: Query Processing

"Cache pages used for query processing (hash and sort operations)"



CarverHeapPages con/eng

Mem Pages: Carver

"Cache pages used for carvers"



HeapsRelocatable con/eng

Heaps: Relocatable

"Number of relocatable heaps"



HeapsLocked con/eng

Heaps: Relocatable Locked

"Number of relocatable heaps currently locked in cache"



HeapsQuery con/eng

Heaps: Query Processing

"Number of heaps used for query processing (hash and sort operations)"



HeapsCarver con/eng

Heaps: Carver

"Number of heaps used for carvers"



MultiPageAllocs eng

Cache: Multi-Page Allocations

"Number of multi-page allocations"



CR:388338
CR Number:   388338
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1684 27 Apr 2005 Fixed
10.0.0 1684 27 Apr 2005 Fixed
9.0.2 3119 27 Apr 2005 Fixed
9.0.1 2017 27 Apr 2005 Fixed
Description
The number of rows returned from a Nested Block Join (JNB) could have been underreported in a Graphical Plan with Statistics. This was a display problem only, and did not affect the actual execution of the query. It was also not a problem in a Graphical Plans with estimates only. This has been fixed.



CR:388383
CR Number:   388383
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1681 29 Apr 2005 Fixed
9.0.2 3119 29 Apr 2005 Fixed
Description
The ASA server automatically collects column statistics during query execution, DML update statements, LOAD TABLE statement and index creation. The default behaviour was to collect and update statistics under all situations. A new database option Collect_statistics_on_dml_updates has been added, allowed values ON (default) or OFF, which can be used to enable or disable collection of statistics during DML update statements.



CR:388488
CR Number:   388488
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1684 02 May 2005 Fixed
9.0.2 3119 02 May 2005 Fixed
9.0.1 2017 02 May 2005 Fixed
Description
The server could have failed with "fatal error: unknown device error" when performing a query over a temp table. The query had to return blob values, and make use of the SortTopN data flow operator. SortTopN most frequently appears in plans for queries with an ORDER BY clause and a row limit (ie. TOP n or FIRST).



For Example:



create procedure test()

result( val char(256) )

begin

declare local temporary table val_table(

val char(256) null );



insert into val_table values( repeat('a',256));

select * from val_table;

end;



select first val from test() order by val;



This problem has now been fixed.



CR:388498
CR Number:   388498
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1692 03 May 2005 Fixed
9.0.2 3120 03 May 2005 Fixed
8.0.3 5249 03 May 2005 Fixed
Description
The server automatically gathers and maintains column statistics as queries are executed. If multiple connections concurrently updated column statistics as a result of query execution, there was a potential for some column statistics to become inaccurate. This problem has been resolved.



CR:388573
CR Number:   388573
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1685 29 Apr 2005 Fixed
9.0.2 3119 29 Apr 2005 Fixed
9.0.1 2017 29 Apr 2005 Fixed
8.0.3 5246 29 Apr 2005 Fixed
Description
If a result set had a DECIMAL column with a value that has more than 10 digits, but less than 19 digits, and was an integer, then calling ResultSet.getLong() should have returned the entire value but did not. This problem has been fixed.
Workaround Description
 Recode for java.math.BigDecimal instead but that still leaves the

implementation inconsistent with the long type capabilities and the

capability of JConnect in the range tested.



CR:388752
CR Number:   388752
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1689 03 May 2005 Fixed
9.0.2 3119 03 May 2005 Fixed
9.0.1 2019 03 May 2005 Fixed
8.0.3 5248 03 May 2005 Fixed
Description
If a column's COMPUTE clause contained a string constant, or a string constant expression, the server would have crashed each time the compute expression was evaluated. This has been fixed.



CR:388837
CR Number:   388837
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1699 11 May 2005 Fixed
9.0.2 3125 11 May 2005 Fixed
9.0.1 2026 11 May 2005 Fixed
8.0.3 5252 11 May 2005 Fixed
Description
When building a remote database from a reload file generated by extracting from a consolidated database there could have been a failure. This would only have occurred if there existed a publication on a subset of columns in a table and there were also statistics on some columns in the table that were not part of the publication. This has been fixed.



A workaround would have been to drop the statistics on the table or column before extracting the user database.
Workaround Description
 1) Drop the statistics on tables that have only some columns that exist in the publication

2) Manually edit the reload.sql file to remove column statistics that do not exist on the remote table definition



CR:388838
CR Number:   388838
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1691 03 May 2005 Fixed
9.0.2 3120 03 May 2005 Fixed
9.0.1 2020 03 May 2005 Fixed
8.0.3 5248 03 May 2005 Fixed
Description
If a proxy table was created with a column that contained a DEFAULT clause, then an insert into that table would have failed if the insert explicitly specify the column, but with a different case for the column name. The returned error would have been "Duplicate insert column". For example:



create table T1 ( col1 int default 10, col2 int ) at '....';

insert into T1 ( COL1, col2 ) values ( 1, 1 );



This has been fixed.



CR:388852
CR Number:   388852
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1691 03 May 2005 Fixed
9.0.2 3120 03 May 2005 Fixed
Description
If Interactive SQL's "commit after each statement" option was on, calling some system stored procedures (e.g. sa_table_fragmentation) would have produced an empty result set. This was due to some local temporary tables not specifying a disposition on COMMIT, and so assumed ON COMMIT DELETE ROWS. This has been fixed. Databases with this problem must be rebuilt, or upgraded, to correct the stored procedures affected by this change. A workaround is to uncheck the "commit after each statement" option.
Workaround Description
 Use DBISQL



CR:388858
CR Number:   388858
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5249 05 May 2005 Fixed
9.0.1 2021 05 May 2005 Fixed
9.0.2 3121 05 May 2005 Fixed
Description
When synchronizing an ASA MobiLink Client that had multiple publications, MobiLink would have allocated new memory to store the publication information on each synchronization. Now, the memory is freed after the synchronization completes.



CR:388904
CR Number:   388904
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3121 05 May 2005 Fixed
9.0.1 2021 05 May 2005 Fixed
8.0.3 5249 05 May 2005 Fixed
Description
The MobiLink server could have failed to gather the synchronization scripts for a given table and reported the error "Error fetching table script t1.begin_synchronization", even though table t1 did not have a begin_synchronization script. This problem was more likely to have occured when using an Oracle consolidated database and the "iAnywhere Solution 9 - Oracle Wire Protocol" ODBC driver. This problem has now been fixed.



CR:388906
CR Number:   388906
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Solaris
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3124 17 May 2005 Fixed
9.0.1 2026 17 May 2005 Fixed
Description
When run on Linux platforms, the server could have crashed on shutdown if a custom backup library was used to perform backups. This has been fixed.



CR:389039
CR Number:   389039
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1690 03 May 2005 Fixed
9.0.2 3119 03 May 2005 Fixed
9.0.1 2019 03 May 2005 Fixed
Description
The server could have failed with a "dynamic memory exhausted" error if AWE was enabled (ie. -cw command line option). This problem has been corrected. The only work around is to disable AWE.



CR:389195
CR Number:   389195
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1691 04 May 2005 Fixed
9.0.2 3120 04 May 2005 Fixed
Description
Due to a race condition in the server, requests over HTTPS connections may have been given an error status, usually 501 (Method Not Implemented). This has been fixed.



CR:389224
CR Number:   389224
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1692 05 May 2005 Fixed
9.0.2 3120 05 May 2005 Fixed
Description
The "ALTER DATABASE CALIBRATE" statement can be used to re-calibrate the server's I/O cost model for a specific database and hardware configuration. The recomputed cost model is stored in the catalog table SYS.SYSOPTSTAT. In some cases, the server was improperly reading the cost model when the server was restarted. This has been resolved, but it was not likely to have caused any major and/or visible problems.



CR:389230
CR Number:   389230
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1691 03 May 2005 Fixed
9.0.2 3120 03 May 2005 Fixed
9.0.1 2020 03 May 2005 Fixed
8.0.3 5248 03 May 2005 Fixed
Description
While running multiple connections that fetched from different proxy tables, and different remote servers using ASEJDBC, if one connection was killed then the server's Java Virtual Machine can no longer be started. This has now been fixed.



CR:389431
CR Number:   389431
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1693 05 May 2005 Fixed
9.0.2 3120 06 May 2005 Fixed
Description
A query with an undefined column used inside a derived table or a view, may have caused the server to crash. For this to have occurred, the derived table or the view must have contained one of the UNION, EXCEPT, or INTERSECT operators.



For example:



CREATE VIEW VV1( X)

AS

SELECT A.id

FROM product A left outer join

(

SELECT ERROR FROM PRODUCT P1

UNION ALL

SELECT 1 FROM sales_order_items S1

) B

on 1=1;



The column 'ERROR" in the first query block of the derived table 'B' is undefined, and the query 'select count(*) from VV1' will cause the server to crash.



This is now fixed.



CR:389447
CR Number:   389447
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1693 05 May 2005 Fixed
9.0.2 3121 05 May 2005 Fixed
Description
If a database had a "Connect" event defined, attempting to rebuild the database using the Unload utility with the Rebuild and Replace option (-ar) may have failed with the error: "Too many connections to database being replaced". Whether the error was reported or not depended on how long the event took to execute. This has been fixed, this error will no longer be reported if the only other connections are for event handlers.



CR:389452
CR Number:   389452
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1690 06 May 2005 Fixed
9.0.2 3119 06 May 2005 Fixed
Description
Growing dbspaces could be much slower than would normally be expected, particularly on Windows platforms, after the applying the changes for Engineering Case 361509. Now, when ALTER DBSPACE ADD ... is executed on Windows platforms, and more than 4MB of space is being added, the server will attempt to allocate a large (4MB) buffer to initialize the newly allocated portion of the file. The buffer will only be allocated if there is at least 16MB of physical memory free, as well as at least 16MB of address space available. The buffer will be freed after the file growth has completed. If the database server is running on Windows XP or later, on an account with the volume management privilege (which is on by default for an administrator), the server will also take advantage of new OS APIs to make file growth even faster.



In a simple test on a system with a single SCSI drive, adding 1GB to a dbspace took only 22 seconds with this change, compared to over 5 minutes previously.



CR:389502
CR Number:   389502
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1693 06 May 2005 Fixed
9.0.2 3122 06 May 2005 Fixed
9.0.1 2023 06 May 2005 Fixed
8.0.3 5249 06 May 2005 Fixed
8.0.2 4531 06 May 2005 Fixed
Description
The OLEDB PROVIDER_TYPES rowset did not implement the DATA_TYPE and BEST_MATCH restrictions. It implemented a restriction on TYPE_NAME instead and ignored BEST_MATCH. This problem has been fixed so that the PROVIDER_TYPES rowset now implements the DATA_TYPE and BEST_MATCH restrictions. To install a new version of the PROVIDER_TYPES rowset into your database, load and run scripts\oleschem.sql against the database.



As well, not all type names are included in the rowset, and some data types that could be included were not. This has also been corrected.



CR:389538
CR Number:   389538
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3123 10 May 2005 Fixed
9.0.1 2024 10 May 2005 Fixed
Description
If an attempt to connect to a database with the MobiLink plug-in failed, then Sybase Central would have crashed. The plug-in was assuming that if a SQLException was thrown from JDBCDrivers.connect(), then the value returned from SQLException.getMessage() was always non-null, which was not always the case. This has been corrected.



CR:389570
CR Number:   389570
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3126 29 Jul 2005 Fixed
10.0.0 1704 08 Aug 2005 Fixed
Description
Cardinality estimation for a partial index scan may have been incorrect if selectivity estimations of the sargable predicates were set to 100%. This has been fixed. The index must have been a foreign key, or an unique index.



CR:389583
CR Number:   389583
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1699 10 May 2005 Fixed
9.0.2 3124 10 May 2005 Fixed
9.0.1 2026 17 May 2005 Fixed
Description
If a database with auditing enabled was loaded in read-only mode, the database could have been used, but audit records would not have been created. This has been fixed so that now databases with auditing enabled cannot be started in read-only mode.



CR:389590
CR Number:   389590
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Linux
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1697 09 May 2005 Fixed
9.0.2 3123 09 May 2005 Fixed
9.0.1 2024 09 May 2005 Fixed
Description
If a server was started with the -o <file name> server command line option (filename for copy of message window), then stopped and immediately started again with the same -o <file name>, the server could fail to start with the error "Invalid database server command line" or "Can't open Message window log file: <file name>". This failure was rare and timing dependent. This has been fixed so the second server will successfully start.



CR:389598
CR Number:   389598
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1694 09 May 2005 Fixed
9.0.2 3122 09 May 2005 Fixed
9.0.1 2023 09 May 2005 Fixed
8.0.3 5250 09 May 2005 Fixed
Description
If an Open Client application used unsigned datatypes in an Remote Procedure Call, there was a good chance the application would hang. This problem has now been fixed.



CR:389628
CR Number:   389628
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3123 09 May 2005 Fixed
Description
The Unix installer could have reported that there was enough disk space for the installation, but later fail while copying files. This problem only occurred when help files (HTML or PDF) were being installed. This has now been fixed.



CR:389687
CR Number:   389687
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3123 09 May 2005 Fixed
Description
If the server was started with the -gn command line option (maximun number of concurrent requests) set to a value greater than 255, the server may have crashed when under a heavy I/O workload. This has now been fixed.



CR:389796
CR Number:   389796
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1697 10 May 2005 Fixed
9.0.2 3123 10 May 2005 Fixed
9.0.1 2024 10 May 2005 Fixed
8.0.3 5251 10 May 2005 Fixed
Description
When performing an UPDATE (or possibly a DELETE) using a keyset cursor, over a table that was joined to itself (i.e. appears multiple times in the UPDATE or FROM clause), the server could have failed to obtain write locks on rows it modified. This could have resulted in lost updates, or a corrupted index, if an update was made to an indexed column. This has been fixed.



CR:389970
CR Number:   389970
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1701 17 May 2005 Fixed
9.0.2 3124 17 May 2005 Fixed
Description
On the AIX, HP-UX, and Tru64 Unix platforms, if more than one server was run concurrently on the same machine, the ServerPort TCPIP protocol option needed to be specified on both the client and server in order to be able connect. This has been fixed so that on these platforms the ServerPort option is no longer required when multiple database servers are started on one machine.



Note than on Mac OS X, the ServerPort option must still be specified when starting a network server if a server is already running on the same machine.



CR:390008
CR Number:   390008
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Novell NetWare
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1644 10 May 2005 Fixed
9.0.2 3101 10 May 2005 Fixed
9.0.1 2003 10 May 2005 Fixed
Description
Attempting to unload the ASA server via the NetWare console (i.e. "unload dbsrv9") would have caused the NetWare machine to hang. This has been fixed.



CR:390025
CR Number:   390025
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1701 13 May 2005 Fixed
9.0.2 3124 13 May 2005 Fixed
9.0.1 2026 13 May 2005 Fixed
Description
The server could have crashed while performing a string comparison using the LIKE operator. This has been fixed



CR:390063
CR Number:   390063
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1698 11 May 2005 Fixed
9.0.2 3124 11 May 2005 Fixed
9.0.1 2026 11 May 2005 Fixed
Description
Assert failures 200602 and 200603 indicate that when truncating a table, a mismatch was detected between the number of pages in the table and the counts recorded in the table's in-memory data structures. These assertions would have brought down the server, even if the table concerned was a temporary table. In the case of a temporary table, this likely does not warrant bringing the server down. This behaviour has been changed so that now the assertion text is written to the console log, and the server is allowed to continue running. Also, the text of these assertions has been changed to indicate the table in question.



CR:390132
CR Number:   390132
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3135 13 May 2005 Fixed
9.0.1 2032 24 Jun 2005 Fixed
Description
If the MobiLink ASA client, the MobiLink synchronization server, or SQL Remote for ASA, was started as a Windows service, the service could not have been stopped by Window's Service Manager or the Service Creation utility. This has been fixed.



CR:390133
CR Number:   390133
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1699 12 May 2005 Fixed
9.0.2 3124 12 May 2005 Fixed
9.0.1 2026 12 May 2005 Fixed
Description
If only the second member of a UNION, INTERSECT, or EXCEPT query contained multiple Transact-SQL variable assignments, then the server would have crashed. This has been fixed. Now the engine will return a syntax error if any member other than the first contains Transact-SQL variable assignments, or an "into <tablename>" clause.



CR:390162
CR Number:   390162
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1699 13 May 2005 Fixed
9.0.2 3124 13 May 2005 Fixed
Description
The server collects and maintains column statistics during UPDATE and DELETE statements. In some situations, such as when a large DELETE statement was rolled back, the column statistics could have progressively become incorrect. In particular, the estimated selectivities could have kept increasing without bound. The server now places an upper bound of 100% for each individual predicate selectivity stored in the database in these situations.



CR:390234
CR Number:   390234
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1713 24 May 2005 Fixed
9.0.2 3128 24 May 2005 Fixed
9.0.1 2027 24 May 2005 Fixed
Description
A call to SQLDriverConnect() can return the completed connection string. In version 8, the ASA ODBC driver produced the connection string with the "DSN=" connection parameter first in the string. In version 9, the ODBC driver produced the connection string such that "DSN=" was not necessarily first.



For example, if the connection string passed to SQLDriverConnect() was "PWD=sql;Userid=dba;DSN=test9" then in version 8 the connect string "DSN=test9;UID=dba;PWD=sql" was returned, and in version 9 the connection string "UID=dba;PWD=sql;DSN=test9" was returned. According to the ODBC specification, the order shouldn't matter, but Gupta Team Developer 3.1 applications did not handle the version 9 order correctly. This problem has been resolved by restoring the version 8 behavior where "DSN=" is placed first in the connect string.



CR:390347
CR Number:   390347
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1701 16 May 2005 Fixed
9.0.2 3124 16 May 2005 Fixed
Description
If a timestamp value is fetched using a TDS connection (ie. jConnect or Open Client), the fractional seconds are only accurate to two digits of precision. This is due to the TDS protocol representing fractional seconds as increments of 1/300ths of a second. Since the server stores the fractional seconds as microseconds, it is converted to a value which is a multiple of 1/300th of a second. The converted value though was simply being truncated, rather than rounded, which may have caused the value of a timestamp fetched via a TDS connection to have been 1/300th of a second less than the value stored. This has now been fixed, but it should be noted, that rounding does not work for all values, but instead, will only work for timestamp values originally inserted using a TDS connection. Since in these cases, the conversion to 1/300ths of a second is first performed by jConnect or Open Client prior to sending the value to the server.
Workaround Description
 While the iAnywhere JDBC driver does not have similar issues of resolution and is probably a better choice for other reasons, the customer is eager on resolving this

issue soon due to other problems with the current JDBC driver.



Altering the code to bring back the timestamp as a character column is also an

option (common in all our tools) but the customer has a lot of code invested

in this area and has as release pending.



CR:390431
CR Number:   390431
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1691 13 May 2005 Fixed
9.0.2 3120 13 May 2005 Fixed
Description
On all Unix platform except Solaris, the server may have incorrectly reported the error "Unable to synchronize due to external event" in the event log, and then crashed. This message indicates that a global System V semaphore in use by the server was deleted by an external cause. In reality no such cause existed and the real cause was due to an unrelated server crash. This has been fixed and this error message will now only appear

if the semaphore was deleted.



CR:390484
CR Number:   390484
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1701 13 May 2005 Fixed
9.0.2 3124 13 May 2005 Fixed
Description
On the AIX, HP-UX, and Tru64 Unix platforms, if more than one database server was run on a machine, the ServerPort TCPIP protocol option needed to be specified on both the client and server in order to be able connect. This has been fixed so that on these platforms the ServerPort option is no longer required when multiple database servers are started on the same machine.



Note than on MacOS X, the ServerPort option must still be specified when starting a network server, if a server is already running on the same machine.



CR:390761
CR Number:   390761
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1699 17 May 2005 Fixed
9.0.2 3124 17 May 2005 Fixed
Description
The iAnywhere JDBC driver has now been enhanced to support the Organic ASE ODBC driver. The JDBC driver now checks if the ODBC driver is the Organic ASE ODBC driver and appropriately sets the default result set type and other attributes.



CR:390763
CR Number:   390763
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1704 17 May 2005 Fixed
9.0.2 3124 17 May 2005 Fixed
Description
The number of rows returned as a result of a join of the form 'T1.primary key = T2.primary key' may have been grossly underestimated during optimization. Among the conditions that need to occur are the following:

1. The 'primary key' may have been a single column or a multi-column candidate key

2. Table T1 must have been much smaller than table T2, and appeared before T2 in the FROM clause.



This underestimate may have resulted in less than optimal plans being chosen by the optimizer. This has now been fixed.



CR:390765
CR Number:   390765
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1706 18 May 2005 Fixed
9.0.2 3126 18 May 2005 Fixed
9.0.1 2026 18 May 2005 Fixed
8.0.3 5255 18 May 2005 Fixed
Description
If an Open Client dblib application attempted to fetch a tinyint value using the dbdata() function, instead of dbbind(), then the application would always get the value 0, instead of the actual tinyint value. Note that this problem only occurred if the tinyint value was nullable. This problem has now been fixed.



CR:390773
CR Number:   390773
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1704 17 May 2005 Fixed
9.0.2 3126 17 May 2005 Fixed
Description
If the output file specified for the File Hide utility already existed, and was more than 6 bytes bigger than the input file, the utility would have corrupted the output file. This has been fixed. A workaround is to delete the output file before running the File Hide utility.



CR:390940
CR Number:   390940
Product Name:   UltraLite
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1706 07 Jun 2005 Fixed
25 May 2005 Failed
9.0.2 3126 07 Jun 2005 Fixed
Description
The ulload utility could have crashed due to a stack overflow exception, when very large data sets were loaded into PalmOS databases. The loop that loaded rows into a table did an implicit memory allocation. When the scope of the loop was exited, the memory was not freed, eventually after very many rows caused a stack overflow. This has now been corrected.



CR:390955
CR Number:   390955
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3136 14 Jun 2005 Fixed
Description
Applying the 9.0.2 English Maintenance release to a 9.0.1 installation would not have upgraded the MobiLink plug-in if Mobilink itself was not installed. This would then have left the plug-in not matching the Sybase Central viewer and ASA connection class.



The symptom of this failure is a stack trace when attempting to connect from the MobiLink plug-in. The exception is due to this method not being found, (the right function name, but the wrong parameter signature):



com.sybase.asa.logon.LogonDialogFactory.create( )



Subsequent applications of EBFs also did not update the plug-in and thus failed to correct the problem. This has now been fixed, so that any EBF later than build 3136 will upgrade mlplugin.jar.
Workaround Description
 Either



- do a full ML installation on the machine and upgrade that

or

- copy the %asany9%\java\mlplugin.jar from a machine with the

full installation to the machine with the minimal installation



CR:391182
CR Number:   391182
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1711 24 May 2005 Fixed
9.0.2 3127 24 May 2005 Fixed
9.0.1 2027 24 May 2005 Fixed
8.0.3 5257 24 May 2005 Fixed
Description
If the text of a stored procedure was made unreadable with the HIDDEN clause, and it contained a call to itself with at least one parameter, then any call to this procedure will have failed with the error "Wrong number of parameters to function 'proc_name'". The error would have disappeared after restarting the database or reloading the procedures due to the execution of a DDL statement. This has now been fixed.



CR:391202
CR Number:   391202
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1667 20 May 2005 Fixed
9.0.2 3111 20 May 2005 Fixed
Description
JMS messages received by the QAnywhere JMS connector are forwarded on to QAnywhere if they contain a property (ias_ToAddress) indicating the QAnywhere address. If the property was missing, an error was logged, and the JMS message was discarded. This did not provide an appropriate mechanism for handling JMS messages missing the key property. To fix this, a new configurable JMS connector property has been added: ianywhere.connector.jms.deadMessageDestination. This property should be set to the value of a valid JMS Destination. All messages received by the QAnywhere JMS connector that are missing the ias_ToAddress property will be forwarded onwards to the JMS Destination specified by the property ianywhere.connector.jms.deadMessageDestination. See the documentation section "QAnywhere User's Guide->Setting Up QAnywhere Messaging->Using JMS Connectors->Configuring the JMS connector properties file" for more information on setting a connector property.



CR:391357
CR Number:   391357
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1497 24 May 2005 Fixed
9.0.2 2925 24 May 2005 Fixed
9.0.1 2027 24 May 2005 Fixed
8.0.3 5257 24 May 2005 Fixed
Description
If the text of a stored procedure, view or trigger was made unreadable using the HIDDEN keyword, and the definition string was invalid, the server may have crashed. This has been fixed.



CR:391577
CR Number:   391577
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1713 25 May 2005 Fixed
9.0.2 3128 25 May 2005 Fixed
9.0.1 2027 25 May 2005 Fixed
8.0.3 5258 25 May 2005 Fixed
Description
The global variables @@fetch_status, @@sqlstate, @@error, and @@rowcount may have been set with incorrect values if a cursor's select statement contained a user-defined function that itself used a cursor. This has been fixed.



CR:391582
CR Number:   391582
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1712 24 May 2005 Fixed
9.0.2 3128 24 May 2005 Fixed
9.0.1 2027 24 May 2005 Fixed
24 May 2005 Not a Bug
Description
The Listener utility may have hung on shutdown. This has now been fixed.



CR:391584
CR Number:   391584
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3128 25 May 2005 Fixed
9.0.1 2027 25 May 2005 Fixed
Description
If two tables or views were selected, and the "View data in Interactive SQL" menu item was clicked, two Interactive SQL windows would have opened, but data for only one of the tables or views was displayed in one of the Interactive SQL windows. The other window would often have been empty. This has been fixed.



A workaround for this problem is to open the Interactive SQL windows separately -- select one table, click "View data in Interactive SQL", then select the other table, and click the menu item again.



CR:391585
CR Number:   391585
Product Name:   SQL Anywhere
Product Component:   Documentation
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
31 May 2005 Fixed
Description
Enhancement Request- Update list of "Known Open Client limitations of ASA" in PG



CR:391598
CR Number:   391598
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3128 25 May 2005 Fixed
Description
Upgrading a version 9.0.1 database, used as a QAnywhere consolidated message store, using Unload utility may have failed. The problem would occur if any message contained an embedded single quote in any of the message's property names, or any of the message's property values. The code to unload QAnywhere data has now been fixed to properly escape single quotes.



A work-around is as follows:



- Start the consolidated database, ensuring that there is no MobiLink server connected to the database

- Connect to the database as a user with DBA privilege using dbisql

- Delete the contents of the table ml_qa_repository_props by executing "delete ml_qa_repository_props". Commit the operation by executing "commit". The data in this table is strictly for caching purposes and deleting the data will have no effect on server functionality.

- Upgrade the database using the dbunload command.



CR:391712
CR Number:   391712
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3128 25 May 2005 Fixed
Description
Upgrading a version 9.0.1 database, used as a QAnywhere consolidated message store, to version 9.0.2 using the Upgrade utility may have failed if EBF 9.0.1 1991 had been applied to the 9.0.1 software. This EBF included an an index on the column "destination" in the QAnywhere table ml_qa_repository, in order to improve performance. This column is no longer used in 9.0.2, and the upgrade script attempts to drop it, but the index makes this drop fail. This has now been fixed by dropping the index if it exists.



A work around of the problem is to do the following:



- Start the consolidated database, ensuring that there is no MobiLink server connected to the database

- Connect to the database as a user with DBA privilege using dbisql

- Drop the offending index by executing "drop index ml_qa_repository_destination"

- Disconnect and shut down the database

- Backup the database and log file (as should be done before any upgrade)

- Upgrade the database using the dbupgrad command.



Or rebuild the database as a 9.0.2 database using the Unload utility.



CR:391719
CR Number:   391719
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
25 May 2005 Fixed
01 Jun 2005 Not a Bug
Description
The QAnywhere MobiLink server may have silently crashed on shutdown. This crash was not apparent unless one looked at the return code from the MobiLink process. Because of this occassional crash, using the MobiLink Stop utility to shutdown MobiLink may have incorrectly reported that MobiLink had not shut down. This silent crash problem has now been fixed.



CR:391730
CR Number:   391730
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1713 26 May 2005 Fixed
06 Jun 2005 Failed
9.0.2 3128 26 May 2005 Fixed
Description
Server-side delete rules for deleting messages from an Oracle consolidated message store did not work if the delete rule contained a reference to a custom message property. This has been fixed so that such rules now work correctly.



CR:391747
CR Number:   391747
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   6.0.01
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3128 25 May 2005 Fixed
9.0.1 2027 25 May 2005 Fixed
Description
If a connection string contained the START= parameter with a value that ended with "-x",

"-xs" or "-ec", and was immediately followed by the -x, -xs or -ec parameter with at least two options, then the string would not have parsed properly and the application would have failed with a SQLCODE -95 error. This is most likely to happen with dbspawn, which converts the server command to a START= parameter.



For example:

dbspawn dbeng9 -n myserver -o output-file-x -x tcpip(port=1234;timeout=3)



This has been fixed.



CR:391751
CR Number:   391751
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1714 26 May 2005 Fixed
9.0.2 3129 26 May 2005 Fixed
9.0.1 2027 26 May 2005 Fixed
8.0.3 5258 26 May 2005 Fixed
Description
Numerous changes have been made to the system procedures used by jConnect when connected to ASA servers. Newly created databases will have these changes, but to update existing databases run the script jcatalog.sql, which is in the scripts directory.



CR:391775
CR Number:   391775
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3128 26 May 2005 Fixed
10.0.0 1713 26 May 2005 Fixed
Description
With the 9.0.2 build 3124 EBF a new message-based API was introduced for configuring and closing a JMS connector on-the-fly. Using the API to close and then opening a JMS connector on-the-fly had the side-effect of stopping all QAnywhere output from being logged. Restarting the QAnywhere server would have restored proper logging. This has been fixed, now closing a JMS connector on-the-fly will not stop QAnywhere output from being logged.



CR:391785
CR Number:   391785
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1713 26 May 2005 Fixed
9.0.2 3128 26 May 2005 Fixed
Description
Processing a message from QAnywhere to JMS through the QAnywhere JMS connector could have taken up to 5 seconds. Previously, connectors were polled every 5 seconds for messages. Now a QAnywhere connector is notified as soon as a message destined for the connector is uploaded.



CR:391887
CR Number:   391887
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1714 31 May 2005 Fixed
9.0.2 3129 31 May 2005 Fixed
9.0.1 2027 31 May 2005 Fixed
8.0.3 5258 31 May 2005 Fixed
Description
Calling the method AsaDataReader.GetSchema() could have generated the exception: "ASA .NET Data Provider: Column 'table_name' not found (-143)", if the database also had a user table named systable. This has now been fixed by qualifying references to system tables with the SYS owner name.



CR:391888
CR Number:   391888
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1725 07 Jun 2005 Fixed
9.0.2 3133 07 Jun 2005 Fixed
9.0.1 2032 07 Jun 2005 Fixed
Description
If the "Show multiple result sets" option was turned on, result sets were not editable. This has been corrected so that result sets are now editable with this option on.



Note that editability is still subject to the requirements that:

- All of the columns are from the same table

- If the table has a primary key, all of the primary key columns must have been selected

- There must not be any Java columns selected
Workaround Description
 Reset this setting



or



kill the .isqlPreferences9





--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------