SQL Anywhere 10.0.1 Release Notes for Unix and Mac OS X Copyright (c) 2007, iAnywhere Solutions, Inc. All rights reserved. All unpublished rights reserved. Installing SQL Anywhere 10 -------------------------- 1. Log in as a user with write privileges to the directory where you want to install. 2. The next step depends on whether you have a CD or an archive containing SQL Anywhere 10. 2a. If you have a CD, place the CD-ROM into the CD-ROM drive. Mount the CD-ROM drive, unless the system mounts it automatically. On Linux, the mount point is frequently /mnt/cdrom. In this case, enter the following command: mount /mnt/cdrom In a shell, change to the CD-ROM directory. For example: cd /mnt/cdrom 2b. If you have an archive, use tar to extract the install. For example: tar xvzf linux_x86_sa1001.tar.gz 3. Change to the created directory and start the setup script by entering the following commands: cd ga1001 ./setup For a complete list of the available setup options, enter the following command: ./setup -h 3b. For Mac OS X, a GUI setup program is provided. In the Finder, double-click "Install SQL Anywhere" 4. Follow the instructions displayed by the setup program. Setting environment variables for SQL Anywhere 10 ------------------------------------------------- Each user who uses the software must set the necessary SQL Anywhere environment variables. These depend on your particular operating system, and are discussed in the documentation in "Introduction to SQL Anywhere environment variables" in the book "SQL Anywhere Server - Database Administration". Creating desktop icons (Linux) ------------------------------ During installation on Linux, if you have KDE or GNOME installed, you are asked if you want to install desktop icons. The icons must be installed for each user who wants to use them. You can install the icons for a user by running the install again while logged in as that user, and entering the command: ./setup -create_icons [install-dir] The install-dir is not required if you have set the SQLANY10 environment variable. The icons can be removed for a user by running the remicons script: $SQLANY10/bin32s/remicons Getting started with SQL Anywhere 10 ------------------------------------ This section describes how to connect to the sample database from the Interactive SQL system administration and browsing utility, and how to execute a query. 1. In a typical Unix installation, the software, including the sample database, is installed into a directory that you do not have permissions to write to. In a terminal window, change to a writable folder. Copy the sample database file into the folder using the following command: cp /demo.db . where is the directory into which SQL Anywhere 10 was installed, for example, /opt/sqlanywhere10. 2. Start the database server executable running on the database file using the following command: dbeng10 demo.db 3. In another terminal window, run the Interactive SQL system administration utility by entering the following command: dbisql If you have not installed the JRE or if you are using the Deployment Option, you can run the character-based version of Interactive SQL using the following command: dbisqlc 4. A connection dialog appears. Enter DBA as the user ID, sql as the password, and demo as the database name. Leave the other fields blank. Press Enter to connect to the database. 5. Your window is now split into sub-windows. Enter the following query in the Command window: SELECT * FROM Employees Press F5 or F9 to execute the statement. If you are running dbisqlc and you want to emulate the F keys, press Ctrl+F, and then press the number 9 to execute the statement. The Data window displays the result set of the query. If you are running a remote terminal session on Linux or Solaris and do not have access to the graphical user interface, you can use the following batch command to view result sets: dbisql -c "uid=DBA;pwd=sql" -nogui "SELECT * FROM Employees" Getting started with SQL Anywhere 10 (Mac OS X) ----------------------------------------------- This section describes how to start the SQL Anywhere sample database, how to connect to that database from Interactive SQL, and how to execute a simple query against the database using the Finder. 1. In the Finder, locate the SQL Anywhere sample database. It can be found under /Applications/SQLAnywhere10/System/demo.db. 2. Copy this file to a location where you have read and write access. For example, you can copy it to the Desktop. 3. In the Finder, double-click the DBLauncher application. The DBLauncher application is located under /Applications/SQLAnywhere10. 4. Enter the options for starting your database server. 4a. To fill in the database field, click Browse and locate the sample database file on the Desktop. 4b. Leave the Server Name field empty. The Server Name field allows you to name this instance of the database server. By default, the name is taken from the database file (in this case, demo). 4c. Leave the Cache Size field empty. The Cache Size field allows you to specify a starting cache size. For example, if you type 10M then the database server allocates 10 MB of memory for caching. SQL Anywhere uses dynamic cache allocation, so this field can usually be left empty. 4d. Leave the Options field empty. The Options field allows you to enter other database server options. For a complete list of database server options, see "The Database Server" in "SQL Anywhere Server - Database Administration". 4e. Select the Local Server option. The Local Server option does not allow client/server communications over a network. 5. Start the database server. Click Start to start a personal database server named demo. The Server Messages window displays licensing information and performance warnings. Other diagnostic information appears here, depending on the database server options supplied (such as request logging). 6. Start Interactive SQL. In the Finder, double-click InteractiveSQL under /Applications/SQLAnywhere10. You are prompted for options on how to connect to your database server. 7. Type DBA as the user ID, and sql as the password, and then click OK. You can leave the other fields blank. 8. Type the following query in the command window: SELECT * FROM Employees 9. Choose SQL > Execute to execute the statement above. The Data window displays the result set of the query. 10. Choose SQL > Disconnect to disconnect from the database server. 11. To stop the database server, control-click the dock and then choose Quit. In this section, you have started a database, connected to it from Interactive SQL, and executed a simple query against the database. You can also connect to the database from Sybase Central, which is a database management and monitoring tool. The Sybase Central connection dialog uses the same fields as the Interactive SQL connection dialog. Release Notes for SQL Anywhere 10 --------------------------------- SQL Anywhere Server ------------------- o SQL Anywhere Server - Databases from SQL Anywhere 9 and earlier must be rebuilt before they can be used with SQL Anywhere 10. After installing SQL Anywhere 10, consult the documentation for information about rebuilding databases. If you are rebuilding a database for a Mac OS X computer, you must do one of the following: 1. Rebuild the database on another platform. 2. Unload the database on a computer running a different platform, and then reload on Mac OS X. 3. Unload the database on Mac OS X using a version 9 database server, and then reload the database using the version 10 software. o If you are using Adaptive Server Anywhere 9.0.1 (or earlier) server software, SQL Anywhere 10 64-bit clients may not be able to connect to the server using shared memory. To work around this restriction, you can use TCP/IP for communications, or upgrade the server to Adaptive Server Anywhere 9.0.2 or SQL Anywhere 10. For HP-UX Itanium, there are additional restrictions. Clients or servers from before version 9.0.2 build 3207 (including earlier versions) cannot communicate with servers or clients from SQL Anywhere 10 using shared memory. This applies even if both the client and server are 32-bit, or they are both 64-bit. To work around this restriction, you may use TCP/IP, or upgrade the older software to Adaptive Server Anywhere 9.0.2 build 3207 (or higher) or to SQL Anywhere 10. o Running the database server as a daemon - You can run the database server as a daemon using the -ud option. For example: dbeng10 demo.db -ud Do not use '&' to run the server in the background. To stop a database server running as a daemon, use the dbstop utility: dbstop demo o SQL Anywhere Server - On RedHat 4, starting the database server with the GUI enabled may crash because of a glibc bug. Testing with glibc 2.3.4-2.25 showed that the problem was resolved. It is recommended that you run glibc with at least this patch level. o SQL Anywhere Server - On Linux distributions with kernels prior to 2.6.13, IPv6 link-scope local addresses may not work as expected due to a known kernel bug. If you require the use of link-scope local IPv6 addresses it is recommended that you update your kernel to at least version 2.6.13 o SQL Anywhere Server - On Mac OS X, when the computer is in sleep mode, network connectivity stops. As a result, connecting to a SQL Anywhere Server running on a Mac that is in sleep mode will fail. To avoid this problem, set the sleep mode to "Never". From System Preferences, select Energy Saver. On the Sleep tab, move the slider to "Never". o SQL Anywhere Server - On AIX 5.3, it is recommended that you apply at least patch number IY79612 due to a bug in syslogd that could SQL Anywhere Server to hang. MobiLink -------- o If you are using server-initiated synchronization with an SMTP gateway on a Treo 600 device, the Listener utility on the Treo must be relaunched once after reset in order to receive notifications. o Sybase Central MobiLink plug-in - The database objects that are created when deploying may have names that are longer than the database supports (because the new object names are created by adding suffixes to the base table names). If this happens, deploy only to file (not directly to a database) and edit the generated SQL file to replace all occurrences of the name that is too long. o Sybase Central MobiLink plug-in - If you create a new remote schema in the Create Synchronization Model wizard, the new remote database columns will not contain the foreign keys, indexes, or default column values of the columns in the consolidated database. UltraLite databases do not support NCHAR or NVARCHAR columns, so you cannot use consolidated database tables with columns of those data types to generate a new remote schema for an UltraLite remote database. After deploying, you can create or change the remote schema and then update the schema for the model. o Sybase Central MobiLink plug-in - If you want to synchronize a consolidated database table that has computed columns, you cannot upload to the table. If you deploy a synchronization model with computed columns, the deployment may have errors creating the trigger used for timestamp-based downloads. You can either exclude the column from synchronization, or set the table to be download-only (and either use snapshot download or edit the generated consolidated SQL file to remove the computed column from the trigger definition). o Sybase Central MobiLink plug-in - When you are selecting consolidated database tables for table mappings, it is not possible to select a view. o Linux language setting and Oracle - On some Linux distributions, MobiLink cannot establish a connection to an Oracle database when the environment variable LANG is set to its usual value of en_US. To work around this problem, unset the environment variable LANG. For example, run the following command in the Bourne shell (sh): unset LANG o MobiLink notifiers, gateways, and carriers - Server-Initiated sync (SIS) Notifiers, Gateways, and Carriers must all have single-byte character names. Operating system support ------------------------ o Operating system requirements for installing SQL Anywhere 10 can be found at http://www.ianywhere.com/products/supported_platforms.html. This web page also contains information about SQL Anywhere components included for each supported platform. o SELinux support - If you are having problems running SQL Anywhere on SELinux, you need to either define an appropriate SELinux policy for your SQL Anywhere installation, or disable SELinux. You can relabel the SQL Anywhere libraries as relocatable shared libraries, to allow them to run on SELinux. For example, on RedHat distributions, you can run the following command: chcon -t textrel_shlib_t $SQLANY10/lib32/* $SQLANY10/lib64/* Alternatively, you can disable SELinux by running the following command as root: /usr/sbin/setenforce 0 o Itanium platforms 64-bit only - 32-bit x86 (IA-32) applications are supported on Linux Itanium platforms and 32-bit Hewlett Packard PA-RISC (ILP32) applications are supported on HP-UX Itanium platforms, but run only in emulation mode. To avoid a performance penalty, recompile your applications as native Itanium IA-64 (LP64) executables using the native 64-bit SQL Anywhere client libraries. o Threads and semaphores - The type of threads and semaphores used in software can be quite important, as some systems can run out of these resources. o On Solaris, SQL Anywhere uses Posix threads and native semaphores. o On Linux, AIX, HP-UX, and Mac OS X, SQL Anywhere uses pthreads (posix threads) and System V semaphores. o Alarm handling - This is of interest only if you are developing non-threaded applications and use SIGALRM or SIGIO handlers. SQL Anywhere uses a SIGALRM and a SIGIO handler in non-threaded clients and starts up a repeating alarm (every 200ms). For correct behavior, SQL Anywhere must be allowed to handle these signals. If you define a SIGALRM or SIGIO handler before loading any SQL Anywhere libraries, then SQL Anywhere chains to these handlers. If you define a handler after loading SQL Anywhere libraries, you need to chain from the SQL Anywhere handlers. If you use the TCP/IP communications protocol, SQL Anywhere uses SIGIO handlers in only non-threaded clients. This handler is always installed, but it is used only if your application makes use of TCP/IP. o xterm environment requires prestarting when in character mode - When attempting to run the evaluation version of SQL Anywhere for Unix, it is recommended that you prestart SQL Anywhere before connecting via a graphical application. Otherwise, if your graphical application (Interactive SQL or Sybase Central for example) is in a position that hides the terminal window from which it was started, you won't be able to see (or respond to) the request for license agreement acceptance. o Patches recommended for RedHat 4 x86_64 - Starting the 64-bit database server with the GUI enabled may crash because of a glibc bug. Applying the latest glibc patch from RedHat resolves this issue. o Sybase Central crashes on exit on TurboLinux FUJI (11) - This is caused by a problem with glibc package included with TurboLinux FUJI. At the time of writing, no patches were available from TurboLinux. o iAnywhere JDBC driver on HP Itanium - If you plan to use the iAnywhere JDBC Driver on HP Itanium, note that the minimum JRE requirement is 1.4.2. Using anything earlier than 1.4.2 results in the application hanging on exit. o The Java Invoice sample does not run under Linux Itanium, HP-UX, and IBM AIX because it requires functionality provided by dbisql, which is not included on those platforms. o Kerberos support - On Solaris, HP-UX and on IBM AIX we test and support MIT Kerberos 5 version 1.4 Kerberos clients. Other properly configured GSS-API Kerberos clients are not tested or officially supported. o LDAP support - On HP-UX only the HP provided LDAP libraries shipped in the LDAP-UX Integration product are tested and supported. Other properly configured LDAP libraries may function, but are not tested or officially supported. o On AIX and HP, there is a problem when running a Java Virtual Machine within SQL Anywhere Server when the Java VM is using a different bitness than the server. For example, using a 64-bit server with a 32-bit Java VM does not work. To work around this, a script is provided in ${SQLANY}/java that is used to start the Java VM. It relies on JAVA_HOME being set correctly. This script defaults to using a 32-bit Java VM. If you want to use a 64-bit Java VM, change the value of JAVA_BITNESS to 64 in sa_java.sh. If you want to use more than one Java VM, you should copy and modify sa_java.sh so that it loads your alternate Java VM. Then, set the java_location database option to point to the new script. o In some Asian locales, the Administration Tools may not always display Asian characters properly by default. This issue is related to JRE 1.5.0 and its support of releases of Linux that have a release date after JRE 1.5.0, or for which configuration files were not included in JRE 1.5.0. The display problems are primarily due to missing font configuration files (files with the prefix fontconfig in the JRE's lib directory). In some cases, you can obtain font configuration files for the operating system and language combination from the operating system vendor. Read the section below that corresponds most closely with your operating system. If none of the sections apply, try the steps in the section OTHER. TURBOLINUX 11 (Japanese) Download the RPM update from ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Desktop/11/updates/SRPMS/j2sdk-addon-1.5.0_06-1.src.rpm 1. Shut down any Administration Tools that are running. 2. Install the RPM using the following command: rpm -ivh --nodeps j2sdk-addon-1.5.0_06-1.src.rpm A file is installed into /usr/java/j2sdk1.5.0_06/jre/lib: fontconfig.Turbo.10.0.properties 3. Copy this file into your $SQLANY10/jre150/lib folder. The Administration Tools should now display Japanese fonts properly. REDFLAG 5 (Chinese) Make sure you have installed the following RPM for the Simplified Chinese locale: ttfonts-zh_CN-5.0-2 If not, the RPMs are available on CD #2 of the RedFlag 5 distribution. The RPM can be installed with the "rpm -i" command when logged in as root. Execute the following commands so that the JRE finds the font onfiguration file for your system: 1. cd $SQLANY10/jre150/lib 2. cp fontconfig.RedHat.3.properties.src fontconfig.Linux.properties REDHAT ENTERPRISE LINUX 4 Make sure you have installed fonts for the Asian locales. If not, the RPMs are available on CD #4 of the Redhat Enterprise Linux 4 distribution. The following RPMs contain the fonts for Asian locales: ttfonts-ja-1.2-36.noarch.rpm ttfonts-ko-1.0.11-32.2.noarch.rpm ttfonts-zh_CN-2.14-6.noarch.rpm ttfonts-zh_TW-2.11-28.noarch.rpm Each of these RPMs can be installed with the "rpm -i" command when logged in as root. Execute the following commands so that the JRE will find the font configuration file for your system: 1. cd $SQLANY10/jre150/lib 2. cp fontconfig.RedHat.3.properties.src fontconfig.RedHat.4.properties SuSE 10 Make sure you have installed fonts for the Asian locales. If not, the RPMs are available on CD #1 of the SuSE 10 distribution. ( xfntjp-20020904-432.noarch.rpm ( xfntkr-2.1-633.noarch.rpm ttf-founder-simplified-0.20040419-6.noarch.rpm ttf-founder-traditional-0.20040419-6.noarch.rpm If these fonts do not contain the characters you want to display, try the steps in the section OTHER. Each of these RPMs can be installed with the "rpm -i" command when logged in as root. Execute the following commands so that the JRE finds the fonts: 1. cd /usr/X11R6/lib/X11/fonts/truetype 2. mkdir $SQLANY10/jre150/lib/fonts/fallback. 3. cp FZ* $SQLANY10/jre150/lib/fonts/fallback Note: Setting the Language at the Login prompt is not sufficient for the JRE (and hence the Administration Tools) to determine the locale. Before launching the Administration tools, the environment variable LANG should be set to one of the following values: ja_JP ko_KR zh_CN zh_TW For example, in the Bourne shell and its derivatives, execute the following command before launching the Administration Tools: export LANG=ja_JP Some German characters (for example, "a" with an umlaut) do not appear correctly in window title bars if the locale is set to de_DE.UTF-8. A workaround for this problem is to use the de_DE@euro locale. For a complete list of valid locale settings for this environment variable, see the directory listing of /usr/lib/locale. OTHER If you have a distribution of the same type, but different version number as listed in the above sections, it is recommended that you try the steps from the closest corresponding section, adapting as necessary to the different version number. You should also do an Internet search for a specific solution for your distribution. If none of these steps produces a satisfactory resolution, then the following general solution can be used. The following is a procedure for installing a Unicode, TrueType font into the JRE used by the Administration Tools. This method can be used for any Linux operating system not mentioned above. Other TrueType fonts can be installed in a similar manner. 1. Shut down any Administration Tools you may have running. 2. Download a freely available Unicode font, such as Bitstream Cyberbit, which is available from ftp://ftp.netscape.com/pub/communicator/extras/fonts/windows/Cyberbit.ZIP 3. Unzip Cyberbit.ZIP into a temporary directory. 4. Create the directory $SQLANY10/jre150/lib/fonts/fallback. 5. Copy Cyberbit.ttf into the $SQLANY10/jre150/lib/fonts/fallback directory. Open Client ----------- o Open Client applications on Linux - Under Linux, Open Client applications crash on startup under Red Hat because the default value of $LANG is "en_US" and this value is unknown to the Linux version of Open Client. To correct this situation, either unset the $LANG environment variable by, for example, issuing the command unset LANG or add an entry for en_US to the file locales.dat; for example, [linux] locale = en_US, us_english, iso_1 Documentation ------------- o Documentation is provided in English for the initial release. For documentation in other languages, use the "Check for updates" feature, or visit: http://www.ianywhere.com/developer/product_manuals/sqlanywhere/index.html