Oracle Fusion Middleware & Application Server

Friday, June 28, 2019

Oracle 19c Certified for Oracle Fusion Middleware 12.2.1.2.0 and 12.2.1.3.0

Since a few days Oracle updated the Certified Matrix for the Oracle Fusion Middleware Products concerning certified Oracle Databases.

Now Oracle 19c (19.3+) is certified with Oracle Fusion Middleware 12.2.1.2.0 and 12.2.1.3.0.

For example Oracle WebLogic Server 12.2.1.3.0 / 12.2.1.2.0 can use an Oracle 19c Database as target database for AppData, Repository Creation Utility (RCU) and WLS Features.



The same applies to Oracle Forms & Repors 12.2.1.3.0 / 12.2.1.2.0.



As well for Oracle SOA Suite 12.2.1.3.0 / 12.2.1.2.0



The complete certification matrix can be retrieved either in My Oracle Support https://support.oracle.com under the tab "Certifications" or on the Oracle Technical Resources (formerly Oracle Technology Network) website https://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html



Thursday, June 27, 2019

Offline Updating WebLogic Images using Oracle WebLogic Image Tool

This is next article about the Oracle WebLogic Image Tool https://github.com/oracle/weblogic-image-tool, in which I will show you, how to update an existing Oracle WebLogic Server Image in an offline environment (no access to the internet).

The previous articles can be found under:

Let's say you have a Docker image with Oracle WebLogic Server 12.2.1.3.0 plus PSU April 2019 (12.2.1.3.190416), in my environment called oracle/wls_new:1.0, and you want to update your Docker Image with the patch 29921455 (CVE-2019-2729 https://www.oracle.com/technetwork/security-advisory/alert-cve-2019-2729-5570780.html).

Just download the Patch 29921455 for the release 12.2.1.3.190416 and copy the Zip File to your target server, assuming to /work/software. The only tricky part here is to provide the correct format for the parameter --patchID for the command cache addPatch of the imagetool. The Patch is 29921455, but this Patch ID exists for multiple Oracle WebLogic Releases (e.g. 12.2.1.3.190416, 12.2.1.3.190115). So you need to define your --patchID as <PatchNumber>_<WebLogicRelease>.
So for the shown example 29921455_12.2.1.3.190419.

#
$ docker images | grep oracle/wls_new
oracle/wls_new         1.0                        dad1b3068c40        2 hours ago         1.22GB


$ cd <Path to your imagetool bin directory>

# Source the setup.sh
$ . ./setup.sh

# Add the Patch to the imagetool cache
$ imagetool cache addPatch --patchId=29921455_12.2.1.3.190416 --path=/work/software/p29921455_12213190416_Generic.zip
[2019-06-27 13:02:28] [com.oracle.weblogic.imagetool.cli.cache.AddPatchEntry] [INFO   ] adding key 29921455_12.2.1.3.190416 
[2019-06-27 13:02:28] [com.oracle.weblogic.imagetool.cli.cache.AddPatchEntry] [INFO   ] adding key 29921455_12.2.1.3.190416 
[2019-06-27 13:02:28] [com.oracle.weblogic.imagetool.cli.cache.AddPatchEntry] [INFO   ] Added Patch entry 29921455_12.2.1.3.190416=/work/software/p29921455_12213190416_Generic.zip for wls

# Check if the Patch was correctly added to the imagetool cache
$ imagetool cache listItems
Cache contents
cache.dir=/home/din/cache
jdk_8u202=/work/software/server-jre-8u202-linux-x64.tar.gz
29016089_12.2.1.3.0=/home/din/cache/p29016089_122130_Generic.zip
wls_12.2.1.3.0=/work/software/fmw_12.2.1.3.0_wls_Disk1_1of1.zip
28186730_opatch=/home/din/cache/p28186730_139400_Generic.zip
29921455_12.2.1.3.190416=/work/software/p29921455_12213190416_Generic.zip


As you can see, the patch 29921455 was added to the imagetool cache as entry id "29921455_12.2.1.3.190416".

Now we can update the existing Docker image. In my environment the Docker image is called oracle/wls_new:1.0. My new target image should be oracle/wls_new:2.0 and should contain the patch 29921455.
For this you need to execute the imagetool with the command "update", declare the source image (--fromImage) and the target image (--tag) and reference the patch to be applied (--patches). For the option "--patches" you have to use the cache entry with which you added the patch to the imagetool cache. In my example "29921455_12.2.1.3.190416".

#
$ imagetool update --fromImage oracle/wls_new:1.0 --tag oracle/wls_new:2.0 --patches 29921455_12.2.1.3.190416
[2019-06-27 13:17:25] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] tmp directory in for docker run: /home/din/wlsimgbuilder_temp1812783530686130006 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] OPatch patch number 28186730 cached file /home/din/cache/p28186730_139400_Generic.zip version 13.9.4.2.0 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ID="ol" 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] OPATCH_VERSION=13.9.4.2.0 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] WLS_VERSION=12.2.1.3.0 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ORACLE_HOME=/u01/oracle 
[2019-06-27 13:17:32] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] VERSION_ID="7.6" 
. . .
. . .
Backup area for restore has been cleaned up. For a complete list of files/directories
deleted, Please refer log file.

OPatch succeeded.
Removing intermediate container c7487cd7ea8b
 ---> 6669bd543ace
Successfully built 6669bd543ace
Successfully tagged oracle/wls_new:2.0

# Lets check
$ docker images | grep oracle/wls_new
oracle/wls_new         2.0                        6669bd543ace        15 minutes ago      1.35GB
oracle/wls_new         1.0                        dad1b3068c40        2 hours ago         1.22GB

# Get inside the new Docker Image and check if the patch was applied correctly
$ docker run --rm -it oracle/wls_new:2.0 /bin/bash
[oracle@0eae36070e05 oracle]$ cd OPatch
[oracle@0eae36070e05 OPatch]$ ./opatch lsinventory
. . .
. . .
Local Machine Information::
Hostname: 0eae36070e05
ARU platform id: 226
ARU platform description:: Linux x86-64


Interim patches (6) :

Patch  29921455     : applied on Thu Jun 27 11:17:56 GMT 2019
Unique Patch ID:  22975494
Patch description:  "One-off"
   Created on 18 Jun 2019, 13:22:28 hrs PST8PDT
   Bugs fixed:
     29921455
   This patch overlays patches:
     29016089
   This patch needs patches:
     29016089
   as prerequisites
. . .
. . .
OPatch succeeded.
[oracle@0eae36070e05 OPatch]$ exit


Now we have a new Docker image which was build as oracle/wls_new:2.0 and it contains the patch 29921455.


Monday, June 24, 2019

Updating WebLogic Images using Oracle WebLogic Image Tool

On 21st June 2019 I was showing in a blog post the Oracle WebLogic Image Tool and how to create Oracle WebLogic Images on Docker with the Oracle WebLogic Image Tool https://dirknachbar.blogspot.com/2019/06/oracle-weblogic-image-tool.html


Today, I will show how to update an existing Oracle WebLogic Image on Docker with the Oracle WebLogic Image Tool https://github.com/oracle/weblogic-image-tool

Let's assume, I have one Oracle WebLogic 12.2.1.3.0 Docker Image named oracle/wls_serverjre:1.0 and I want to apply the Patch 29637821 and tag the Image as oracle/wls_serverjre:2.0

#
$ docker images | grep oracle/wls_serverjre
oracle/wls_serverjre   1.0                        ca40e90b620f        3 hours ago         1.22GB

# Lets get into the oracle/wls_serverjre:1.0 Image
# and check which Patches are already applied

$ docker run --rm -it oracle/wls_serverjre:1.0 /bin/bash

[oracle@c629e274ef67 oracle]$ cd OPatch/
[oracle@c629e274ef67 OPatch]$ ./opatch lsinventory
Oracle Interim Patch Installer version 13.9.4.2.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/oracle
Central Inventory : /u01/oracle/oraInventory
   from           : /u01/oracle/oraInst.loc
OPatch version    : 13.9.4.2.0
OUI version       : 13.9.4.0.0
Log file location : /u01/oracle/cfgtoollogs/opatch/opatch2019-06-24_10-28-39AM_1.log


OPatch detects the Middleware Home as "/u01/oracle"

Lsinventory Output file location : /u01/oracle/cfgtoollogs/opatch/lsinv/lsinventory2019-06-24_10-28-39AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: c629e274ef67
ARU platform id: 226
ARU platform description:: Linux x86-64


Interim patches (5) :

