Omnidex uses connection strings to connect to Omnidex Environment Files. A connection string is a universal syntax that describes the location, network information, security and options for connecting to the environment file. Connection strings are used throughout the Omnidex product, including ODBC, JDBC, Omnidex Grids, and the Omnidex SQL Engine.
The full syntax of the Omnidex connection string is shown below. It is rare that all portions are needed, though. Any portion of the connection string are optional and can be omitted and replaced with the default settings as long as enough information remains to support the connection.
user/password@ [ host : port : pool ] filename [ node ] &options
The user to be used when accessing an underlying relational database. Security can be provided in the connection string or can be recorded directly in the CREATE_DATABASE statement. A user and password is not needed for raw data files.
The password to be used when accessing an underlying relational database. Security can be provided in the connection string or can be recorded directly in the CREATE_DATABASE statement. A user and password is not needed for raw data files.
The name of the host where the Omnidex Environment File is located. If omitted, host defaults to “localhost”. Note that Omnidex Network Services must be running on that host to receive the connection.
The port number used to connect to host. If omitted, port defaults to 7555. Note that Omnidex Network Services must be running on that host to receive the connection.
The name of an Omnidex Connection Pool to be used when connecting to this environment. If omitted, then this will not be a pooled connection. Note that Omnidex Network Services must be running on that host to receive the connection.
The filename for the Omnidex Environment File. This filename can be fully qualified; otherwise, it is treated as a relative filename, relative to the current working directory of where Omnidex Network Services was launched. Filename can only be omitted if Omnidex Connection Pools are used, in which case the filename is registered as part of configuring the connection pool.
The Grid Node within an Omnidex Grid to connect to. Normally, connections to the Environment File for an Omnidex Grid provide access to the entire grid. Specifying the node allows a connection directly to a Grid Node. If omitted, then the connection is to the entire Omnidex Grid.
The options to be used when connecting to the Omnidex Environment File. The allowed options are documented as part of the SQL CONNECT statement.
Omnidex supports environment variables and shell commands to be used in many places within the product. Omnidex also allows environment variables to replace any or all of the components of a connection string. The syntax used in connection strings is more unique that the general syntax. This is because of the need to differentiate whether the environment variable resides on the client or the server.
The syntax for referencing an environment variable on the local host is {$VARIABLE}, where VARIABLE is the name of the environment variable. The syntax for referencing an environment variable on the remote host is {$$VARIABLE}. The entire connection string could be replaced with environment variables using the following syntax. Note that any variable name can be used.
Omnidex also allows shell commands to be used in place of environment variables. Shell commands can be used to allow an external process to produce the value, rather than relying on an environment variable. The syntax for referencing a shell command on the local server is {$(command)}, where command is the shell command. The syntax for referencing a shell command on the remote server is {$$(command)}. Note that if the shell command contains spaces or punctuation marks, it should be enclosed in quotation marks.
Whether using environment variables or shell commands, the host, port and pool parameters can only reference the local server. This is required since the connect to the remote server cannot be made without this information from the local server.
This connection string connects to an environment file on the local machine. Because of the absence of bracketed network information, this connection will not require Omnidex Network Services.
c:\class\simple.xml
This same environment file could be accessed with a relative filename as long as the process' current working directory was c:\class:
simple.xml
This connection string connects to an environment file on the local machine passing a user and password to be sent to the underlying relational database:
myuser/mypassword@simple.xml
This connection string connects to an environment file on a remote machine name 'server1':
[server1:7555]c:\class\simple.xml
This connection string connects to an environment file on a remote machine name 'server1' passing a user and password to be sent to the underlying relational database:
myuser/mypassword@[server1:7555]c:\class\simple.xml
This connection string connects to a remote Omnidex Connection Pool named 'simple' on a remote machine named 'server1'. Note that the filename is omitted since it is contained in the definition of the Omnidex Connection Pool.
[server1:7555:simple]
This connection string connects to an environment file on a remote machine named 'server1' using read-only options.
[server1:7555]c:\class\simple.xml&read
This connection string connects to an environment file using local environment variables for the host and port, and using a remote environment variable for the filename.
[{$HOST}:{$PORT}]{$$ENVIRONMENT_FILENAME}
This connection string connects to an environment file using a local Windows shell command for the host and port, and using a remote UNIX shell command for the filename. Note that quotation marks are required because the shell command contains spaces.
[{$(host.bat)}:{$(port.bat)}]"{$$(cat filename.txt)}"
See also: