During the installation of Oracle BI 12c (Version 18.104.22.168.0) a Windows service called “Oracle Business Intelligence [bi]” is automatically created to start & stop the BI services (Weblogic + BI Domain) as a Windows service e.g. to auto startup the BI Services in case the complete windows server is re-booted.
For the current version 22.214.171.124.0 a bug exist which configures the Environment variables incorrectly when the Oracle BI installation is not done to the C:\ drive, but another hard drive within the server, such as D:\ . The issue only applies to starting and stopping the BI Services via the Windows Service method and not to starting/stopping via from the start.cmd command line (as the Windows service points to a different start script located in the oracle.bi.sysman directory and does not use the regular bitools/bin/start.cmd script). The incorrect setting of the Environment variables prevents the Windows service from starting the BI Services and the following error is written to the windows services log file:
BI_PRODUCT_HOME set as c:\windows\system32
ORACLE_HOME set as C:\Windows
The system cannot find the path specified
This is caused by an within the start.cmd script which is called from the Windows service “Oracle Business Intelligence [bi]” and located in the following directory:
The script uses the windows shell command pushd and popd to write the current working directory into the session, but doesn’t catch if the installation is done to a different drive from C:\ when performing a cd (change directory) command. This can be seen by the fact that the BI_PRODUCT_HOME and ORACLE_HOME are referencing (pointing) to the patch of the windows cmd tool C:\windows\system32 rather then the correct Oracle BI installation directory.
As a workaround the pushd and popd have been removed from the start.cmd script and the path has been specified for path Environment variables BI_PRODUCT_HOME & ORACLE_HOME.
ECHO BI_PRODUCT_HOME set as %BI_PRODUCT_HOME%
ECHO ORACLE_HOME set as %ORACLE_HOME%
after saving the file like above the Windows service uses the correct environment variable path, as seen by comparing both highlighted areas below: