Forum Stats

  • 3,876,226 Users
  • 2,267,082 Discussions
  • 7,912,474 Comments

Discussions

Oracle 21c XE Windows installer fails silently: Passes garbage characters to dbca call!

Context:

Our Product setup installs Oracle XE 21 automatically in the background and this is validated automatically via an automated test suite. The setup is tested on a set of VM's that are always boostrapped into exactly the same state before testing that the our setup installs correctly - which includes silently installing Oracle XE 21.

We used Oracle 18 XE so far and are in the progress of testing Oracle XE 21 now.

Bug:

With the setup.exe of Oracle XE 21, approx. 1/4 - 1/3 of our automated runs FAIL, because Oracle XE 21 Setup runs through successfully, but fails to set up the OracleServiceXE - the dbca simply didn't do anything during Oracle setup.

We narrowed this down to the msi setup sometimes passing garbage characters to the dbca.bat call:

INFO: cmd.exe /c "C:\OracleXE\app\product\21c\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE. µÌ -templateName XE_Database.dbc

See: (( -gdbName XE. µÌ ))!!

In those cases where the setup runs OK, the logfile (which is UTF16LE btw.) contains:

... dbca.bat -silent -createDatabase -gdbName XE  -templateName XE_Database.dbc ...

Details:

We call the setup like this:

Running Executable <"E:\OracleXE21c\setup.exe" /s /v"RSP_FILE=E:\OracleXE21c\XEInstall-for-myprod.rsp" /v"/L*v C:\Users\SYSTEM~1\AppData\Local\Temp\setup-xe21-myprod.log" /v"/qn"> in Work dir <E:\OracleXE21c> ...

The rsp file looks like this:

#Do not leave any parameter with empty value
#Install Directory location, username can be replaced with current user
INSTALLDIR=C:\OracleXE\app\product\21c\
#Database password, All users are set with this password, Remove the value once installation is complete
PASSWORD=SYS
#If listener port is set to 0, available port will be allocated starting from 1521 automatically
LISTENER_PORT=1526
#If EM express port is set to 0, available port will be used starting from 5550 automatically
EMEXPRESS_PORT=0
#Specify char set of the database
CHAR_SET=AL32UTF8
#Specify the database domain for the db unique name specification
DB_DOMAIN=



Note:

I posted basically the ssame info as comment to an older question in case this has been observed with older versions: https://community.oracle.com/tech/developers/discussion/4294896/oracleservicexe-not-installed-after-correctly-installation

Best Answer

  • user453638
    user453638 Member Posts: 1 Blue Ribbon
    Answer ✓

    I have the same problem. The silent setup cannot be performed without the DB_DOMAIN value in the .rsp file.

    Interactive Setup:

    INFO: cmd.exe /c "D:\oraclexe\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE -templateName XE_Database.dbc -characterSet AL32UTF8 ......

    Silent Setup:

    INFO: cmd.exe /c "D:\oraclexe\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE.°…¡ñ   -templateName XE_Database.dbc -characterSet AL32UTF8 .....

    I think the problem is in the installation package, the db_domain variable is handled correctly in interactive mode, but it is set incorrectly in parsing the .rsp file in silent mode.

    I know that the XE product does not guarantee support but the solution is to either regenerate the installation package or provide a way to set NULL in the DB_DOMANI parameter.

    Martin-3221748

Answers

  • user453638
    user453638 Member Posts: 1 Blue Ribbon
    Answer ✓

    I have the same problem. The silent setup cannot be performed without the DB_DOMAIN value in the .rsp file.

    Interactive Setup:

    INFO: cmd.exe /c "D:\oraclexe\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE -templateName XE_Database.dbc -characterSet AL32UTF8 ......

    Silent Setup:

    INFO: cmd.exe /c "D:\oraclexe\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE.°…¡ñ   -templateName XE_Database.dbc -characterSet AL32UTF8 .....

    I think the problem is in the installation package, the db_domain variable is handled correctly in interactive mode, but it is set incorrectly in parsing the .rsp file in silent mode.

    I know that the XE product does not guarantee support but the solution is to either regenerate the installation package or provide a way to set NULL in the DB_DOMANI parameter.

    Martin-3221748
  • Martin-3221748
    Martin-3221748 Member Posts: 10 Red Ribbon

    @user453638 - Thanks, this seems to make sense and is supported by the fact that when I set DB_DOMAIN to e.g. local the command line seen in the logfile now properly only has one space between

    -dbgName XE.local -template..

    Always seemed weird, that there where two spaces even when it worked.

    Since we need DB_DOMAIN to be empty, we'll have to reset it after the installation, but given that we already have to run a bunch of scripts to setup the XE database for our needs this should work out.

    Eugene Zykov