Oracle Forms & Reports 12c | Publishing a sample application

After a long break, I am going to post about deploying Oracle Forms & Reports based application using Weblogic Server 12c (12.2.1.4).

With my previous posts about Weblogic 12c & Oracle Forms & Reports, I have provided most of the details about configuring the Forms and Reports environments for deploying Forms & Reports based application(S). Well, for a beginner this could post a challenge.

So the post is for beginners and those trying to setup an environment using Weblogic Server for the first time. Please note, you must adjust the paths listed below according to your installation/naming conversions.

To start with, I always install Weblogic Server & Oracle Forms & Reports software on the same HOME. Example: D:\Weblogic\Middleware\Oracle_Home

The advantage of following the same name throughout installations (of same version) is, I can copy the fine tuned configuration files from an existing installation and later use them when I am forced to remove and reconfigure the complete infrastructure.

To host Oracle forms and reports based applications, we need to make few changes with existing configuration files for both Forms and Reports. Prior making those changes, let us run a quick errand for mandatory elements for successful deployment of applications.

HOST Name (aka your computer name). Make sure you have a meaningful name for your computer. If you have installed and configured Weblogic and other software components against a name that looks like a joke, then redo the installation and configurations against a new computer name (eg: RAJESH-PC, JOHN, MARTHA, ORASERVER or anything that is short and could easily be identified). Refer documents those explain you how to change your computer name.

You must have a STATIC IP address for your computer that is going to host your Forms & Reports application. If your computer is part of domain network & supported by a DNS server, you might take a risk of not having STATIC IP, however, please note, Oracle insists for a STATIC IP for the box on which you install database & other server software. Usually at home/small networks, you are connected to a wireless router/router or a computer that issues dynamic IP addresses. If you are at home, you may assign a IP address outside of DHCP scope for you computer. Please google for more details to know how to setup STATIC IP address. If you are new to these basic networking elements, consult someone who could help you.

HOST File modifications. As we are talking about Windows environments, regardless whether client or Server OS, you will find the HOST file under:

C:\Windows\System32\drivers\etc

You can use Notepad to open up this file and add an entry like below. If you are on Windows 7 or later, make sure that you are opening Notepad as Administrator (The whole exercises you have read until were only tested on Windows 10):

Where 192.168.1.65 is the STATIC IP address assigned to my computer, erp-prod.my.home is the fully qualified domain name(FQDN) and erp-prod is the hostname.

At home you don’t need the FQDN, unless you have a DNS configured or you fancy a computer name like “mycomputer.mydomain.com” instead of just “mycomputer”

The above were the least amount of network related settings those you insure to make sure that your application can be accessed from your computer (and your network). Please note, you have to open port 7777 (default OHS) through the firewall so that other computers on the network can access your application. For local testing, you may skip this.

So, I guess we are good with the above mentioned and will move to setting up “stuffs” for our first application. I already have an application that was developed using 11g Forms & Reports and will be using the same for the rest of explanations.

Setup TNS Names. If you are not using environment variable TNS_ADMIN, you should set up the TNS names exclusively for your application deployment.

So, I said I always install Weblogic and other software components in the same place “D:\Weblogic\Middleware\Oracle_Home”. After configuring for a classic domain for Forms & Reports, I can find the tnsnames.ora file under the path:

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig

Where “base_domain” is the default domain name Oracle suggests during the configurations.

I suggest you to make a copy of your tnsnames.ora file prior making changes to the file. The best is, copy the tnsnames.ora file from your database network admin folder after renaming the existing tnsnames.ora file.

Once the TNS names are set, we can quickly setup “formsweb.cfg” file within which our application specific configurations will be defined.

Based on my installation path and classic domain naming, I should find the formsweb.cfg & default.env files under:

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\servers\WLS_FORMS\applications\formsapp_12.2.1\config

Please make sure that each and every other configuration file that you are going to edit/alter is backed up, so that you can rollback to default configuration easily by replacing the wrongly configured files. I usually put “.original” by the end of backed up files!

Below is a sample configuration for my application & trust me, you need more than half of the parameters listed below

[balaji]
# 
# Entries from source Oracle FMW Domain
# added by the Forms Upgrade Assistant Plugin.
baseHTML=base.htm
baseHTMLjpi=basejpi.htm
HTMLdelimiter=%
envFile=default.env
serverArgs=%escapeparams% module=%form% userid=%userid% debug=%debug% host=%host% port=%port% %otherparams%
escapeparams=true
form=LOGIN.fmx
userid=APPS/APPS@orcl
debug=no
host=
port=
digitSubstitution=context
otherparams=obr=%obr% record=%record% tracegroup=%tracegroup% log=%log% term=%term% ssoProxyConnect=%ssoProxyConnect%
obr=no
record=
tracegroup=
log=
term=
HTMLbodyAttrs=
HTMLbeforeForm=
HTMLafterForm=
serverURL=/forms/lservlet
codebase=/forms/java
imageBase=codebase
mediaBase=codebase
width=750
height=600
separateFrame=true
splashScreen=false
allowAlertClipboard=true
disableValidateClipboard=false
highContrast=false
background=
lookAndFeel=Oracle
colorScheme=swan
customColorScheme=
logo=
guiMode=0
restrictedURLparams=pageTitle,HTMLbodyAttrs,HTMLbeforeForm,HTMLafterForm,log
formsMessageListener=
recordFileName=
serverApp=
archive=frmall.jar
networkRetries=0
java_version=1.7+
legacy_lifecycle=false
ssoDynamicResourceCreate=true
ssoErrorUrl=
ssoCancelUrl=
ssoMode=false
ssoProxyConnect=no
ssoLogOut=false
ssoLogOutRedirect=
logoutTargetURLParamname=
allow_debug=false
allowNewConnections=true
EndUserMonitoringEnabled=false
EndUserMonitoringURL=
applet_name=
enableJavascriptEvent=true
JavaScriptBlocksHeartBeat=false
idleTimeout=
separate_jvm=false

You will learn which parameters are not necessary over the long run. Just make sure that you will create all the new configurations by the dead end of “formsweb.cfg” file to avoid confusions. Please give extreme attention to the parameter “java_version=1.7+”. This means, you can only use JRE versions 1.7 and above (JRE7, 8 and other certified)

Once the formsweb.cfg is saved, we can proceed with editing/altering default.env file, that is in the same path. You can tell the forms runtime to look in this file to locate the forms runtimes. For example, I’ve all the compiled runtimes available at D:\12c folder for the application that I am trying to deploy/publish. The FORMS_PATH is pointed to it & other paths wherever I have applications (eg: mapped path \\RT04\OPMAN12C\main). Make sure each path is separated using a “;”

FORMS_PATH=D:\Weblogic\Middleware\Oracle_Home\forms;D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\components\FORMS\instances\forms1;D:\12c;\\RT04\OPMAN12C\main;\\RT04\OPMAN12C\OPMAN

Finally we have to edit/alter one more file, “Registry.dat” which controls how the LOVs appear/behave and many other values for the runtime. We will only configure LOV appearance and required field background color settings this time.

You should able to find “Registry.dat” file here:

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\servers\WLS_FORMS\applications\formsapp_12.2.1\config\oracle\forms\registry
#
# Application level settings to control UI features
#
# app.ui.lovButtons=false
app.ui.lovButtons=true
# app.ui.requiredFieldVA=false
app.ui.requiredFieldVA=true
#    The background color is specified as an RGB triple.
# app.ui.requiredFieldVABGColor=255,0,0
app.ui.requiredFieldVABGColor=255,242,203

Please note, you can make these whole changes using Weblogic EM console. For me this is the fastest way.

Once whole these changes are made, you can start Weblogic server, start Weblogic FORMS server and try to run the application by entering the following URL on Microsoft Internet Explorer. Please note, no browsers other than Internet Explorer allow you to load JRE NPAPI client. We will discuss about using Java Webstart method by the end of this post.

One most important element you should cross verify at this point is whether the JRE installed is 32Bit or 64Bit. If you have installed the complete JDK before Weblogic setup, you should uninstall the JRE 8/higher version that is installed and install JRE 32Bit 7 or higher. Internet explorer will not load 64Bit JRE

http://<hostname>:7777/forms/frmservlet?config=balaji
http://rt04:7777/forms/frmservlet?config=balaji

Now, we will see how to get reports from the application. If you are planning to migrate from Developer 6i to 12c, there is going to be a huge effort involved. I am working with Oracle Applications R12 from last 11 years and have adapted much of the ideas from the application (menu architecture, report submission and many other). You will have to design a totally new approach for your reports, to cut it short. Plus, 12.2.1.4 is the last version of Oracle Reports (according to sources). Hence please start planning for Oracle BI or Crystal Reports integration for your reporting requirements in the future.

If you are switching from Forms/Reports 6i, please note, you will start using Web.Show_Document method for calling reports from Forms. With the given example, I am allowing users to select a report from list of values and storing the report executable value in to :CTRL.REPORT_NAME column and the calling “Web.Show_Document” method.

if (:CTRL.REPORT_NAME IS NOT NULL) then
Web.Show_Document('/reports/rwservlet?usr&desformat=PDF&destype=cache&report='||:CTRL.REPORT_NAME||'&paramform=Yes','_new');

else
	NULL;
end if;

You can pass the report name (‘ABCD.rdf’) for example for the parameter report within the url specified in Web.show_document method.

How to OPEN Forms Developer and Reports 12c??

While Oracle Forms 12c is available within the menu

accessing Report Developer may not be that straight forward. Basically report builder windows executable is wrapped inside multiple windows batch files & you will find the rwbuilder.bat file here:

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\reports\bin

I suggest you not to try to open the executable, as the wrapper setup environment for the executable to run. Interested, the .bat file has the following content:

@REM
@REM Copyright (c) 1999, 2008, Oracle and/or its affiliates.
@REM All rights reserved. 
@REM

@echo off 
@echo Starting Reports 12c Builder...
setlocal

set DOMAIN_HOME=D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain

call %DOMAIN_HOME%\reports\bin\reports.bat

set COMPONENT_NAME=rptools1
set COMPONENT_CONFIG_PATH=%DOMAIN_HOME%\config\fmwconfig\components\ReportsToolsComponent\%COMPONENT_NAME%

set REPORTS_INSTANCE=%COMPONENT_CONFIG_PATH%
set CA_GPREFS=%COMPONENT_CONFIG_PATH%\tools\admin
set CA_UPREFS=%COMPONENT_CONFIG_PATH%\tools\admin


@echo on
start %ORACLE_HOME%\bin\rwbuilder.exe %*

@echo off
endlocal
@echo on

I think I’ve made a decent attempt to make it easier for a sample application deployment using Weblogic Server 12.2.1.4 & always ready to develop and provide a sample application for entirely newbies using Oracle’s sample schemas. Feel free to let me know through the comments 🙏

Install Oracle forms & reports 12.2.1.4 with Weblogic 12c 12.2.1.4

Hi guys

Last reviewed on: 20th January 2021

Linking this document with an article that explains how a sample application could be published using a newly setup Weblogic environment.

Last reviewed on: 17th January 2021

Please do not try to install Weblogic 14.1.1.0, that supports only JAVA deployments as on date. Oracle says they are committed to release a version that supports Oracle Forms and Reports & the stack is under development.

Last reviewed on: 24th December 2020

Few days back I received an interesting message from one of the visitors, having troubles with their WebLogic installation, inquiring about the frequent crashes. My visitor Mr. Rabin Mitra later figured out it was due to using 32Bit JDK with 64Bit WebLogic infrastructure.

After successfully executing "startnodemanger.cmd" and "startWeblogic.cmd", I am able to start the Weblogic Console UI. However, any action (such as clicking on Server button) within the UI crashes Weblogic! The error is as follows:

# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1210952 bytes for Chunk::new

Mr. Rabin has confirmed that he had to uninstall the complete WebLogic installation & redo as replacing 32Bit JDK with 64Bit was not sufficient enough to address the continued issues with installation. Please go through the below text and links, incase if you are in the same “soup” ;)

I am happy to report that the 32-bit version of JDK on my 64-bit machine was indeed the problem. However, merely replacing the JDK does not solve the problem. The reason for this is that the jar file for WebLogic was extracted using the 32-bit JDK. This implies that the WebLogic must as well be reinstalled. This again in turn means that the Domain must be re-created and since the domain is associated with a repository, the repository must also be reinstalled. So, it turns out that one must dismantle each piece and reinstall it from scratch!


Installing the JDK is the #1 instruction. So, an incorrect choice here pretty much sets you back completely. You may want to provide this as a caution to your readers.

So here briefly is the sequence of events one must follow if they chose an incorrect version of JDK.

This note was followed by few links:

  1. Uninstall Forms and Reports 12c
    https://docs.oracle.com/middleware/1221/formsandreports/install-fnr/deinstall.htm#FRINS301
  2. Stop the Fusion Middleware Environment
    https://docs.oracle.com/middleware/1212/core/ASADM/start.htm#ASADM138
  3. Uninstall the Oracle Enterprise Repository
    https://docs.oracle.com/middleware/1213/oer/install-oer/uninstall.htm#OERIG380
  4. Uninstall Weblogic software
    http://www.catgovind.com/weblogic/how-to-uninstall-weblogic-12c/
  5. Remove Weblogic Domain (For Linux, but it is really deleting a folder). I whacked the entire c:\Weblogic\Middleware\Oracle_home at the root!
    https://www.learn-it-with-examples.com/middleware/weblogic/common-tasks/remove-weblogic-domain.html
  6. Uninstall JDK
  7. https://java.tutorials24x7.com/blog/how-to-uninstall-java-from-windows

Last reviewed on: 13th September 2020.

This time we are going to see how we could install and configure Oracle forms & reports 12.2.1.4, the latest version using WebLogic Server 12c 12.2.1.4

Side Note: Kindly refer this document from Oracle System Requirements and Specifications (oracle.com)

The Visual C++ requirements mentioned MUST be met, without which you will NOT able to startup OHS instance.

Prior Installing Oracle Server Software on your computer, please make sure that your computer has a proper name (hostname) like “JOHN-PC, RAJESH-PC, ORACLE-SERVER” etc instead of defaults like ‘DESKTOP-jyyytyuukkyjj’ after an installation of Windows. In addition, please make sure that your laptop/Desktop machine has a Static IP address.

As a rule of thumb, regardless whether you are going to install and configure Oracle software on LINUX or Windows operating systems, always update the OS to latest patch levels, prior you start with the Oracle software installation(s). I strongly recommend using Oracle VirtualBox based Virtual Machines for the lab & later you may move the tried out solution to your preferred environments (TEST, Development). I don’t recommend any of the suggestions I make through my blog posts to be applied to PRODUCTION environments without consulting a Professional support entity.

As per Mr. Rabin Mitra’s suggestion, I am adding a clause. “Please double check whether all the software you have downloaded for the installation is of same architecture. The below instructions are for 64Bit Weblogic installation & starting from JDK all the software downloaded must be 64Bit”

Download Software from Oracle

Fusion Middleware Infrastructure Installer (Weblogic)

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

Oracle Forms & Reports 12.2.1.4

https://www.oracle.com/middleware/technologies/forms/downloads.html

JAVA SE Development Kit 1.8

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Install JDK

I prefer installing JDK on C: drive & Usually my JDK is installed on C:\Java\JDK folder. The shortest name, the best to handle it later. Once the 64Bit JDK is installed, you need to setup either JAVA_HOME environment variable or add a new entry in to the system path. I prefer a system path modification than user path modification.

Okay, there are hell loads of Oracle software installed on my system. Don’t worry, I manage them. Just make sure the JDK installation path is on top of the list and you are good to go

Install Weblogic Server 12.2.1.4

It may take a while for the jar file to extract and start the installer. Please wait patiently. I was setting up the entire infrastructure using Windows 10 VM & due to the limited resources, hence the entire ordeal was kind of time taking this time for me.

You can safely skip the Auto Update

Naming Oracle installation folders is an art. The complex the folder structures, the complex later configurations would be. I usually prefer to install all my Oracle software on D: drive. Please feel comfortable to format the Oracle home as per your requirements. Maintaining the same format helps me to locate and sometimes replace files from previous installations.

Select “Fusion Middleware Infrastructure”

WebLogic or Middleware installation is NOT complex anymore on Windows 10 OS. There are no special hacks needs to complete the installation.

Install forms & reports 12.2.1.4

Extract the downloaded zip file & you MUST start the installer as “Administrator”.

We’ve to install the Forms and Reports stack on an existing Oracle Home. So please select the Oracle Home where you have installed “WebLogic” Server. Alternatively you can always install the stack on a different Oracle Home, which I never tried earlier.

Select “Forms and Reports Deployment”, as the last two versions of Forms & Reports allow you to install a Standalone Forms Builder.

Select the correct JDK Home

Please make sure that you have Visual C++ libraries pre-installed prior proceeding. If you don’t have the VC++ libraries installed, the OHS instance will not start & you might experience additional problems during installation also.

That completes the Forms & Reports 12.2.1.4 installation.

Create a REPO for the Classic Domain

To create a classic domain, you must have a repository available with the database. Weblogic 12c supports Oracle 11G 11.2.0.4 or later database for the repositories & my pick will be always 12c Database as the 11.2.0.4 is only accessible for customers with valid Oracle support. You may refer this document for a detailed “how to” towards installing Oracle 12c database.

From an elevated command prompt, switch to Oracle Home\oracle_common\bin folder & execute “rcu.bat”

Check the below image for details

Choose the defaults

Provide the connection parameters. If the database is on another server, you don’t have to install additional clients, connection parameters will take care of the connection. Refer the below image for details (Adjust according to your database setup)

My 12c Database already has a repository for Forms & Reports 12c 12.2.1.3, hence I created a new prefix “DEV1”. If you are creating a repo for the first time, you can use “DEV” or any other 3 letter combination (make sure you will able to remember it laters).

Select all the components as seen with the below image. The selected are mandatory, especially the Metadata Services.

Use the same password everywhere! Unless you are setting up a production instance, use the same password everywhere. Example, I use “Abc1234” for the schemas, Weblogic Admin account, node manager etc, which makes the administration much easier. For production, follow the Oracle standards.

That completes the repository creation for a Classic domain.

Create a Classic Domain for deploying forms & reports application

From an elevated command prompt, switch to Oracle Home\oracle_common\common\bin (eg: D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin) & execute config.cmd, that will kick start the classic domain configuration wizard.

Select the defaults, unless you have specifics. We will be creating a new domain with the following example.

Refer the below images and select the same components for a successful domain creation for forms and reports.

As I mentioned earlier, use the same password here, so that you don’t have to worry about forgetting & recovering it at later stages.

We will setup the domain for production (never tried Development, so don’t know how exactly both differ from each other). Leave the JDK selection as it is.

Now, your earlier created repository will come in act. Refer the below image(s) and adjust as per your environment

Make sure all the Schema validations are successful. Next step select components as per the below image

Make sure the Server Group is filled the value as seen with the below image. Don’t miss it!

We’ll add an instance OHS now. Click on the add button and refer the below images for more details

Fill in the Listen Address with “localhost” and leave rest to defaults

That finishes the creation of your classic domain.

You should able to access the newly created WebLogic admin server through the URL http://localhost:7001/console

I’m hurrying to publish the POST without further delays, as I am once again caught up with multiple assignments & keeping up with promises are NOT something I look up to at this time. However, I will add up the missing configurations for OHS and setting up the Forms and reports very soon an an annexure as early as possible!

19th June 2020

Today I installed & configured another Weblogic Server environment & realized that I was supposed to amend this post with more details, is a long due!

I chose a Container+PDB 12c database instance for my Weblogic Server this time. It was fun, finally learning few things about Container and pluggable databases & I am hoping to write another post about setting up Weblogic, Forms and Reports with such a setup in near future.

Now without wasting more time, let us see how to finalize the freshly configured classic domain for Oracle Forms and Reports deployment.

Switch to the your newly created domain’s bin folder from an elevated command prompt. Eg:

“D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin”. Usually I always installed Oracle software on D: drive & follow the same naming structure for the folders. It helps me to backup and restore configuration & other files that help me to finish setting up the environments faster.

Start the nodemanger now by issuing the command by executing the command “startnodemanger.cmd”

It may take few seconds to minutes until the node manager starts for the first time. Please remember, you shouldn’t close this command window, which will automatically stop the node manager.

Open another elevated command prompt window and switch to your classic domain’s bin folder. Start the Weblogic admin server by issuing the command “startWeblogic.cmd”

Okay, with node manager, 99.9% chances that you may not bite bullet. With Weblogic Admin server, this is not the case. For number reasons, the Server will try to start and give up in the middle. So don’t panic. If the Weblogic Admin Server is not coming up to a “RUNNING” status after extended period of waiting, go ahead and restart your computer. Start node manager and then try to start the weblogic admin server once again.

The initial startup could take up to 5-6 minutes (depending upon your hardware, this time could vary) & you should see a status like below

Remember not to close the window, which will immediately stop the Weblogic Admin Server. The status of the window will keep on updated against the activities happening at the server side. Once started, you can safely keep both node manager and Weblogic Admin Server CMD windows minimized.

You can logon to the Weblogic Admin server from http://localhost:7001/console

Once after successfully logging in, this is the window you are presented with. We’ve to configure both Forms & Report servers now, by trying to start them. This process will keep on adding many elements to your start menu. Let us see we can start Forms (WLS_FORMS) & Reports (WLS_REPORTS) servers now

Click on the “Control” tab, select both “WLS_FORMS” & “WLS_REPORTS” from servers and press the “Start” button. Once start button clicked, you can press the refresh button to monitor the status of the Servers. Do not forget to click the refresh button again to stop refreshing once after the servers show the status “Running”

It could take minutes for both the servers to reach the “Running” stage. Keep watching the Admin Server command window for unexpected errors. If you have followed all the steps as I’ve instructed throughout my thread, I can confidently say that you shouldn’t have a single hick up until this moment.

Once both servers are running, we can complete the OHS setup finally. Open another elevated command prompt. Switch to Oracle_Common\common\bin folder

Eg: D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin and start Weblogic Scripting Tool (wlst)

Now you can issue the command “ohs_updateInstances()” at the wlst prompt & once the configuration completed, exit wlst by issuing “exit()”

You can try to logon to Weblogic Enterprise Manager console and start the newly setup OHS instance now.

Logon to Weblogic Enterprise Manager from http://localhost:7001/em & click the carousal menu by the left hand side

and expand HTTP Server to view your newly created OHS instance. In our case “ohs1”. Click on “ohs1” to open the control panel for the instance

Click the Start up button to start the OHS instance & after showing you message window stating you cannot stop the starting/stopping process, OHS will start. It could take few seconds to minutes depending upon your hardware and available resources.

Give special attention to “Machine Name”.

Now we will see how to bring OHS instance in action by setting up the few other factors like node manager security, configuration files.

Logon to Weblogic console @ http://localhost:7001/console

Lock & Edit the domain security values, please refer the image below for details

nm

Provide a meaningful name for the node manager account and supply a password. I used the same password for the total 12c deployment, unless you are setting up a PRODUCTION instance, you may use the common password across the 12c instances for easy administration of objects when required. Shutdown the services (better). Once the node manager properties are changed, restart the WLS admin server. Please note, always stop all running servers (forms & reports) services prior shutting down the Admin server & I suggest you gracefully shutdown the Admin server by running “StopWeblogic.cmd” instead of using the Weblogic console.

Move to your Oracle Home folder. I have installed Weblogic server in D:\Weblogic\Middleware folder, hence my Oracle home folder is

D:\Weblogic\Middleware\Oracle_Home\

(Adjust your paths accordingly)

Edit forms.conf file in the folder D:\Weblogic\Middleware\Oracle_Home\forms\templates\config\

By default this template file comes with commented examples, like following

#<Location /forms/>
#        SetHandler weblogic-handler
#        WebLogicHost host
#        WeblogicPort port
#</Location>

You need to uncomment one of the blocks starting from <Location /forms> until </Location> & add properties specific to your deployment, for example, my computer’s name is “RAJESH-PC” and I am using default ports for both forms and reports applications, hence I have the properties set like following

<Location /forms/>
SetHandler weblogic-handler
WebLogicHost HOME-THEATER
WebLogicPort 9001
</Location>

Once altered, copy forms.conf to OHS instance “moduleconf” folder. I have copied the file to following location: (Alter according to your setup)

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\components\OHS\instances\ohs1\moduleconf

Now we will edit the configuration file for reports

Switch to “D:\Weblogic\Middleware\Oracle_Home\reports\conf” folder & edit “reports_ohs.conf” and add a block like following (alter according to your setup)

<Location /reports/>
SetHandler weblogic-handler
WebLogicHost HOME-THEATER
WebLogicPort 9002
</Location>

Copy the edited file to

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\components\OHS\instances\ohs1\moduleconf

Now the OHS instance know about the deployments and once after restarted, you can try to start the forms based application through the OHS instance, rather than calling it against the default port (9001)

Once the OHS instance is updated with the new information, try to start the OHS instance from a command prompt using storeUserConfig parameter

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin>startComponent.cmd ohs1 storeUserConfig

ohs_manually

1st run, you will be prompted for node manager password, supply the password you have setup earlier and OHS instance should start without creating a fuzz in usual scenarios

In future if you want to start the OHS instance, unless made changes to the configurations, just run

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin>startComponent.cmd ohs1

Above concludes the 1st of level of configurations for Oracle forms based application. You can use Weblogic 12c Enterprise Manager to configure most of the forms environment related parameters like forms path and other, while I am yet to find out relevant configuration areas for reports.

image

You can manually modify the formsweb.cfg & default.env files to start with as well

Regardless whether you are going to use the in-process report server or a stand alone instance of the reports, many changes should be made to the configuration files, so that you can call the reports server from a Forms module

Generally we will be modifying multiple configuration files, I will try my level best to provide the exact locations for the files which you should change according to your installation preferences

Configuration files path (Please note, through versions, there are minor changes happened to these configuration files. The images below were copied from my previous post about configuring for deployment, however the settings remain the same for 12.2.1.4 (as tested on 19th June 2020))

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration

  1. rwservlet.properties – Servlet specific properties
  2. rwserver.conf – Server properties
  3. cgicmd.dat – key mapping file

1. As far you are using in-process reports server, nothing much to alter with “rwservlet.properties” file. Basically you should see entries like following in the opened file:

image


2. rwserver.conf (Please check the below image)

image

3. cgicmd.dat: Many values we supply to call a report using Web.Show_Document method could potentially expose vital information like the database details & many other. “cgicmd.dat” file helps us to map such values to keys and later use them wherever applicable. With this example, I will demonstrate, how the database username, password and service name are mapped using a key. Please check the image attached below

image

Once these configurations files are altered, we need to create a report instance for the WLS_REPORT server. Open an elevated command prompt and switch to “D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin”. Start wlst & connect to the server.

Issue the command

createReportsToolsInstance(instanceName='rptools1', machine='AdminServerMachine')

Note, you can choose your own name for the report instance. Once the report instance created, exit wlst and you can try to start the WLS_REPORT server from the weblogic console.

This comprehensive note should help you to quickly start with Oracle Forms & Reports 12c (12.2.1.4)

I am avoiding few elements like publishing a Forms based application for now. If you feel, should be added, please let me know through the comments section.

regards,

rajesh

Weblogic 12c | Admin Server startup error(s)

Hello guys

Two days back I’ve seen a tweet from Michael Ferrante asking the “Forms Enthusiasts” to hold their breathe, as Oracle is going to announce something “Exciting” for Oracle forms. Are you EXCITED as much I am? Well, I am pretty sure, it is going to be a push for AuraPlayer, as he has mentioned them in the tweet.

Regardless, I’ve a local instance of Weblogic Server 12.2.1.3, installed and a classic domain created. I stopped using it as my firm decided to drop the idea to migrate our 20+ years old Developer 6i developed ERP to Weblogic due to the complexity of Oracle licensing, followed by the uncertainty of Oracle support for Oracle forms beyond 2025 (Which is just 6 years away).

Hell with it, I wanted to see how far I have configured the domain and ended up setting up the forms server, publishing the half baked legacy application. As I have made more than dozen Weblogic installations in last 2-3 years time, I had almost everything backed up from different installations like configuration files, environment and registry files. All I needed was to copy and replace them at most of the places to bring the legacy application online within couple of hours time.

However, I have noticed that while starting the Weblogic Admin Server (from the command prompt, using supplied .cmd files), I was getting a number of java errors & all of them were related to FADS (Forms Application Development Services) & some text were like below (Sorry for the wrapping issues)

weblogic.application.library.LibraryDeploymentException: [J2EE:160141]
Could not initialize the library Extension-Name: fads-dbtools-library.
Ensure that the deployment unit is a valid library type (WAR, EJB, EAR, plain JAR).
D:\Weblogic\Middleware\Oracle_Home\forms..\sqldeveloper\sqldeveloper\lib\oracle.dbtools-common.jar
(The system cannot find the file specified) with :
D:\Weblogic\Middleware\Oracle_Home\forms..\sqldeveloper\sqldeveloper\lib\oracle.dbtools-common.jar
at weblogic.application.internal.library.LibraryDeploymentFactory.getLibData(LibraryDeploymentFactory.java:98)
at weblogic.application.internal.library.LibraryDeploymentFactory.createDeployment(LibraryDeploymentFactory.java:50)
at weblogic.application.internal.DeploymentManagerImpl.createDeployment(DeploymentManagerImpl.java:195)
at weblogic.application.internal.DeploymentManagerImpl.access$800(DeploymentManagerImpl.java:61)
at weblogic.application.internal.DeploymentManagerImpl$DeploymentCreatorImpl.createDeployment(DeploymentManagerImpl.java:628)
Truncated. see log file for complete stacktrace

weblogic.application.internal.DeploymentStateChecker$DeploymentAssertionError: Unexpected transition: current state for application fads#1.0 : STATE_NEW attempt to transition to STATE_ADMIN
Dumping 2 callbacks
———————- BEGIN CALLBACK DUMP ——-
java.lang.Exception: prepare
at weblogic.application.internal.DeploymentStateChecker.save(DeploymentStateChecker.java:152)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:157)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:65)
at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:166)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:41)
at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:193)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:31)
at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:741)
at weblogic.management.deploy.internal.parallel.BucketInvoker$2.run(BucketInvoker.java:95)
at weblogic.work.ContextWrap.run(ContextWrap.java:46)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:670)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)
java.lang.Exception: activate
at weblogic.application.internal.DeploymentStateChecker.save(DeploymentStateChecker.java:152)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:164)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:274)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:507)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:53)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:202)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:52)
at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:741)
at weblogic.management.deploy.internal.parallel.BucketInvoker$2.run(BucketInvoker.java:95)
at weblogic.work.ContextWrap.run(ContextWrap.java:46)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:670)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)
———————- END CALLBACK DUMP ——-
at weblogic.application.internal.DeploymentStateChecker.throwAssertion(DeploymentStateChecker.java:88) at weblogic.application.internal.DeploymentStateChecker.illegal(DeploymentStateChecker.java:107) at weblogic.application.internal.DeploymentStateChecker.up(DeploymentStateChecker.java:122) at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:166) at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90) Truncated. see log file for complete stacktrace

Basically, these errors NEVER truly interrupt anything with deploying a forms based application, unless you want to do more with FADS. FADS deployment looks for some specific libraries and missing them were generating the above errors. As I mentioned, for a classic domain, addressing this error may not be truly necessary (for testing). I just love NO errors under usual scenarios, hence decided to fix it.

I referred the below documents to find a proper solution

The 1st document insists that we must delete/rename the pre-installed SQLDEVELOPER (3.x) under ORACLE_HOME (eg: D:\Weblogic\Middleware\Oracle_Home) & install a version that is minimum 4.2, however doesn’t mention anything about the highest version supported.

After checking the fads configuration py file, I realized that the files FADS deployment trying to locate during the startup were NOT available with SQLDEVELOPER 18.x:

‘/sqldeveloper/sqldeveloper/lib/oracle.dbtools-common.jar’
‘/sqldeveloper/sqldeveloper/lib/oracle.sqldeveloper.sqlcl.jar’

The 2nd document I referred explained about configuring FADS & the blogger used SQLDEVELOPER 17.2 for his exercise. Hence I downloaded the specific version 17.2, extracted and copied the folder “sqldeveloper” to ORACLE_HOME & followed the instructions as provided within the Oracle document.

Error while using SQLDEVELOPER 18.x

D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin>wlst.cmd D:\Weblogic\Middleware\Oracle_Home\forms\fads\fads_config.py
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor=”Sun Microsystems Inc.”
Initializing WebLogic Scripting Tool (WLST) …
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands

fads configuration script
Admin Server will be shutdown by running this script.
Do you want to continue? [Y/n] :Y
You need to install Oracle SQL Developer 4.2 or higher under ORACLE_HOME. Did you install SQL Developer 4.2? [Y/n] :Y
error:
SQL Developer 4.2 is not installed under D:\Weblogic\Middleware\Oracle_Home
Install it and run this script again.
Download Oracle Sql Developer from http://www.oracle.com.
exiting…
Problem invoking WLST – Traceback (innermost last):
File “D:\Weblogic\Middleware\Oracle_Home\forms\fads\fads_config.py”, line 341, in ?
File “D:\Weblogic\Middleware\Oracle_Home\forms\fads\fads_config.py”, line 207, in fullConfig
NameError: system

Successful configuration using SQLDEVELOPER 17.x

D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin>wlst.cmd D:\Weblogic\Middleware\Oracle_Home\forms\fads\fads_config.py
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor=”Sun Microsystems Inc.”
Initializing WebLogic Scripting Tool (WLST) …
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands

fads configuration script
Admin Server will be shutdown by running this script.
Do you want to continue? [Y/n] :Y
You need to install Oracle SQL Developer 4.2 or higher under ORACLE_HOME. Did you install SQL Developer 4.2? [Y/n] :Y
SQL Developer 4.2 is installed under D:\Weblogic\Middleware\Oracle_Home
connecting to WebLogic:
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :
Connecting to t3://localhost:7001 with userid weblogic …
Successfully connected to Admin Server “AdminServer” that belongs to domain “base_domain”.
Warning: An insecure protocol was used to connect to the server.
To ensure on-the-wire security, the SSL port or Admin port should be used instead.
obtaining Admin Server host/port information
Location changed to domainRuntime tree. This is a read-only tree
with DomainMBean as the root MBean.
For more help, use help(‘domainRuntime’)
fadsui.ear:-> D:\Weblogic\Middleware\Oracle_Home\user_projects\applications\base_domain\forms\fads\fads-ui.ear
webservices – http://localhost:7001/fads/apis (updated to http://192.168.125.1:7001/fads/apis)
Saving…
Totals {connections=1, rest=1, updated=1}
updating FADS OWSM policy
creating fads keystore
Already in Domain Runtime Tree
Keystore created
Already in Domain Runtime Tree
Key pair generated
Context is missing, therefore using current context “/WLS/base_domain”.
Successfully configured property “keystore.type”.
Successfully configured property “location”.
Successfully configured property “keystore.sig.csf.key”.
Successfully configured property “keystore.enc.csf.key”.
creating fads WSM policy set
Session started for modification.
Description defaulted to “Global policy attachments for RESTful Resource resources.”
The policy set was created successfully in the session.
Policy reference “oracle/multi_token_rest_service_policy” added.
The configuration override property “propagate.identity.context” having value “true” has been added to the reference to policy with URI “oracle/multi_token_rest_service_policy”.
The policy set restPolicySet is valid.
Creating policy set restPolicySet in repository.
Session committed successfully.
importing fads authorization policy
import fadsWSpolicy passed D:\Weblogic\Middleware\Oracle_Home\forms\fads\policy\fadsWSMPolicy.zip
Importing “META-INF/policies/oracle/binding_authorization_template_fads”
Successfully imported “1” documents
Location changed to edit custom tree. This is a writable tree with No root.
For more help, use help(‘editCustom’)
Starting an edit session …
Started edit session, be sure to save and activate your changes once you are done.
Saving all your changes …
Saved all your changes successfully.
Activating all your changes, this may take a while …
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
shutting down the Admin Server
Shutting down the server AdminServer with force=false while connected to AdminServer …
Disconnected from weblogic server: AdminServer
shutting down the Admin Server
…….done with fads post configuration…………
please start the Admin Server

Exiting WebLogic Scripting Tool.

Once the configurations are successfully completed, the configuration process shuts down the Admin Server. Start the Admin Server & there should not be errors towards missing FADS libraries.

regards,

rajesh

WebLogic 12c 12.2.1.3 Installation & configuring for forms & reports

Hi guys

Update: 13th February 2019

Downloading the installing Oracle software could be a challenging task at times, WebLogic 12c Forms & Reports installation is NOT very different Especially if you are as usual skipping the “read me” areas)

I will try to explain the download and extraction activities related Oracle forms and reports 12c below.

Visit https://www.oracle.com/technetwork/developer-tools/forms/downloads/index.html for downloading the installation media. There are two ZIP files for Oracle forms and reports. Download both of them.

Once the files are downloaded, you need to extract both the zip files into a single folder

1st ZIP archive extracts “setup_fmw_12.2.1.3.0_fr_win64.exe” & 2nd ZIP archive extracts “setup_fmw_12.2.1.3.0_fr_win64-2.zip”. During installation,
“setup_fmw_12.2.1.3.0_fr_win64.exe” expects
“setup_fmw_12.2.1.3.0_fr_win64-2.zip”, hence, do NOT extract
“setup_fmw_12.2.1.3.0_fr_win64-2.zip”. To make it simple, for Oracle installation, move the following files to a new folder, call it “Forms_Installer_12c”

D:\Forms_Installer_12c

and copy/move both
“setup_fmw_12.2.1.3.0_fr_win64.exe” & “setup_fmw_12.2.1.3.0_fr_win64-2.zip” to this folder. Less confusing this way :)

========

One of the posts that is doing great according to a blogger’s expectation is about WebLogic 12c installation & configuring it for deploying Oracle forms/reports based applications.

Well, I totally missed the fact that Oracle periodically updates their software & missed out the current version of WebLogic 12c 12.2.1.3. It didn’t even ring a single bell when someone asked me about an error that was happening during his attempts to get 12c installed, which was specific to 12.2.1.3.

My previous post about WebLogic 12c strictly deals with version 12.2.1.0.0 for the areas of creating a new repository for WebLogic infrastructure and configuring a user domain. There are minor changes with 12.2.1.3, and those changes sure require mentions.

Prerequisites

Oracle WebLogic 12c, Oracle forms and reports require Visual C++ verion 11 preinstalled. Although the installation would proceed after showing missing prerequisites, I will NOT suggest you to take unknown risks. If possible, make sure your box is completely updated with latest Microsoft patches for the specific operating system.

This time I will take the freedom to believe that you already have Oracle 12c database installed and avoid going through the database installation procedures.

As a thumb rule, install Java JDK 8, the latest version available in a folder like C:\java\jdk or C:\JDK or D:\Jdk (the shortest path name possible).

Switch to the folder where you have downloaded the software required for Weblogic 12.2.1.3 installation and configuration from an “elevated” command prompt.

Check the below image for details:

https://i0.wp.com/simpleoracle.com/wp-content/uploads/2018/05/11.png?resize=640%2C335&ssl=1
2
3

It looks like Oracle has finally realized that 99% of the public will opt skip updates, hence they made it as default this time ;)

4

By following the classic way of naming the installation folders, you save tremendous time & efforts to locate configuration files (Especially if you are following my posts). I always choose to install the weblogic stack on D:\Weblogic\Middleware\Oracle_Home. This helps me to setup the environment next time by keeping exact path information for configuration files etc.

5
6
7
8
9
10

Select “Fusion Middleware infrastructure” (Default)

That’s all folks, your Weblogic stack is installed & you are ready to go ahead with the installation of Oracle forms and reports 12c now.

11
12
13
14
15
16a
17
18
19
20
21

Basically you shouldn’t ignore the following “Warning” about Visual C++ element. I’ve found that Visual C++ causing serious issues with OHS instance starting during my previous attempts, hence make sure you install Visual C++ recommended version is installed in the machine.

The above installation(s) should be go all smoother than previous versions & now we can move to configuring our first domain using the latest WebLogic Stack installed.

Setup repository for the domain

Suggestion(s):

  1. I suggest you totally disabling the password expiry for the entire database that you will be using for your WebLogic lab (12c). Ignoring this element could land you in difficult situations in case if you are not meticulously maintaining the password changing routines.
  2. Always invoke scripts as administrator, this provides you the elevation on Windows 7 onward Windows OS

Execute rcu.bat from the following installation path. Please note, I have installed WebLogic software onD:\Weblogic\Middleware\Oracle_Home\oracle_common\bin folder (Which is the standard way I name the installation folder, this helps me to copy much of the elements between installations, upgrade processes), so I will be executing the “rcu.bat” file from “D:\Weblogic\Middleware\Oracle_Home\oracle_common\bin”. Adjust your path accordingly.

1
2

We will choose “System Load and Product Load” which is default for our repository as well. Please note, you should use the same “rcu.bat” for dropping the repositories, if you have to at later stages.

3

For all WebLogic labs, I suggest the same password for Database and WebLogic. You can go for simple passwords like “YourName123” which satisfies “most” of the implied complexity for passwords.

4
5

If you have entered the database credentials and other details correctly, the checking should be done within no time.

Now we will create the repository for our domain. Please note, the new profile name could be anything. Instead of “DEV” which is by default assigned by Oracle, you may choose your name in that place. Make sure you note down the name of the profile somewhere for future references. Select all the components as seen with the below image.

(Please note, I have copied the images from 12.2.1.4 installation and replaced few of the images with this post as one comment mentioned that I didn’t choose MetaData Services with the old image(s) provided, so please don’t get confused. Rest of the images provided may “miss” the metadata services related information & instead of “DEV”, you may see “DEV1” at places. Please ignore)

7a
8
9
10
11
12
13

Select same password for all schema.

I have the entire setup on a SSD, hence the time to create and configure the repo could be significantly much less than over a spinning drive system.

14

That completes our repository creation. Please make sure that you note down the repository name and the password(s) somewhere for future references.

Now we will create our 1st domain with our fresh Weblogic 12c 12.2.1.3 environment. Just make sure that the JDK installation path is the 1st entry in the PATH environment variable.

Invoke “config.cmd” file as administrator from “D:\Weblogic\Middleware\Oracle_common\common\bin” folder. Adjust the path according to your installation preferences.

1

We will create a new domain for the lab now. Leave the default domain location as suggested by Oracle. Change it ONLY if you know what you are doing at this point of time.

2

For Oracle Forms and reports, the below product selection is spanned over 3 different images. Make a list of the items selected, and make sure you don’t miss any of them before proceeding to next step.

3
3a
3b

Once all elements are selected for the domain, you can proceed.

4

As a standard approach, I am using the same password for the WebLogic Administrator account, leave the suggested administrator name as “weblogic”

5
6

We’ll go for production for Domain Mode. JDK location will be automatically picked. Do not change it, unless you have a valid reason.

Now we have to supply the repository details, those we have saved during the creation of repository. The details will be cross checked prior by the configuration tool. Once after supplying the details click the “Get RCU Configuration” button.

7
8
9
10

Once the repository validations done, it’s time to select the components for your domain. Make sure the checked elements are selected for your domain as well.

11

Do not miss to select “WSMPM-MAN-SVR” for the Server Groups, failing will FAIL the configuration of the domain. I don’t know what the heck it is, I may read about it one day and update myself. For now, I suggest you select the said group from the drop down list and proceed.

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

Failing to select the Server Groups will land you on this page, which you don’t want! Make sure you will do the “WSMPM-MAN-SVR” Selection for the Server Groups.

29

I corrected the error at my side by dropping the repository, recreating & configuring the domain once again.

30
31

So we have created a classic domain now. We need to setup an OHS instance and setup the domain for deploying our forms based applications now.

To configure the newly configured domain, you may use the 12.2.1.2 configuration instructions as posted here

Right now, you can use my previous posts about Install Weblogic 12c and setting up OHS, forms & reports for WebLogic 12c as reference materials to setup your new classic domain or wait for me to post a followup with version specific details.

  1. https://simpleoracle.com/2016/01/05/oracle-12c-database-weblogic-forms-reports/
  2. https://simpleoracle.com/2016/01/13/oracle-12c-forms-reports-configure-for-deployments/

Hope it helps few souls out there

regards,

rajesh

WebLogic 12c | Upgrading existing environment

NOT FOR PRODUCTION! NOT FOR PRODUCTION!! NOT FOR PRODUCTION!!!

Hi guys

So, I can see that WebLogic 12c installation along with forms and reports & configuring for deployment blog posts being accessed quite often. My original posts were referring to WebLogic 12c version 12.2.1.0.0 (or 12.2.1 as documents mention), which is a buggy release from my limited usage. I’ve skipped the next version and was pretty happy with the setup until I came across an oracle blog post about version 12.2.1.3.0

As I had the complete setup fully functional, I decided to upgrade the existing, against going for a fresh installation and configuration (that should have been done!). I just wanted to see how the Oracle software upgrade works in real means…

Today I am going to share my experience of upgrading an existing WebLogic 12c forms & reports environment to the latest release.

So let us have a look at the Oracle products installed on my Windows 10 64Bit Professional edition

  • Oracle developer suite 6i (for supporting legacy application that is 20 years old)
  • Oracle developer 10g (to support our EBS R12 Business application)
  • Oracle database 11gR2
  • Oracle database 12c (for weblogic repo)
  • WebLogic 12c 12.2.1.0.0
  • Forms and reports 12c 12.2.1.0.0

In addition to the above, I do moderate level of .Net development and Android. Hence you call my development machine as a MESS in true means. Because all these software stacks are installed, I cannot setup many mandatory environment parameters for Oracle products and I always manage them manually as and when required.

Warning: The below exercises are destructive. It is your sole responsibility to make backup of your existing WebLogic installation. I suggest you using 7-Zip software for making a proper backup of the WebLogic Installation “Folder”

Start 7-zip as “Administrator”, else the archiving utility will NOT able to access all files within the “WebLogic” installation folder”

0

Once 7-Zip GUI interface opens, browse to your partition on which you have installed the WebLogic infrastructure

0a

Please make sure that YOU WILL TAKE A BACKUP of your installation folder regardless the time and efforts require to make it!

Once the backup is completed, you can proceed

While using WebLogic 10.3.6, I remember upgrading the forms & reports 11g Release 1 installation with R2 just by pointing the installer to the installed folder and the installation was successful without any issues. Well, stuffs have changed. If you would try to install the Fusion Middleware 12.2.1.3.0 on top of an existing 12.2.1.0.0, you will be getting a long list of errors stating incompatibility.

INST-07545: Unexpected Error. The distribution Oracle Fusion Middleware 12c Infrastructure 12.2.1.3.0 contains incompatible features with the following:
Oracle Forms and Reports 12.2.1.0.0 [CIE WLS Shared External 12.2.1.3.0-&gt;CIE WLS Shared Config 12.2.1.0.0 (oracle.fmwconfig.wls.shared 12.2.1.3.0-&gt;[oracle.fmwconfig.wls.shared 12.2.1.0.0])]
Oracle Forms and Reports 12.2.1.0.0 [Oracle Globalization Support Files 12.2.0.1.0-&gt;Oracle Globalization Support Files 12.1.0.2.1 (oracle.nlsrtl.jrf 12.2.0.1.0-&gt;[oracle.nlsrtl.jrf 12.1.0.2.1])]
Oracle Forms and Reports 12.2.1.0.0 [Oracle JRF JAXP XML Development Kit 12.2.1.3.0-&gt;Oracle JRF JAXP XML Development Kit 12.2.1.0.0 (oracle.xdk.jrf.jaxp 12.2.1.3.0-&gt;[oracle.xdk.jrf.jaxp 12.2.1.0.0])]
Oracle Forms and Reports 12.2.1.0.0 [Oracle RDBMS files for JRF 12.2.0.1.0-&gt;Oracle RDBMS files for JRF 12.1.0.2.2 (oracle.rdbms.jrf 12.2.0.1.0-&gt;[oracle.rdbms.jrf 12.1.0.2.1])]
Oracle Forms and Reports 12.2.1.0.0 [DMS For JSE 12.2.1.3.0-&gt;DMS For JSE 12.2.1.0.0 (oracle.jse.dms 12.2.1.3.0-&gt;[oracle.jse.dms 12.2.1.0.0])]

Special Note: As usual, keep in mind, whole these exercises are done over a development environment and many of my approaches are purely non standard and doesn’t follow Oracle’s instructions. I expect you are always remembering the fair warning and not to copy the same on production environments.

Now, let us get in to the business.

Weblogic 12c 12.2.1.3 requires JDK 1.8 build 131 or later & if you have a previous version of JDK, please uninstall and install one of the recent JDK 8 releases those are available from Oracle download repos

Please download the software listed below.

Fusion Middleware 12.2.1.3.0

http://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_infrastructure_Disk1_1of1.zip

Forms & reports 12c Disk1 | Disk2

http://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_fr_win64_Disk1_1of2.zip

http://download.oracle.com/otn/nt/middleware/12c/12213/fmw_12.2.1.3.0_fr_win64_Disk1_2of2.zip

JDK 8 build 172

http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-windows-x64.exe

Most of the scripts those are used with Weblogic are hard coded with the JDK path during the installation. Hence, the safest way to upgrade your existing JDK is by installing the JDK on a custom folder, for example, I always install JDK on c:\java\jdk, avoiding any release numbers attached to “jdk” portion of the folder. This guarantees that, if I upgrade to another JDK build, the path remains the same and the Weblogic scripts will NOT start screaming about missing JAVA components.

Note: While extracting the forms & reports ZIP files, make sure both the files are extracted to the same folder.

Once all the ZIP files are extracted, you should have these files in a single folder, kindly check the below image

0c

As per Oracle’s documentation the forms installer extracts files from “setup_fmw_12.2.1.3.0_fr_win64-2.zip” when the installation is initiated. Okay, I am done with loathing Oracle for such complex installation approaches…

Install the software in the following sequence

JDK. Install and append your PATH variable accordingly. In my case, my PATH environment variable has “C:\java\jdk\bin” as the 1st entry, which is required for configuring forms and reports developers.

Fusion Middleware with forms and reports support.

D:\Downloads\Weblogic 12.2.1.3>c:\java\jdk\bin\java -jar fmw_12.2.1.3.0_infrastructure.jar

Select a new “Home” for the 12.2.1.3.0 installation as you cannot install the software on top of existing 12.2.1.0.0. So if you have had Weblogic 12c older version installed on

“D:\Weblogic\Middleware\Oracle_Home” let the new software installed on “D:\Weblogic12213\Middleware\Oracle_Home”

Follow the prompts and complete the installation.

Now, install forms and reports by executing “setup_fmw_12.2.1.3.0_fr_win64.exe” and point the Oracle home as “D:\Weblogic12213\Middleware\Oracle_Home” (Change the details as per your setup)

Both the stacks should be installed within 25-30 minutes time & you are all ready to do the upgrade.

Reminder 1: As usual, keep in mind, whole these exercises are done over a development environment and many of my approaches are purely non standard and doesn’t follow Oracle’s instructions. I expect you are always remembering the fair warning and not to copy the same on production environments.

Warning 2: The below exercises are destructive. It is your sole responsibility to make backup of your existing WebLogic installation. Things could get nasty during the upgrade process and YOU would lose all your deployments in case if you don’t have a backup. I would even suggest that you make a database backup of your WLS repo.

I have opened a thread with Oracle communities and Micheal Ferrante had few comments about my findings. If you are interested, please do visit the thread

So far my understanding about the whole upgrade process is like following:

  1. Once you initiate the upgrade process for an existing 12.2.1 domain, the repository schema is updated with new information (database level)
  2. The deployed applications like OHS, WLS_FORMS, WLS_REPORTS binaries are upgraded to the latest version
  3. WebLogic startup scripts/configuration files  are amended with the latest Fusion Middleware paths & references

What this means to you? Well, you will have two different Oracle Homes for WebLogic , co-existing to serve you the purpose. You cannot uninstall the WebLogic 12.2.1 or 12.2.1.3 once the upgrade processes are over ;)

In addition to the above, I believe, the whole upgrade process is intended to upgrade ONLY the server side components for the domain, not the development elements. 

(Please note, I’ve reached to the above conclusion once after analyzing almost all WebLogic startup scripts and configuration files, None of the Oracle documents available as on date confirms to this findings of mine and I am the ONLY one responsible for what I just said ;) )

Let us upgrade!

Oracle document 12c (12.2.1.3.0) E80069-02 suggests the following for upgrade
4.5.1.1 Running the Upgrade Assistant to upgrade the Domain Schema

Perform the steps required to run the 12.2.1.3.0 Upgrade Assistant for upgrading the
Domain Schema.
To upgrade the Domain Schema:
1. Run the 12.2.1.3.0 Upgrade Assistant from the following location:
$ORACLE_HOME/oracle_common/upgrade/bin/ua

This means you have to switch to “D:\Weblogic12213\Middleware\Oracle_Home\oracle_common\upgrade\bin” & execute ua.bat file
2. Select the All Schemas Used by the Domain option.
3. Select the Schema components to Upgrade.
4. Provide the location of the reconfigured 12c domain.

(Point to the domain that is still under your Weblogic 12c 12.2.1.0.0 install folder or the physical location where it was created.)
5. Select the prerequisite check boxes
6. Provide the RCU Database connection information.
7. Click Next.
8. Click Finish.

4.5.1.2 Reconfiguring the 12.2.1 Domain using the WLS Reconfiguration
Wizard

You have to reconfigure the 12.2.1 Domain using the WLS Reconfiguration Wizard.
To reconfigure the 12.2.1 Domain:
1. Run the Reconfiguration Wizard from the following location:
$ORACLE_HOME/oracle_common/common/bin/reconfig.sh
2. Provide the location of the 12.2.1 FMW Domain for upgrade.
3. Enter the RCU schema information.
4. Select only the Topology option in the Advanced Configuration in the
Reconfiguration Wizard.
Do not select the System Components option. Those will be automatically
configured/upgraded by the Upgrade Assistant.
5. Leave the default selections on the Node Manager screen. Enter user name and
password if needed.

6. Select JRF-MAN-SVR and FORMS-MAN-SVR server groups for all the Forms
managed servers, including the default Forms managed servers WLS_FORMS,
WLS_FORMS1, etc., and any other Forms managed servers users that may have
been added after the 11g installation. (You can safely avoid this)
7. Click Next until you get to the last screen of the Reconfiguration Wizard.
4.5.1.3 Running the Upgrade Assistant to upgrade the Forms installation
You have complete series of steps by using the 12.2.1.3.0 Upgrade Assistant to
upgrade the Forms installation.

To upgrade the Forms installation:
1. Run the 12.2.1.3.0 Upgrade Assistant from the following location:
$ORACLE_HOME/oracle_common/upgrade/bin/ua
2. Select the All Configuration Used by the Domain option.
3. Provide the location of the reconfigured 12.2.1.3.0 domain.
4. Select the prerequisite check boxes.
5. Click Upgrade.

I really hope, the above Oracle instructions are simple to follow & one with minimum experience setting up Oracle software should able to complete the activities without any failure.

The entire exercises should be completed within 30-40 minutes. Once the upgrade process is over, you can start the Node Manager and Weblogic Admin server to confirm the components were upgraded to 12.2.1.3.0

Mine were, so I hope you will also have the same experience.

The real dilemma starts from here. Although all the components are upgraded, none of your forms modules would load and present you the following error:

FRM-40011: Form was created by an old version of Oracle Form. This means, your forms modules which were compiled using Forms 12c 12.2.1.0.0 are not compatible with 12.2.1.3.0 & YOU MUST recompile all your existing forms/menus/libraries using the latest version of Oracle forms!

To your utter dismay, you will find that, the forms builder with your upgraded domain is NOT upgraded to 12.2.1.3.0, instead it still remains 12.2.1.0.0, which is of no use as the forms server application has already been upgraded.

This could pose different levels of difficulties while deploying the applications. I have figured out the following in my case

  1. I cannot recompile the forms modules to latest supported version from the same box.
  2. If I am developing the application on a Windows Machine and moving it to Linux environment, I will not able to compile the modules as the stack that is available with the environment will be still 12.2.1.0.0 & I am expecting to get the same “Form was created by an old version of Oracle Form” errors! 

Workaround:

Initiate another Forms & Reports installation & choose a new “HOME” for the installation and select “Standalone forms”.

Refer this wonderful document for details, if you don’t have experience with setting up standalone forms developer instances

Add the connection details to the tnsnames.ora file available with your Standalone Forms Builder instance folder & you are all set to go. Now you can recompile the modules and go online with the supported version of forms. I didn’t check the reports part yet, I may in couple of days time & will update this post accordingly.

Well, this workaround shouldn’t be the ONLY one solution. I opted it due to the fact that I couldn’t figure out anything else and wanted to complete a migration urgently for demonstration purposes.

That’s all folks, I hope you would find the crude way of getting things done helpful in an emergency situation ;)

regards,

rajesh

Weblogic 12c | Admin Server will not start | ORA-28001 | ORA-28000

Hi guys

During 2016-2017 I have done few Weblogic 12c setups for my lab & my setup was accessed for some assignments after a long idle time which was exceeding many months…

I had Windows Services created for both Node Manager & Weblogic Admin servers using NSSM & realized there were something wrong once after many attempts to access the admin console turned out to be futile. So I tried to start the services manually using the scripts & the startWeblogic.cmd terminated with the following error:

Caused by: java.sql.SQLException: ORA-28001: the password has expired

As I always said, I am not a Weblogic guru, just another folk who tries to install and configure new Oracle stuffs. Hence I started searching google using the error that was provided to me during the previous run.

Unfortunately, nothing that could solve my issues were found and I opted to leave it as it is.

All I knew that passwords for few schemas related to Admin Server Repository have been expired. I did a QUERY to find out which schema were having expired passwords and all the repository related schemas were showing expired passwords

  1. DEV_IAU_VIEWER
  2. DEV_IAU_APPEND
  3. DEV_IAU
  4. DEV_OPSS
  5. DEV_STB

These are the schemas created when the repository is created & if the 12c database instance is NOT altered to allowing never expiring passwords, it was obvious the schema passwords expire on the expected dates.

I tried to reset the passwords for all the schema those were having expired password and altered the database instance to allow never expiring passwords. Tried to start the admin server, again ending up with the same error…

Recently I changed my work laptop with a new Dell 5480 & started setting up Weblogic 12c environment & as I had enough experiences with the configurations, was able to complete the entire setup within few hours time. This time I wanted to make sure that, due to password expiry I shouldn’t have the same troubles I had with my previous setup(s). So once everything was setup, I altered the database instance

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

and confirmed that none of repository related schema has an expiry date associated with it.

So, for a lab setup this is more than enough to insure that I will not go through the troubles with expired passwords, causing Weblogic admin server to fail while started. What about a real situation where a DBA is facing this crisis?

So my fresh rounds of google searching started and I landed on a page https://linecode-notes.com/2017/09/08/unable-to-start-the-admin-server-in-forms-12c-due-to-ora-28001/ while using Google search term “oracle weblogic 12c dev_stb password expired”

I had gone through the post minutely and replicated the same scenarios at my end to insure that the instructions provided by the author is generic. Everything worked as expected, most probably because I altered the DEV_OPSS schema password with the same password I initially assigned to it. Hence there were no errors while I tried to start the Admin Server after running the wlst command.

The Only confusing part in the original post should be about the wlst command which says

modifyBootStrapCredential(jpsConfigFile='<Oracle_Home>/user_projects/domains/base_domain/config/fmwconfig/jps-config.xml’,username=’DEV_OPSS’,password=’xxx_n_pass’)

Where <Oracle_Home> should be replaced with actual path. For example, this is what I did. If you have given another name for the domain instead of suggested “base_domain”, replace the base_domain portion with correct name.

(In short, change the path according to your installation parameters!)

modifyBootStrapCredential(jpsConfigFile=’D:/Weblogic/Middleware/Oracle_Home/user_projects/domains/base_domain/config/fmwconfig/jps-config.xml’,username=’DEV_OPSS’,password=’PassWord123′)

Notice the “/” in the path, regardless whether you are on Windows or Unix environments, you must use forward slash “/”

& Most important, do not forget to alter the user with the new password

ALTER USER DEV_OPSS IDENTIFIED BY PassWord123;

Follow rest of the instructions available with the original post. The same author has another post dealing with ORA-28000 (Account locked) for Weblogic as well.

So guys, I hope, for a beginner with Weblogic like me, this is a tremendous information that could save another fresh install and configurations!

Hope this post helps few out there!

regards,

rajesh

Oracle Weblogic | Reports 11g | cgicmd.dat | Key mapping issues

 

Hi guys

I’ve been installing and configuring Weblogic 10.3.6 & 12c (recently) and came across a peculiar issue, where the reports server failing to map the keys I’ve specified with cgicmd.dat file.

The best I could recollect from my memories was, I only added the keys to a single instance of cgicmd.dat file, as there are many instances of the same file once after classic domains are created.

Under linux installations you will find the file in 3 different locations once after the domain created and WLS_REPORTS server started.

 

[root@wls Middleware]# find /u01/Oracle/Middleware/ -name cgicmd.dat
/u01/Oracle/Middleware/user_projects/domains/ClassicDomain/servers/WLS_REPORTS/tmp/_WL_user/reports_11.1.2/uxabaw/configuration/cgicmd.dat
/u01/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_REPORTS/applications/reports_11.1.2/configuration/cgicmd.dat
/u01/Oracle/Middleware/Oracle_FRHome1/reports/conf/cgicmd.dat

[root@wls Middleware]#

image

Under usual scenarios you need to add the keys ONLY to the cgicmd.dat file present in

/u01/Oracle/Middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_REPORTS/applications/reports_11.1.2/configuration/

folder.

With my latest installations of 12c & 11g, I had issue getting the keys mapped properly & after loads and loads of googling I decided to add the same key to all available instances of cgicmd.dat one after another.

So I started with the first instance of cgicmd.dat file, that was found under

/u01/Oracle/Middleware/user_projects/domains/ClassicDomain/servers/WLS_REPORTS/tmp/_WL_user/reports_11.1.2/uxabaw/configuration/cgicmd.dat

which is WLS_REPORTS temporary folder. I added the key, restarted the WLS_REPORTS server & the key was mapped as required!

This could be a nasty bug because I don’t remember adding the keys to multiple files while I tried out forms and reports 11g Release 2 almost 2 years back!

The most interesting part of the entire exercise is, once the key mapping happens successfully, you can remove the keys from cgicmd.dat file that in the temporary location and everything works! Could be the magic of cache Winking smile

So if you come across key mapping issues, you know where to look at for a quick fix.

for Windows7bugs

rajesh

Oracle 12c | Reports | Standalone server

Hi guys

One of my close associates & a person I respect as a legend, Iudith said the following with one of her recent mails to me:

Regarding all this WebLogic issue … I have a feeling that Oracle “used a cannon for killing a fly” ………
Maybe that complicated setup creates an environment which can support all kinds of other products,I really don’t know because I have mostly just heard about it.

From Oracle’s perspectives, this approach may provide them better scalability, however how far such complexities will appease the developer crowd remains a big concern.

While the modernization of Oracle forms and reports, the maximum sought legacy development means remain a frequently sought and discussed topic, Oracle is definitely NOT doing enough to regain the confidence of mortals who spent decades developing, especially by making each and every newer versions difficult to install and setup.

Less said, let us go back to the topic, how to create and configure a standalone report server instance for 12c environment. This is my 3rd post in a row about installing and configuring 12c products related to Forms and Reports

I can’t exactly remember which document says “In-process reports server has better accountability against a standalone reports instance”. I have referred minimum couple of dozen 12c related documents and tens of blogs to setup stuffs. Without arguing whether in-process server or a standalone instance is better to cater the reports services, let me list the activities one have to perform in order to setup

  1. Create a reports tools instance (Mandatory, if you are planning to use the same box for reports development)
  2. Create a reports server instance (OPTIONAL, only if you want to host a standalone reports instance)

Start WLST(Weblogic Scripting Tool) console, and execute the below commands one after another (Make sure the node manager & the Weblogic admin server services are already started)

connect("weblogic","password", "localhost:7001")
createReportsToolsInstance(instanceName='rptools1', machine='AdminServerMachine')
createReportsServerInstance(instanceName='repsvr_MYMACHINENAME', machine='AdminServerMachine')
exit()

Once successfully completed, restart the WLS_REPORTS application using the weblogic admin console. Once bitten, twice shy…I always restart the weblogic admin server and other servers to make sure nothing is broken in between…(paranoid I must be)

Restarting the WLS_REPORTS server causes the weblogic server to configure the newly created instances of reports tools and reports instance. A successful completion let you

  1. Start using the reports builder
  2. Access the standalone reports server instance

You need minimal configurations for the standalone reports server instance. Just setup the reports (.rdf files) path, disable the security elements and you are online!

Assuming you have already configured the weblogic server components following the previous posts, switch to the reports instance configuration folder

eg: D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\
config\fmwconfig\components\ReportsServerComponent\repsvr_RAJESH-PC

Where repsvr_RAJESH-PC is the name of the reports instance I have created.

image

You need to modify the “rwserver.conf” file, please check the below image for details

image

Save the file and restart the WLS_REPORTS server, so that the last modifications are in place!

Now we have to start the reports instance.

Switch to DOMAIN_HOME\bin folder

eg: D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin

and run startComponent.cmd repsvr_RAJESH-PC

Please check the below image for details

image

Once the report server instance starts successfully, you are all set to.

Calling the new instance

http://rajesh-pc:7777/reports/rwservlet?usr&server=repsvr_RAJESH-PC&desformat=PDF&destype=cache&report=LIST_BANKS&paramform=Yes

That’s all folks, as you could see OHS automatically maps the new reports instance and directs the jobs to it.

for Windows7bugs

rajesh

Oracle 12c | Forms & Reports | Configure for deployment(s)

Hello guys

Updated on 8th November 2019

Well, after dealing with 3 different versions of Forms & Reports 12c with Weblogic 12c, I found that 99.9% of the configurations for deploying Oracle Forms and Reports remain the same across versions. Hence instead of posting new threads towards the configurations, I will try to amend this thread with new instructions if any. Thank you (reader)

A week back I posted the procedures tested at my end (I’m excusing myself with this statement because 12c total setup could be a painful experience and may NOT be successful for many, even after following line by line instructions) here

This time I am going to list few instructions those will help you to deploy your existing forms & reports based applications to newly built 12c environment. The ONE pleasant surprise I came across during the deployment was, if your forms and reports were built and compiled used 11g R2 (not sure about 11g R1), no need to recompile them once again for the 12c deployment.

So last time we finished the topic discussing how to install and configure the 12c database, Weblogic Server, forms & reports and stopped at accessing the Oracle Enterprise Manager for Weblogic server.

If you are familiar with Weblogic Server 10 & Forms and reports 11gR2, creating a classic domain was much simpler compared to 12c. OPMN configurations were automated & once the relevant paths were setup, you are almost ready to start using the infrastructure for applications. However 12c requires more efforts from one to establish the same.

I’ll start with Oracle HTTP Server (OHS instance) that we created during the base_domain configurations. OPMN is not anymore used by Oracle 12c, hence the OHS.

As I always said, I’m not a weblogic guru, just another enthusiast who wants to try out newer products as a part of learning. Most of the stuffs I suggest here are “as how I managed to get it working”. Hence, if you find anything ridiculous or non-standard, please let me know through the comment section.

As you may already aware, forms and reports applications are deployed using own PORTs, for example WLS_FORMS server uses the port 9001 & WLS_REPORTS uses 9002 (default installation). However while you want to deploy an application, the users should be accessing both through a common interface, especially when the reports are called from forms using Web.Show_Document method. An example how the reports are called from a form using the above said method is like following:

Web.Show_Document('/reports/rwservlet?userlogin&desformat=PDF&destype=cache&report='||:CTRL.REPORT_NAME||'&paramform=Yes','_new');

“/reports/rwservlet?” assumes the servlet is called from the current root, for example, if you started the forms applications using the default deployment URL, it would look like the below

http://rajesh-pc:9001/forms/frmservlet?config=balaji

and an attempt to call a report from one of the forms will generate an url like following

causing URL not found error because there are NO reports application deployments at http://rajesh-pc:9001/

The one possibility to address this would be by hardcoding the root part of the url, which I never tried. However, exposing the ports of your forms and reports application servers may not be a good idea. Here, OHS instance comes in picture.

All you need to do is to register the forms and reports applications with the OHS and once the OHS instance restarted, you can start calling both forms are reports through the common URL, for example like following

http://rajesh-pc:7777/forms/frmservlet?config=balaji

7777 is the default OHS instance port, which you can change to a free port according to your requirements. You may even use port 80 using OHS (I will not discuss about changing OHS port to 80, there are many decent posts already available all over internet)

Let’s start!

Update: 5th June 2016

You may enable the IPV6 after the installation and configuration by removing the registry dword & restarting the box. Using Weblogic console, point “Admin Server”, “WLS_FORMS” & “WLS_REPORTS” servers listen address to the host name of the box you are running them from.

In addition to changing the listening address, edit the host file of your box (X:\Windows\System32\drivers\etc” and add an entry like below

192.168.1.10   mybox.mydomain.xyz    mybox

or

192.168.1.10   mybox

Note#1: IPV6 is becoming the standard now, however many of the Oracle products have serious issues handling the IPV6 stack & you may find reference towards inet4 references raised by java while checking the log files. So we will completely disable the IPV6 stack on our Windows 10 machine. Please read Microsoft documentations to understand what kind of troubles you may get subjected by disabling IPV6

regedit -> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters

Create a new reg_dword (32Bit) “DisabledComponents”

image

and just enter “FF” in the hexadecimal value column. Restart the computer

Note#2: If you created a Windows service for node manager using the Weblogic provided install service script, stop all WLS servers and stop the node manager service and delete the service from an elevate command prompt. I came across multiple issues related to java while using the Windows service created using the scripts.

We will use NSSM once again to create the node manager service, using the start node manager script you will find under $DOMAIN_HOME\bin folder

I’ve observed that most of null java exceptions were eliminated by creating the node manager service this way.

Note#3: Now we will setup a proper username and password for nodemanager because if you want to start the OHS instance manually later, you need to supply password (for the 1st time)

Logon to Weblogic console @ http://localhost:7001/console

Lock & Edit the domain security values, please refer the image below for details

nm

Provide a meaningful name for the node manager account and supply a password. I used the same password for the total 12c deployment, unless you are setting up a PRODUCTION instance, you may use the common password across the 12c instances for easy administration of objects when required. Shutdown the services (better)

Note#4: Once the node manager properties are changed, start the WLS admin server. Once a WLS classic domain is created, you MUST have a live database connectivity in order to start the WLS admin server. Hence make sure that before you will start the weblogic server, you can connect to the database that holds the repository information for the user domains. Start WLS_FORMS and WLS_REPORTS servers using the weblogic console to insure that the admin server can contact the node manager. The first instance of weblogic server start may take upto 8-10 minutes, so wait patiently

Note#5: Logon to Oracle Enterprise Manager console. If the servers are started properly, you will see “everything” green, else…

image

Note#6: Let us try to start the OHS instance for the 1st time, you can navigate to the OHS instance using the target navigation button, check the below image for more details

image
image

As I have already started my OHS instance I will see all details for the instance, please check the image below

image

If your OHS instance is not started yet, use the “Start up” button to start the instance. I had few failures, pointing towards JAVA while tried, most of them were related to the node manager, as described earlier by the beginning of this article.

image

Note#7: If you managed to start the OHS instance successfully, you have completed the 1st level of configurations for the application deployment. You can modify the listen address, port information etc using the OEM itself. Please check the below image for details. I will NOT try to get into the details of how to this time, though it is highly appealing, due to the fact that I need to stick to the topic (minimum once in a while)

image

Stop the OHS instance now. We need to tell the OHS instance, what exactly it is going to serve by modifying the configuration files. A bit of manual efforts are required as there are NO GUI provided by Oracle for such setups.

Move to your Oracle Home folder. I have installed Weblogic server in D:\Weblogic\Middleware folder, hence my Oracle home folder is

D:\Weblogic\Middleware\Oracle_Home\

(Adjust your paths accordingly)

Edit forms.conf file in the folder D:\Weblogic\Middleware\Oracle_Home\forms\templates\config\

By default this template file comes with commented examples, like following

#<Location /forms>
#        SetHandler weblogic-handler
#        WebLogicHost host
#        WeblogicPort port
#</Location>

You need to uncomment one of the blocks starting from <Location /forms> until </Location> & add properties specific to your deployment, for example, my computer’s name is “RAJESH-PC” and I am using default ports for both forms and reports applications, hence I have the properties set like following

<Location /forms>
SetHandler weblogic-handler
WebLogicHost RAJESH-PC
WebLogicPort 9001
</Location>

Once altered, copy forms.conf to OHS instance “moduleconf” folder. I have copied the file to following location: (Alter according to your setup)

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\components\OHS\instances\ohs1\moduleconf

Now we will edit the configuration file for reports

Switch to “D:\Weblogic\Middleware\Oracle_Home\reports\conf” folder & edit “reports_ohs.conf” and add a block like following (alter according to your setup)

<Location /reports>
SetHandler weblogic-handler
WebLogicHost RAJESH-PC
WebLogicPort 9002
</Location>

Copy the edited file to

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\components\OHS\instances\ohs1\moduleconf

Now the OHS instance know about the deployments and once after restarted, you can try to start the forms based application through the OHS instance, rather than calling it against the default port (9001)

Once the OHS instance is updated with the new information, try to start the OHS instance from a command prompt using storeUserConfig parameter

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin>startComponent.cmd ohs1 storeUserConfig

ohs_manually

1st run, you will be prompted for node manager password, supply the password you have setup earlier and OHS instance should start without creating a fuzz in usual scenarios

In future if you want to start the OHS instance, unless made changes to the configurations, just run

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\bin>startComponent.cmd ohs1

Above concludes the 1st of level of configurations for Oracle forms based application. You can use Weblogic 12c Enterprise Manager to configure most of the forms environment related parameters like forms path and other, while I am yet to find out relevant configuration areas for reports. I’ve opened a thread with Oracle community inquiring the same and yet to receive any leads.

image

You can manually modify the formsweb.cfg & default.env files to start with as well

While forms based application hasn’t changed much (other than the OHS part), making the reports working for you could be really a painful experience.

Regardless whether you are going to use the in-process report server or a stand alone instance of the reports, many changes should be made to the configuration files, so that you can call the reports server from a Forms module

Generally we will be modifying n configuration files, I will try my level best to provide the exact locations for the files which you should change according to your installation preferences

Configuration files path

D:\Weblogic\Middleware\Oracle_Home\user_projects\domains\base_domain\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration

  1. rwservlet.properties – Servlet specific properties
  2. rwserver.conf – Server properties
  3. cgicmd.dat – key mapping file

1. As far you are using in-process reports server, nothing much to alter with “rwservlet.properties” file. Basically you should see entries like following in the opened file:

image


2. rwserver.conf (Please check the below image)

image

3. cgicmd.dat: Many values we supply to call a report using Web.Show_Document method could potentially expose vital information like the database details & many other. “cgicmd.dat” file helps us to map such values to keys and later use them wherever applicable. With this example, I will demonstrate, how the database username, password and service name are mapped using a key. Please check the image attached below

image

Once these configurations files are altered, please restart the WLS_REPORTS server using Weblogic admin console. You may optionally restart the WLS_FORMS server as well

Basically these many configuration should let you go online with your application. One of the pleasant stuffs about 12c forms and reports is, you don’t have to recompile the existing forms modules, just copy them to a new folder, update your formsweb.cfg and default.env files, restart the WLS_FORMS server and you are all set to go.

I’ve successfully configured a stand alone report server instance as well. I think I should separate it from this thread and post it as a fresh one to avoid confusions.

I been working from last few weeks to get these whole stuffs in a single place and cannot remember whether I’ve missed anything vital. If you get stuck anywhere, please let me know through the comment section and I will be more than glad to look into such.

for Windows7bugs

rajesh

Install Oracle 12c forms & reports, database, weblogic server

Hi guys

Update 8th November 2019

Guys, I have different threads towards specific version of Weblogic 12c & Oracle Forms and Reports installation, configuration(s). Please refer the thread specific to the version of Weblogic & Oracle Forms & Reports that you are trying to install.

Update 23rd October 2016

I was trying to answer one of the comments and realized that my database schemas those were created during repo creation were with expired passwords and the “WebLogic Admin Server” will not start. So, you are advised to setup your 12c database with no password expiry, no complex passwords etc (as far you are using the environment for development)

93a

Important:

If for some reasons you cannot update your Windows 10 box, minimum make sure that you have Visual C++ 2012 package installed, which will provide you the much needed “MSVCR110.dll”, without which the Apache HTTP server will not start on Windows. This workaround is not at all an excuse for not patching your Windows box using update services.

Update: 03rd June 2016

I’m revisiting few of the claims which were true during the early builds of Windows 10, however not anymore having the same issues with the latest build & after cumulative updates. My Windows 10 boxes run the following build with all updates in place.

w10

I’ve enabled the IPV6 protocol by deleting the explicit key that I created under TCPIP6 parameters & once after restarting the boxes, was able to start all the weblogic services and OHS instance successfully. However, I have made the following change

Pointed all the servers, “Admin Server”, “WLS_FORMS” and “WLS_REPORTS” to the hostname, instead of leaving the listening address empty. Eg: rajesh-pc. As I mentioned and re-iterating, whole the exercises described are those worked in my lab environment. Any attempts to use them at a production environment could prove you WRONG and disastrous situations may arise by not following Oracle’s guidelines.

This time, I will try to explain how you can setup few 12c products for your testing and developing needs in Windows 10, Microsoft’s latest desktop operating system  (The same should be applicable for Windows 8.1 as well)

My scenario

  1. OS: Windows 10 64bit Professional
  2. Memory: 16gb
  3. Processor: i7
  4. Storage: Around 4.6 TB (4 Disks)

Software downloads required for the setup

  1. Oracle database 12c
  2. JDK
  3. Middleware aka Weblogic Server 12c
  4. Forms and reports 12c

You can download the above software packages from Oracle’s repositories

Why Oracle Database 12c?

Unfortunately, Weblogic server 12c doesn’t support database versions below 11.2.0.4, which will require an existing 11g R2 (11.2.0.2) to be upgraded. This upgrade (patch, full installation) is only available for customers with valid support subscriptions, hence the best option available is installing Oracle 12c database in order to setup Weblogic 12c with Forms and Reports 12c

Part 1 – Oracle database 12c Installation

The software package you download will have 2 zip files & You must extract both the zip files to a single folder

dv12c1

For example, as you could see with the above image, I have two zip files for the Oracle database and have created a folder called “Installer”. I extracted  the 1st zip file inside the “Installer” folder (by pointing to the extract folder explicitly, else usually the unzip utility will create a folder within “Installer” with the zip filename. Make sure once after the extraction, under “Installer” folder, you have ONLY ONE folder called “database”

dv12c2

Now extract the 2nd zip file to “Installer” folder, and Windows will merge the folders and finally you should see within “database” folder items as listed below

dv12c3

Failing to follow the above will fail your attempts to install the database. You will see few images below those are due to extracting zip files into different folders

Execute the setup.exe

clip_image001
clip_image003

You don’t have Oracle support, so uncheck the “I wish to…” and smile at the warning that Oracle never forgets to display

clip_image005

Recently I realized that creating a database once after the Oracle software installation gives me more options to setup archive logs, automated backups etc. So I will proceed with “Install software Only” option

clip_image007
clip_image009

Add the languages you want to use with the database

clip_image011
clip_image013

Oracle has a new approach with who starts the Oracle software in Windows environments and I think it is better to have a dedicated user to start the Oracle services, which provides better security. I created a user called “Oracle” and my password is:

clip_image015

Old fashioned, I prefer the database installation path to start with “Oracle”, hence I chose “D:\Oracle” for the installation. You can accept the default and proceed with the installation

clip_image017
clip_image019
clip_image021

Now, comes the errors related to “missing” files, which are due to the wrong extraction method I have mentioned by the beginning of this post. You get a number of read errors for files with strange names…

clip_image023
clip_image025
clip_image027
clip_image029
clip_image031
clip_image033
clip_image035
clip_image037

Once you extracted the files as suggested into a single folder, the Oracle database software installation should progress without giving any kind of errors, keep accepting the JAVA security prompts

clip_image039
clip_image041
clip_image043

Very easy, no hacking at all involved with the installation. Usually a novice (and ME) could get confused reading Oracle’s documents asking the user to extract the zip files to a single folder ;)

Once the software installed, use DBCA to create a new database.

Update Part 1a (1st of March 2017)

Sorry guys, I started getting couple of inquiries about the database parameters for repository database used by 12c Middleware & as I followed multiple documents to setup my environment, didn’t feel that I should exclusively add the database parameterization with my initial post. So, I am adding it with the post for your references

repo4

“Oracle” strongly suggests that the repository for Middleware should have “AL32UTF8” as the character set. Hence, while creating the database, please make sure you select the same for your repo database. If you are migrating a legacy application that has issues with this particular character set, I suggest you create a smaller size database exclusively for the Middleware repo and create another database for your application that uses a different character set.

Part 2 – JDK Installation

Download and install JDK 8 (Preferably to a folder like C:\Java, D:\JDK) etc. Shortest the path will help you to easily configure many things at later stages. If you have earlier versions of JRE for some specific reasons, deselect JRE from the feature listing

j
j1
j2
j3

Part 3 – Weblogic 12c Installation

Once again, Weblogic 12c doesn’t require any specific hacks for installation in Windows 10. Switch to the folder from command prompt where you downloaded “fmw_12.2.1.0.0_infrastructure.jar” and call java to install the package. Please check the below image for details

(I’m leaving the images untouched, so that you will able to see possible errors we can make while typing in commands)

w1
w2

As usual you will skip the updates

w3

Structuring Oracle Home is going to be a logical call, if you are familiar with Oracle’s suggested folder structure, go with it. Usually I install Weblogic in a folder like C:\Weblogic or D:\Weblogic

w4

Now select the first option, Fusion Middleware Infrastructure

w5
w6

Skip the below, and the installation should be completing within few minutes time without making any errors.

w7
w8
w9
w10
w11
w12

Part 4 – Forms & Reports 12c Installation

Forms 12c allows a stand-alone installation, however, our requirement is to deploy applications through weblogic server. Hence we will be doing the standard installation processes facilitating the application deployments.

1
2
3
4

As usual We will skip auto updates

5

Make sure you select the same folder where you installed WebLogic server for “Oracle Home”

6

Select Forms and reports deployment

7
8
9
10
11
12

It could take a while until the installation is completed. Usually the total installation process never errors out. I hope the same for you also :)

13

Part 5 – Create a REPO(?!)

As I mentioned earlier, I am not a Weblogic geek, Oracle says a database repo is required for Weblogic 12c, so I created one as per their instructions & I suggest you better do that as well ;)

