Oracle Fusion Middleware & Application Server

Friday, February 28, 2020

Weblogic Monitoring with Prometheus and Grafana

Since quite some time Oracle is providing in their GitHub Repository the weblogic-monitoring-exporter https://github.com/oracle/weblogic-monitoring-exporter.

This weblogic-monitoring-exporter is basically a war file, which uses the WebLogic Server RESTful Management API to collect defined metrics of your WebLogic Server and exports them in a Prometheus compatible format.

At first you will need to download the get[Version-Number].sh from the GitHub Repository https://github.com/oracle/weblogic-monitoring-exporter/releases. Next step is to create a YAML file in which you define which metrics you want to collect from your WebLogic Server.
Place both files in one directory and execute the get[Version-Number].sh with your YAML file as input parameter. The get[Version-Number].sh will simple download from GitHub the required war file, so make sure that your system on which you execute the script got internet connection, and merge your YAML file into the war file.

Example YAML file named exporter-config.yml

metricsNameSnakeCase: true
queries:
- key: name
  keyName: location
  prefix: wls_server_
  applicationRuntimes:
    key: name
    keyName: app
    componentRuntimes:
      prefix: wls_webapp_config_
      type: WebAppComponentRuntime
      key: name
      values: [deploymentState, contextRoot, sourceInfo, sessionsOpenedTotalCount, openSessionsCurrentCount, openSessionsHighCount]
      servlets:
        prefix: wls_servlet_
        key: servletName
- JVMRuntime:
    prefix: wls_jvm_
    key: name
- executeQueueRuntimes:
    prefix: wls_socketmuxer_
    key: name
    values: [pendingRequestCurrentCount]
- workManagerRuntimes:
    prefix: wls_workmanager_
    key: name
    values: [stuckThreadCount, pendingRequests, completedRequests]
- threadPoolRuntime:
    prefix: wls_threadpool_
    key: name
    values: [executeThreadTotalCount, queueLength, stuckThreadCount, hoggingThreadCount]
- JMSRuntime:
    key: name
    keyName: jmsruntime
    prefix: wls_jmsruntime_
    JMSServers:
      prefix: wls_jms_
      key: name
      keyName: jmsserver
      destinations:
        prefix: wls_jms_dest_
        key: name
        keyName: destination

- persistentStoreRuntimes:
    prefix: wls_persistentstore_
    key: name
- JDBCServiceRuntime:
    JDBCDataSourceRuntimeMBeans:
      prefix: wls_datasource_
      key: name
- JTARuntime:
    prefix: wls_jta_
    key: name


Now let's merge the exporter-config.yml into the wls-exporter.war

 #
./get1.1.1.sh exporter-config.yml 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   607  100   607    0     0   2872      0 --:--:-- --:--:-- --:--:--  2876
100 2018k  100 2018k    0     0  1165k      0  0:00:01  0:00:01 --:--:-- 2247k
created /tmp/ci-21tVFvZiR4
/tmp/ci-21tVFvZiR4 /u00/app/oracle/install
in temp dir
  adding: config.yml (deflated 64%)
/u00/app/oracle/install