Patch  29016089     : applied on Mon Jun 24 08:02:18 GMT 2019
Unique Patch ID:  22640288
Patch description:  "WLS PATCH SET UPDATE 12.2.1.3.190416"
   Created on 31 Jan 2019, 00:50:49 hrs PST8PDT
   Bugs fixed:
     23076695, 23103220, 25387569, 25488428, 25580220, 25665727, 25750303
     25800186, 25987400, 25993295, 26026959, 26080417, 26098043, 26144830
     26145911, 26248394, 26267487, 26268190, 26353793, 26439373, 26473149
     26499391, 26502060, 26547016, 26589850, 26608537, 26624375, 26626528
     26731253, 26791760, 26806438, 26828499, 26835012, 26929163, 26936500
     26943614, 26985581, 27033250, 27055227, 27086845, 27111664, 27117282
     27118731, 27131483, 27187631, 27213775, 27234961, 27272911, 27284496
     27397287, 27411153, 27417245, 27445260, 27469756, 27486993, 27516977
     27561226, 27603087, 27617877, 27693510, 27803728, 27819370, 27912485
     27927071, 27928833, 27934864, 27947832, 27948303, 27988175, 28071913
     28103938, 28110087, 28138954, 28140800, 28142116, 28149607, 28166483
     28171852, 28172380, 28311332, 28313163, 28319690, 28360225, 28375173
     28375702, 28409586, 28503638, 28550962, 28559579, 28594324, 28626991
     28632521, 28651365, 28748179, 28774974, 28874066, 28891448, 28895280
     28958819, 28984617, 29140508, 29140516, 29140540, 29140549, 29140551
     29140555

Patch  26355633     : applied on Mon Jun 24 08:00:52 GMT 2019
Unique Patch ID:  21447583
Patch description:  "One-off"
   Created on 1 Aug 2017, 21:40:20 hrs UTC
   Bugs fixed:
     26355633

Patch  26287183     : applied on Mon Jun 24 08:00:43 GMT 2019
Unique Patch ID:  21447582
Patch description:  "One-off"
   Created on 1 Aug 2017, 21:41:27 hrs UTC
   Bugs fixed:
     26287183

Patch  26261906     : applied on Mon Jun 24 08:00:29 GMT 2019
Unique Patch ID:  21344506
Patch description:  "One-off"
   Created on 12 Jun 2017, 23:36:08 hrs UTC
   Bugs fixed:
     25559137, 25232931, 24811916

Patch  26051289     : applied on Mon Jun 24 08:00:25 GMT 2019
Unique Patch ID:  21455037
Patch description:  "One-off"
   Created on 31 Jul 2017, 22:11:57 hrs UTC
   Bugs fixed:
     26051289



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

OPatch succeeded.
[oracle@c629e274ef67 OPatch]$ exit

As you can see from the above displayed opatch lsinventory, on the oracle/wls_serverjre:1.0 are just the 4 Patches which are applied during the base software installation and the latest PSU 29016089 from April 2019.

Now let's start to update the Docker Image oracle/wls_serverjre:1.0 and apply the Patch 29637821

#
$ imagetool update \
          --fromImage oracle/wls_serverjre:1.0 \
          --tag oracle/wls_serverjre:2.0 \
          --user <Your MyOracleSupport UserAccount> \
          --password=<Your MyOracleSupport Password> \
          --patches p29637821
[2019-06-24 12:31:42] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] tmp directory in for docker run: /home/din/wlsimgbuilder_temp3197293039367443425 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ID="ol" 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] OPATCH_VERSION=13.9.4.2.0 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] WLS_VERSION=12.2.1.3.0 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ORACLE_HOME=/u01/oracle 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] VERSION_ID="7.6" 
[2019-06-24 12:31:50] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] opatch-lsinventory file exists at: /home/din/wlsimgbuilder_temp3197293039367443425/opatch-lsinventory.txt 
[Fatal Error] :11:11: Open quote is expected for attribute "rel" associated with an  element type  "link".
[2019-06-24 12:32:23] [com.oracle.weblogic.imagetool.cli.CLIDriver] [SEVERE ] Response code: -1, message: Malformed XML document 

First trial => FAILED ! Unfortunately the documentation is is a bit confusing on this section, it just states that sometimes you have to use p[nnnnnnnn] and sometimes just the PatchNumber without the starting "p".  So in case you receive above shown error, just try it without the leading "p" and use just the plain PatchNumber.

#
$ imagetool update \
          --fromImage oracle/wls_serverjre:1.0 \
          --tag oracle/wls_serverjre:2.0 \
          --user <Your MyOracleSupport UserAccount> \
          --password=<Your MyOracleSupport Password> \
          --patches 29637821

[2019-06-24 12:34:38] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] tmp directory in for docker run: /home/din/wlsimgbuilder_temp402222832861943526 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ID="ol" 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] OPATCH_VERSION=13.9.4.2.0 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] WLS_VERSION=12.2.1.3.0 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] ORACLE_HOME=/u01/oracle 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] VERSION_ID="7.6" 
[2019-06-24 12:34:46] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] opatch-lsinventory file exists at: /home/din/wlsimgbuilder_temp402222832861943526/opatch-lsinventory.txt 
[2019-06-24 12:35:17] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] patch conflict check successful 
[2019-06-24 12:35:26] [com.oracle.weblogic.imagetool.cli.menu.UpdateImage] [INFO   ] docker cmd = docker build --force-rm=true --no-cache --tag oracle/wls_serverjre:2.0 --build-arg BASE_IMAGE=oracle/wls_serverjre:1.0 --build-arg PATCHDIR=patches /home/din/wlsimgbuilder_temp6168038296324443485 
Sending build context to Docker daemon  22.53kB
. . . 
. . .
Backup area for restore has been cleaned up. For a complete list of files/directories
deleted, Please refer log file.

OPatch succeeded.
Removing intermediate container d47fbeb76474
 ---> 1556d1cd3aa7
Successfully built 1556d1cd3aa7
Successfully tagged oracle/wls_serverjre:2.0

Now, we can check if the new Docker Image was build correctly and if the Patch 29637821 was correctly applied on the new Image.

#
$ docker images | grep oracle/wls_serverjre
oracle/wls_serverjre   2.0                        1556d1cd3aa7        2 minutes ago      1.22GB
oracle/wls_serverjre   1.0                        ca40e90b620f        3 hours ago         1.22GB

$ docker run --rm -it oracle/wls_serverjre:2.0 /bin/bash

[oracle@7170ca6878ab oracle]$ cd OPatch/
[oracle@7170ca6878ab OPatch]$ ./opatch lsinventory
Oracle Interim Patch Installer version 13.9.4.2.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/oracle
Central Inventory : /u01/oracle/oraInventory
   from           : /u01/oracle/oraInst.loc
OPatch version    : 13.9.4.2.0
OUI version       : 13.9.4.0.0
Log file location : /u01/oracle/cfgtoollogs/opatch/opatch2019-06-24_10-36-41AM_1.log


OPatch detects the Middleware Home as "/u01/oracle"

Lsinventory Output file location : /u01/oracle/cfgtoollogs/opatch/lsinv/lsinventory2019-06-24_10-36-41AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: 7170ca6878ab
ARU platform id: 226
ARU platform description:: Linux x86-64


Interim patches (6) :

Patch  29637821     : applied on Mon Jun 24 10:35:39 GMT 2019
Unique Patch ID:  22888395
Patch description:  "One-off"
   Created on 24 Apr 2019, 22:39:34 hrs PST8PDT
   Bugs fixed:
     29637821

Patch  29016089     : applied on Mon Jun 24 08:02:18 GMT 2019
Unique Patch ID:  22640288
Patch description:  "WLS PATCH SET UPDATE 12.2.1.3.190416"
   Created on 31 Jan 2019, 00:50:49 hrs PST8PDT
   Bugs fixed:
     23076695, 23103220, 25387569, 25488428, 25580220, 25665727, 25750303
     25800186, 25987400, 25993295, 26026959, 26080417, 26098043, 26144830
     26145911, 26248394, 26267487, 26268190, 26353793, 26439373, 26473149
     26499391, 26502060, 26547016, 26589850, 26608537, 26624375, 26626528
     26731253, 26791760, 26806438, 26828499, 26835012, 26929163, 26936500
     26943614, 26985581, 27033250, 27055227, 27086845, 27111664, 27117282
     27118731, 27131483, 27187631, 27213775, 27234961, 27272911, 27284496
     27397287, 27411153, 27417245, 27445260, 27469756, 27486993, 27516977
     27561226, 27603087, 27617877, 27693510, 27803728, 27819370, 27912485
     27927071, 27928833, 27934864, 27947832, 27948303, 27988175, 28071913
     28103938, 28110087, 28138954, 28140800, 28142116, 28149607, 28166483
     28171852, 28172380, 28311332, 28313163, 28319690, 28360225, 28375173
     28375702, 28409586, 28503638, 28550962, 28559579, 28594324, 28626991
     28632521, 28651365, 28748179, 28774974, 28874066, 28891448, 28895280
     28958819, 28984617, 29140508, 29140516, 29140540, 29140549, 29140551
     29140555

Patch  26355633     : applied on Mon Jun 24 08:00:52 GMT 2019
Unique Patch ID:  21447583
Patch description:  "One-off"
   Created on 1 Aug 2017, 21:40:20 hrs UTC
   Bugs fixed:
     26355633

Patch  26287183     : applied on Mon Jun 24 08:00:43 GMT 2019
Unique Patch ID:  21447582
Patch description:  "One-off"
   Created on 1 Aug 2017, 21:41:27 hrs UTC
   Bugs fixed:
     26287183

Patch  26261906     : applied on Mon Jun 24 08:00:29 GMT 2019
Unique Patch ID:  21344506
Patch description:  "One-off"
   Created on 12 Jun 2017, 23:36:08 hrs UTC
   Bugs fixed:
     25559137, 25232931, 24811916

Patch  26051289     : applied on Mon Jun 24 08:00:25 GMT 2019
Unique Patch ID:  21455037
Patch description:  "One-off"
   Created on 31 Jul 2017, 22:11:57 hrs UTC
   Bugs fixed:
     26051289



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

OPatch succeeded.

You can see, that the new WebLogic Server Image oracle/wls_serverjre:2.0 was correctly build and the Patch 29637821 was applied correctly to the new Image. The only minor problem is the handling of the Patch Number with the Oracle WebLogic Image Tool, if Oracle can with a unique approach how to pass the Patches (either with leading "p" or without), the tool becomes really useful.


Friday, June 21, 2019

Oracle WebLogic Image Tool

