Wednesday Apr 27, 2016

How to generate random JobIDs in Oracle Reports

Starting with 11g Release 1 (11.1.1), Oracle Reports allows you to generate random and non-sequential job IDs to make it impossible to predict the job ID for a particular job.

This would prevent malicious users from viewing non-secure report output by typing the job id in a URL. 

Therefore to strengthen the Oracle Reports component, enable random and non-sequential job IDs for the reports servers.

This feature can be obtained as described below: 

  • for in-process servers, pass "-Djobid=random" via JVM options to Oracle WebLogic Server.
  • for standalone servers, pass the "-Djobid=random" via JVM options in the command line or by setting the REPORTS_JVM_OPTIONS variable. ( More information about REPORTS_JVM_OPTIONS variable can be found in Section B.1.53, "REPORTS_JVM_OPTIONS")

Also, detailed steps for implementing this feature depending on the Oracle Reports version, can be found in these notes:
  • How to Enable Random and Non-Sequential Job IDs for Reports Server 11g (Doc ID 852814.1)
  • How to Enable Random and Non-Sequential Job IDs for Reports Server 12c (Doc ID 2101284.1)

Thursday Apr 21, 2016

Future Direction for Application Express (APEX) and the Oracle HTTP Server (OHS) / Mod_plsql

Starting with the 12.1.3 Oracle HTTP Server (OHS), the mod_plsql feature has been deprecated.  

As outlined in the Oracle Fusion Middleware documentation, OHS - mod_plsql will not be included with the 12.2 version of the database or the 12.2 Oracle HTTP Server.

This deprecation notice only affects future product direction for the Oracle HTTP Server, and the mod_plsql will continue to be supported according to the dates defined in the Fusion Middleware Lifetime Support Policy document.

For the future, Oracle recommends moving to Oracle REST Data Services (formerly known as Oracle  APEX Listener) as an alternative to mod_plsql. Oracle REST Data Services is a J2EE-based servlet which offers increased functionality including enhanced security, and file caching.

Oracle REST Data Services (ORDS) is a free product provided under Oracle Technology Network License Terms
To run in a supported configuration, ORDS has to be installed into Oracle WebLogic Server (WLS), Oracle Glassfish or Apache Tomcat. 

Read more details about this topic in :
Note 1945619.1 - Future Direction for Application Express (APEX) and the Oracle HTTP Server (OHS) / Mod_plsql
Note 1576588.1 - Oracle Web Tier - Statement of Direction. 

Thursday Apr 14, 2016

How to Broadcast Messages to Oracle Forms Users using System Notifications

In the new version, Oracle Forms 12c offers a number of new event oriented features.

A summary of the new features is presented in:  Oracle® Forms 12c New Features White Paper

In essence, System Events allow developers to develop applications that can react to actions that occur relative to the running application.

Below, a sequence of steps is presented on how to use the System Notification event to broadcast messages to all active Forms users or a specific subset of active users.
This scenario involves that the System Notification event will be raised when a notification has been received from Fusion Middleware Control (FMWC). 
FMWC can send one of five notification levels to any or all of the running Forms sessions from the Forms User Sessions page. 
Application Developers will code the desired action for each notification level. Notification levels are determined using the new System variable :SYSTEM.NOTIFICATION_VALUE. 
Here is an example of how to use the SYSTEM_NOTIFICATION event.

1. In Forms Builder, create an Event of type "System Notification".

2. Create a WHEN-EVENT-RAISED Trigger with code like the following:
-- NOTIFICATION_VALUE is the value/number sent from Fusion Middleware Control
    notification_level := :SYSTEM.NOTIFICATION_VALUE;
      CASE notification_level
      -- Each message should be customized as needed.
        WHEN '1' THEN MESSAGE ('Received Notification #1 from Fusion Middleware Control.');
        WHEN '2' THEN MESSAGE ('Received Notification #2 from Fusion Middleware Control.');
        WHEN '3' THEN MESSAGE ('Received Notification #3 from Fusion Middleware Control.');
        WHEN '4' THEN MESSAGE ('Received Notification #4 from Fusion Middleware Control.');
        WHEN '5' THEN MESSAGE ('Received Notification #5 from Fusion Middleware Control.');
  End if;

