• Loading...

Sybase SQL Anywhere (ASA)

Discover with BMC ADDM
download

This product can be discovered by any edition of BMC Atrium Discovery and Dependency Mapping. Download our free Community Edition to try it out, or see what else it can discover!

What is this?
This is a product information page, containing details of the information that BMC Atrium Discovery gathers about a product and how it is obtained.
Product Name
SQL Anywhere
Publisher Page

Sybase

Category

Relational Database Management Systems

Release
TKU 2010-Oct-1
Reports & Attributes

Sybase SQL Anywhere - Reports & Attributes

Publisher Link
Sybase

Product Description

In version 10, Adaptive Server Anywhere (ASA) was renamed SQL Anywhere.

SQL Anywhere, is the industry-leading database management system (RDBMS)/relational database server component of SQL Anywhere Studio. SQL Anywhere is intended for use in mobile and embedded environments or as a server for small and medium-sized businesses (SMB). This powerful database server is optimized for use on SMB servers, laptops and handheld devices, and supports both single user and multi-user implementations.

SQL Anywhere Studio, a product of iAnywhere, a Sybase company, is the name of the package that contains SQL Anywhere, the UltraLite RDBMS, MobiLink synchronization software, and other components. It is a comprehensive package that provides database management and enterprise database synchronization capabilities to enable the rapid development and deployment of database-powered applications.

SQL Anywhere Studio also includes enhanced graphical development tools - including a query editor, integrated stored procedure debugger, profiler, and synchronization monitoring tool - to provide developers with faster, easier access to information. In addition, sophisticated event handling and scheduling capabilities enable DBAs to set up an SQL Anywhere server to execute a set of actions at predefined times or when certain events occur.

SQL Anywhere Studio supports a wide range of operating systems, including Windows (32 or 64 bit), Mac OS X, Netware and a range of UNIX variants and Linux (32 or 64 bit).

A Java-enabled SQL Anywhere database can use multiple SQL Anywhere JVM instances.

Combining SQL Anywhere with the built-in synchronization architecture makes it attractive for mobile applications.

Certain SQL Anywhere components, namely dbeng and rteng, are often embedded as OEM engines in the products of other companies. Sybase SQL Anywhere (ASA) has been embedded into the following applications:

  • Cisco IPM Common Services 2.2.0 - Includes SQL Anywhere v5.5.04 - The package name is CSCOcwbS.
  • DataFabric Manager
  • PropertyBoss 2006 - SQL Anywhere 8 is installed as part of this application; however, the installation directory used is the normal Sybase SQL Anywhere one.
  • Serena ChangeMan Mover
  • Siebel Sales Enterprise
  • Symantec Ghost
  • Veritas Storage Foundation Management Server - The package name is VRTSdbms3 (Symantec Shared DBMS).

Multiple Installations

You can run multiple versions of SQL Anywhere on the same machine. Each major version has a distinct default installation directory, and relevant libraries have distinct naming conventions. One exception to this is the command-line utilities (dbinit, dbvalid, dbunload, etc.). They retain the same name from version to version, and if you run them in a batch file or from a command prompt, the first version encountered on the path is executed. If you have multiple versions of SQL Anywhere on your machine, you must pay attention to your system path when using utilities. Since setup adds the most recently installed version executable directory to the end of your system path, it's possible to install a new version of the software, and still inadvertently be running the previously installed version. For example, if an SQL Anywhere (i.e. Adaptive Server Anywhere) version 7 executable directory is ahead of the version 8 executable directory in your path and you use the dbinit command, you will use the version 7 utility, and consequently create a version 7 database.

Known Versions

  • 3
  • 4.0
  • 5.0
  • 5.0.1
  • 5.0.2
  • 5.0.3
  • 5.5
  • 5.5.1
  • 5.5.05
  • 6.0
  • 6.0.1
  • 6.0.2
  • 6.0.3
  • 7.0.0
  • 7.0.1
  • 7.0.2
  • 7.0.3
  • 8.0.0
  • 8.0.1
  • 8.0.2
  • 8.0.3
  • 9.0.0
  • 9.0.1
  • 10.0

Software Pattern Summary

Product Component OS Type Versioning Pattern Depth
NetworkServer Unix/Windows Command (Active), Path, Package Instance-based

Platforms Supported by the Pattern

The pattern identifies instances of Sybase SQL Anywhere running on Windows, Linux and Unix platforms.

Identification

Software Instance Triggers