As I am currently working mainly with Oracle Products on Docker (Oracle Databases, Oracle JDK's and Oracle WebLogic Servers) I had a quick look on the Oracle WebLogic Image Tool https://github.com/oracle/weblogic-image-tool

This utility provided by Oracle is creating for you Docker Images of Oracle WebLogic Servers, downloads Patches directly from My Oracle Support and applying these patches into your Docker Image.

What you will need to do, at first get the Oracle WebLogic Image Tool from GitHub, and build the project with Maven, take note that you need to create upfront the build a cache directory under $HOME !

#
# Clone the Oracle WebLogic Image Tool from GitHub
$ git clone https://github.com/oracle/weblogic-image-tool.git
Cloning into 'weblogic-image-tool'...
remote: Enumerating objects: 303, done.
remote: Counting objects: 100% (303/303), done.
remote: Compressing objects: 100% (169/169), done.
remote: Total 2339 (delta 117), reused 243 (delta 81), pack-reused 2036
Receiving objects: 100% (2339/2339), 410.24 KiB | 1.24 MiB/s, done.
Resolving deltas: 100% (985/985), done.

# Create the required cache directory under $HOME
$ mkdir $HOME/cache

# Build the project with Maven
$ mvn clean package
. . .
. . .
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ imagetool ---
[INFO] Building jar: /work/projects/weblogic-image-tool/imagetool/target/imagetool.jar
[INFO] 
[INFO] --- exec-maven-plugin:1.6.0:exec (generate-autocompletion-script) @ imagetool ---
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (build-zip-installer) @ imagetool ---
[INFO] Reading assembly descriptor: src/assembly/zip.xml
[INFO] Building zip: /work/projects/weblogic-image-tool/imagetool/target/imagetool-1.0.1-SNAPSHOT.zip
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Build Tools 1.0 .................................... SUCCESS [  0.789 s]
[INFO] WebLogic Image Tool (parent) 1.0.1-SNAPSHOT ........ SUCCESS [  0.001 s]
[INFO] WebLogic Image Tool 1.0.1-SNAPSHOT ................. SUCCESS [  4.835 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.742 s
[INFO] Finished at: 2019-06-21T09:17:03+02:00
[INFO] ------------------------------------------------------------------------

# Copy and extract the packaged Oracle WebLogic Image Tool to your target destination
$ mkdir -p /work/tools
$ cp imagetool/target/imagetool-1.0.1-SNAPSHOT.zip /work/tools
$ cd /work/tools
$ unzip imagetool-1.0.1-SNAPSHOT.zip
$ cd imagetool-1.0.1-SNAPSHOT
$ tree
.
├── bin
│   ├── logging.properties
│   └── setup.sh
└── lib
    ├── commons-codec-1.10.jar
    ├── commons-logging-1.2.jar
    ├── fluent-hc-4.5.6.jar
    ├── httpclient-4.5.6.jar
    ├── httpcore-4.4.10.jar
    ├── httpmime-4.5.6.jar
    ├── imagetool_completion.sh
    ├── imagetool.jar
    ├── json-20180813.jar
    └── picocli-3.8.0.jar

2 directories, 12 files

As next modify the imagetool-1.0.1-SNAPSHOT/bin/setup.sh script and add your JAVA_HOME

#
# Align the bin/setup.sh with the required JAVA_HOME, must be a JDK 1.8
# Add just below the line "umask 27" a line with your JAVA_HOME
$ vi bin/setup.sh

. . .
umask 27

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_211
. . .

Now we can add the required Oracle JDK 1.8 software and the Oracle WebLogic Server installation software to the imagetool cache. The Oracle JDK 1.8 and Oracle WebLogic Server installation software you will need to download upfront and transfer them to your target server.

#
# Assuming that you have downloaded and transferred already the installation software
# to your target server, e.g. /work/software
$ ls /work/software/
fmw_12.2.1.3.0_wls_Disk1_1of1.zip  jdk-8u211-linux-x64.tar.gz

# Source the setup.sh script
$ cd /work/tools/imagetool-1.0.1-SNAPSHOT/bin
$ . ./setup.sh

# Adding Oracle JDK 1.8.0_211 to the Oracle WebLogic Image Tool cache
$ imagetool cache addInstaller --type jdk --version 8u211 --path /work/software/jdk-8u211-linux-x64.tar.gz

# Adding Oracle WebLogic Server 12.2.1.3.0 to the Oracle WebLogic Image Tool cache
$ imagetool cache addInstaller --type wls --version 12.2.1.3.0 --path /work/software/fmw_12.2.1.3.0_wls_Disk1_1of1.zip

# Check the content of the imagetool cache
$ imagetool cache listItems

Cache contents
cache.dir=/home/din/cache
jdk_8u211=/work/software/jdk-8u211-linux-x64.tar.gz
wls_12.2.1.3.0=/work/software/fmw_12.2.1.3.0_wls_Disk1_1of1.zip

Now as we have added the required installation software to the imagetool cache we can start to create our image.

Just create under imagetool-1.0.1-SNAPSHOT/bin a new Shell script called create-wls-image.sh with following content and align the JAVA_HOME variable to your environment and the path to the imagetool lib directory. On top set the --tag to your desired Image Name

#!/bin/sh

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
alias imagetool='java -cp "/work/tools/imagetool-1.0.1-SNAPSHOT/lib/*" com.oracle.weblogic.imagetool.cli.CLIDriver'
imagetool create \
          --tag=oracle/wls:1.0 \
          --fromImage=oraclelinux:7-slim \
          --jdkVersion=8u211 \
          --latestPSU \
          --version=12.2.1.3.0 \
          --type=wls \
          --user=<Your MyOracleSupport UserAccount> \
          --password=<Your MyOracleSupport Password>

# Cleanup dangling images
echo " ***********************************"
echo " Cleanup dangling images"
echo " ***********************************"
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Now we can start to create our Docker Image

#
$ chmod +x create-wls-image.sh

$ ./create-wls-image.sh

Jun 21, 2019 9:51:34 AM com.oracle.weblogic.imagetool.cli.menu.CreateImage call
INFO: tmp directory used for build context: /home/din/wlsimgbuilder_temp770248339375336616
Jun 21, 2019 9:51:35 AM com.oracle.weblogic.imagetool.cli.menu.CreateImage call
INFO: tmp directory for docker run: /home/din/wlsimgbuilder_temp8049214846342972141
Jun 21, 2019 9:51:36 AM com.oracle.weblogic.imagetool.cli.menu.CreateImage lambda$call$0
INFO: ID="ol"
Jun 21, 2019 9:51:36 AM com.oracle.weblogic.imagetool.cli.menu.CreateImage lambda$call$0
INFO: VERSION_ID="7.6"
Jun 21, 2019 9:52:48 AM com.oracle.weblogic.imagetool.cli.menu.CreateImage call
INFO: docker cmd = docker build --force-rm=true --no-cache --tag oracle/wls:1.0 --build-arg WLS_PKG=fmw_12.2.1.3.0_wls_Disk1_1of1.zip --build-arg JAVA_PKG=jdk-8u211-linux-x64.tar.gz --build-arg BASE_IMAGE=oraclelinux:7-slim --build-arg PATCHDIR=patches /home/din/wlsimgbuilder_temp770248339375336616
Sending build context to Docker daemon  1.108GB
. . .
. . .
Removing intermediate container f37f08f14b51
 ---> 067e69f6d893
Successfully built 067e69f6d893
Successfully tagged oracle/wls:1.0
 ***********************************
 Cleanup dangling images
 ***********************************
. . .
. . .
Deleted: sha256:64ad73b32a2b8912c122fede17be996843f570999e74faec5a6bacafa4932714

Lets check.

#
$ docker images | grep oracle/wls

oracle/wls           1.0                        067e69f6d893        3 minutes ago       1.48GB

# Lets check the cache content of the Oracle WebLogic Image Tool
$ imagetool cache listItems
Cache contents
cache.dir=/home/din/cache
jdk_8u211=/work/software/jdk-8u211-linux-x64.tar.gz
null_12.2.1.3.0=/home/din/cache/p29016089_122130_Generic.zip
wls_12.2.1.3.0=/work/software/fmw_12.2.1.3.0_wls_Disk1_1of1.zip
28186730_opatch=/home/din/cache/p28186730_139400_Generic.zip

As you can see, the imagetool added the latest PSU for our Oracle WebLogic Server 12.2.1.3.0 and the OPatch Patch, so that when we build the next image, these patches are already added to the cache and don't need to be downloaded again. The only minor problem which I see, is the key value for the latest PSU is just given with "null_12.2.1.3.0", my personal wish would be, that Oracle is displaying instead of the "null" the Patch Number.

You can even use this utility in an "Offline-Mode" with no internet connection, you just need to download upfront the required patches from My Oracle Support and transfer them to your server and add them manually into the imagetool cache.


Thursday, June 20, 2019

No more ALTER USER RENAME under Oracle 19c

Some times ago, I have published a blog series about the undocumented feature "ALTER USER RENAME":
Now I had some time to test, if this undocumented feature is still available under the latest Oracle 19c Database and I have to say: NO. Oracle took away this feature from the latest Oracle 19c :-(

#
$ sqlplus sys/<password>@db19cpdb1 as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 20 13:14:31 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> create user test identified by "Oracle19c" default tablespace users quota unlimited on users;

User created.

SQL> grant connect, resource, create table, create view to test;

Grant succeeded.

SQL> connect test/Oracle19c@db19cpdb1

SQL> create table t1 (id number, col1 varchar2(50));

Table created.

SQL> insert into t1 values (1, 'Test 1');

1 row created.

SQL> commit;

Commit completed.

SQL> create view v1 as select * from t1;

View created.

SQL> exit

Now let's try if the undocumented feature "ALTER USER RENAME" is still working:

#
sqlplus sys/<password>@db19cpdb1 as sysdba

SQL> alter session set "_enable_rename_user"=true;

Session altered.

SQL> alter system enable restricted session;

System altered.

SQL> alter user test rename to test_new identified by "Oracle19c";

alter user test rename to test_new identified by "Oracle19c"
                *
ERROR at line 1:
ORA-03001: unimplemented feature

SQL> alter system disable restricted session;

System altered.

As you can see, if you try to perform the ALTER USER RENAME command, you will receive immediately an "ORA-03001: unimplemented feature" :-(

I really hope, that one day Oracle will pick up the Database Idea proposal "Need a command to rename a schema" (https://community.oracle.com/ideas/2334) from the Database Idea Community Forum. If you haven't currently voted up for this Database Idea in the Database Idea Community Forum, please do so ...


Oracle Developer Tools for Visual Studio Code

Since yesterday Oracle published the Visual Studio Code Extension "Oracle Developer Tools for VS Code" https://www.oracle.com/database/technologies/appdev/dotnet/odtvscodequickstart.html

I am normally not a Microsoft guy, but I have to admit that the Visual Studio Code from Microsoft is really cool, even on my Ubuntu Laptop.

In order to setup the Oracle Developer Tools for VS Code on Ubuntu you will need to complete following pre-requirements:

Install at first the .NET Core 2.2 SDK for Linux Ubuntu
#
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
[sudo] password for din: 
Selecting previously unselected package packages-microsoft-prod.
(Reading database ... 217409 files and directories currently installed.)
Preparing to unpack packages-microsoft-prod.deb ...
Unpacking packages-microsoft-prod (1.0-ubuntu18.04.2) ...
Setting up packages-microsoft-prod (1.0-ubuntu18.04.2) ...

$ sudo add-apt-repository universe
'universe' distribution component is already enabled for all sources.

sudo apt-get install apt-transport-https
Reading package lists... Done
Building dependency tree       
Reading state information... Done
apt-transport-https is already the newest version (1.6.11).
The following packages were automatically installed and are no longer required:
  linux-headers-4.18.0-20 linux-headers-4.18.0-20-generic linux-image-4.18.0-20-generic linux-modules-4.18.0-20-generic linux-modules-extra-4.18.0-20-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

$ sudo apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
. . .
. . .
Reading package lists... Done

$ sudo apt-get install dotnet-sdk-2.2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.18.0-20 linux-headers-4.18.0-20-generic linux-image-4.18.0-20-generic linux-modules-4.18.0-20-generic linux-modules-extra-4.18.0-20-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  aspnetcore-runtime-2.2 dotnet-host dotnet-hostfxr-2.2 dotnet-runtime-2.2 dotnet-runtime-deps-2.2 liblttng-ust-ctl4 liblttng-ust0 liburcu6
The following NEW packages will be installed:
  aspnetcore-runtime-2.2 dotnet-host dotnet-hostfxr-2.2 dotnet-runtime-2.2 dotnet-runtime-deps-2.2 dotnet-sdk-2.2 liblttng-ust-ctl4 liblttng-ust0 liburcu6
0 upgraded, 9 newly installed, 0 to remove and 3 not upgraded.
Need to get 135 MB of archives.
After this operation, 397 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ch.archive.ubuntu.com/ubuntu bionic/main amd64 liburcu6 amd64 0.10.1-1 [52.1 kB]
. . .
. . .
Welcome to .NET Core!
---------------------
Learn more about .NET Core: https://aka.ms/dotnet-docs
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs

Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

Configuring...
--------------
A command is running to populate your local package cache to improve restore speed and enable offline access. This command takes up to one minute to complete and only runs once.
Processing triggers for libc-bin (2.27-3ubuntu1) ...
$

As next you can install the "Oracle Developer Tools for VS Code" within your Visual Studio Code.

Go on the Extensions (Crtl+Shift+X) and search for the "Oracle Developer Tools for VS Code" and install it.


After the Extension is installed open a simple SQL Script, in the down menu bar make sure, that the Oracle-SQL and PLSQL Language Mode is selected. Beside you will find the menu bar entry "Disconnected"


Click on the "Disconnected" or alternatively you can use the F1 key and choose "Oracle:Connect" and a popup window will open in which you have to provide your Database Connection "servername:ListenerPort/ServiceName"


As next you have to choose if it should be a "normal" (Non-Administrator) connection or "as sysdba" (Administrator)


Then provide your User ID (username)


In the next window you will have to provide the password of your user


Then choose if the password should be saved or not


Finally accept the default name for the connection to be saved or provide your own name for the connection to be saved


After that you can execute your SQL Script directly from Visual Studio Code against your database connection. Just make a right click in your SQL Script and choose the context menu option "Execute Query" or use Ctrl+E


The query result will be displayed in a new screen right beside your SQL Script


In the query result screen you have several options like save the output in CSV or JSON, copy selected rows to your clipboard and so on.

This extension from Oracle for Visual Studio Code is really cool and useful :-)


Tuesday, June 11, 2019

Oracle Database 19c for Windows and Linux on System z available

Since this weekend the latest Oracle Database 19c (19.3) are also available for Windows (64-bit) and Linux on System z.

The Installation sources can be found under https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html



The Windows (64-bit) version can be found under the following link under Oracle Technology Network https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-windows-5539283.html


The zLinux version can be found under the following link under Oracle Technology Network https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-zseries64-193000-5539116.html


Happy download :-)

Wednesday, May 29, 2019

Oracle 19c for AIX and HP-UX available

After Oracle released the Oracle Database 19c (19.3) for Linux and Solaris, now you can download as well the Oracle Database 19c (19.3) for IBM AIX and HP-UX ia64.

The software can be found under https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html



Happy download :-)


Tuesday, May 14, 2019

Flexible Patching Concept for Optimized WebLogic Image on Docker

In the last days I was publishing my Optimized WebLogic Image on Docker Solution, see following links:

The previous version of my Optimized WebLogic Image was based on fixed patch numbers, so not really flexible.

My latest update contains now the possibility to apply during the Image build multiple WebLogic Patches, just the OPatch Patch 28186730 is mandatory.

The latest sources you can find under my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

The flexible patching concept is mainly based on Gerald Venzl's Patch Apply Solution for Oracle Database Docker Images https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/applypatch, I took his solution as base and modified it for the usage for WebLogic 12.2.1.3.0 and aligned as well my Dockerfile.

Now you just have to download your desired patches and place them into the folder dockerfiles/12.2.1.3/patches/00n

For example you want to apply directly at the Image build the Oracle CPU April 2019 (29016089) and the WebLogic Patch 29637821, just download the 2 patches plus the mandatory OPatch Patch 28186730. Place the OPatch Patch 28186730 into the directory dockerfiles/12.2.1.3/patches. The Oracle CPU April 2019 (29016089) you place into dockerfiles/12.2.1.3/patches/001 and the WebLogic Patch 29637821 you place into dockerfiles/12.2.1.3/patches/002

#
cd dockerfiles/12.2.1.3/patches
tree
├── 001
│   └── p29016089_122130_Generic.zip
├── 002
│   └── p29637821_122130_Generic.zip
├── applyPatches.sh
└── p28186730_139400_Generic.zip

In case you want to add a 3rd patch, simply create the folder dockerfiles/12.2.1.3/patches/003 and place your patch zip file there.
The applyPatches.sh script, which is executed while the Image build will take care of anything ;-)

Finally follow the instructions on how to build the image and how to start your Container from my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

After you have started your WebLogic Server Container, you can verify the patch apply with following steps:

#
$ docker exec -it <Your Container Name> /bin/bash
[root@b08c600a5766 oracle]$ su - oracle
[oracle@b08c600a5766 ~]$ cd /u01/oracle/
[oracle@b08c600a5766 ~]$ export ORACLE_HOME=`pwd`
[oracle@b08c600a5766 ~]$ $ORACLE_HOME/OPatch/opatch lsinv
Oracle Interim Patch Installer version 13.9.4.2.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.
. . .
. . .
Interim patches (6) :

Patch  29637821     : applied on Tue May 14 12:53:46 UTC 2019
Unique Patch ID:  22888395
Patch description:  "One-off"
   Created on 24 Apr 2019, 22:39:34 hrs PST8PDT
   Bugs fixed:
     29637821

Patch  29016089     : applied on Tue May 14 12:53:14 UTC 2019
Unique Patch ID:  22640288
Patch description:  "WLS PATCH SET UPDATE 12.2.1.3.190416"
   Created on 31 Jan 2019, 00:50:49 hrs PST8PDT
   Bugs fixed:
     23076695, 23103220, 25387569, 25488428, 25580220, 25665727, 25750303
     25800186, 25987400, 25993295, 26026959, 26080417, 26098043, 26144830
     26145911, 26248394, 26267487, 26268190, 26353793, 26439373, 26473149
     26499391, 26502060, 26547016, 26589850, 26608537, 26624375, 26626528
     26731253, 26791760, 26806438, 26828499, 26835012, 26929163, 26936500
     26943614, 26985581, 27033250, 27055227, 27086845, 27111664, 27117282
     27118731, 27131483, 27187631, 27213775, 27234961, 27272911, 27284496
     27397287, 27411153, 27417245, 27445260, 27469756, 27486993, 27516977
     27561226, 27603087, 27617877, 27693510, 27803728, 27819370, 27912485
     27927071, 27928833, 27934864, 27947832, 27948303, 27988175, 28071913
     28103938, 28110087, 28138954, 28140800, 28142116, 28149607, 28166483
     28171852, 28172380, 28311332, 28313163, 28319690, 28360225, 28375173
     28375702, 28409586, 28503638, 28550962, 28559579, 28594324, 28626991
     28632521, 28651365, 28748179, 28774974, 28874066, 28891448, 28895280
     28958819, 28984617, 29140508, 29140516, 29140540, 29140549, 29140551
     29140555
. . .
. . .
--------------------------------------------------------------------------------

OPatch succeeded.



Thursday, May 9, 2019

Updated Version of Optimized WebLogic Image on Docker

Yesterday I published my solution for an optimized WebLogic Image on Docker (https://dirknachbar.blogspot.com/2019/05/optimized-weblogic-image-on-docker.html). The yesterdays version was limited to the usage of Oracle Server JRE 8u152, due to an Oracle Bug 27117282.

So I updated my Optimized Solution, that you can integrate the necessary patches (Patch for OPatch Util and the latest CPU April 2019 for WebLogic 12.2.1.3.0), in order that you are able to use an actual Oracle Server JRE, e.g. Oracle Server JRE 8u202. But this requires that you have a My Oracle Support Login in order to download the 2 required patches.

The new Sources can be found under my GitHub Repo https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

You just have to download the following 2 patches from My Oracle Support:

Place the 2 zip files in the subdirectory dockerfiles/12.2.1.3

After that you can start to build your Oracle Server JRE Image as described in my yesterdays blogpost or in the README.md on my GitHub Repo, followed by the Docker Image build for the Oracle WebLogic Server 12.2.1.3.0 including the Patches.
This time you have to use instead of the option "-o" (stands for optimized) the option "-p" (stands for patch). This will update your OPatch Utility with the OPatch Patch 28186730 and apply afterwards the latest CPU April 2019 on your WebLogic Server 12.2.1.3.0 Software Home, so that you can use an actual Oracle Server JRE (e.g. 8u202) to create your WebLogic Domain without errors.


Wednesday, May 8, 2019

Optimized WebLogic Image on Docker

As I am currently busy with optimizing Docker Images for Oracle stuff, I want to share with you my latest optimization for Oracle WebLogic Server 12.2.1.3.0 as Docker Image.

Under the Oracle GitHub Repository https://github.com/oracle/docker-images/tree/master/OracleWebLogic you can find all necessary files to build a Docker Image for Oracle WebLogic 12.2.1.x, which are quite useful, but the disadvantage of this image is the size. The Docker Image will be 2.93 GB !
So I spent some time and optimized the Docker build and my optimized Docker image is only 1.4 GB, so more than 50% space savings ;-)

 # Docker Images
$ docker images
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/weblogic      12.2.1.3-optimized   854be1c2bbb9        7 minutes ago       1.4GB
oracle/weblogic      12.2.1.3-generic     ba0d1c2dc430        25 minutes ago      2.93GB

The complete showcase you can find under my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic, just clone the Repo and perform following steps.

Download at first following software from Oracle Technology Network:

After the download of the required installation files, build at first the Oracle Server JRE Image

#
$ cd dockerfiles/12.2.1.3/serverjre
$ ./buildDockerImage.sh
$ docker images | grep serverjre
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/serverjre     8                    63b4768f6557        About an hour ago   387MB

As next you can build the Oracle WebLogic Server 12.2.1.3.0 Image

#
cd dockerfiles
$ ./buildDockerImage.sh -v 12.2.1.3 -o

Checking if required packages are present and valid...
fmw_12.2.1.3.0_wls_Disk1_1of1.zip: OK
=====================
Building image 'oracle/weblogic:12.2.1.3-optimized' ...
Sending build context to Docker daemon    839MB
Step 1/17 : FROM oracle/serverjre:8 as base
 ---> 63b4768f6557
Step 2/17 : LABEL maintainer="dirk.nachbar@trivadis.com"
 ---> Running in 9bfcf5aaa1d4
Removing intermediate container 9bfcf5aaa1d4
 ---> 6cff4f8712d8
. . .
. . .
Step 13/17 : FROM base
 ---> 718f0506dfb8
Step 14/17 : COPY --chown=oracle:oracle --from=builder $ORACLE_HOME $ORACLE_HOME
 ---> 46ee0e3fd822
Step 15/17 : COPY --chown=oracle:oracle --from=builder $JAVA_HOME $JAVA_HOME
 ---> bddc30cf710e
Step 16/17 : WORKDIR ${ORACLE_HOME}
 ---> Running in b7a122dc521b
Removing intermediate container b7a122dc521b
 ---> 1b2aa03acef6
Step 17/17 : CMD ["/u01/oracle/createAndStartEmptyDomain.sh"]
 ---> Running in 296506a7fc03
Removing intermediate container 296506a7fc03
 ---> 854be1c2bbb9
Successfully built 854be1c2bbb9
Successfully tagged oracle/weblogic:12.2.1.3-optimized

  WebLogic Docker Image for 'optimized' version 12.2.1.3 is ready to be extended:

    --> oracle/weblogic:12.2.1.3-optimized

  Build completed in 258 seconds.

$ docker images
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/weblogic      12.2.1.3-optimized   854be1c2bbb9        24 minutes ago      1.4GB

Now create and run your Oracle WebLogic Server 12.2.1.3.0 Container:

#
$ docker run -d --name <ContainerName> \
             -p 7001:7001 -p 9002:9002 \
             -v <Host Path to subdirectory properties>:/u01/oracle/properties \
             -e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=<DomainName> \
             oracle/weblogic:12.2.1.3-optimized

$ docker logs -f <ContainerName>

# For Example:

$ docker run -d --name wls12213optimized \
             -p 7001:7001 -p 9002:9002 \
             -v /work/OracleWebLogic/dockerfiles/12.2.1.3/properties:/u01/oracle/properties \
             -e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=OptimizedDomain \
             oracle/weblogic:12.2.1.3-optimized

$ docker logs -f wls12213optimized
. . .
. . .
<May 8, 2019 8:56:16,862 AM UTC> <Notice> <WebLogicServer> <BEA-000329> <Started the WebLogic Server Administration Server "AdminServer" for domain "OptimizedDomain" running in production mode.> 
<May 8, 2019 8:56:16,864 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on 127.0.0.1:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,865 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 172.17.0.2:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,865 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 172.17.0.2:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on 127.0.0.1:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 172.17.0.2:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,867 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 172.17.0.2:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,867 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,881 AM UTC> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> 
<May 8, 2019 8:56:16,911 AM UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.> 

With a little bit work of adding multi stage build in the Dockerfile, you are able to save more than 50% of the space in your Docker Image ;-)