3. Log into Oracle Enterprise Manager Fusion Middleware Control 12c.
4. Bring up the User Sessions page to view the active sessions.
5. Select the "Notify" Button, and choose a Notification Message to send.
6. Based on the code above, the appropriate Message will be displayed in the Form.

A form example and specific details can be found in Doc ID 2120411.1

Also, useful information on this topic can be found in:

Monday Mar 21, 2016

Application Express in the Cloud

Did you know?
Oracle Application Express can be used in the Cloud.

The Oracle Database Cloud Service is available in several different offerings. Database Schema Service (the schema-based APEX service) offering provides HTTPS access to the Oracle Database and is targeted at developers. Database as a Service and Virtual Image (the dedicated database instance service) are well suited for customers needing a full database or SQL*Net connectivity.

The following figure illustrates the architectural differences between these offerings:

Sign up for a trial account at:

Read all about what Application Express offers in the Cloud in this FAQ

Monday Mar 07, 2016

ORDS 3.0.4 was released

A new ORDS version was released on March 3, 2016

Useful links:

Full download
Release notes and installation
Bugs fixed

Also, read more about the new features of this version in here

Tuesday Mar 01, 2016

New features overview for Oracle Forms 12c

A new features overview for Oracle Forms 12c has recently been released.

In this new white paper, detailed information can be found on several important topics:

Forms Runtime and Integration Features 

  • Oracle BI-Publisher Integration
  • System Events
  • Audio Playback
  • Single Sign-out
  • Client Deployment
  • Custom Text on Logon and Password Change Dialogs
  • Tab Labels with Images
  • Record Counter
  • Item Level Mouse Cursor (Pointer)
  • Setting Max Event Wait Programmatically
  • Client IP Address
  • Form Query-Only Mode
  • Oracle Diagnostic Logging and Forms MESSAGE Built-in
  • JVM Controller
  • Custom Color Schemes
  • New Applet Parameters
  • New Environment Variables

Forms Design Time and Utility Features

  • Builder Preferences
  • Module Converter
  • Product Documentation and Community
  • Java Developer API (JDAPI)
  • WebUtil without OLE

Read more about each feature in Oracle Forms 12c New Features White Paper.

Monday Feb 22, 2016

Integrate Oracle Forms 12c with Oracle Access Manager

Article by Dan Andronache, Principal Support Engineer, Oracle Corporation, Romania

A long story of products integration continues in 12c.

We've seen how Oracle Forms 11g can be integrated with Oracle Access Manager in A Case Study - Setting Up Oracle Forms 11g with OAM (Oracle Access Manager)

Now, Oracle Forms 12c can be protected by Oracle Access Managed (OAM) 11gR2 patch set 3.

Oracle Access Manager 11g is a Java Platform, Enterprise Edition (Java EE) - based enterprise - level security application that provides restricted access to confidential information and centralized authentication and authorization services.
Oracle Access Manager 11g, a component of Oracle Fusion Middleware 11g, is a Single Sign-On solution for authentication and authorization.

Authentication servers enable an application to authenticate users by means of a shared authentication token or authentication authority. That means that a user authenticated for one application is automatically authenticated for all other applications within the same authentication domain.

Forms applications use a single sign-on solution only for obtaining database connection information from Oracle Internet Directory or Oracle Platforms Security Services (OPSS).
Once the database information is obtained, interaction with the authentication server no longer occurs.
Exiting a Forms application does not perform a single sign-on logout unless the application has been coded with one of the SSO logout features introduced in Oracle Forms 12c.
Conversely, logging out of a single sign-on session does not terminate an active Forms session unless the application has been coded with one of the SSO logout features introduced
in Oracle Forms 12c. The database session exists until the Forms Runtime (for example, frmweb.exe) on the server terminates, usually by explicitly exiting the form.

As a prerequisite of the integration, following installations have to be complete:

  • Oracle Access Manager 11gR2 patch set 3
  • Oracle Forms 12c
  • If Oracle Internet Directory is used as an Identity Store, install Oracle Internet Directory and integrate it with OAM,
  • Webgate integrated with the HTTP Server fronting Oracle Forms 12c

