Mozilla Firefox 52 ESR for extended NPAPI-support

Interesting post from my colleagues from the US regarding Oracle Forms & Firefox 52:

As of March 7, 2017, Mozilla has released the newest release of Firefox, version 52. Similar to what Google Chrome did about a year or so ago, Mozilla has now disabled the NPAPI plug-in which is required to run anything with Java such as Oracle Forms without using Java Web Start. What will happen is if Firefox is updated to version 52 and you try to access Forms, you will see a blank screen which will result in the Forms application to not start at all.

Fortunately, Mozilla has realized that businesses still need to use services such as Java during this transition, so Mozilla has released the Firefox “Extended Support Release” for version 52. This is a version of Firefox which is used by companies and organizations which need support for running Java with the NPAPI plug-in especially for mass deployments. The current ESR version of 52 will continue to allow the use of the NPAPI plug-in for Java through May 2018. The download link (to download the 32-bit Firefox 52 ESR for Windows 32 and 64-bit machines) may be found here:

https://www.mozilla.org/en-US/firefox/organizations/all/

After this is installed on your PC, you will be able to run Forms using Firefox again without the need of Java Web Start. This is important for anyone who is still running Forms 11gR2 (or older) which has no support for Java Web Start. However, if you are running Forms 12c, you may use Java Web Start which allows you to run Java (required for running Oracle Forms) without the NPAPI plug-in. Java Web Start allows you to run Oracle Forms 12c from any web browser (Internet Explorer, Firefox, Chrome, Edge, etc.). If you decide to use Java Web Start, the Firefox ESR is not necessary.

Sources: https://support.mozilla.org/t5/Problems-with-add-ons-plugins-or/Why-do-Java-Silverlight-Adobe-Acrobat-and-other-plugins-no/ta-p/31069 and https://www.fxsitecompat.com/en-CA/docs/2016/plug-in-support-has-been-dropped-other-than-flash/

from Oracle Knowledgebase – PITSS America, LLC

Advertisements

Oracle Forms 12c: Error 801 while compiling

If you’ve already upgrated to the latest Forms version (currently 12.2.1.2) you’ve maybe encountered following problem:
If you use a cursor, that is specified in a package specification within your forms and define a rowtype based on that cursor that is fetched into the rowtype in a different other part of the form (in my case the package body). If you then try to compile you may get the error 801 internal error [unexpected fragile external reference] from figure 1.

unbenannt

Figure 1: Compilation error

Metalink documents

We’ve opened a service request for that problem in metalink and received an answer, that I would like to show you in this blogpost. There is also a bug filed as well: Bug 23250870
The solution for the compilation error and it’s solution is described the following document in Metalink. It says, that the base bug is a PLSQL bug.
Rather than providing a patch for that problem, Oracle gives the information, that you have to set following variable to one to enable the compilation:

FORMS_PLSQL_BHVR_COMMON_SQL=1

If you set a path variable in CMD before starting the Forms Developer and then execute frmbld.exe you are able to compile a module that contains a construct like:

PACKAGE Test IS
  cursor c1 is select name_object from all_obj;
  master_rec            c1%ROWTYPE;
END;
Package body Test is  
  Procedure p1 is
  begin
      fetch c1 into master_rec;      
      close c1;
  end p1;    
end;  

 

Registry entry & environment variable

Warning: Changing the Windows registry can mess up your OS.

I’ve tried to also create a registry entry in a Windows machine under HKEY_LOCAL_MACHINE\Software\Oracle\KEY_OracleHome1 and set it to “1” so you don’t have to execute a batch before running Forms Builder. Also I have tried to create a new environment variable. Both options enable the Forms Builder to compile. But I had complications while compiling a bigger customer forms module, when I hit directly Ctrl+shift+k – the Forms Builder crashed when I did not connect to the database before hitting the hotkey.

OTN links

https://community.oracle.com/thread/3986558

https://community.oracle.com/message/13371977#13371977

Running Forms 12c with SSL and Java Web Start Uses HTTP Instead of HTTPS

There is a known SSL-related issue when you run Oracle Forms 12c using the Java Web Start functionality. What happens is when you launch your Forms application using Java Web Start using HTTPS, you will notice that the URL will change to using HTTP instead of HTTPS. In some cases, you may encounter the following error:

“General Exception”

“ExitException: Unable to load resource: http://<host&gt;:<HTTPS_PORT>/forms/java/extensions.jnlp”

HTTPS Java Web Start issue

HTTPS Java Web Start issue

To fix this problem, you will need to add the following parameter inside your config section in formsweb.cfg which is configured for Java Web Start:

webstart_codebase=http://<host>:<HTTP_PORT>/forms/java

HTTPS Java Web Start fix

After making this change, the Java Web Start session should maintain the SSL connection using HTTPS without this error appearing.

thanks to my colleagues from PITSS LLC via Oracle Knowledgebase – PITSS America, LLC

JDeveloper Plugin for Forms2ADF Migration

I’ve migrated my first Oracle Forms module last week. It is the first time for me to be part of a migration project. The colleagues that I am working with instead have a high experience when it comes to ADF and migrating Forms to this technology, while my focus the last couple of years was mostly Oracle Forms. I think that is a possible scenario for many projects, where the aim is to migrate Forms to ADF.

