Forum Stats

  • 3,838,749 Users
  • 2,262,397 Discussions
  • 7,900,750 Comments

Discussions

Silent Installer with "[FATAL] java.lang.NullPointerException" Error

noschvie
noschvie Member Posts: 7
edited Jan 24, 2019 12:35PM in Database Installation

Oracle 18c (18.3) Database Sever silent installation running under Windows Server 2012R2 / Windows Server 2016 terminates with "[FATAL] java.lang.NullPointerException" error.

pastedImage_0.png

Dude!Dejan T.user12196572User_3FB0S
«1

Answers

  • Dejan T.
    Dejan T. Member Posts: 433 Silver Badge
    edited Nov 12, 2018 7:09PM

    Hi,

    please could you provide us the command & parameters you used for it?

    Did you start the command prompt with admin privileges ("Run as Administrator")?


    You can start it with debug option, to get more details why it crashes:

    setup -debug -J-DTRACING.ENABLED=true -DTRACING.LEVEL=2 -DSRVM_TRACE_LEVEL=2 -DFULLTRACE ...

    or you can install it using GUI, to see does it work at all or not, and generate the response file during the GUI installation.

    BR
    Dejan

    Dude!
  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 7:41AM

    Oracle installer was startet with admin privileges.

    Command:

    .\setup.bat -silent -waitforcompletion -debug -responseFile F:\tmcs\Oracle_18cR1_Server.rsp

    Response File

    ####################################################################

    ## Copyright(c) Oracle Corporation 1998,2018. All rights reserved.##

    ##                                                                ##

    ## Specify values for the variables listed below to customize    ##

    ## your installation.                                            ##

    ##                                                                ##

    ## Each variable is associated with a comment. The comment        ##

    ## can help to populate the variables with the appropriate        ##

    ## values.                                                        ##

    ##                                                                ##

    ## IMPORTANT NOTE: This file contains plain text passwords and    ##

    ## should be secured to have read permission only by oracle user  ##

    ## or db administrator who owns this installation.                ##

    ##                                                                ##

    ####################################################################

    #-------------------------------------------------------------------------------

    # Do not change the following system generated value.

    #-------------------------------------------------------------------------------

    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0

    #-------------------------------------------------------------------------------

    # Specify the installation option.

    # It can be one of the following:

    #  - INSTALL_DB_SWONLY

    #  - INSTALL_DB_AND_CONFIG

    #-------------------------------------------------------------------------------

    oracle.install.option=INSTALL_DB_AND_CONFIG

    #-------------------------------------------------------------------------------

    # Specify the Unix group to be set for the inventory directory.

    #-------------------------------------------------------------------------------

    UNIX_GROUP_NAME=

    #-------------------------------------------------------------------------------

    # Specify the complete path of the Oracle Home.

    #-------------------------------------------------------------------------------

    ORACLE_HOME=

    #-------------------------------------------------------------------------------

    # Specify the complete path of the Oracle Base.

    #-------------------------------------------------------------------------------

    ORACLE_BASE=D:\Oracle\app

    #-------------------------------------------------------------------------------

    # Specify the installation edition of the component.                  

    #                                                          

    # The value should contain only one of these choices.

        

    #  - EE    : Enterprise Edition

                                

    #  - SE2    : Standard Edition 2

    #-------------------------------------------------------------------------------

    oracle.install.db.InstallEdition=SE2

    ###############################################################################

    #                                                                            #

    # PRIVILEGED OPERATING SYSTEM GROUPS                                          #

    # ------------------------------------------                                  #

    # Provide values for the OS groups to which SYSDBA and SYSOPER privileges    #

    # needs to be granted. If the install is being performed as a member of the  #

    # group "dba", then that will be used unless specified otherwise below.      #

    #                                                                            #

    # The value to be specified for OSDBA and OSOPER group is only for UNIX based #

    # Operating System.                                                          #

    #                                                                            #

    ###############################################################################

    #------------------------------------------------------------------------------

    # The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges.

    #-------------------------------------------------------------------------------

    oracle.install.db.OSDBA_GROUP=

    #------------------------------------------------------------------------------

    # The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges.

    # The value to be specified for OSOPER group is optional.

    #------------------------------------------------------------------------------

    oracle.install.db.OSOPER_GROUP=

    #------------------------------------------------------------------------------

    # The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges.

    #------------------------------------------------------------------------------

    oracle.install.db.OSBACKUPDBA_GROUP=

    #------------------------------------------------------------------------------

    # The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges.

    #------------------------------------------------------------------------------

    oracle.install.db.OSDGDBA_GROUP=

    #------------------------------------------------------------------------------

    # The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges.

    #------------------------------------------------------------------------------

    oracle.install.db.OSKMDBA_GROUP=

    #------------------------------------------------------------------------------

    # The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges.

    #------------------------------------------------------------------------------

    oracle.install.db.OSRACDBA_GROUP=

    ###############################################################################

    #                                                                            #

    #                              Grid Options                                  #

    #                                                                            #

    ###############################################################################

    #------------------------------------------------------------------------------

    # Value is required only if the specified install option is INSTALL_DB_SWONLY

    #

    # Specify the cluster node names selected during the installation.

    #

    # Example : oracle.install.db.CLUSTER_NODES=node1,node2

    #------------------------------------------------------------------------------

    oracle.install.db.CLUSTER_NODES=

    ###############################################################################

    #                                                                            #

    #                        Database Configuration Options                      #

    #                                                                            #

    ###############################################################################

    #-------------------------------------------------------------------------------

    # Specify the type of database to create.

    # It can be one of the following:

    #  - GENERAL_PURPOSE                    

    #  - DATA_WAREHOUSE

    # GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications.

    # DATA_WAREHOUSE : A starter database optimized for data warehousing applications.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

    #-------------------------------------------------------------------------------

    # Specify the Starter Database Global Database Name.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.globalDBName=tmcsdb

    #-------------------------------------------------------------------------------

    # Specify the Starter Database SID.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.SID=tmcsdb

    #-------------------------------------------------------------------------------

    # Specify whether the database should be configured as a Container database.

    # The value can be either "true" or "false". If left blank it will be assumed

    # to be "false".

    #-------------------------------------------------------------------------------

    oracle.install.db.ConfigureAsContainerDB=false

    #-------------------------------------------------------------------------------

    # Specify the  Pluggable Database name for the pluggable database in Container Database.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.PDBName=

    #-------------------------------------------------------------------------------

    # Specify the Starter Database character set.

    #                                            

    #  One of the following

    #  AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,

    #  EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,

    #  BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,

    #  AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,

    #  IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,

    #  KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,

    #  ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.characterSet=AL32UTF8

    #------------------------------------------------------------------------------

    # This variable should be set to true if Automatic Memory Management

    # in Database is desired.

    # If Automatic Memory Management is not desired, and memory allocation

    # is to be done manually, then set it to false.

    #------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.memoryOption=false

    #-------------------------------------------------------------------------------

    # Specify the total memory allocation for the database. Value(in MB) should be

    # at least 256 MB, and should not exceed the total physical memory available

    # on the system.

    # Example: oracle.install.db.config.starterdb.memoryLimit=512

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.memoryLimit=3276

    #-------------------------------------------------------------------------------

    # This variable controls whether to load Example Schemas onto

    # the starter database or not.

    # The value can be either "true" or "false". If left blank it will be assumed

    # to be "false".

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.installExampleSchemas=false

    ###############################################################################

    #                                                                            #

    # Passwords can be supplied for the following four schemas in the          #

    # starter database:                                    #

    #  SYS                                                                      #

    #  SYSTEM                                                                    #

    #  DBSNMP (used by Enterprise Manager)                                      #

    #                                                                            #

    # Same password can be used for all accounts (not recommended)              #

    # or different passwords for each account can be provided (recommended)      #

    #                                                                            #

    ###############################################################################

    #------------------------------------------------------------------------------

    # This variable holds the password that is to be used for all schemas in the

    # starter database.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.password.ALL=

    #-------------------------------------------------------------------------------

    # Specify the SYS password for the starter database.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.password.SYS=myPassword18c

    #-------------------------------------------------------------------------------

    # Specify the SYSTEM password for the starter database.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.password.SYSTEM=myPassword18c

    #-------------------------------------------------------------------------------

    # Specify the DBSNMP password for the starter database.

    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.password.DBSNMP=

    #-------------------------------------------------------------------------------

    # Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.password.PDBADMIN=

    #-------------------------------------------------------------------------------

    # Specify the management option to use for managing the database.

    # Options are:

    # 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express.

    # 2. DEFAULT  -If you want to manage your database using the default Database Express option.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.managementOption=DEFAULT

    #-------------------------------------------------------------------------------

    # Specify the OMS host to connect to Cloud Control.

    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.omsHost=

    #-------------------------------------------------------------------------------

    # Specify the OMS port to connect to Cloud Control.

    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.omsPort=0

    #-------------------------------------------------------------------------------

    # Specify the EM Admin user name to use to connect to Cloud Control.

    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.emAdminUser=

    #-------------------------------------------------------------------------------

    # Specify the EM Admin password to use to connect to Cloud Control.

    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.emAdminPassword=

    ###############################################################################

    #                                                                            #

    # SPECIFY RECOVERY OPTIONS                                                  #

    # ------------------------------------                                      #

    # Recovery options for the database can be mentioned using the entries below  #

    #                                                                            #

    ###############################################################################

    #------------------------------------------------------------------------------

    # This variable is to be set to false if database recovery is not required. Else

    # this can be set to true.

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.enableRecovery=false

    #-------------------------------------------------------------------------------

    # Specify the type of storage to use for the database.

    # It can be one of the following:

    #  - FILE_SYSTEM_STORAGE

    #  - ASM_STORAGE

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE

    #-------------------------------------------------------------------------------

    # Specify the database file location which is a directory for datafiles, control

    # files, redo logs.      

    #

    # Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=D:\Oracle18c\oradata

    #-------------------------------------------------------------------------------

    # Specify the recovery location.

    #

    # Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE

    #-------------------------------------------------------------------------------

    oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

    #-------------------------------------------------------------------------------

    # Specify the existing ASM disk groups to be used for storage.

    #

    # Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE

    #-------------------------------------------------------------------------------

    oracle.install.db.config.asm.diskGroup=

    #-------------------------------------------------------------------------------

    # Specify the password for ASMSNMP user of the ASM instance.              

    #

    # Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE

    #-------------------------------------------------------------------------------

    oracle.install.db.config.asm.ASMSNMPPassword=

    #----------------------------------------------------------------------------------------------

    # Specify the Oracle Home user.              

    #

    # Oracle recommends that you specify a Windows User Account with limited privilege to install

    # and configure a secure Oracle home. Set oracle.install.IsVirtualAccount to true

    # if you want to use Virtual Account.

    #

    # Set oracle.install.IsBuiltInAccount and oracle.install.IsVirtualAccount to false if you want to use Windows Account user

    # as Oracle Home user.

    #------------------------------------------------------------------------------------------------

    oracle.install.IsBuiltInAccount=false

    oracle.install.IsVirtualAccount=true

    oracle.install.OracleHomeUserName=

    oracle.install.OracleHomeUserPassword=

  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 7:51AM

    setup -debug -J-DTRACING.ENABLED=true -DTRACING.LEVEL=2 -DSRVM_TRACE_LEVEL=2 -DFULLTRACE ...

    debug option unknown.

    Command

    .\setup.bat -silent -waitforcompletion -debug -logLevel finest -responseFile F:\tmcs\Oracle_18cR1_Server.rsp

    output / stacktrace added.

    ---# Begin Stacktrace #---------------------------

    ID: oracle.install.commons.util.exception.AbstractErrorAdvisor:4878

    java.lang.NullPointerException

        at java.util.Hashtable.put(Hashtable.java:460)

        at java.util.Properties.setProperty(Properties.java:166)

        at java.lang.System.setProperty(System.java:796)

        at oracle.install.ivw.db.driver.DBImageSetupDriver.prepareJob(DBImageSetupDriver.java:528)

        at oracle.install.ivw.db.driver.DBImageSetupDriver.setup(DBImageSetupDriver.java:339)

        at oracle.install.commons.base.interview.common.action.SetupAction$1.call(SetupAction.java:62)

        at oracle.install.commons.base.interview.common.action.SetupAction$1.call(SetupAction.java:58)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

        at java.lang.Thread.run(Thread.java:748)

    ---# End Stacktrace #-----------------------------

  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 7:53AM

    Installer runs successfully with GUI, but terminated with same exception using the GUI generated response file.

  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 8:24AM

    running with option -executePrereqs

    Command

    .\setup.bat -silent -waitforcompletion -debug -executePrereqs -responseFile F:\tmcs\Oracle_18cR1_Server.rsp

    pastedImage_1.png

  • Dejan T.
    Dejan T. Member Posts: 433 Silver Badge
    edited Nov 13, 2018 8:57AM

    I noticed, the oracle.install.OracleHomeUserName and oracle.install.OracleHomeUserPassword are not set - have you tried to install it when those values are set?

    Because java.lang.NullPointerException and java.util.Hashtable.put are probably caused by some missing key/value within response file...

  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 9:30AM

    Yes, I did.

    Same exception

    #----------------------------------------------------------------------------------------------

    # Specify the Oracle Home user.

    #

    # Oracle recommends that you specify a Windows User Account with limited privilege to install

    # and configure a secure Oracle home. Set oracle.install.IsVirtualAccount to true

    # if you want to use Virtual Account.

    #

    # Set oracle.install.IsBuiltInAccount and oracle.install.IsVirtualAccount to false if you want to use Windows Account user

    # as Oracle Home user.

    #------------------------------------------------------------------------------------------------

    oracle.install.IsBuiltInAccount=false

    oracle.install.IsVirtualAccount=false

    oracle.install.OracleHomeUserName=myOracleHomeUser

    oracle.install.OracleHomeUserPassword=

  • noschvie
    noschvie Member Posts: 7
    edited Nov 13, 2018 9:50AM

    All keys within the response file have a value associated, exept of "oracle.install.db.CLUSTER_NODES="

    "oracle.install.db.CLUSTER_NODES=" with a value terminated with an error.

  • Dejan T.
    Dejan T. Member Posts: 433 Silver Badge
    edited Nov 17, 2018 5:13PM

    What is the status of this issue? Did you solve it somehow?

  • supercharger
    supercharger Member Posts: 2 Red Ribbon
    edited Dec 3, 2018 3:54AM

    Well guys,

    I ran into the same issue but then stumbled accross a general hint about installation.

    I already wondered, why there were so many directories in my oracle setup folder and why they looked so much like what's inside an ORACLE_HOME ...

    Simple answer: it is the ORACLE_HOME

    Oracle seems to have changed the install procedure here.

    So steps to take for silent install of 18.c:

    - unpack your installer archive to the desired folder (e.g. D:\app\oracle\product\18.3.0\dbhome_1)

    - modify your response file you generated before with the GUI. It will miss the entry "ORACLE_HOME=D:\app\oracle\product\18.3.0\dbhome_1", so you have to add it there

    - run your cmd for silent install

    Done ! (at least it worked for me)

    Oh, wait - there's another pitfall you should avoid !
    In case you install with a dedicated Windows Account you best create it before and grant it read/write to the ORACLE_BASE.
    Or you make sure somehow else, it's got read/write access there by group membership.

    It runs the oracle service later on and if it can't create files in this folder structure you'll get in trubles pretty sure ...

    just forget about the above !
    This worked only once and I cannot reproduce it.
    What I have reproduced many, many times later on, is the behaviour described by the original poster.
    I tried many approaches, like handing over the settings as paramater instead of using an *.rsp file but none of this worked.
    When I gave no password I got a warning, that it is missing.
    As soon as I gave it, I ran into the well known error.

    To my assumption setup is no able to read the password properly and pass it over to it's further processing.
    Filed this as a bug with oracle now.

    Dejan T.