No Metrics visible for Standalone Oracle HTTP Server in Cloud Control 13c

Currently I had the problem within Oracle Cloud Control 13c (13.3), that when I added an Oracle HTTP Server Standalone 12.2.1.x, Cloud Control 13c was not able to display any kinds of metrics from the Oracle HTTP Server.


As you can see from the above screenshot, Cloud Control was able to show me the correct status (UP), but Cloud Control could not see any metrics or even no configured Virtual Hosts.

The problem is within the Oracle HTTP Server 12.2.1.x, as the Oracle HTTP Server doesn't contain all required dms jar files.

To solve this problem, simply apply the patch 22860384, which is available for following Oracle HTTP Server Releases:
  • 12.2.1.0.0
  • 12.2.1.1.0
  • 12.2.1.2.0


Download the patch for your Oracle HTTP Server Release, copy the patch to the server on which your Oracle HTTP Server is running and apply the patch:

# Stop your Oracle HTTP Server
$ cd $DOMAIN_HOME/bin
$ ./stopComponent <OHS Component Name>

# extract the zip file and go into the subdirectory 22860384
$ cd 22860384
$ $ORACLE_HOME/OPatch/opatch apply

Oracle Interim Patch Installer version 13.9.1.0.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /appl/oracle/product/fmw-webtier-12.2.1.2.0
Central Inventory : /appl/oracle/oraInventory
   from           : /appl/oracle/product/fmw-webtier-12.2.1.2.0/oraInst.loc
