Oracle Fusion Middleware & Application Server

Monday, November 18, 2019

Deprecated Functionality for WebLogic Server 12.2.1.4.0

Since around 6 weeks the last Oracle WebLogic Server 12.2.1.4.0 Release is available and I got some spare time to read the necessary documentations.

In the "What's new Guide" https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/notes/whatsnew.html I found 2 interesting deprecated features, which weren't announced somewhere else.

Meaning of deprecated features (source MOS Note 888028.1)

Oracle Fusion Middleware deprecation process is to announce a feature deprecated in a given release where it will continue to be fully supported for bug fixes until the next major release. In the next major release, the feature will then be removed. In some cases it may remain, but only to extend the transition period where error correction support is no longer expected.

Oracle Traffic Director is in deprecated status for Oracle WebLogic Server 12.2.1.4.0 https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/notes/whatsnew.html#GUID-362AA8C0-082A-4744-B7F2-2BD4E0194F30. Oracle recommends as alternatives the usage of the Oracle HTTP Server, Microsoft IIS, Apache HTTPD Server with the corresponding Server Plugins and so on.

The second interesting feature which is in deprecated status for Oracle WebLogic Server 12.2.1.4.0 is the WebLogic Multitenant feature and the Resource Consumption Management https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/notes/whatsnew.html#GUID-B95FF848-893D-44A7-925E-1F87279F6CAE. As an alternative Oracle mentions the usage of Container-Based Solutions.


Thursday, October 10, 2019

OGB Appreciation Day: What I appreciate and what I would like to appreciate

It's time again for the OGB Appreciation Day #ThanksOGB (formerly known as #ThanksOTN and #ThanksODC) initiated by Tim Hall https://twitter.com/OracleBase

At first, what I appreciate from Oracle:

WOW, We have a new Fusion Middleware Release 12.2.1.4.0 :-) after nearly waiting for 2 years ! 
As my main focus is on WebLogic and Oracle Forms & Reports, I already had a closer look on this stuff and I must say, that specially for Oracle Forms & Reports, Oracle integrated some cool features/enhancements.

The browser-less solution for running Oracle Forms & Reports with the Forms Standalone Launcher is getting more and more mature, specially now with the ability to use SSO from Forms Standalone Launcher.

I really must admit that the Forms Standalone Launcher is the best improvement for Oracle Forms & Reports so far, as we can get rid of the Java Plugin dependencies within the Browsers.

On top with the latest Release 12.2.1.4.0 for Oracle Forms & Reports it's for me a clear commitment from Oracle for the future of Forms & Reports (here my special thanks goes to Michael Ferrante - Product Manager Forms & Reports https://twitter.com/OracleFormsPM )

The next thing, what I personally appreciate is the Always Free Cloud offering from Oracle.
It's really a great offering to give everybody for free and always 2 Oracle Databases (even when they are limited in terms of Memory and Space) and on top a Linux Server with 100 GB Storage with root privileges.
Now everybody can test and play from everywhere and every time (only an Internet Connection is required) with an Oracle environment. The cool thing is even, that you have a web-based SQL Developer and APEX.


As second, what I would like to appreciate from Oracle:

This is a long on going topic in the Oracle Community, the quality of the Oracle Support.
Over the past years the quality of the Oracle Support were decreasing from year to year up to an unbearable level. 
You have to fight with Support-Bots (while I am writing this blog post, I have opened in parallel a SR with Oracle Support and ooooooh miracle I'm discussing my support case with a Support-Bot ... ) , your open Bugs are not being processed and partially you get complete wrong answers on your questions or even you ask something and there is no reply for 2 weeks.

Dear Oracle Support, I can understand, that you don't want to fix a bug (which is not mission critical) for a Database Release which will be out of support within the next 9 months, but then PLEASE tell us, that you don't want to fix it and it will be fixed within the next upcoming release. In this case, I would know what to expect and not to let stay open my bugs and post only the famous mystery lines:
*** 11/19/18 10:03 am ***
*** 11/20/18 12:16 am ***
*** 11/29/18 12:00 am ***
*** 12/28/18 04:14 am ***
*** 12/28/18 04:14 am ***
*** 12/28/18 04:14 am ***
*** 01/31/19 12:34 am ***
*** 04/04/19 04:16 am ***
*** 07/29/19 08:12 am ***
*** 10/08/19 09:08 am ***

The next thing what I would like appreciate from Oracle is the version numbering concept for my beloved Oracle Fusion Middleware.
Currently we have for example Oracle WebLogic Server 12c (12.2.1.x) Releases, so far so good. The Oracle Database Releases are now following the version numbering concept with the years, for example Oracle Database 18c (2018), Oracle Database 19c (2019). So far so good, but who came to the brilliant idea to plan an Oracle WebLogic Release 14?
Long time ago we had the same confusion with the different version numbering concept between Oracle Database and Oracle Middleware Products (like iAS, OAS and so on, the older folks will still remember this products), with Oracle Middleware 12c we were aligned, but now with a future Release 14 we are back to the old confusion.
Dear Oracle, please align the version numbering concept ...


Tuesday, October 1, 2019

Oracle Forms 12.2.1.4.0 - New Security Handling for userid

In the latest Oracle Forms 12.2.1.4.0 Release, Oracle has implemented a new cool feature for security handling of the userid parameter.

Classically within the formsweb.cfg you are defining your section for your Forms Application, e.g.

#

# The values for userid are provided in cleartext
[demo]
WebUtilArchive=frmwebutil.jar,jacob.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTML=webutilbase.htm
baseHTMLjpi=webutiljpi.htm
archive=frmall.jar
lookAndFeel=oracle
form=test.fmx
userid=scott/tiger@prod


Now, with Oracle Forms 12.2.1.4.0, after you started the AdminServer of your Oracle Forms & Reports 12.2.1.4.0 environment, the value for the parameter userid will be automatically encrypted.
This is managed via the new parameter forms.userid.encryption.enabled=true for $EXTRA_JAVA_PROPERTIES inside the $DOMAIN_HOME/bin/setDomainEnv.sh script.

After you have started up your AdminServer the value for the parameter userid inside the formsweb.cfg will be encrypted:

#

# After the startup of the AdminServer the value
# for the parameter userid is encrypted
[demo]
WebUtilArchive=frmwebutil.jar,jacob.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTML=webutilbase.htm
baseHTMLjpi=webutiljpi.htm
archive=frmall.jar
lookAndFeel=oracle
form=test.fmx
userid={AES}E/vW+IIt0wtgdExtevDqrg==



Monday, September 30, 2019

Oracle Reports 12.2.1.4.0 - Create a Standalone Reports Server

On Friday, 27th September 2019, Oracle released the latest Version of Oracle Forms & Reports 12.2.1.4.0 (see my blog post http://dirknachbar.blogspot.com/2019/09/oracle-forms-reports-122140-available.html).

As I already created an Oracle Forms & Reports 12.2.1.4.0 environment, it's now time to have a look on the Oracle Reports 12.2.1.4.0 environment.

As usual, after you have successfully installed and configured your Oracle Forms & Reports 12.2.1.4.0 environment, the Oracle Reports Component is NOT configured completely.

Following steps you will have to perform:
  • Create the required Reports Tools Instance
  • Create the required Reports Server Instances
  • Optionally, if you don't any kind of security for accessing the Reports, disable the security settings and activate the Webcommands for the rwservlet
What you don't need anymore in Oracle Reports 12.2.1.4.0 are following steps:
  • No more symbolic link from /usr/lib/libXm.so.4 to libXm.so.3
  • No more modification on the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files on your JDK and the JDK under your $MW_HOME/oracle/common/jdk

Just perform following steps:

#
# At first we are creating the required Oracle Reports Tools Instance
cd $MW_HOME/oracle_common/common/bin
./wlst.sh
# replace the password with your password and verify if port 7001 is your Admin Server Port
wls:/offline> connect('weblogic','password','localhost:7001')
wls:/fr_domain/serverConfig/> createReportsToolsInstance(instanceName='reptools1',machine='AdminServerMachine')
wls:/fr_domain/serverConfig/> exit()

# Next we are creating our required Oracle Standalone Reports Server
cd $MW_HOME/oracle_common/common/bin
./wlst.sh
wls:/offline> connect('weblogic','password','localhost:7001')
wls:/fr_domain/serverConfig/> createReportsServerInstance(instanceName='rep_server1',machine='AdminServerMachine')
wls:/fr_domain/serverConfig/> exit()

Now we have to align the rwserver.conf configuration file for the above created Oracle Standalone Reports Server, called in my example rep_server1.

#
# Open the rwserver.conf with an editor
# located under $DOMAIN_HOME/config/fmwconfig/components/ReportsServerComponent/<Reports Server Name>/rwserver.conf
# Align the following section from :

   <cache class="oracle.reports.cache.RWCache">
      <property name="cacheSize" value="50"/>
      <!--property name="cacheDir" value="your cache directory"/-->
      <!--property name="maxCacheFileNumber" value="max number of cache files"/-->
   </cache>
   <!--Please do not change the id for reports engine.-->
   <!--The class specifies below is subclass of _EngineClassImplBase and implements EngineInterface.-->
   <engine id="rwEng" class="oracle.reports.engine.EngineImpl" maxEngine="1" minEngine="1" engLife="50" >
      <!--property name="sourceDir" value="your reports source directory"/-->
      <!--property name="tempDir" value="your reports temp directory"/-->
      <!--property name="keepConnection" value="yes"/-->
   </engine>

# To (align the provided directories for cacheDir, sourceDir and tempDir to your settings)

   <cache class="oracle.reports.cache.RWCache">
      <property name="cacheSize" value="50"/>
      <property name="cacheDir" value="/u00/app/oracle/demo_app/cache"/>
      <property name="maxCacheFileNumber" value="50"/>
   </cache>
   <!--Please do not change the id for reports engine.-->
   <!--The class specifies below is subclass of _EngineClassImplBase and implements EngineInterface.-->
   <engine id="rwEng" class="oracle.reports.engine.EngineImpl" maxEngine="1" minEngine="1" engLife="50" >
      <property name="sourceDir" value="/u00/app/oracle/demo_app/rdf"/>
      <property name="tempDir" value="/u00/app/oracle/demo_app/temp"/>
      <property name="keepConnection" value="yes"/>
   </engine>

# In case you don't need any kind of security for your Oracle Reports align the following section as follows:

   <job jobType="report" engineId="rwEng" securityId="rwJaznSec"/>

# To, remove the part securityId="rwJaznSec":

   <job jobType="report" engineId="rwEng"/>

To enable the Webcommands in the rwservlet just modify the rwservlet.properties file under $DOMAIN_HOME/config/fmwconfig/servers/<Name of Managed Server for Reports>/applications/reports_12.2.1/configuration

#
# Add the line <webcommandacess>L2</webaccesscommand>

<?xml version="1.0" encoding="UTF-8"?>
<rwservlet xmlns="http://xmlns.oracle.com/reports/rwservlet" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <server>rep_wls_reports_greenfield</server>
   <singlesignon>no</singlesignon>
   <inprocess>yes</inprocess>
   <webcommandaccess>L2</webcommandaccess>
</rwservlet>

Now start your Managed Server for Oracle Reports, normally WLS_REPORTS and after that start your newly created Oracle Standalone Reports Server

#
cd $DOMAIN_HOME/bin
# if you don't want to be prompted in future for the Nodemanager Password
# use the option storeUserConfig, it will store the password
./startComponent rep_server1 storeUserConfig

Starting system Component rep_server1 ...

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Reading domain from /u00/app/oracle/user_projects/domains/demo_domain
 
 
Please enter Node Manager password:
Creating the key file can reduce the security of your system if it is not kept in a secured location after it is created. Creating new key...
The username and password that were used for this WebLogic NodeManager connection are stored in /home/oracle/.wlst/nm-cfg-demo_domain.props and /home/oracle/.wlst/nm-key-demo_domain.props.
Connecting to Node Manager ...
<Sep 30, 2019 1:28:41 PM CEST> <Info> <Security> <BEA-090905> <Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true.> 
<Sep 30, 2019 1:28:41 PM CEST> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG128 to HMACDRBG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true.> 
<Sep 30, 2019 1:28:41 PM CEST> <Info> <Security> <BEA-090909> <Using the configured custom SSL Hostname Verifier implementation: weblogic.security.utils.SSLWLSHostnameVerifier$NullHostnameVerifier.> 
Successfully Connected to Node Manager.
Starting server rep_server1 ...
Successfully started server rep_server1 ...
Successfully disconnected from Node Manager.


Exiting WebLogic Scripting Tool.

Done

Now you can access the Reports rwservlet commands under http://<Your ServerName>:9002/reports/rwservlet


In order to see the environment/configuration for our newly created Oracle Standalone Reports Server rep_server1 just use following URL: http://<Your ServerName>:9002/reports/rwservlet/showenv?server=rep_server1


Summing up, Oracle Reports 12.2.1.4.0 is still the same as the previous release, but 2 positive topics are that you don't need anymore to create the symbolic link for the libXm.so.3 and you don't need any more the modification on the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.


Saturday, September 28, 2019

Oracle Forms & Reports 12.2.1.4.0 - First Look

Yesterday I was blogging about the new Oracle Forms & Reports 12.2.1.4.0 Release.

Today I got some spare time to install and configure the latest Oracle Forms & Reports 12.2.1.4.0 Release on one of my test VM's.

My configuration is as follows:
The installation and configuration is the same as under the previous Oracle Forms & Reports 12.2.1.3.0 Release.
At first install and configure your Oracle Database, I have created an Oracle 19c Instance with one PDB, which will be my target Database for the required Metadata Repository for Oracle Forms & Reports 12.2.1.4.0.
Next step is to install the JDK (or better to say unzip your Oracle Server JRE 8u221, you can even use a full JDK).
After that, install your Oracle WebLogic Server Infrastructure 12.2.1.4.0 and when this is done, install into the same MW_HOME your Oracle Forms & Reports 12.2.1.4.0 software.

Now, we can start to configure the required stuff. At first you need to run the Repository Creation Utility ($MW_HOME/oracle_common/bin/rcu), when this is done, we can configure the Oracle WebLogic Domain for Forms & Reports with the config.sh script located under $MW_HOME/oracle_common/common/bin).

When the configuration part is done, just startup your Node Manager with $DOMAIN_HOME/bin/startNodeManager.sh and after that your AdminServer with $DOMAIN_HOME/startWebLogic.sh

Now you can either start the Managed Servers (WLS_FORMS and WLS_REPORTS) from the WebLogic Console http://:7001/console or with the script $DOMAIN_HOME/bin/startManagedWebLogic.sh

Just to test, if your Forms Environment is working, get the frmsal.jar (located under $MW_HOME/forms/java) to your Desktop and execute following command:

#
# java -jar frmsal.jar -url "Full Qualified Server including the Configuration" [-t <timeout in milliseconds>] [-showConfig false|true]
java -jar frmsal.jar -url "http://<Your_ServerName>:9001/forms/frmservlet?config=standalone" -showConfig true

Config parameters from server are:
    CODEBASE=/forms/java
    ARCHIVE=frmall.jar
    WIDTH=750
    HEIGHT=600
    NAME=
    serverURL=/forms/lservlet?ifcfs=/forms/frmservlet?config=standaloneapp&standaloneapp=1&ifsessid=WLS_FORMS.formsapp.2&acceptLanguage=en-us
    networkRetries=0
    splashScreen=
    background=
    lookAndFeel=Oracle
    colorScheme=swan
    customColorScheme=
    serverApp=
    logo=
    imageBase=codebase
    formsMessageListener=
    recordFileName=
    EndUserMonitoringEnabled=false
    EndUserMonitoringURL=
    heartBeat=
    MaxEventWait=
    disableValidateClipboard=false
    allowAlertClipboard=true
    digitSubstitution=context
    highContrast=false
    disableMDIScrollbars=
    clientDPI=
    applet_stop_timeout=800
    guiMode=0
    idleTimeout=
    isResizable=
    centerOnStartup=
    alwaysOnTop=
    mediaBase=codebase
    webFormsTitle=Oracle Fusion Middleware Forms Services
Inspecting archive files in cache directory /var/folders/b_/ldw8b91n7h7dp58hd3xf2qmc0000gn/T/frmsal/greenfield/12.2.1.4
Downloading archive file frmall.jar to cache subdirectory ermz9mn700rz58gniz4ftx8un
Forms Session ID is WLS_FORMS.formsapp.2
The proxy host is null, and the proxy port is 0.
Native HTTP implementation is being used for the connection.
The connection mode is HTTP.
Forms Applet version is 12.2.1.4

With the optional option "-showConfig true" your java call on the frmsal.jar will display you the Forms Configuration in your shell or Command Prompt.

Now you should see following:


Enjoy the new Oracle Forms & Reports 12.2.1.4.0 Release, I will post in the next days more blog posts about the latest Oracle Forms & Reports 12.2.1.4.0 Release ...


Friday, September 27, 2019

Oracle WebLogic Server 12.2.1.4.0 available

Since today the new Oracle WebLogic Server 12.2.1.4.0 is available for download :-)

Currently I was just able to find the download under https://edelivery.oracle.com.


But I hope that the Oracle WebLogic Server 12.2.1.4.0 will be soon available under Oracle Technical Resources (former OTN)

The documentation is already available under https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/index.html

As this WebLogic 12.2.1.4.0 is mainly a PatchSet, there are not so many new features, checkout the "What's New in Oracle WebLogic Server" document under https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/notes/whatsnew.html#GUID-DF8CFD1C-9DD1-423E-ACA6-9717D5738385

Enjoy the new WebLogic Server 12.2.1.4.0 Release

Update 28th September 2019: The Oracle WebLogic Server 12.2.1.4.0 can now be found under Oracle Technical Resources (former OTN): https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html

Oracle Forms & Reports 12.2.1.4.0 available

Since today the new long awaited Oracle Forms & Reports Release 12.2.1.4.0 is available, this is after 2 years now the next release of Oracle Forms & Reports.

The software can be found under: https://www.oracle.com/middleware/technologies/forms/downloads.html



The corresponding documentation can be found under https://docs.oracle.com/en/middleware/developer-tools/forms/12.2.1.4/index.html


As expected the new features are as follows:

  • SSO Support for Forms Standalone Launcher (FSAL)
  • Forms Standalone Launcher (FSAL) is compatible with Java 11.0.2 (LTS)
  • Increased Text Length for Text or Display Items, from 65534 to 2097151
  • The Oracle Database Client Software within the Middleware Home is now updated to 12.1.0.2190716

Also Oracle added a new System Requirements and Supported Platforms for Oracle Fusion Middleware 12c (12.2.1.4.0) Excel Sheet under https://www.oracle.com/technetwork/middleware/fmw-122140-certmatrix-5763476.xlsx

Enjoy the new Oracle Forms & Reports 12.2.1.4.0 Release :-)


Monday, September 23, 2019

OOW19: Oracle Forms News

Since today many of the Oracle OpenWorld 2019 presentations are available under https://events.rainfocus.com/widget/oracle/oow19/catalogow19?

For Oracle Forms & Reports are 2 interesting presentations are available:

As usual every content from the above slides are covered under the Oracle Safe Harbor Statement :-)
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.

In general there will be a new Oracle Forms Release, Oracle Forms 12.2.1.4.0, which will be also the Terminal Release for Oracle Forms 12.2.1.x. The Oracle Forms 12.2.1.4.0 is announced for Q3/2019.

The most interesting new features from my point of view will be:

Forms Standalone Launcher (FSAL)
  • SSO Support :-)
  • Java 8 & Java 11 Support :-)
  • Showing Configuration Details on startup
  • Improvements in Cache Handling including an option to disable the Cache
Forms Application Deployment Services (FADS)
  • Support for SQLDeveloper 18.2+
  • Support for Oracle Databases 12.2+
  • WebUtil enabled Applications will be supported
Forms Runtime:
  • Text fields are increased to a max size of 2M

Moreover you can see from the OOW19 "Oracle Forms: What's New and What's Cloud" presentation, thats Oracle is pushing more and more for the Oracle Cloud Offering for Oracle Forms & Reports.
Oracle is promising that you will be able to get an Oracle Forms & Reports 12.2.1.3.0 environment to be ready in under 15 minutes. With following stuff:
  • Oracle Database 18.3
  • WebLogic Infrastructure 12.2.1.3
  • Oracle Forms & Reports 12.2.1.3, but Reports are not configured, so in case you know what to do, you can add another 10 to 15 minutes to configure your Oracle Reports
  • JDK 8 Update 211

My personal Long Term Future for Oracle Forms assumptions are, based on the OOW19 presentation "Catalog ID: THT5008: Oracle Fusion Middleware Roadmap: See What's New and What's Coming" (Page 19) https://static.rainfocus.com/oracle/oow19/sess/1554316945388001WhJp/PF/THURS_1200_Oracle%20Fusion%20Middleware%20Roadmap%20See%20Whats%20New%20and%20Whats%20Coming_1568995098562001vCqc.pdf is that within the next 2 years we will see a Forms Release 14.1 (I still wonder who came to this Version Numbering???).


Thursday, September 19, 2019

OOW19: WebLogic News

During the Oracle Open World 2019 were some announcements regarding Oracle WebLogic Server.

The last year announced WebLogic Server 19c for Q1/2019 disappeared ...
There will be no WebLogic Server 13 Release ...

But there will be:

  • WebLogic Server 12.2.1.4, which should come up shortly, as usual what shortly means in Oracle terms is not clearly defined :-)
    • The WebLogic Server 12.2.1.4 Release will be the Final Maintenance Release for 12.2.1.x, so don't expect too many new features
  • BETA Program for WebLogic Server 14.1.1 is announced and to be started shortly.
    • I really wonder who came to the idea with this Version numbering??? Is there any chance to consolidate the Version numbering of the Middleware Products with the Oracle Database Version numbering?
  • Oracle WebLogic Server on Microsoft Azure IaaS

Please note: WebLogic Server 14.1.1 is currently ONLY in BETA Program, so no downloads on "Technical Resources from Oracle (former OTN)" or on edelivery.oracle.com 
The new WebLogic 14.1.1 will support Java EE 8 and Jakarta EE 8.

If you are interested, you can register for the Beta Program under https://pdpm.oracle.com and if you are lucky, Oracle will select you to join the Beta Program.



Tuesday, September 17, 2019

Oracle's Always Free Autonomous Database and Cloud Infrastructure

Yesterday Larry Ellison announced in his keynote during the Oracle Open World 2019 the "Always Free Autonomous Database and Cloud Infrastructure". For more details about it see:

In short terms, you get a full environment with:
  • 2 Always Free Databases
    • Up to 1 OCPU and 20GB of Storage for each Database
    • SQL Developer Web-based
    • APEX 19.1.0.00.15
    • Automatic REST
    • SQL Notebooks for Machine Learning
  • 1 VM with a Linux
    • Oracle Linux 6.10, 7.6, 7.7
    • Ubuntu 16.04, 18.04
    • CentOS 6.10, 7
and everything for free and unlimited time ;-) That's a deal !

You just need to register and you can start to create your environment.

After you are done with the registration you can login to the Oracle Cloud Console:


From here you can start to perform your actions, like creating a Linux VM Instance or creating an Oracle Database (Autonomous Transaction Processing or Autonomous Data Warehouse) and so on.

Each creation step is really straight forward and no rocket science ;-)

For the Databases you will get after the creation a kind of overview page with your Database details and different option, like show Database Connection, Performance Hub, Service Console and so on.



The ATP Performance Hub give you a brief overview of your Database Performance


And also the Service Console comes in a clean and organised look:


From the Service Console you can also access the Web-based SQL Developer, just click on "Development" in the Service Console and than in the center screen "SQL Developer Web"


The Web-based SQL Developer is my personal highlight, you can test and run your queries now from everywhere, you just need a browser and an Internet Connection.

As well you get with your ATP Database Oracle APEX (Version 19.1.0.00.15), which can also be accessed from the Service Console, click on Development and than in the center screen Oracle APEX


This new Always Free Option from Oracle is definitely a game changer ...


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.