So how can Forms developers start to migrate their application? The first step for me was to gather information on ADF, its architecture and the basics. I tried this with some self training, online materials and the help of my colleagues. When I came to the point to migrate the first module by myself I used the Forms Developer & PITSS.CON to understand how the form worked before and how the workflow was. There are people out there, that tell you that tools won’t do the job for you – and I agree. But they can make your job as a developer much easier. My colleague Mathias Waedt has developed a plugin for JDeveloper, that helps you as a developer when struggling with a migration. It helped me to understand which objects in ADF have been generated and which not. It showed me, were I had to put my effort into. The plugin fetches its information from the PITSS.CON repository.


Unbenannt

When the plugin is started it shows the basic information of the project like the database scheme, the names packages for the different objects (entity objects, view objects, etc.) and some other parameters. With a click on the details tab it is possible to see information of single forms. The form summary tab displays information regarding how many Forms objects already have been transformed to ADF components with PITSS.CON. This gave me a first overview of the upcoming work for that specific module. I saw, that most of the graphical objects were generated and only small modifications  were neccessary here, while I had to modify the business logic that was formerly located in triggers and program units.


Unbenannt2

 

With a click on Form Details it is possible to see which objects have been generated and which not. So for me as a newbie it was a big relief to use this kind of a checklist.


Unbenannt3

You can see all the objects from Oracle Forms and the corresponding generated objects in ADF – with a doubleclick you will directly jump into the generated object (e.g. Java Bean). As a future functionality it is planned to mark the objects that were added by the developer and are considered to be done. So you can work your way through the module without the danger to forget a functionality that was present in Forms up to 100%. The plugin is currently in the beta phase.

ADF Tip: Custom Excel Export Performance

I’ve been working on my first ADF-project the last couple of months and its time for a first blog post regarding ADF-development. We had the requirement to export data from the new developed ADF-Application to Excel. The standard Excel Export functionality was not sufficient, since also the chosen search criteria and other values should be exported, too.

For that purpose we used the docx4j project, with which the manipulation of excel, word and powerpoint files is possible. To export the data from the view objects to the java class that is responsible for creating the excel, the view object class and the view row class was created on view object level. In the view row class we used following code to export the data of the view object:

ModelUtils.getText(writeXML(1, XMLInterface.XML_OPT_ALL_ROWS));

In the beginning the view object had a Master-Detail-Relationship. When testing the export with a huge amount of data we ran into performance issues. We found out, that the relation was the cause of the bad performance and merged the different view objects into one view object – with that change the performance increased a lot. It seems that ADF evaluates all details and concatenates the resulting XML – and that takes time.

So when you have the requirement to export a lot of data and the standard ADF functionality is not enough, keep in mind that the XML-export could cause performance issues due to a Master-Detail relationship.

Update: jp2launcher.exe workaround

So, first post in the year 2016 – its gonna be a short one 🙂

In a previous post in this blog I mentioned a problem for using the webstart in Oracle Forms 11g: That the jp2launcher.exe process will not be terminated automatically when the webstart window is closed (view post). I ran a few tests the last days and it seems, that this problem is solved with the new release of Forms 12c as the webstart is included as a separated configuration option.

So I just wanted to let you know, that if you plan to use the webstart feature and to upgrade to 12c the mentioned solution is obsolete.

How to enable scrolling in Forms Developer Object Navigator

Since I started developing Oracle Forms within the Forms Developer there has always been an issue that was quite annoying: The fact, that srolling in the object navigator is not possible. But there is a tool out there, which enables additional mouse support called KatMouse. It provides universal mouse scrolling – here the link to download the tool:

http://ehiti.de/katmouse/

After the installation and start of KatMouse it is possible to use the mouse wheel in the Forms Developer which is not a big deal – but it makes life easier. Thanks to my colleague Peter Kopac for the hint.

First impressions of Oracle Forms 12c

So after downloading the files for the installation of Oracle Forms & Reports I started the installation of the Weblogic Server and Forms & Reports. The installation of the weblogic server is pretty self-explanatory.

After that I started the installation of Forms & Reports itself. Then I wanted to start the configuration, just to find out that with 12c you need to install the Oracle Repository with at least following components:

  • Oracle Platform Security Services
  • Audit Services
  • Audit Services Append
  • Audit Services Viewer

So you have to jump to “oracle_common\bin” and start the rcu.bat to get the installation of the repository started. After that you are able to start the configuration of Forms & Reports with config.cmd under “oracle_common\common\bin”. A complete documentation of the installation can be found here:
http://docs.oracle.com/middleware/1221/formsandreports/install-fnr/install.htm
The first thing you will notice when starting the EM and console is the different design:

3

I also had the subjective feeling, that the EM and the console both acting faster as in 11g.

When I had a look at the formsweb.cfg I saw, that Oracle hold the promise of giving us an easy way to implement webstart, since more and more browser stop supporting the NPAPI-Plugin.

2

I found a default webstart section and tried to start the test.fmx with this configuration; and it worked! So webstart seems to work now with not much configuration effort. If you want to try it yourself, just use following URL in your installation:

http://<SERVERNAME>:<PORT>/forms/frmservlet?config=webstart