Next, the integration is separated in sections as follows:

I. Integrate Webtier HTTP Server with Oracle Forms

If a remote HTTP Server is used, an additional step of integration with Forms has to be completed by following the steps in Configuring OHS on a Separate Host.
After the Webtier HTTP Server is restarted, the integration can be tested through URL: http://hostname:port/forms/frmservlet? , where hostname is the hostname where the Webtier HTTP Server is installed and the port is the Webtier HTTP Server listen port. Once Forms is accessible this way, the integration can proceed.

If the HTTP Server that comes with the Forms installation is used, only the accessibility test of Forms through HTTP Server is needed.

II. Install and configure Oracle HTTP Server Webgate for OAM

There are two ways to integrate the HTTP Server with Webgate.
1. Manually: follow the steps from B.2 Configuring Oracle HTTP Server 12c WebGate.
2. Automatically: Run the E.1 Oracle Forms Configuration Helper Script

III. Select the partner application registration approach

A.  Manual Method -  Use OAM Admin Console

1. Log in to the OAM console. - http://hostname:port/oamconsole
2. On the Welcome page, click on New OAM 11g Webgate
3. Provide all the details such as the Base URL, which should be http://hostname:port , where hostname is the hostname of the Webtier HTTP Server machine and the port is the Webtier HTTP Server listen port. Ensure that the Auto Create Policies check box is checked.
While creating the webgate agent, add the following URL to the Protected Resource List:

The parameter values for the Webgate agent will be created on the OAM machine in DOMAIN_HOME/output/<agent name>. There will be two files created, cwallet.sso and ObAccessClient.xml. These files need to be copied to the Webtier machine in WEBTIER_INSTANCE/config/OHS/ohs1/webgate/config. The cwallet.sso file needs to be copied in BINARY mode and the ObAccessClient.xml file needs to be copied in TEXT mode (for UNIX systems). After copying the files a restart of the Webtier HTTP Server is necessary.

B. Automatically using the Forms Configuration Helper Script

a. Download RREG.tar located on the Oracle Access Manager Server in OAM_HOME/oam/server/rreg/client and untar under the Oracle FMW 12c $FMW_HOME directory.
b. Set the MW_HOME and JAVA_HOME environment variables.

UNIX: export MW_HOME=/u01/Oracle/Middleware/Oracle_Home
      export JAVA_HOME=/u01/Oracle/jdk1.8.0_65
Windows: set MW_HOME=D:\Oracle\Middleware\Oracle_Home
         set JAVA_HOME=D:\Oracle\jdk1.8.0_65

c. Run the script:

./ enable_sso OAM_hostname OAM_adminport Forms_hostname
 httpserver_port Forms_DOMAINHOME httpserver_instance

where OAM_hostname is the hostname where OAM is installed, OAM_adminport is the Admin server port for OAM, Forms_hostname is the hostname where Forms is installed, httpserver_port is the listen port of the HTTP Server that is used to access Forms, Forms_DOMAINHOME is the Forms domain home and httpserver_instance is the name of the instance of the HTTP Server.

Note: If running the script, the webgate agent will be created automatically and all the necessary files will be copied to the HTTP Server instance, so no extra manual steps are required.
After running the script, a restart of the environment is required: Node Manager, Admin server, WLS_FORMS and HTTP Server (in this order)

C. Choose the Forms Identity Store type for storing Resource Access descriptors.

Available options:

  • Oracle Platform Security Services (OPSS) - Oracle Platform Security Services (OPSS) is configured as the default Forms Identity Store, so no action is required.
  • Oracle Internet Directory (OID) - The user opted to use .

If choosing Oracle Internet Directory (OID) as the Forms Identity Store, proceed with accessing the Associate/Disassociate page:

  • Start Fusion Middleware Control.
  • Navigate to the Forms Home page.
  • From the Forms menu, select Forms Runtime LDAP Associations.
  • The Forms Runtime LDAP Associations page is displayed.
  • Enter the Oracle Internet Directory Host details:

Parameter Description
OID Host 
Select the Oracle Internet Directory Host from the list or select New Oracle Internet Directory (OID) host to add new host details.
New OID Host Host name of the Oracle Internet Directory server. This field is enabled if you have selected to add new Oracle Internet Directory (OID) Host.
New OID Port Port number on which Oracle Internet Directory is listening. This field is enabled if you have selected to add new Oracle Internet Directory Host.
Oracle Internet Directory Administrator username
Oracle Internet Directory Administrator password
Use SSL Port Select this box if the connection to the Oracle Internet Directory Host should use SSL (in which case the port number provided should be the SSL port).

  • Click Associate and restart WLS_FORMS managed server.

IV. Enable SSO for Forms applications in formsweb.cfg

In order to protect Forms applications via SSO, the formswerb.cfg file needs to be modified.

Using the recommended method of managing formsweb.cfg, open Fusion Middleware Control and enable single sign-on for an application:

  • Start Fusion Middleware Control.
  • Select Web Configuration from the Forms menu.
  • Select the row that lists the configuration section for your application.
  • In the Section region, select sso in the Show drop down list.
  • In the Section region, select the row containing ssoMode.
  • In the Value field, enter webgate or TRUE.
  • Click Apply to update the formsweb.cfg file.
At this point, Forms can be accessed via http://hostname:port/forms/frmservlet?config=yourconfig and the SSO page should appear.

Wednesday Feb 10, 2016

Integrating Oracle Reports with Oracle Forms

Oracle Forms and Reports 12c have been recently released. Everybody talked about it.

To call Oracle Reports from Oracle Forms application, the most secure approach is to use the RUN_REPORT_OBJECT built-in.  Because the user’s database connection is implicitly passed from Oracle Forms to Oracle Reports on the middle tier server, there is no risk of interception as when passed such information in a URL.  

Sample code and detailed information can be found in any of these documents:

White Paper: Integrating Oracle Forms 10g and Oracle Reports 10g
White Paper: Oracle Forms Services - Using Run_Report_Object to call Reports with a Parameter Form
White Paper: Oracle Fusion Middleware 11gR1 & 11gR2 -Integrating Oracle Reports with Oracle Forms

Specific to 12c version , a new environment variable is needed in Oracle Forms 12c to be able to call reports using RUN_REPORTS_OBJECT() built-in. 

The new variable name is COMPONENT_CONFIG_PATH and its value should be the fully qualified path to the Reports Tools Component.
For example: DOMAIN_HOME/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_component_name>

From Forms point of view, it will be necessary to add the new environment variable to the Forms environment configuration (that is, default.env).

Read more about this in:
Oracle® Fusion Middleware Release Notes for Oracle Forms and Reports 12c
2.3.8 Oracle Reports Integration Requires New Environment Variable

Thursday Jan 28, 2016

Tracing in Oracle Reports 12c

Just in case tracing is needed, here is a summary of steps needed to enable Reports Server Engine/Server/Servlet trace in Oracle Reports 12c:

Open the Enterprise Manager console.  
From the WebLogic Domain menu, select "System MBean Browser".

Depending on the type of trace needed, choose the corresponding section below:

In-process Reports Server engines Go to "Application Defined MBeans"
Expand "oracle.logging --> Server: WLS_REPORTS --> Application: reports --> LogConfig":
  • Click on "LogConfig" and go to the "Operations" TAB.
  • Click on row #11 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.engine". 
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,         ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16,        TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.
In-process Reports Server and Servlet

Go to "Configuration MBeans"
Expand "oracle.logging --> Server: WLS_REPORTS --> LogRuntime" :

  • Click on "WLS_REPORTS" and go to the "Operations" TAB
  • Click on row #6 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.server" for Reports Server trace or "oracle.reports.servlet" for Reports Servlet trace.
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,  ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16, TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.
Stand-alone Reports Server and Engine

