Skip to main content
Delphix

Resolving Error “Skipping discovery for ASE dataserver with pid ... as an instance name was not found” (KBA3785)

 

 

KBA

KBA# 3785

Troubleshooting ASE Instance without "-s <database_server_name>" Parameter

When discovering an ASE environment, a warning occurs: “Skipping discovery for ASE dataserver with pid  "some number" on host "host name" as an instance name was not found”.

The automatic discovery process needs the "-s" parameter to run "isql -U xxx -P xxx -S abc" to connect to the ASE instance and run some queries against sysdatabases and syslisteners.

Without this parameter, it doesn't know the name of the ASE instance associated with the "dataserver" process found in the “ps -ef | grep dataserver” listing.

While troubleshooting ASE discovery, it may be useful to see an overview of how Delphix automatically discovers ASE instances:

  • Get the $SYBASE environment variable by looking for the environment variable in the user’s list of environment variables (the user as specified in the OS Username of the Add Environment dialogue). This must be defined for non-interactive logins.
    This can be tested by executing "ssh delphix_os_user@ase_host env | grep SYBASE".

  • Get the path to the isql binary looking under $SYBASE.

  • List the running instances using ps (see get_ase_instances.sh for details).

    • In Delphix 4.3 and higher, the get_ase_instances.sh script is no longer run. Instead it uses the ProcessExplorer java class

  • For each instance:

    • Get the list of ports by running isql and querying the syslisteners table (see get_ase_instance_ports.sh for details).

    • Connect via JDBC using the port retrieved from syslisteners. Enter the host/IP in the environment definition screen.
      After successfully connecting, retrieve @@servername. Use the first port that works where @@servername is the same as the value from ps.

    • Using JDBC, populate page size, instance owner, and other attributes for each instance.

    • Discover the list of user databases for each instance by querying sysdatabases (excluding the system databases 'master', 'model', 'sybsystemdb', ‘sybsystemprocs' and ‘tempdb').

NOTE: Since only a single $SYBASE environment variable is used, only that $SYBASE/interfaces file is used when connecting to each ASE instance. Iff there are multiple ASE instances you wish to discover automatically, all of them need to be in the Delphix operating system user's $SYBASE/interfaces file.

Resolution

If you have ASE instances that you wish for Delphix to discover automatically, they will need to be started with the “-s servername” parameter.

Otherwise, you can add these ASE instances to Delphix manually by using the command line interface (CLI): Configuring ASE Manual Discovery