As next we can deploy the generated wls-exporter.war on your WebLogic Server, just connect with a browser to your WebLogic Console (http://<servername>:<AdminServerPort>/console)

Navigate under the Domain Structure to the Option Deployments, click the "Lock & Edit" button in the Change Center, if you are running your WebLogic Domain in Production Mode and click the "Install" button under the Configuration tab in the Deployments.


Now navigate to the location of the wls-exporter.war file and select it and hit the button "Next"


Make sure that the option "Install this deployment as an application" is marked and hit the button "Next"


Target the deployment of the wls-exporter.war to your Servers and hit the button "Next"


Leave the default and hit the button "Next"


Leave the default and hit the button "Next"


Click the button "Save" and finally click the button "Activate Changes" in the Change Center


After the successful activation you should see as follows


Now we are done with the deployment of the wls-exporter.war and we can start the application, just go to the tab "Control" and click under "Start" the option "Servicing all requests"


Confirm the startup of the application with "Yes"


After that you should see under the Control tab that the wls-exporter application is now in state Active


The next step is to configure your Prometheus environment to collect the metrics from the wls-exporter application. Just add under the scrape_configs section in your prometheus.yml configuration file the necessary entries for the WebLogic Servers.
Simply add under the scrape_config section in the prometheus.yml a job_name for each WebLogic Managed Server (including your AdminServer). If you are adding multiple WebLogic Servers, its advisable to use the metric_relabel_configs option, to prefix each metric collected by Prometheus with for example the name of the WebLogic Server:

 
# Align the job_name with your settings
# Align the IP address and Ports for the targets with your settings
# Align the metric_relabel_configs with your settings

global:
  scrape_interval:     15s
  evaluation_interval: 15s
  scrape_timeout: 10s
. . .
. . .
scrape_configs:
. . .
. . .
  - job_name: 'WebLogicAdminServer'
    scrape_interval: 10s
    metrics_path: /wls-exporter/metrics
    static_configs:
      - targets: ['172.17.0.1:7001']
    basic_auth:
       username: weblogic
       password: Oracle12c
    metric_relabel_configs:
      - source_labels: [__name__]
        target_label: __name__
        replacement: "DemoAdminServer_${1}"

  - job_name: 'WebLogicDEMOMS1'
    scrape_interval: 10s
    metrics_path: /wls-exporter/metrics
    static_configs:
      - targets: ['172.17.0.1:7003']
    basic_auth:
       username: weblogic
       password: Oracle12c
    metric_relabel_configs:
      - source_labels: [__name__]
        target_label: __name__
        replacement: "DEMOMS1_${1}"

  - job_name: 'WebLogicDEMOMS2'
    scrape_interval: 10s
    metrics_path: /wls-exporter/metrics
    static_configs:
      - targets: ['172.17.0.1:7004']
    basic_auth:
       username: weblogic
       password: Oracle12c
    metric_relabel_configs:
      - source_labels: [__name__]
        target_label: __name__
        replacement: "DEMOMS2_${1}"
. . .
. . .

fter this changes, just restart your Prometheus and check under the Prometheus Console - Targets the status of your job_name.


You can see that we have now 3 Endpoints, one for each WebLogic Server (one AdminServer and two Managed Servers).

Under the Prometheus Console - Graph you can see all your defined metrics for your WebLogic Servers.




As next you can create a Dashboard in your Grafana environment.



So with a little bit of work you can easily monitor your WebLogic Environment with Prometheus and Grafana. In addition you can configure thresholds for your metrics and trigger alerts either via the alertmanager from Prometheus or via Grafana.

One point you should take care of with the weblogic-monitoring-exporter is the usage of the configuration option "domainQualifier: true". As documented this configuration is the metrics with the domain name, but currently the option "domainQualifier: true" will cause a non-Prometheus-conform formatted metric.

name{domain="demo_domain"} demo_domain
DemoAdminServer_wls_server_activation_time{domain="demo_domain",location="DemoAdminServer"} 1581419617765
DemoAdminServer_wls_server_admin_server_listen_port{domain="demo_domain",location="DemoAdminServer"} 7001
DemoAdminServer_wls_server_open_sockets_current_count{domain="demo_domain",location="DemoAdminServer"} 4
DemoAdminServer_wls_server_state_val{domain="demo_domain",location="DemoAdminServer"} 2

As you can see from above listing, the wls-exporter is generating the first line wrong, as the metric value is a string and therefor it can not be parsed by Prometheus.

I have currently opened an issue in the GitHub Repository for the weblogic-monitoring-exporter and I hope to get soon a feedback and/or solution https://github.com/oracle/weblogic-monitoring-exporter/issues/82

But nevertheless, the weblogic-monitoring-exporter is a great add-on for the Oracle WebLogic Server in order to monitor your environment with Prometheus and visualise your metrics with Grafana.

UPDATE 2nd April 2020: the above mentioned problem with the non-conform Prometheus formatted metric is resolved by the Oracle Development Team for the WebLogic-Monitoring-Exporter, just get the release 1.1.2 (https://github.com/oracle/weblogic-monitoring-exporter/releases)


Thursday, February 20, 2020

Cleanup Oracle Fusion Middleware 12c Repository manually

Currently I was cleaning up some of my Oracle Fusion Middleware Forms & Reports test and demo environments manually and wanted to setup them freshly.

As I was lazy, I didn't used the RCU (Repository Creation Utility) for the cleanup, I just did a manual drop user and drop tablespace and cleaned up my $DOMAIN_HOME.

In my case it was a Forms & Reports environment with the Prefix FR12213, so I manually dropped all the Repository Users starting with FR12213 and the corresponding tablespaces.

#
sqlplus / as sysdba

SQL> drop user FR12213_OPSS cascade;
SQL> drop user FR12213_STB cascade;
SQL> drop user FR12213_MDS cascade;
SQL> drop user FR12213_IAU_APPEND cascade;
SQL> drop user FR12213_IAU_VIEWER cascade;
SQL> drop user FR12213_IAU cascade;
SQL> drop user FR12213_WLS_RUNTIME cascade;
SQL> drop user FR12213_WLS cascade;
SQL> drop user FR12213_UMS cascade;

SQL> drop tablespace FR12213_IAS_OPSS including content and datafiles;
SQL> drop tablespace FR12213_IAS_TEMP including content and datafiles;
SQL> drop tablespace FR12213_IAS_UMS including content and datafiles;
SQL> drop tablespace FR12213_IAU including content and datafiles;
SQL> drop tablespace FR12213_MDS including content and datafiles;
SQL> drop tablespace FR12213_STB including content and datafiles;
SQL> drop tablespace FR12213_WLS including content and datafiles;

After that I simply cleaned up the $DOMAIN_HOME and wanted to create the complete WebLogic Domain again including the run of the RCU, everything in silent mode.

While running the RCU following error came up:

#
Processing command line ....
Repository Creation Utility - Checking Prerequisites
Checking Global Prerequisites

ERROR - RCU-6016 Invalid prefix specified.
CAUSE - RCU-6016 The specified prefix already exists.
ACTION - RCU-6016 Specify another prefix.

ERROR - RCU-6091 Component validation failed.
CAUSE - RCU-6091 One or more component specific validation failed.
ACTION - RCU-6091 Check log for more details and fix the validation error.

After a bit of searching around and think, I came to the table SYSTEM.SCHEMA_VERSION_REGISTRY$

#
sqlplus / as sysdba
SQL> select distinct(MRC_NAME) from SYSTEM.SCHEMA_VERSION_REGISTRY$;

MRC_NAME
------------------------------
FR12213

SQL> delete from SYSTEM.SCHEMA_VERSION_REGISTRY$ where MRC_NAME = 'FR12213';
SQL> commit;

After deleting the corresponding rows in the SYSTEM.SCHEMA_VERSION_REGISTRY$ table, the silent execution of the RCU was running without any errors.
So don't forget to cleanup the SYSTEM.SCHEMA_VERSION_REGISTRY$ if you are performing a manual cleanup :-)

The above concept applies to any Oracle Fusion Middleware Component which is using Repository Users created by the RCU (SOA Suite, Forms & Reports and so on)


Friday, February 14, 2020

Oracle 20c Documentation available

Since a few hours the Oracle Database 20c documentation is online.

https://docs.oracle.com/en/database/oracle/oracle-database/20/books.html

There are quite some interesting new features/changes in the new upcoming Oracle 20c release.

The complete list of new features you can find under: https://docs.oracle.com/en/database/oracle/oracle-database/20/newft/new-features.html

One of the most interesting new feature/change is, that from Oracle 20c going, the only supported architecture is only Multitenant.


Enjoy reading the new features :-)


Thursday, February 6, 2020

Huge Number of component_event.xlf* and pki_data*.tmp files in /tmp in Oracle Forms & Reports 12c

If you are running an Oracle Forms and Reports 12c (12.2.1.+) environment over quite some time, you might discover that under the /tmp directory are a quite huge number of files named component_event.xlf* and pki_data*.tmp are generated and filling up your /tmp space.

The pki_data*.tmp files are usually 0 Bytes, but the component_event.xlf* files are between some Bytes up to some 100 Bytes. Over some time, these files are really fill up your /tmp.

These files are generated by the Oracle Platform Security for Java component and they are holding temporarily cache data.

In order to get rid of the component_event.xlf* files, you will just to have modify two configuration files of your WebLogic Domain.

In the configuration file $DOMAIN_HOME/config/fmwconfig/jps-config.xml find the following line and comment this line out.

#
# Original line
<serviceInstanceRef ref="audit.db"/>

# Modified line
<!-- serviceInstanceRef ref="audit.db"/ -->

The second configuration file is the $DOMAIN_HOME/config/fmwconfig/jps-config-jse.xml. Find the following line and comment this line out.

#
# Original line
<serviceInstanceRef ref="audit.db"/>

# Modified line
<!-- serviceInstanceRef ref="audit.db"/ -->

After the above modifications are done, you will have to restart your WebLogic Domain and you can see that no more component_event.xlf* are generated.
There are just the pki_data*.tmp files, but these files are usually 0 Bytes. For this files you can use a normal housekeeping job to clean them up regulary.


Monday, February 3, 2020

Patching Oracle WebLogic Server 12.2.1.4.0 Slim Edition

In my last blog I was showing how to install the new Oracle WebLogic Server 12.2.1.4.0 Slim Installer (https://dirknachbar.blogspot.com/2020/02/oracle-weblogic-server-122140-slim.html), now let's see how the minimised Oracle WebLogic Server 12.2.1.4.0 Slim Edition will handle a patching.

For this I will use the Oracle WLS PATCH SET UPDATE 12.2.1.4.191220 (Patch No. 30689820).

Login as oracle User to your server hosting the Oracle WebLogic Server 12.2.1.4.0 Slim Installation. Transfer the above mentioned Patch to your server and extract the zip file:

#
# set the necessary environment variables
[oracle@wlstest] export ORACLE_HOME=/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
# switch to the extracted patch directory
[oracle@wlstest] cd /u00/app/oracle/patches/30689820
# Lets check the current patch status
[oracle@wlstest] $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 13.9.4.2.1
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle Home       : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
Central Inventory : /u00/app/oracle/oraInventory
   from           : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/oraInst.loc
OPatch version    : 13.9.4.2.1
OUI version       : 13.9.4.0.0
Log file location : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/opatch2020-02-03_14-02-27PM_1.log


OPatch detects the Middleware Home as "/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0"

Lsinventory Output file location : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/lsinv/lsinventory2020-02-03_14-02-27PM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: wlstest.oracle-stuff.com
ARU platform id: 226
ARU platform description:: Linux x86-64


There are no Interim patches installed in this Oracle Home.


--------------------------------------------------------------------------------

OPatch succeeded.

As you can see, no patches so far installed on my fresh WebLogic Server 12.2.1.4.0 Slim Edition, now let's install the WLS PATCH SET UPDATE

#
# set the necessary environment variables
[oracle@wlstest] export ORACLE_HOME=/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
# switch to the extracted patch directory
[oracle@wlstest] cd /u00/app/oracle/patches/30689820
[oracle@wlstest] $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 13.9.4.2.1
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle Home       : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
Central Inventory : /u00/app/oracle/oraInventory
   from           : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/oraInst.loc
OPatch version    : 13.9.4.2.1
OUI version       : 13.9.4.0.0
Log file location : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/opatch2020-02-03_14-02-41PM_1.log


OPatch detects the Middleware Home as "/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0"

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   30689820  

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '30689820' to OH '/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0'
ApplySession: Optional component(s) [ oracle.wls.admin.console.en, 12.2.1.4.0 ] , [ oracle.wls.admin.console.en, 12.2.1.4.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.wls.libraries, 12.2.1.4.0...

Patching component oracle.wls.core.app.server, 12.2.1.4.0...
Patch 30689820 successfully applied.
Log file location: /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/opatch2020-02-03_14-02-41PM_1.log

OPatch succeeded.


# Let's verify the patch apply

[oracle@wlstest] $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 13.9.4.2.1
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle Home       : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
Central Inventory : /u00/app/oracle/oraInventory
   from           : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/oraInst.loc
OPatch version    : 13.9.4.2.1
OUI version       : 13.9.4.0.0
Log file location : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/opatch2020-02-03_14-03-05PM_1.log


OPatch detects the Middleware Home as "/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0"

Lsinventory Output file location : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/opatch/lsinv/lsinventory2020-02-03_14-03-05PM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: wlstest.oracle-stuff.com
ARU platform id: 226
ARU platform description:: Linux x86-64


Interim patches (1) :

Patch  30689820     : applied on Mon Feb 03 14:02:57 CET 2020
Unique Patch ID:  23281789
Patch description:  "WLS PATCH SET UPDATE 12.2.1.4.191220"
   Created on 20 Dec 2019, 17:56:29 hrs PST8PDT
   Bugs fixed:
     26444945, 29671344, 29769772, 30067299, 30153412, 30230430, 30341541
     30342923, 30362026, 30362086, 30589563



--------------------------------------------------------------------------------

OPatch succeeded.


You can see, that the Patch apply went through without any problems, only the Patch apply prints you out some informations, that the to be patched component "oracle.wls.admin.console.en" is not present in the target ORACLE_HOME:

Optional component(s) [ oracle.wls.admin.console.en, 12.2.1.4.0 ] , [ oracle.wls.admin.console.en, 12.2.1.4.0 ]  not present in the Oracle Home or a higher version is found.

Thats just an information, as in the WebLogic Server 12.2.1.4.0 Slim Edition is no WebLogic Server Console present.

Oracle WebLogic Server 12.2.1.4.0 Slim Installer

Since WebLogic Server 12.2.1.4.0 you have a new edition of the Oracle WebLogic Server, it's the Slim Installer. The corresponding software you can download under:

https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html



The Slim Installer is much smaller than the Generic or the Fusion Middleware Infrastructure Installers.
  • WebLogic Generic Installer: 826 MB
  • Fusion Middleware Infrastructure Installer: 1.5 GB
  • WebLogic Slim Installer: 182 MB
Basically the Slim Installer is a full WebLogic Server, but without any examples, no WebLogic Console, no WebLogic Clients, no Maven Plugin and no Java DB.

The installation comes without any graphical installer, its pure command line. So be aware of the command line option for the invoking of the Slim Installer.
In case you will start the Slim Installer, as you are used to the Generic Installer, just with "java -jar fmw_12.2.1.4.0_wls_quick_slim.jar", the installer will install the WebLogic Slim Edition in your present work directory/wls12214 and the corresponding Oracle Inventory will be created under $HOME/oraInventory.

#
# Set the necessary environment variables
# align them to your environment settings
[oracle@wlstest] export JAVA_HOME=/u00/app/oracle/product/jdk1.8.0_221
[oracle@wlstest] export PATH=$JAVA_HOME/bin:$PATH
[oracle@wlstest] pwd
/u00/app/oracle/install
[oracle@wlstest] java -jar fmw_12.2.1.4.0_wls_quick_slim.jar 
Launcher log file is /tmp/OraInstall2020-02-03_10-20-45AM/launcher2020-02-03_10-20-45AM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz.   Actual 2194.918 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 3071 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 11025 MB    Passed
Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2020-02-03_10-20-45AM
Log: /tmp/OraInstall2020-02-03_10-20-45AM/install2020-02-03_10-20-45AM.log

*****************************************************


Distribution Name : Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim
Distribution Version : 12.2.1.4.0

Oracle Inventory : /home/oracle/oraInventory

Oracle Home : /u00/app/oracle/install/wls12214
Java Home : /u00/app/oracle/product/jdk1.8.0_221

Note: Oracle Home not supplied (defaulted to <present dir="" working="">/wls12214)

*****************************************************

Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
Skipping Software Updates
Starting check : CertifiedVersions
Expected result: One of oracle-6, oracle-7, redhat-7, redhat-6, SuSE-11, SuSE-12, SuSE-15
Actual Result: oracle-7.4
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.


Starting check : CheckJDKVersion
Expected result: 1.8.0_191
Actual Result: 1.8.0_221
Check complete. The overall result of this check is: Passed
CheckJDKVersion Check: Success.


Validations are enabled for this session.
Verifying data
Copying Files
Percent Complete : 10
Percent Complete : 20
Percent Complete : 30
Percent Complete : 40
Percent Complete : 50
Percent Complete : 60
Percent Complete : 70
Percent Complete : 80
Percent Complete : 90
Percent Complete : 100

The installation of Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim 12.2.1.4.0 completed successfully.
Logs successfully copied to /u00/app/oracle/install/wls12214/cfgtoollogs/oui.

As you can see from above listing, the ORACLE_HOME location for the new installation is chosen automatically with my present work directory/wls122140 and the Oracle Inventory goes into $HOME/oraInventory.

Second trial, this time with the command line option "java -jar fmw_12.2.1.4.0_wls_quick_slim.jar ORACLE_HOME=$ORACLE_HOME"

#
# Set the necessary environment variables
# align them to your environment settings
[oracle@wlstest] export ORACLE_HOME=/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
[oracle@wlstest] export JAVA_HOME=/u00/app/oracle/product/jdk1.8.0_221
[oracle@wlstest] export PATH=$JAVA_HOME/bin:$PATH
[oracle@wlstest] java -jar fmw_12.2.1.4.0_wls_quick_slim.jar ORACLE_HOME=$ORACLE_HOME
Launcher log file is /tmp/OraInstall2020-02-03_10-27-21AM/launcher2020-02-03_10-27-21AM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz.   Actual 2194.918 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 3071 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 10469 MB    Passed
Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2020-02-03_10-27-21AM
Log: /tmp/OraInstall2020-02-03_10-27-21AM/install2020-02-03_10-27-21AM.log
Setting ORACLE_HOME...

*****************************************************


Distribution Name : Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim
Distribution Version : 12.2.1.4.0

Oracle Inventory : /home/oracle/oraInventory

Oracle Home : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
Java Home : /u00/app/oracle/product/jdk1.8.0_221

*****************************************************

Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
Skipping Software Updates
Starting check : CertifiedVersions
Expected result: One of oracle-6, oracle-7, redhat-7, redhat-6, SuSE-11, SuSE-12, SuSE-15
Actual Result: oracle-7.4
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.


Starting check : CheckJDKVersion
Expected result: 1.8.0_191
Actual Result: 1.8.0_221
Check complete. The overall result of this check is: Passed
CheckJDKVersion Check: Success.


Validations are enabled for this session.
Verifying data
Copying Files
Percent Complete : 10
Percent Complete : 20
Percent Complete : 30
Percent Complete : 40
Percent Complete : 50
Percent Complete : 60
Percent Complete : 70
Percent Complete : 80
Percent Complete : 90
Percent Complete : 100

The installation of Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim 12.2.1.4.0 completed successfully.
Logs successfully copied to /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/oui.

This looks a bit better now, our target installation directory is now under our desired £ORACLE_HOME, but the Oracle Inventory is still under $HOME/oraInventory.

3rd attempt, now with the command line option "java -jar fmw_12.2.1.4.0_wls_quick_slim.jar ORACLE_HOME=$ORACLE_HOME -invPtrLoc /u00/app/oracle/install/oraInst.loc" and a prepare oraInst.loc file in which we define the Oracle Inventory location and the group ownership for the Oracle Inventory.

#
[oracle@wlstest] cat /u00/app/oracle/oraInst.loc

inventory_loc=/u00/app/oracle/oraInventory
inst_group=oinstall

# Set the necessary environment variables
# align them to your environment settings
[oracle@wlstest] export ORACLE_HOME=/u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
[oracle@wlstest] export JAVA_HOME=/u00/app/oracle/product/jdk1.8.0_221
[oracle@wlstest] export PATH=$JAVA_HOME/bin:$PATH
[oracle@wlstest] java -jar fmw_12.2.1.4.0_wls_quick_slim.jar ORACLE_HOME=$ORACLE_HOME -invPtrLoc /u00/app/oracle/install/oraInst.loc 
Launcher log file is /tmp/OraInstall2020-02-03_12-32-47PM/launcher2020-02-03_12-32-47PM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz.   Actual 2194.918 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 3071 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 10468 MB    Passed
Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2020-02-03_12-32-47PM
Log: /tmp/OraInstall2020-02-03_12-32-47PM/install2020-02-03_12-32-47PM.log
Setting ORACLE_HOME...

*****************************************************


Distribution Name : Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim
Distribution Version : 12.2.1.4.0

Oracle Inventory : /u00/app/oracle/oraInventory

Oracle Home : /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0
Java Home : /u00/app/oracle/product/jdk1.8.0_221

*****************************************************

Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
Skipping Software Updates
Starting check : CertifiedVersions
Expected result: One of oracle-6, oracle-7, redhat-7, redhat-6, SuSE-11, SuSE-12, SuSE-15
Actual Result: oracle-7.4
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.


Starting check : CheckJDKVersion
Expected result: 1.8.0_191
Actual Result: 1.8.0_221
Check complete. The overall result of this check is: Passed
CheckJDKVersion Check: Success.


Validations are enabled for this session.
Verifying data
Copying Files
Percent Complete : 10
Percent Complete : 20
Percent Complete : 30
Percent Complete : 40
Percent Complete : 50
Percent Complete : 60
Percent Complete : 70
Percent Complete : 80
Percent Complete : 90
Percent Complete : 100

The installation of Oracle Fusion Middleware 12c WebLogic and Coherence Developer Slim 12.2.1.4.0 completed successfully.
Logs successfully copied to /u00/app/oracle/product/fmw-wls-slim-12.2.1.4.0/cfgtoollogs/oui.

This time everything is located and installed as we want :-)

Now lets compare the space usage between the Oracle WebLogic Generic, Fusion Middleware Infrastructure and the WebLogic Slim:

#
[oracle@wlstest] cd /u00/app/oracle/product
[oracle@wlstest] du -sh fmw*
2.1G fmw-infra-12.2.1.4.0
1.1G fmw-wls-12.2.1.4.0
452M fmw-wls-slim-12.2.1.4.0

As you can see, the WebLogic Generic (fmw-wls-12.2.1.4.0) needs 1.1 GB disk space, the Fusion Middleware Infrastructure (fmw-infra-12.2.1.4.0) needs 2.1 GB and the WebLogic Slim (fmw-wls-slim-12.2.1.4.0) just needs 452 MB (more than half lesser than the Generic Installer and more than 4 times lesser than the Fusion Middleware Infrastructure Installer).

Specially when you will use the WebLogic Slim Installer in a Docker Image, you will gain a lot of disk savings.

After you have installed the WebLogic Slim Installer you can as normal startup the $ORACLE_HOME/oracle_common/common/bin/config.sh to configure and create your WebLogic Domain with the graphical wizard, but be aware, you dont have any WebLogic Console (http://<servername>:<AdminServerPort>/console) afterwards. Everything you need to configure, you will have to do it through wlst or via RESTful Management API.