OPatch version    : 13.9.1.0.0
OUI version       : 13.9.1.0.0
Log file location : /appl/oracle/product/fmw-webtier-12.2.1.2.0/cfgtoollogs/opatch/opatch2019-05-08_13-21-31PM_1.log


OPatch detects the Middleware Home as "/appl/oracle/product/fmw-webtier-12.2.1.2.0"

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

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 = '/appl/oracle/product/fmw-webtier-12.2.1.2.0')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '22860384' to OH '/appl/oracle/product/fmw-webtier-12.2.1.2.0'
ApplySession: Optional component(s) [ oracle.jmx, 12.2.1.0.0, higher version 12.2.1.2.0 found. ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.jrf.thirdparty.jee, 12.2.1.2.0...

Patching component oracle.jrf.thirdparty.jee, 12.2.1.2.0...
Patch 22860384 successfully applied.
Log file location: /appl/oracle/product/fmw-webtier-12.2.1.2.0/cfgtoollogs/opatch/opatch2019-05-08_13-21-31PM_1.log

OPatch succeeded.

# Startup your Oracle HTTP Server
$ cd $DOMAIN_HOME/bin
$ ./startComponent <OHS Component Name>

Now wait some minutes or if you are not really patient, perform on the Oracle Cloud Control Agent 13 multiple times "emctl upload agent"

After some time you should be able now to see in your configured Oracle HTTP Server Target in the Oracle Cloud Control 13c all metrics and even configured Virtual Hosts.



Friday, May 3, 2019

WildFly 16 Docker Image with Oracle JDBC Driver

Today some a bit off-topic blogpost from my usual classic Oracle blogpost, but with a bit of Oracle :-)

As more and more of my customers are moving away from Oracle WebLogic Server to JBoss/WildFly, I have create a small Docker Image with WildFly 16 including the Oracle JDBC Driver and a DataSource based on the Oracle JDBC Driver (18.3).

The full showcase you can find in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/WildFly

Simply clone the repository to your machine hosting your Docker.

At first you will need to align the oracle-driver.cli script to reflect your required DataSource settings to connect to your Oracle Database

# Snippet from oracle-driver.cli
data-source add --name=<DataSourceName> --driver-name="oracle" --jndi-name="java:<JNDI Lookup Name>" --statistics-enabled="true" --user-name="<Oracle Username>" --password="<Oracle User Password>" --initial-pool-size="<Initial Pool Size>" --max-pool-size="<Max Pool Size>" --min-pool-size="<Minimal Pool Size>" --connection-url="jdbc:oracle:thin:@<Oracle Database Servername>:<Listener Port>/<Database ServiceName>" --check-valid-connection-sql="select 1 from dual"

# For example:
data-source add --name=testDS --driver-name="oracle" --jndi-name="java:/jdbc/testDS" --statistics-enabled="true" --user-name="soe" --password="soe" --initial-pool-size="25" --max-pool-size="50" --min-pool-size="20" --connection-url="jdbc:oracle:thin:@oraxe18c:1521/XEPDB1" --check-valid-connection-sql="select 1 from dual"
#

Now you can build the WildFly 16 Image:

In case you dont provide the --build-arg WILDFLY_ADMIN_PWD, the admin user of your WildFly will get the default password admin.

$ docker build [--build-arg WILDFLY_ADMIN_PWD=<your admin password>] -t wildfly .
# For Example:
$ docker build --build-arg WILDFLY_ADMIN_PWD=Oracle18c -t wildfly .

After the build is completed you can start your WildFly 16 Container with following command:

$ docker run -d --name wildfly \
      [--network=<Your bridged network>] \
      -p <Your Host Port>:8080 -p <Your Host Port>:9990 \
      -e TZ=<Your Timezone> \
      wildfly

Now you can access the HAL Management Console of your WildFly 16 with your forwarded port of the Docker Container Port 9990, login with admin and your provided password in the --build-arg WILDFLY_ADMIN_PWD or if you didnt used the --build-arg you the password "admin"



After the Login, click on the option "Configuration"



On the Configuration screen navigate to "Subsystems / Datasources & Drivers / JDBC Drivers / oracle" to check your deployed JDBC Driver



On the Configuration screen navigate to "Subsystems / Datasources & Drivers / Datasources / testDS" to check your created DataSource





Optimizing the Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