Trigger Node Attribute Condition Argument
DiscoveredProcess cmd matches regex'(?i)\bSqlany\\dbsrv\d+\.exe$'
or
regex'\bs?bin(?:32)?/dbsrv\d+$'
or
regex'(?i)\bwin32\\dbsrv\d+\.exe$'
or
regex'(?i)\bASA\\dbsrv\d+\.exe$'

NOTE: In certain patterns as is the case in this one, partial path is included as part of the trigger condition. This is seen where there is significant chance that triggering on the process name alone is likely to cause a cross-match. Sybase SQL Anywhere (ASA) Network Database Server process is also shipped as an OEM product (Sybase ASA Engine) and used by a number of 3rd party applications. Identifying this process as Sybase SQL Anywhere Network Database Server would in all those cases be incorrect as it is not a standalone product.
The decision was therefore taken to identify this product as the Network Database Server only where we can be certain.

Simple Identification Mappings

The following components/processes are identified using the combination of pattern definitions and simple identity mappings which map other known (but deemed less important in terms of application modeling) processes.

Name Command
Sybase SQL Anywhere (ASA) Backup Utility regex'\bbin(?:32)?/dbbackup$'
regex'(?i)\bwin32\\dbbackup\.exe$'
Sybase SQL Anywhere (ASA) Broadcast Repeater regex'(?i)\bdbns\d+\.exe$'
Sybase SQL Anywhere (ASA) Collation regex'\bdbcollat$'
regex'(?i)\bdbcollat\.exe$'
Sybase SQL Anywhere (ASA) Compression Utility regex'\bdbshrink$'
regex'(?i)\bdbshrink\.exe$'
Sybase SQL Anywhere (ASA) Conduit regex'(?i)\bdbcond[1-9][0-9]?\.exe$'
Sybase SQL Anywhere (ASA) DB Client regex'\bdbcli6$'
regex'(?i)\bdbclient\.exe$'
regex'(?i)\bdbcli6\.exe$'
Sybase SQL Anywhere (ASA) DB Elevate regex'(?i)\bdbelevate[1-9][0-9]?\.exe$'
Sybase SQL Anywhere (ASA) DB Stop regex'(?i)\bdbstop\.exe$'
Sybase SQL Anywhere (ASA) DB Version Utility regex'\bdbversion$'
Sybase SQL Anywhere (ASA) Desktop Runtime Edition (OEM) DB Server Engine regex'(?i)\brteng[1-9][0-9]?\.exe$'
Sybase SQL Anywhere (ASA) Erase regex'\bdberase$'
regex'(?i)\bdberase\.exe$'
Sybase SQL Anywhere (ASA) Expand regex'\bdbexpand$'
regex'(?i)\bwin32\\dbexpand\.exe$'
Sybase SQL Anywhere (ASA) Extraction Utility regex'\bdbxtract$'
regex'(?i)\bwin32\\dbxtract\.exe$'
Sybase SQL Anywhere (ASA) Histogram regex'(?i)\bdbhist\.exe$'
Sybase SQL Anywhere (ASA) Information regex'\bdbinfo$'
regex'(?i)\bwin32\\dbinfo\.exe$'
Sybase SQL Anywhere (ASA) Language Selection regex'(?i)\bdblang\.exe$'
Sybase SQL Anywhere (ASA) Log Transfer Manager (Replication Agent) regex'\bdbltm$'
regex'(?i)\bdbltm\.exe$'
Sybase SQL Anywhere (ASA) Log Translation regex'\bdbtran$'
regex'(?i)\bdbtran\.exe$'
Sybase SQL Anywhere (ASA) Network Database Server regex'\bs?bin(?:32)?/dbsrv\d+$'
regex'(?i)\bwin32\\dbsrv\d+\.exe$'
regex'(?i)\bSqlany\\dbsrv\d+\.exe$'
regex'(?i)\bASA\\dbsrv\d+\.exe$'
Sybase SQL Anywhere (ASA) Personal (OEM) DB Server Engine regex'\bdbeng[1-9][0-9]?$'
regex'(?i)\bdbeng[1-9][0-9]?W?\.exe$'
Sybase SQL Anywhere (ASA) Report Support regex'\bdbsupport$'
regex'(?i)\bdbsupport\.exe$'
Sybase SQL Anywhere (ASA) SQL Preprocessor regex'\bsqlpp$'
regex'(?i)\bsqlpp\.exe$'
Sybase SQL Anywhere (ASA) SQL Remote Message Agent regex'\bdbremote$'
regex'(?i)\bdbremote\.exe$'
Sybase SQL Anywhere (ASA) Server Licensing regex'\bdblic$'
regex'(?i)\bdblic\.exe$'
Sybase SQL Anywhere (ASA) Validation Utility regex'\bdbvalid$'
regex'(?i)\bdbvalid\.exe$'
Sybase SQL Anywhere (ASA) Write File regex'\bdbwrite$'
regex'(?i)\bdbwrite\.exe$'
Sybase SQL Anywhere (ASA) rebuild regex'\bbin(?:32)?/rebuild$'
Sybase SQL Anywhere (ASA) Remote Server Console regex'\bdbconsole?$'
regex'(?i)\bdbconsole?\.exe$'
regex'(?i)\bdbwatch\.exe$'