Go to "Configuration MBeans"
Expand "oracle.logging --> LogConfig" :

  • Click on "[Reports Server Name]" and go to the "Operations" TAB.
  • Click on row #11 "setLoggerLevel" operation.
  • For "loggerName", enter in the Value field "oracle.reports.server" for Reports Server trace or "oracle.reports.engine" for Reports Server Engine trace.
  • For "levelName", enter in the Value field any of the following values: INCIDENT_ERROR:1,  ERROR:1, WARNING:1, NOTIFICATION:1 (This is the default value), NOTIFICATION:16, TRACE:1, TRACE:16, TRACE:32
  • Click on the "Invoke" button.

Re-start the Reports Server.

 Log Files Location:

    Reports Servlet trace file: DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwservlet_diagnostic.log
    In-process Reports Server trace file:  DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwserver_diagnostic.log
    In-process Reports Server Engine file: DOMAIN_HOME/servers/WLS_REPORTS/logs/reports/rwEng-X_diagnostic.log
    Stand-alone Reports Server trace file: DOMAIN_HOME/servers/[Reports Server Name]/logs/reports/rwserver_diagnostic.log
    Stand-alone Reports Server Engine file: DOMAIN_HOME/servers/[Reports Server Name]/logs/reports/rwEng-X_diagnostic.log

More information on this topic can be found in:  Note 2070743.1

Thursday Jan 21, 2016

WebUtil Overview

WebUtil main purpose is to provide a simple way to achieve client side integration while running Oracle Forms on the web.
It also simplifies the upgrade of existing applications to the web and enhances the capabilities of web based Oracle Forms applications.

WebUtil has an overriding goal to produce a utility that any Forms developer could use to carry out the complex tasks on the client browser machines by simply coding PL/SQL. With WebUtil, everything the programmer needs to do is exposed through a PL/SQL library.

WebUtil main features are:

  • Text_IO - Read and write text files on the client machine.
  • Tool_Env - Read client side variables
  • C API on the client - Interface with client side C.
  • Host - Run Host commands on the client machine
  • OLE2 - Integrate with client side OLE (e.g. Word and Excel)
  • Enhanced Host commands - Host command call back into Forms
  • Browser functions - Integrate with the browser.
  • File transfer - Move from between the client, application server and database
  • File Manipulation - Manipulate client side files.
  • Client machine information - Read information from the client machine
  • READ/WRITE_IMAGE_FILE - Read and write client side images
  • Get_File_Name - Use a file selection dialog on the client machine
  • D2KWUtil features - Client side interface into the D2KWUtil package.

General information about WebUtil like:

Where can I download WebUtil?
What is WebUtil?
The Goals of WebUtil?
Webutil Demo

can be found on OTN

While configuring WebUtil, jacob.jar can be included or not.

The configuration requires jacob.jar when Microsoft OLE functionality is needed.  
Microsoft OLE functions are used primarily in Forms by Forms Developers who wish to interact with Microsoft applications such as Word or Excel from Forms.  
If OLE functions are not needed, following note can be used: Note 1644754.1 WebUtil Demo with No Jacob Dependency/ No OLE Features.

Otherwise, depending on the Forms version used, WebUtil configuration can be completed using:
Note 1093985.1 : How to Configure WebUtil in Forms 11g  or Note 2070183.1 : How to Configure WebUtil in Forms 12c

Tuesday Jan 12, 2016

Just Released! Apex 5.0.3 - SQL Developer 4.1.3 - ORDS 3.0.3

Quite right in sync with the year change, we have a bunch of product updates.
New releases are in place

Find all details - new features, fix list, downloads - on the related product sites following the links above.

Tuesday Jan 05, 2016

Oracle Forms and Reports Builders in 12c

In Fusion Middleware 12c, Oracle Forms product introduces a new installation option named 'Forms Builder Only'.
This option offers the ability to install only the Forms Builder and its associated utilities. No runtime or related components will be installed.
This lighter weight installation option will be helpful when a runtime environment is not needed.

All the steps needed to configure Forms Builder Standalone 12c are presented in

Chapter 2.4.9 Configuring Form Builder Standalone 12c Using the Configuration Wizard

Apart from the 'Form Builder Only', Forms Builder can installed as part of 'Forms and Reports Deployment' option as shown below.

On the other side, Reports Builder can only be obtained as part of 'Forms and Reports Deployment' option illustrated above.

Read more about Oracle Forms and Reports 12c version in:

Oracle Forms and Reports 12c (12.2.1) Download and Readme
Oracle Forms and Reports 12c (12.2.1) - Overview
Oracle® Fusion Middleware Publishing Reports to the Web with Oracle Reports Services
Oracle® Fusion Middleware Oracle Reports User's Guide to Building Reports
Oracle® Fusion Middleware System Requirements and Specifications12c (12.2.1)

Tuesday Dec 22, 2015

Oracle RESTful Data Services

Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web.
An API is described as RESTful when it conforms to the tenets of REST. Although a full discussion of REST is outside the scope of this document, a RESTful API has the following characteristics:
  •     Data is modelled as a set of resources. Resources are identified by URIs.
  •     A small, uniform set of operations are used to manipulate resources (for example, PUT, POST, GET, DELETE).
  •     A resource can have multiple representations (for example, a blog might have a HTML representation and a RSS representation).
  •     Services are stateless and since it is likely that the client will want to access related resources, these should be identified in the representation returned, typically by providing hypertext links.

Creating a RESTful Services can be achieved in two ways:

1. Using Oracle Application Express 4.2 SQL Workshop or above with ORDS 2.0.6 or above.
Detailed steps are presented in Doc ID 2085947.1.

2. Using SQL Developer 4.1 and above with ORDS 3.0.2 or above.  Oracle Application Express is not required with this combination.
Read more about this option in : Section E:Getting Started with RESTful Services

Check out the Oracle REST Data Services Installation, Configuration, and Development Guide and the Oracle RESTful Data Services FAQ ( Doc ID 2085904.1  ) for more details.

Thursday Dec 10, 2015

Oracle Lifetime Support Policy for Forms and Reports 12c

Oracle Forms and Reports 12c lifetime support dates are now defined.

At this point in time they are as follows:

Release  GA Date


Support Ends


Support Ends


Support Ends

Forms and Reports 11.1.2.x
Oct 2011
Dec 2016
Dec 2018
Forms and Reports 12.2.x
Oct 2015
Oct 2020
Oct 2023

For more specifics on Premier Support, Extended Support, and Sustaining Support, please refer to Oracle Lifetime Support Policy or visit us at

Monday Dec 07, 2015

Creating and Starting a Standalone Reports Server in 12c

Due to its properties, a Standalone Reports Server provides better control outside the rwservlet process with the ability to separate the server process from the WebLogic Server instance.

As stated in Oracle® Fusion Middleware Administering Oracle Fusion Middleware, starting with 12c version, OPMN is no longer used in Oracle Fusion Middleware. Instead, system components are managed by the WebLogic Management Framework, which includes WLST and Node Manager.

Therefore, managing reports component process has been adapted as well.

With no further ado, here are the instructions to create and start a standalone reports server in the latest 12c version.

A. Create the components

The first step after running the Configuration Wizard in a new environment with Oracle Reports 12c is, to run the WLST command createReportsToolsInstance().
This command will create all the components at the file system level needed for Oracle Reports:


1- Execute wlst.cmd/ from ORACLE_HOME/oracle_common/common/bin

2- Connect to AdminServer.


3- Run the following wlst command.


B. Create the standalone reports server


1- Execute wlst.cmd/ from ORACLE_HOME/oracle_common/common/bin

2- Connect to the AdminServer.


3- Run the following WLST command.


* this will create a new standalone Reports Server named 'rep_server1'

4- Start the Reports Server.

Note: The examples use default credentials and ports.

C. Start / Stop the standalone reports server

Go to the DOMAIN_HOME/bin folder and issue any of the following commands:

startComponent.cmd or [Reports Server Name]
stopComponent.cmd or [Reports Server Name]

Read more about Reports 12c in the official documentation:

Oracle® Fusion Middleware Publishing Reports to the Web with Oracle Reports Services
Oracle® Fusion Middleware Oracle Reports User's Guide to Building Reports


This is the official blog of the Proactive Support Team for Developer Tools: Oracle Forms, Oracle Reports, Apex, SQLDeveloper, ... . Find information about our activities, publications, product related information and more.


Follow @psdDevTools on Twitter


« May 2016