Browse to your “D:\Weblogic\Middleware\Oracle_Home\oracle_common\bin” folder and execute rcu.bat file as “Administrator”

1

The creation of repo is pretty straight forward

2

Make sure your database & listener services already started and you can TNSPING, connect to the instance using SQL etc, to insure that the repo creation will NOT fail

Fill in your database instance details (Service name, host name, PORT etc)

3

If the utility could establish a connection to the database, you will be taken to rest of the configurations in next steps.

4

By default when you are trying to create your 1st repository (for each new domain, you must create a new repo, there were claims that someone managed to use the same repo with his 2nd domain as well, however, 1st domain being offline) You will be offered to create a new prefix, by default ‘DEV’. You can change it to JON, MARTA or PROD according to your requirement. Just make sure that you note it down or remember it while configuring your forms and reports instance at later stages

Select the components as seen with the image below (The selected are mandatory to configure forms & reports domains)

5
6

Use a single password for all the schemas those will be created as a part of the repo creation. I have used the same password across 12c products. For a lab, it is okay, however when you are deploying the solution for production environment, follow the recommendations for passwords. I created a password like “Abcprod123”, it has CAPITAL letter, lowercase letters & numbers

7
8
9
10
11
12

That’s all, you have created a new repo for your new domain that you will create later.

Part 6 – Configure your forms & reports domain.

Most important

Make sure your PATH environment variable has your JDK\bin folder as the first value, else you will NEVER manage to get your forms and reports builders configured properly, Oracle has made sure of it ;)

Check the below images and cross check your computer’s PATH value

path
path1

You can start the “config.cmd” either from the start menu or from the “D:\Weblogic\Middleware\Oracle_Home\oracle_common\common\bin” folder (Please change the path according to your installation preferences, for example I opted “D:\WebLogic” for my WebLogic server installation and rest of the paths were created automatically during the installation process)

1

Select the default “Create a new domain”. You will see that “base_domain” folder is selected by default, which you can change according to your requirement.

2

Select the component for your domain (Select all the components listed with the image below)

3

You will be provided a window showing your current domain name, physical location etc

4

Leave the Weblogic account name as “weblogic” & supply an Alpha Numeric password for the account

5

Select Production & keep the JDK pointed towards your specific JDK installation, which is automatically selected.

6

Now you have to supply the repo details you have created earlier. Make sure you are not making mistakes with supplying the details & click “Get RCU Configuration”

7

You can proceed to next level only once after populating the RCU Configurations, if errors you will not able to proceed

8

Make sure all the listed elements hare having same Service, HOST, PORT names and the password columns are automatically filled. If any one of the listed row has different value, cancel the installation. It means you made some mistakes while creating the repo.

9
10

Once the repo connectivity confirmed, you will be provided a number of components those you could configure as the part of the forms & reports configuration.

Select the components as shown with the image below

11

Accept the defaults for Administration Server

12

Next screen you should be shown two components

  1. WLS_FORM
  2. WLS_REPORTS
13

Accept the defaults

14
15
16
17

You need to add the “AdminServer” from the left pan “Servers” to the node under “Machines”

18

This page, as we select OHS as a component, you should add one OHS instance using the Add Button and give it a meaningful name like “ohs1” or “ohs_1”. Make sure the Component Type is “OHS”

19
20

You may enter localhost as Listen address for the ohs instance in the next page.

21

Now add the “ohs1” component from the “System Components” to “Machines” Node

22
23

Click the “Create” button to start configuring the forms & reports domain

24
25

Once the configuration is over, you will be provided a confirmation screen as seen below. Don’t close this window. We need to perform few more stuffs prior finishing the configuration, said you can close this window by clicking the “Finish” button, just make sure that you have copied the URL, and the foot note shown by the bottom of the window. That note clearly asks you to execute a specific command using WebLogic Scripting Tool, for OHS

26

Start the node manager from your newly created domain\bin folder (Check the below image for details)

27

Now, you need to start the weblogic server. When prompted, supply your weblogic username and password

28

Logon to the WebLogic Admin server console and start the WLS_FORMS & WLS_REPORTS servers, this will trigger setting up much of the start menu components for your installed products, else missing.

Keep monitoring the weblogic server window, Once the server enters into RUNNING mode, you will notice that items are getting added to “Oracle FMW 12c Domain -base_domain” Start Menu folder.

29

Now you have to start the Weblogic scripting tool & run the instructions provided with the last Window of forms and reports configuration

30

Please see the below image(s) for details

31
32
33

OHS instance should get activated and updated without any issues by the end of the process.

Now you can close the last window of forms & reports configuration and access Weblogic console & Enterprise Manager through the following URL(s)

http://localhost:7001/console & http://localhost:7001/em

34
35

You can use the EM console to start your OHS instance (OPMN depreciated) as well. Once started, the OHS instance will be configured to start automatically.

Now We will create the Node Manager Service for Windows. Please check the below image for details

36

I’ve used “NSSM – the Non-Sucking Service Manager” to create the Weblogic Admin Server Service. You can download NSSM from here. Issue a command like nssm.exe install “WebLogic Admin Server” will popup a GUI where you can select the “….\Oracle_Home\user_projects\domains\base_domain\bin\startWebLogic.cmd” as the executable for the service.

37

Now, we will configure the last element in this configuration section, Reports Tools instance so that you can start using the report developer 12c. From Weblogic Scripting Tool Console, you can create a new tool instance. Please refer the below image for details.

38

Restart the WLS_REPORTS server using Weblogic Admin console and the reports tool will be configured once after the WLS_REPORTS enters RUNNING status

While the Forms developer could be invoked from the Start Menu folder “Oracle FMW 12c Domain -base_domain”, calling reports builder is pretty awkward. You have to browse to “…\Oracle_Home\user_projects\domains\base_domain\reports\bin\” and execute the batch file “rwbuilder.bat”. Better, you create a shortcut for the batch file on your desktop.

So, that concludes the 1st level installation and configuration of 12c database, WebLogic, forms & reports. I will get back to the thread, with details about how to configure forms and reports elements and deploy modules at a later time.

Updated 8th November 2019

I just realized that I never linked the configurations thread with this post and doing it right now. You can access the thread that explains how to setup/configure Weblogic Classic Domain for deploying Oracle Forms & Reports application through the below link

Configure Classic Domain for deploying Oracle Forms & Reports Applications

Hope you will find the above useful for your 12c installation attempts

for Windows7bugs

rajesh