On 1st May 2019 I was publishing a solution on how to optimize the Docker image for Oracle XE 18c from 8.7 GB down to 5.41 GB (https://dirknachbar.blogspot.com/2019/05/optimized-docker-image-for-oracle-xe.html).

In the last 2 days I was playing a bit more with my optimized Docker image for Oracle XE 18c and I was able to downsize the Docker image once again to a current size of 4.02 GB. So its more than 50% of savings from the original Docker image size.

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/database      18.4.0-xe           2018ad58d2f3        16 hours ago        4.02GB
$

I mainly removed unnecessary directories from the $ORACLE_HOME and several binaries, which are not required in my opinion and I strip some of the big binaries to remove the comments from them.

You can find the optimized optimized Docker Image for Oracle XE 18c (18.4) in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleXE

Here is the list of directories and binaries which I removed from the image in order to come down to 4.02 GB:

# Snippet from Dockerfile.xe
RUN cd $INSTALL_DIR && \
    yum -y install $INSTALL_FILE_1 && \
    rm -rf /var/cache/yum && \
    rm -f $INSTALL_FILE_1 && \
    rm -rf $ORACLE_HOME/demo && \
    rm -rf $ORACLE_HOME/dmu && \
    rm -rf $ORACLE_HOME/javavm && \
    rm -rf $ORACLE_HOME/md && \
    rm -rf $ORACLE_HOME/nls/demo && \
    rm -rf $ORACLE_HOME/odbc && \
    rm -rf $ORACLE_HOME/rdbms/demo && \
    rm -rf $ORACLE_HOME/R && \
    rm -rf $ORACLE_HOME/instantclient && \
    rm -rf $ORACLE_HOME/inventory && \
    rm -rf $ORACLE_HOME/deinstall && \
    rm -r  $ORACLE_HOME/lib/ra_aix_ppc64.zip && \
    rm -r  $ORACLE_HOME/lib/ra_hpux_ia64.zip && \
    rm -r  $ORACLE_HOME/lib/ra_solaris*.zip && \
    rm -f  $ORACLE_HOME/lib/ra_windows64.zip && \
    rm -f  $ORACLE_HOME/lib/ra_zlinux64.zip && \
    rm -rf $ORACLE_HOME/crs && \
    rm -f  $ORACLE_HOME/bin/asmcmd && \
    rm -f  $ORACLE_HOME/bin/asmcmdcore && \
    rm -f  $ORACLE_HOME/bin/bdschecksw && \
    rm -f  £ORACLE_HOME/bin/dbv && \
    rm -f  $ORACLE_HOME/bin/ldap* && \
    rm -f  $ORACLE_HOME/bin/dbfs_client && \
    rm -f  $ORACLE_HOME/bin/afdboot && \
    rm -f  $ORACLE_HOME/bin/exp && \
    rm -f  $ORACLE_HOME/bin/imp && \
    rm -f  $ORACLE_HOME/bin/*.exe && \
    rm -f  $ORACLE_HOME/bin/lcsscan && \
    rm -f  $ORACLE_HOME/bin/dgmgrl && \
    rm -f  $ORACLE_HOME/bin/nid && \
    rm -f  $ORACLE_HOME/bin/orion && \
    rm -f  $ORACLE_HOME/bin/procob && \
    rm -f  $ORACLE_HOME/bin/setasmgid && \
    rm -f  $ORACLE_HOME/bin/wrap && \
    rm -f  $ORACLE_HOME/bin/*0 && \
    rm -f  $ORACLE_HOME/bin/tnsping && \
    rm -f  $ORACLE_HOME/bin/tkprof && \
    rm -f  $ORACLE_HOME/bin/srvctl && \
    rm -f  $ORCALE_HOME/bin/wrc && \
    rm -rf $ORACLE_HOME/sdk && \
    strip --remove-section=.comment $ORACLE_HOME/bin/oracle && \
    strip --remove-section=.comment $ORACLE_HOME/bin/rman && \
    strip --remove-section=.comment $ORACLE_HOME/bin/tnslsnr

I will continue to try to downsize the Docker image for Oracle XE 18c a bit more within the next days and will post updates on these topic.


Thursday, May 2, 2019

Oracle 19c for Solaris available

After the availability of the latest Oracle 19c Database for Linux platforms, Oracle has released now the Oracle 19c (19.3) Database for Solaris.

The software can be found under Oracle Technology Network: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-solarisx86-5466166.html



Currently there is only the SPARC (64-bit) version available.


Wednesday, May 1, 2019

Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

In my current project I am mainly working with Oracle XE 18c (18.4.0) under Docker.

One pain point is size of the Docker Image for Oracle XE 18c, in case you will use the Scripts from https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance for the build of Oracle XE 18c you will have an image size of 8.7 GB, which is not quite handy :-)

So I invested some time and have done some modifications on the Dockerfile.xe from the Oracle GitHub Repository, which is mainly to adopt multi stage and to remove some unnecessary directories from the $ORACLE_HOME, so that I finally come to an image size of 5.41 GB instead of 8.7 GB.

On top I have added some volumes to the Dockerfile.xe for fast recovery area and some tools (which are containing RMAN backup scripts) and a post setup script which will turn on the archivelog mode and flashback.

The full showcase you can find in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleXE

Just clone my above mentioned GitHub Repo, download the Oracle XE 18c rpm file from Oracle Technology Network https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html and place it in the subdirectory 18.4.0.

On top you will need to create 4 directories on your Docker host, which will be the target directories for the following volume mapping:

  • /opt/oracle/oradata
  • /opt/oracle/diag
  • /opt/oracle/fast_recovery_area
  • /opt/oracle/tools

$ groupadd -g 54321 oinstall
$ useradd -d /home/oracle -m -g oinstall [-G docker] -u 54321 oracle
# Depending on your disk layout you will need to create 4 directories
# e.g. you have one mount point called u01, create the following 4 directories below and switch the ownership to the oracle user
$ mkdir -p /u01/diag
$ mkdir -p /u01/oradata
$ mkdir -p /u01/fast_recovery_area
$ mkdir -p /u01/tools
$ chown -R oracle:oinstall /u01/diag
$ chown -R oracle:oinstall /u01/oradata
$ chown -R oracle:oinstall /u01/fast_recovery_area
$ chown -R oracle:oinstall /u01/tools

Now you can execute the build of your Docker Image for Oracle XE 18c

$ ./buildDockerImage.sh -v 18.4.0 -x
. . .
Successfully built ac71812fa9d3
Successfully tagged oracle/database:18.4.0-xe


  Oracle Database Docker Image for 'xe' version 18.4.0 is ready to be extended: 
    
    --> oracle/database:18.4.0-xe

  Build completed in 697 seconds.

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/database      18.4.0-xe           ac71812fa9d3        About an hour ago   5.41GB

Finally create your Docker Container:

docker run -d --name oraxe18c \
              -p 1521:1521
              -e ORACLE_PWD=[your password] \
              -e ORACLE_CHARACTERSET=[your characterset] \
              -e TZ=[your timezone] \
              -v [host directory for oradata]:/opt/oracle/oradata \
              -v [host directory for diag]:/opt/oracle/diag \
              -v [host directory for fast_recovery_area]:/opt/oracle/fast_recovery_area \
              -v [host directory for tools]:/opt/oracle/tools \
              [--network [your bridged network] \
              oracle/database:18.4.0-xe

# For Example
docker run -d --name oraxe18c \
              -p 1521:1521
              -e ORACLE_PWD=Oracle18c \
              -e ORACLE_CHARACTERSET=AL32UTF8 \
              -e TZ=Europe/Zurich \
              -v /u01/oradata:/opt/oracle/oradata \
              -v /u01/diag:/opt/oracle/diag \
              -v /u01/fast_recovery_area:/opt/oracle/fast_recovery_area \
              -v /u01/tools:/opt/oracle/tools \
              --network mynet \
              oracle/database:18.4.0-xe

Now you have a running Oracle XE 18c Container, your oradata, diag, fast_recovery_area and tools directories are mounted on your Docker Host and you can perform standard backups with RMAN against your Oracle XE 18c.

vi /u01/tools/full_bkp.rman

connect target sys/[your password]
run {
    backup database plus archivelog;
}

# For Example
connect target sys/Oracle18c
run {
    backup database plus archivelog;
}

# Now perform your RMAN Backup
docker exec -it oraxe18c rman @/opt/oracle/tools/full_bkp.rman


Friday, April 26, 2019

Oracle 19c for Linux x86-64 available

Since last night the lastest Oracle Database Release 19c (19.3) is for On-Prem  available.


Currently only the Linux x86-64 version is for download available in Oracle Technology Network, the other platforms should follow in the coming days.


For the download checkout following link: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-5462157.html




The documentation can be found under following link: https://docs.oracle.com/en/database/oracle/oracle-database/index.html


On top Gerald Venzl also updated in the Oracle GitHub Repository the Docker Images for Oracle 19c already :-) https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/dockerfiles




Happy download and happy testing :-)

Thursday, April 4, 2019

Enterprise Manager 13c - Database Usage Tracking Report Bug with FTP destination

Within Oracle Enterprise Manager 13c you have a nice Feature under the BI Publisher Reports to generate Database Usage Tracking Reports and to deliver them to a FTP Server, called BurstToFTP.


Unfortunatelly if you follow the very good official step-by-step documentation on how to setup and to configure the Database Usage Tracking Report you will not be able to get your Database Usage Tracking Reports under your FTP Server :-(


After you are done with the above setup and configuration steps and you perform an execution of the Database Usage Tracking Report, you will receive following error:

[INSTANCE_ID=.1515472353767] [DELIVERY_ID=1075]Error deliver document to FTP::Exception happened when calling deliver API::Error deliver document to FTP::FILE=[::Exception happened when calling deliver API::oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be openedoracle.xdo.service.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be op 

If you are checking the corresponding bipublisher.log under gc_inst/user_projects/domains/GCDomain/servers/BIP/logs/bipublisher you will find following error messages:

[2019-02-01T09:24:22.148+01:00] [BIP] [WARNING] [] [oracle.xdo] [tid: 168606] [userId: BISystemUser] [ecid: cdc36ce1-e46c-486e-93a8-cee32db72219-00000004,0:1070] [APP: bipublisher#11.1.1]  !!!!!!! GenericDeliveryListener.onMessage :: DeliveryProcessor.processDelivery exception::[INSTANCE_JOB_ID=1529]::[JOB_ID=1583]::[OUTPUT_ID=1402]::[DELIVERY_ID=1391]::[STATUS=FAILED_DELIVERY]::Error deliver document to FTP::Exception happened when calling deliver API::Error deliver document to FTP::FILE=[::Exception happened when calling deliver API::oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be openedoracle.xdo.service.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be opened[[
        at oracle.xdo.service.delivery.impl.DeliveryServiceImpl.deliverToSFTP(DeliveryServiceImpl.java:810)
        at oracle.xdo.enterpriseScheduler.delivery.FTPProcessor.deliver(FTPProcessor.java:255)
        at oracle.xdo.enterpriseScheduler.delivery.FTPProcessor.processDelivery(FTPProcessor.java:123)
        at oracle.xdo.enterpriseScheduler.util.GenericDeliveryListener.onMessage(GenericDeliveryListener.java:120)
        at oracle.xdo.enterpriseScheduler.util.CheckpointEnabledListener.onMessage(CheckpointEnabledListener.java:25)
        at oracle.xdo.enterpriseScheduler.jmswrapper.client.JMSMessageConsumer.processMessage(JMSMessageConsumer.java:231)
        at oracle.xdo.enterpriseScheduler.jmswrapper.client.ThreadedMessageDispatcher$DispatchWorker.run(ThreadedMessageDispatcher.java:157)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be opened
        at oracle.xdo.delivery.ssh2.SFTPDeliveryRequestHandler.submitRequest(SFTPDeliveryRequestHandler.java:528)
        at oracle.xdo.delivery.AbstractDeliveryRequest.submit(AbstractDeliveryRequest.java:1513)
        at oracle.xdo.service.delivery.impl.DeliveryServiceImpl.deliverToSFTP(DeliveryServiceImpl.java:804)
        ... 9 more

The Problem occurs under Oracle Enterprise Linux and Redhat Enterprise Linux.

This is a know bug and luckily there has been a Patch released for this issue.

You will need to download the Patch 23233792: FTP DELIVERY FAILS WITH ORACLE.XDO.DELIVERY.SSH2.SSHEXCEPTION for 12.1.3.0




After you applied the Patch to your Oracle Cloud Control 13c, the BurstToFTP Feature will work without problems.
 



Monday, March 18, 2019

Enterprise Manager 13c - Resolve Pending Status of Systems Infrastructure Server Components

From time to time you can observe, that some Systems Infrastructure Server Components are turning into a "Pending Status". Mostly the reason for this status change is not clear, a restart of the underlying Oracle Agents also doesn't resolve this pending state.


 The simplest solution to get rid of the pending state is to remove the Systems Infrastructure Server Component and to re-add it.

For this just connect with the oracle user to your server on which your Oracle Cloud Control 13c is running and perform following emcli commands:

# At first login with sysman to your emcli
oracle@server> emcli login -username=sysman
Enter password :

Login successful

# Perform a sync
oracle@server> emcli sync
Synchronized successfully

# Remove the Systems Infrastructure Server Component which is in pending state
oracle@server> emcli delete_target \
                  -name="<yourserver>.<domainname>/server" \
                  -type=oracle_si_server_map

# For example:
oracle@server> emcli delete_target \
                  -name="dbserver1.mydomain.com/server" \
                  -type=oracle_si_server_map

Target "dbserver1.mydomain.com/server:oracle_si_server_map" deleted successfully

# Add the above remove Systems Infrastructure Server Component once again
oracle@server> emcli add_target -name='<yourserver>.<domainname>/server' \
                  -type='oracle_si_server_map' \
                  -host='<yourserver>.<domainname>' \
                  -access_point_name='<yourserver>.<domainname>/server_os' \
                  -access_point_type=oracle_si_server_os \
                  -properties='dispatch.url!local://localhost' \
                  -subseparator=properties='!'

# For example:
oracle@server> emcli add_target -name='dbserver1.mydomain.com/server' \
                  -type='oracle_si_server_map' \
                  -host='dbserver1.mydomain.com' \
                  -access_point_name='dbserver1.mydomain.com/server_os' \
                  -access_point_type=oracle_si_server_os \
                  -properties='dispatch.url!local://localhost' \
                  -subseparator=properties='!'

Target "dbserver1.mydomain.com/server_os:oracle_si_server_os" added successfully

After that wait some moments and check once again the status of your Systems Infrastructure Server Component in Enterprise Manager 13c and you will see that the status turned to be ok.



Thursday, February 21, 2019

Oracle XE 18.4.0.0.0 (18c) for Windows

The Oracle Database Express Edition (XE) 18.4.0.0.0 (18c) is since yesterday available for Windows x64 on Oracle Technology Networks:


For the download of the latest Oracle XE 18c for Windows x64 checkout following link: https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html




Happy Download ...

Tuesday, January 8, 2019

Enterprise Manager 13.3 - Customize Login Page

Since Oracle Enterprise Manager 13.3 you have the option to customize the Login Page with your own logo image (size of the image is fixed with width of 200px and height of 70px) and a free text field.

In order to customize your login page you have to perform following steps.

At first you will need to activate the http port for your WebLogic Admin Server of your Enterprise Manager 13.3 environment.

Connect with a browser to your WebLogic Server Console, normally https://<yourserver>:7102/console and login with the weblogic user.

Select your EMGC_ADMINSERVER under the Domain Structure "GCDomain/Environment/Servers"


Go to the "Configuration/General" and activate under the Change Center the Lock & Edit button


Set the checkbox in front of "Listen Port Enabled", leave the defined http port to the pre-filled value of 7001 and click the "Save" button to save your changes.


Finally click in the Change Center the "Active Changes" button, there is no restart required, the http port 7001 will be immediately available.


As next you will have to create on the server hosting your Enterprise Manager 13.3 a directory for your image file (possible formats are: jpeg, jpg, png and gif) and a simple web.xml file.

# Create the required directory for your image file
mkdir -p /u00/app/oracle/admin/oms/logo/WEB-INF

# Place your image file into the folder /u00/app/oracle/admin/oms/logo
# Create under /u00/app/oracle/admin/oms/logo/WEB-INF a web.xml
# with following content

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
</web-app>

Get back to your WebLogic Console and navigate in the Domain Structure to "GCDomain/Environment/Deployments" and click in the Change Center the "Lock & Edit" button.


Click the "Install" button in order to install the above create folder structure as application


Place under Path your above created directory, which contains the image file and the subdirectory WEB-INF with the web.xml, in my case /u00/app/oracle/admin/oms/logo and click the "Next" button


In the next deployment screen leave the defaults and click the "Next" button.


In the following deployment screen choose the EMGC_ADMINSERVER as deployment target and proceed with the "Next" button.


In the following deployment screen leave the defaults and finish the deployment with the "Finish" button.
Hint: the context of your deployment will the same as your created directory name, in my case "logo"


To activate the deployment click under the Change Center the "Activate Changes" button.


Now you have to validate if your deployment is already active or still in prepared state, under the list of deployments scroll down to your deployment, in my case it's named logo (derived from the directory name you have created.

Normally the state will be "prepared", so click on the deployed application


Navigate to the "Control" tab, set the checkbox in front of logo and start the application

After a successful start of your application you should see the state as Active.


Now you can test if you can access with a browser the image file under your deployed application.

http://<yourserver>:7001/logo/<your_image_file>

Next step is to set with the emctl utility the property oracle.sysman.core.uifwk.loginPageLogo, login to your server hosting the Enterprise Manager 13.3 and execute following command:

emctl set property -name oracle.sysman.core.uifwk.loginPageLogo –value 'http://<yourserver>:7001/<context>/<image_file>' -sysman_pwd <sysman_password>

# For example
emctl set property -name oracle.sysman.core.uifwk.loginPageLogo –value 'http://oraem13c.domain.com:7001/logo/logo.png' -sysman_pwd Oracle13c

After the above command is no restart of your OMS required.

In case you want to set the free text for your login page you will need to execute following command on your server hosting the Enterprise Manager 13.3 to set the property oracle.sysman.core.uifwk.loginPageInformationText

emctl set property -name oracle.sysman.core.uifwk.loginPageInformationText -value 'You are connected to the Demo Cloud Control 13c (13.3)'

When you access your Enterprise Manager 13.3 Login Page now, you will see on the top left your logo image and beside the Login Button your defined free text field.