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

34 thoughts on “Oracle 12c | Forms & Reports | Configure for deployment(s)

      1. Hello Swati
        Oracle report servers are very sensitive to DNS name resolutions. If you are still having the issue, try the following.
        Add an entry for your IP address hostname in the hosts file
        Disable IPV6 (for testing)
        Restart the physical server. Try to restart the report server.

  1. abdulwajid

    Hi,

    Great article and will explanation is it possible can you please explain some thing related SSO in you block

    Thanks
    Abdulwajid khan

  2. Ahmad

    I have a problem that ohs stopped suddenly after users working on the forms screens. and sometimes it stopped daily sometimes it stopped after month

    1. Hello Ahmad
      What is your environment? Windows or Linux? Do you have a valid Oracle support subscription? The software that you usually download from Oracle are supported by many patches to address issues like the one you have mentioned. I never dealt with WebLogic in a Production environment, hence cannot help you with anything valuable right now. Please post your concerns to Oracle community, someone with real time experiences with WebLogic may able to answer your situation.

  3. lalit

    Hello,
    I have a problem similar to your post.
    actually i configured the managed report server but not set the path like you have mentioned above.so i have a simple question, that would i be able to open a help page without doing any changes on the mentioned files.
    the path of the help page is like this.

    http://10.238.76.114:9002/reports/rwservlet/help

    but i am getting an error 404

    From RFC 2068 Hypertext Transfer Protocol — HTTP/1.1:

    10.4.5 404 Not Found

    would you please help me.

    1. Hello Lalit
      It looks like you haven’t configured the OHS instance? That IP address is static? It is very unusual for calling weblogic instance using IP addresses. You must try the hostname instead. For example, if the installation is successful, you should try to call the report server help file like http://yourhostname:9002/….

      Try and let me know whether you were able to.

      1. lalit kumar

        Hi,

        Great Thanks For your reply, now my help page is open…don’t know the further steps…please update me if you have…

        Thanks & Regards,
        Lalit,

      2. Glad to read that you managed to set it up. Next step is, setting up your infrastructure for deploying Oracle forms & reports. Please refer the associated posts for more details.

  4. lalit

    Hi Great thanks for your reply.but i really don’t know the further steps and associated posts.
    now i am getting below mention error while i am calling the report directly.
    REP-52266: The in-process Reports Server rep_wls_reports_lx01080l failed to start.oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
    The report path is:
    http://10.238.76.114:9002/reports/rwservlet?report=/u01/ias/meds/prod/Rptweek.rep&destype=cache&desformat=pdf&paramform=yes
    while i tried to resolve this issue via :
    https://windows7bugs.wordpress.com/tag/rep-52266/?blogsub=subscribed#subscribe-blog
    i don’t get any report name on enterprise manager (em) page where i can reset the settings of report.
    Any help would be more appreciated.
    Thanks & Regards,
    Lalit,

    1. Hello Firas
      If you did everything, then you shouldn’t get the forms URL for Reports. Please post the routine that you are using to call individual reports. There is a high possibility that, you might have messed up with the OHS setup (forms and reports entries). Please check that also
      regards,

  5. Sandy

    Is there a way to mask (hide) the Reports URL once the report is called from FORMS?
    Thank you in advance and great article.

      1. Sandy

        Thank you for your quick reply and all the time and effort you put in to making these topics easy to understand! Even more so, in answering our questions. Much appreciated.

        Need to mask/hide the entire Reports URL. Currently, we are using WEBSTART Forms Configuration, accessing Reports only through Forms.

  6. Sandy

    Thank you once again for your response and all that you do here! Unfortunately, this doesn’t work. Sorry my reply is delayed, but I was hoping to get it working to then report back a solution here.

    Is SSO the only way to secure Oracle Forms and Reports 12.2.1.4?

    1. You are welcome. I was frustrated many times in the past when I did ask questions to blogs and many of them never responded :). Hence, when I started blogging, I tried my level best to minimum respond. That’s all
      Now, coming back to your requirement. What security you are expecting for your environment? Implementing SSO will be a tedious exercise, as far I know (We never implemented SSO for our Oracle EBS, due to the complexity). Please explain what exactly you are planning to achieve.

      regards,

      1. Sandy

        I agree with you about the extra layer of SSO complexities. We are s small shop and planning to roll out our Forms and Reports application hopefully early fall. When we first started with Oracle, SSO was a very simple process with the Oracle Application Server, just before Weblogic.
        Our Web App stores inventory, sales, buyer/shipping addresses, and payment methods.
        I am painfully aware of al the internet security issues, I’ve been pouring through the documentation trying to make some designs decisions on how to roll out the new application including what type of Security needs to be implemented.

        Again, thank you so much for your thoughtfulness, time and expert advice.

        Best Regards.

      2. Hello Sandy, I don’t have any knowledge about when internet customers are involved. I only deployed applications for corporate environments. I think you should ask Oracle community or Oracle support (If you have paid support)

        At the same time, I am curious to know whether you have a separate suite for internet customers or you are deploying your own web application for them. Please reply when you have time.
        Regards

      3. Sandy

        Greetings! Thank you once again for your quick and thoughtful replies. We have asked Oracle and the community and were told it was a design decision and linked to the documentation I am now reviewing. If I find the answer, I’ll post it here for you and your readers. I am finding it difficult to connect with an organization that only uses a Oracle Forms and Reports on the Web.

        Once I’ve gone through the documentation and have gained a working knowledge, I will contact Atul Kumar. Thank you for the reference.

        We did create a separate module for the Internet/Web Users (external customers). It runs within the same application as the organization uses, but pending the login, it’ll take the Internet/Web user to the Web Module, isolating proprietary data from them. The Web Module is dependent upon the same data but is filtered for that particular customer/user. The organization, of course, can search, modify, and delete any customer data. I hope I’ve answered your question, and if not, or if you have more, don’t hesitate to ask!

        Again, thank you for all that you do!

  7. Luca

    Hi,
    very nice explanations.
    Is there a way to automatically start the OHS, Forms and Reports components.
    I have installed nodemanager and weblogic as services, but I would like everything to restart automatically when the server is restarted.

    Thanks

    1. Hello Lucaz. You can use NSSM (https://nssm.cc/) to create windows services for above said components.
      I will recommend you to create such services for Node Manager and Admin Server & to start the OHS, Forms and Reports servers from the respective consoles. Trust me, on Windows, Oracle stuffs may not startup as you expect at times & manually starting them after a restart will give you better ideas about what went wrong.

Leave a Reply to windows7bugsCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.