User guide
srv.onStartCmd="@rdb$jdbc_com:our_setup.com"
/>
Care should be taken when providing commands for the server process to execute using this
property. These commands will be executed prior to the invocation of the Java statement that
starts the actual server instance. As detached OpenVMS processes will be used to run the
server you must ensure that all the necessary symbols and logical names are available for the
server's use within the detached process.
In particular if you redefine the standard RDB$JDBC_* logical names within your set-up to
use a private version of Oracle JDBC for Rdb, you must ensure that appropriate
JAR file and images are available and executable within the detached process server
environment.
Example 2
For example, care should be taken in how the logical names are specified. The following
redefinition may appear to point the logical name to the current default directory:
$define rdb$jdbc_home []
However this logical name will be translated during the creation of the
temporary command
procedure that will be used to start the server, which in this case as only the directory has
been specified, the disk or device will default to the current device of the login directory of
the detached process, which might not be the same device as you expected. This may
prevent the server process form correctly starting.
If you need to redefine a logical name to the current default directory you can use the
f$environment DCL lexical function:
$define rdb$jdbc_home 'f$environment("DEFAULT")
This will set both the default device and directory.
If problems are found with starting a server process you can look for new log files in the
RDB$JDBC_LOGS directory which may provide some information on any errors found.
Caution:
Do not use the SET VERIFY command within these command procedures. As the method
Runtime.exec() may be used by the servers to create processes, the use of the SET VERIFY
command within the command procedure may hang the server. This is a documented
limitation of using Runtime.exec() on Open VMS Java. The logical name
JAVA$EXEC_TRACE is available to help debug Runtime.exec() calls on OpenVMS. Refer
to the OpenVMS Java documentation for more details.
Note:
The srv.onStartCmd command is only used by the controller or pool server to start a server.
If the server is started by any other means, neither the server startup command procedure nor
any commands in the srv.onStartCmd server attribute will be executed.
123