Versioning

Version information for the product is currently collected using one of 3 possible methods.

The methods are tried in an order of precedence based on likely success and/or accuracy of the information that can be gathered. Once a result is obtained, the methods lower in precedence are not attempted. In order of precedence the methods are:

Active Command

Linux and Unix only.

The "Active Version Command" function uses a combination of a static version command, a dynamic argument from the matched command line followed by additional static options, the command is run once the dbsrv# process has been matched and only if the supplied command matches the following regular expression:

  • ^/[^ ]*/dbsrv\d+$

The version command approach results in a 'strings' command being run on the 'dbsrv#'. Version is then extracted when the output is parsed using the 'grep' command.

  • strings <cmd> | grep "IDENT" | head -n 1

where <cmd> is the command line.

i.e. strings .../dbsrv9 | grep "IDENT" | head -n 1

Any output is then applied against a further regular expression:

  • IDENT=dbsrv\d+/(?P<version>\d+(\.\d+)*)

to extract the version.

The version command approach requires the path to the 'dbsrv#' binary to be present in the command line obtained from the process list, or 'dbsrv#' binary to be within the $PATH of the user account Foundation uses to login. In addition to this, the 'strings' command is required to be within the $PATH of the user account Foundation uses to login - this is very likely to be the case.

The advantage of this method of versioning is that providing the above requirement is fulfilled, this method is accurate and safe as the 'strings' command is read-only and does not affect either the application or the Operating System environment.

Path Versioning

All Platforms

Path Versioning is only attempted if Active Command fails to return a version.

The Path Regex functionality allows a regular expression to be applied against the process command line to derive a version number from the command path or arguments.

Path versioning is performed on Unix/Linux and Windows by comparing the command line and arguments against each of the following regular expressions in the order shown:

  • (?i)Anywhere\s*(\d+(?:\.\d)?)
  • (?i)dbsrv(\d+)

Versioning is achieved in this case normally to depth x but occasionally to depth x.x.

Examples of paths that would be matched and versions extracted are:

  • E:\Program Files\Sybase\Adaptive Server Anywhere 6.0\win32\dbsrv6.exe- 6.0
  • dbsrv10.exe -n TestEng -su 9Bx231K - 10

Package Versioning

Windows only

Package Versioning is only attempted if Active Command fails to return a version.

Versioning by reading package information is a method used only on the Windows platform. Foundation executes a search for the installed packages and tries to match them against the following regular expression:

^SQL Anywhere

When it finds a match, it extracts the version for Sybase SQL Anywhere from the package information.

Versioning is achieved in this case to either depth x.x.x or x.x.x.x

Alternative Versioning Approach

dbeng# -v or dbsrv# -v

When you type dbeng# -v or dbsrv# -v at a Windows command prompt, where N is your major version, the version of the server is returned.

The requirement for this approach would be that the full path to the binary is obtained by Foundation.

On Unix, this method may also fail in cases where an evaluation version of the product is installed as execution of the evaluation version binary leads to a '(Y/N)' prompt which needs to be answered prior to information being provided.

We are however unable to use this versioning method on the Windows platform as a popup window is displayed and the version number is written inside that. In addition, if the path contains a space character (which it does by default), the path would need to be quoted.

dbtsinfo

SQL Anywhere features a tool called dbtsinfo; when you type dbtsinfo -i at a command prompt, you are provided with client-side information, including relevant environment variables, the location of the SQL Anywhere installation, the version of each executable file, and any path inconsistencies, such as a dbinfo.exe that is in your path ahead of the installed one. The dbtsinfo tool allows you to make sure that the version of the installed software is what you expect:

C:\Program Files\Sybase\SQL Anywhere 9\win32>dbtsinfo -i
Adaptive Server Anywhere Technical Support Utility Version 9.0.2.2451
Environment variables:
ASANY9=C:\Program Files\Sybase\SQL Anywhere 9
ASANYSH9=C:\Program Files\Sybase\Shared
Installed Software:
Adaptive Server Anywhere is installed in C:\Program Files\Sybase\SQL Anywhere 9
dbeng9.exe - 9.0.2.2451
dbsrv9.exe - 9.0.2.2451

We are not able to use this versioning method on Windows due to the path possibly needing to be placed within quotes due to space characters.
It is possible that this approach will become viable with the introduction of Foundation 7.x architecture.

dblic

The dblic <database_server> command returns information about the license for a particular database server; e.g.:

  • dblic dbsrv10.exe

We are not able to use this versioning method on Windows due to the path possibly needing to be placed within quotes due to space characters and the fact that the database server name needs to be known.

Future Considerations

Application Model Produced by Software Pattern

Product Architecture

Software Pattern Model

The NetworkServer pattern has the Sybase SQL Anywhere (ASA) Network Database Server (dbsrv#, dbsrv#.exe) process as its trigger process.

Once the pattern has been fired by matching on its trigger process, the pattern can be stopped if the trigger process' command line further matches on one of the following regular expressions, representing excluded processes:

  • \bVRTSdbms/.*?/dbsrv\d+$
  • (?i)\bDataFabric\\.*?\\dbsrv\d+\.exe$
  • \bNTAPdfm/.*?/dbsrv\d+$
  • (?i)\bFabricManager\\.*?\\dbsrv\d+\.exe$
  • (?i)\bChangeMan.*?\\dbsrv\d+\.exe$
  • (?i)\bNetscout.*?\\dbsrv\d+\.exe$
  • (?i)\bSiemens.*?\\dbsrv\d+\.exe$
  • (?i)\bCSCOpx.*?\\dbsrv\d+\.exe$

SI Depth

The pattern tries to extract the name of the database server by applying the following regular expression to the command line's arguments:

  • -n\s*(\S+)

The first '-n' command-line argument is matched (out of possible two) which, based on our information from Sybase (via JPMC DB SME David Futter), provides us with database server instance name.

An examples of path that would be matched and instancing information extracted is:

  • C:\Program Files\Sybase\SQL Anywhere 9\win32\dbsrv9.exe -n mydbserv - mydbserv

If we are unable to ascertain the name of the database server, an instance-based Software Instance is created with a key consisting of cmd and full version.

If we are able to ascertain the name of the database server, an instance-based Software Instance is created with a key consisting of name, type (Sybase SQL Anywhere Network Server) and host key.

NOTE: Sybase have advised us that any Network Server process running without a '-n' argument will attach itself to another existing database server on the same host.

Differences to 6.x Approach

The dbsrv# SE Matcher performed path versioning differently for versions of SQL Anywhere less than v6. Given a path such as:

  • C:\sqlany50\win32\dbsrv50.exe

the version would have been returned as "5.0" rather than "50".

Subject Matter Expertise

A suggestion to use 'dbserv# -v' as an active versioning approach on the Unix/Linux platform has been suggested by Sybase SMEs, but having considered it, we believe that the current active version approach is likely to be just as successful in obtaining the version information. Executing the binary for the database sever process may require setting up the environment first which isn't required in case of the use of the 'strings' command.

Another suggestion was to use the 'dbinfo' command. However, the same reasoning applies to the use of this command vs the 'strings' method currently used. Furthermore, 'dbinfo' requires environment path information and will return the version of SQL Anywhere in its path, not necessarily the version of the process running.

Testing

Testing to ensure the processes related to Sybase SQL Anywhere have been correctly identified has been performed using Foundation record data from hosts running Linux and Windows operating systems.

Some of the record data from Linux and Windows hosts also contained enough information to extract the version information using the Path Versioning approach.

To test the Version Command approach to obtain the product version of Sybase SQL Anywhere (ASA) Network Server, a copy was installed locally on Linux hosts and successfully scanned.

Information Sources

Open Issues

TOP

Created by: Rebecca 14:16, 21 November 2007 (GMT)

Reviewed by:

Skip to end of metadata
Go to start of metadata
Labels:
products products Delete
package_versioning package_versioning Delete
path_versioning path_versioning Delete
additional_attributes additional_attributes Delete
active_command active_command Delete
tku_2010-oct-1 tku_2010-oct-1 Delete
relational_database_management_systems relational_database_management_systems Delete
sybase sybase Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.