Posts Tagged Forms

Fasten your Oracle Forms and Reports 11g Server start on Unix derivates

Do you see a slow start of your weblogic managed server for forms & reports on unix derivate? We have this problem on Suse SLES 11 and forms and reports 11.1.2.

In November I attended the annual DOAG (German Oracle User Group) conference in Nuremberg. There I’ve heare an interesting presentation from Jan-Peter Timmermann about “Performance with Forms 11gR2 Weblogic 10.3.x”.

One snippet of the presentation was an bug in the jdk which slows down the start of managed weblogic servers. It has to do with the random number generator during loading the OPSS Policy Provider for security. This issue is discussed in detail in this blog: http://www.itonguard.com/20090313/weblogic-starts-slow/.

These are the relevant log files before as an example for forms:

####<21.12.2012 07:38 Uhr MEZ> <Info> <WebLogicServer> <localhost> <> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1356071911941> <BEA-000000> <WebLogic Server "WLS_FORMS" version: WebLogic Server 10.3.5.0  Fri Apr 1 20:20:06 PDT 2011 1398638  Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.>
####<21.12.2012 07:38 Uhr MEZ> <Info> <IIOP> <localhost> <WLS_FORMS> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1356071912371> <BEA-002014> <IIOP subsystem enabled.>
####<21.12.2012 07:40 Uhr MEZ> <Info> <Security> <localhost> <WLS_FORMS> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1356072024665> <BEA-090894> <Successfully loaded the OPSS Policy Provider using oracle.security.jps.internal.policystore.JavaPolicyProvider.>
####<21.12.2012 07:41 Uhr MEZ> <Notice> <WebLogicServer> <localhost> <WLS_FORMS> <main> <<WLS Kernel>> <> <> <1356072069175> <BEA-000360> <Server started in RUNNING mode>

You see, that initializing the OPSS Policy Provider, which seems to use the random number generator, needs 2 minutes.

Now we will make a simple change in the Oracle Middleware JDK Runtime file (we have here SUN JDK 1.6.0_26 64bit)

<JDK Home>/jre/lib/security/java.security

Comment the original line as followed, an add a the marked new line:

#securerandom.source=file:/dev/urandom
securerandom.source=file:/dev/./urandom

Now see the results for forms:

####<21.12.2012 07:57 Uhr MEZ> <Info> <WebLogicServer> <sdu10037> <> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1356073038615> <BEA-000000> <WebLogic Server "WLS_FORMS" version: WebLogic Server 10.3.5.0  Fri Apr 1 20:20:06 PDT 2011 1398638  Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.>
####<21.12.2012 07:57 Uhr MEZ> <Info> <IIOP> <localhost> <WLS_FORMS> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1356073039121> <BEA-002014> <IIOP subsystem enabled.>
####<21.12.2012 07:57 Uhr MEZ> <Info> <Security> <localhost> <WLS_FORMS> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1356073042034> <BEA-090894> <Successfully loaded the OPSS Policy Provider using oracle.security.jps.internal.policystore.JavaPolicyProvider.>
####<21.12.2012 07:58 Uhr MEZ> <Notice> <WebLogicServer> <localhost> <WLS_FORMS> <main> <<WLS Kernel>> <> <> <1356073086151> <BEA-000360> <Server started in RUNNING mode>

You see the loading of OPSS Policy Provider takes now no relevant time and the startup time in our case decrease from 3 to 1 minute. We see same improvement for the reports managed server.

Remember, your mileage may vary if

  • Your are not on a affected unix derivate.
  • You use not an jdk with this bug. Unfortunatly in the blog is not described the bug number.

, , , , , , ,

2 Comments

TranslationHub 11g is only available as 32 bit – requires Forms & Reports 11g too in 32 bit for Development

I have done the whole may scripting silent installs of several developer tools. Among them was Fusion Midleware 11.1.2 Forms & Reports. I see that oracle certifies the 64bit installers on win7 64bit and so I have successfully script this after a lot of time. I want not speak about the many errors in silent installers here.

As we use TranslationHub for translating our forms, menus and reports, I tried last weeks to script this and after this to batch import all my original and translated modules as 11g versions, as this is required before roll out fusion middleware to our users.

First I have seen that TranslationHub is only available in 32bit as standalone version outside Fusion Middleware. Additional there is no silent installer available for this separate package. Asking support for 64bit version and silent install option results in two enhancement requests. Everybody who has created such an request before know, that he does not get this in some weeks, very likely he got it never. Fortunatly our scripting boys have recorded and repackaged this installer. The 32bit version installs on win7 64bit and starts.

But now begins the really horror: I could not see forms and reports in the import wizards, my batch jobs fails. The 32bit TranslationHub version seems not find the 64bit Forms version. So the work begins again – I had to script the 32bit version of Fusion Midleware 11.1.2 Forms & Reports for the developers. Fortunatly this works very similar to 64bit, and I complete this package in several ours. Now

One additional note for TranslationHub: You must ensure that the first entry in the path variable is an 32bit Oracle Client for succesfull connect to your TranslationHub repository.

, , , , , , , ,

12 Comments

Oracle Forms 11 running as application in Java Webstart

According to my last post today I will show you the basic configuration for forms 11g.

Unfortunatly webstart in forms 11g it is not as easy as in 10g, but it works too!

As first you need an additional unique identifier “ifsessid” in parameter “serverURL” for forms. This prevents the use of a static jnlp in this case. Maybe it is possible to branch out the build of this unique identifier from the jnlp. I have decided instead to create the the jnlp from a java server page. This helps me additional to use forms parameters, which I will describe in a later post. Sure there maybe exist other ways to build the jnlp.

Let’s start:

Again I assume you have an running unix or linux application server with forms 11g.

As first you need the webstart_11g.jsp in folder public_html under a JDeveloper project. The marked lines provides the identifier:

<%@ page contentType="application/x-java-jnlp-file" language="java" import="java.sql.*"%>
<%@ page session="true"%>
<%response.setDateHeader ("Expires", 0); //prevents caching at the proxy server%>
<%
  long time = System.currentTimeMillis();
  String sessid = String.valueOf(time);
%>
<jnlp codebase="http://localhost.localdomain:9001/forms/java/">
  <information>
    <title>Webstart Test Oracle Forms 11g</title>
    <vendor>develishdevelopment.wordpress.com</vendor>
    <description>Webstart Test Oracle Forms 11g</description>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="timeout" policy="always"/>
  <resources>
    <j2se version="1.6.0"/>
    <jar href="frmall.jar" download="eager" main="true"/>
  </resources>
  <applet-desc name="Webstart Test Oracle Forms 11g" main-class="oracle.forms.engine.Main" width="990" height="640">
    <param name="background" value="no"/>
    <param name="logo" value="no"/>
    <param name="serverApp" value="default"/>
    <param name="lookAndFeel" value="oracle"/>
    <param name="allow_debug" value="true"/>
    <param name="separateFrame" value="false"/>
    <param name="em_mode" value="1"/>
    <param name="latencyCheck" value="true"/>
    <param name="networkRetries" value="240"/>
    <param name="serverArgs" value="module=test.fmx useSDI=yes"/>
    <param name="serverURL" value="http://localhost.localdomain:9001/forms/lservlet?ifcfs=http://localhost.localdomain:9001/forms/frmservlet?config=jpi&ifsessid=formsapp.<%=sessid%>"/>
    <param name="colorScheme" value="teal"/>
    <param name="splashScreen" value="no"/>
    <param name="dontTruncateTabs" value="true"/>
  </applet-desc>
</jnlp>

Now you need to deploy this jsp. First create a application server connection in JDeveloper version corresponding to your forms weblogic server. I have forms 11.1.1.2.0, which runs on weblogic 10.3.2. So I have to use JDeveloper 11.1.1.2.0. See oracle support information for supported JDeveloper version for your environment. Right click on you Jdeveloper project with the jsp an select deploy. Following are the steps in the deploy wizard:

  • Deployment Action
    • Deploy to application server
  • Select Servers
    • Application Servers: your application server
    • Overwrite modules of the same name: select
    • Deploy to all server instances in the domain: unselect
    • Deploy as a standanlone Application: select
  • Server instances
    • List Standalone Servers and Cluster: select your forms cluster or your forms server (WLS_FORMS)
  • Summary: finish

In the project properties change the deployment properties to set your context root, which will be later part of your url:

Set context root.

If you redeploy this jsp, you may wonder that your change is not immediatly shown. You can solve this by dropping the former deployment before redeploying or you add following files to your JDeveloper Project under folder public_html\WEB-INF:

weblogic.xml:

<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd" xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
  <jsp-descriptor>
    <page-check-seconds>0</page-check-seconds>
  </jsp-descriptor>
  <container-descriptor>
    <servlet-reload-check-secs>0</servlet-reload-check-secs>
    <resource-reload-check-secs>0</resource-reload-check-secs>
  </container-descriptor>
  <context-root>webstart_11g</context-root>
  <fast-swap>
    <enabled>true</enabled>
    <refresh-interval>1</refresh-interval>
  </fast-swap>
</weblogic-web-app>

web.xml:

<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"></web-app>

Complete workspace you can found here: webstart_11g.zip

Now start java webstart with your jnlp url, here is an example in linux:

./javaws http://localhost.localdomain:9001/webstart_11g/webstart_11g.jsp

Java webstart comes up with the standard test.fmx from the forms services installation:

webstart_11g_succesful

That’s all!

, , , ,

11 Comments

Oracle Forms 10 running as application in Java Webstart

Many people miss in webforms the possibility to run forms as a separate application. They have a lot of problems to handle browser back button an so on.

The good news – there is way to do this with Java Webstart.

The bad news – it is not supported by Oracle. But we run this since four years now and is very stable.

Following I show you the basic configuration for forms 10g. In later posts I will show you examples for forms 11g, how to handle forms parameters and further more.

Let’s start:

I assume you have an running unix or linux application server with forms 10.1.2.
Put following code as webstart_10g.jnlp to directory <Oracle Home>/j2ee/home/default-web-app

<jnlp spec="1.0+" codebase="http://localhost.localdomain:7778/forms/java/">
  <information>
    <title>Webstart Test Oracle Forms 10g</title>
    <vendor>develishdevelopment.wordpress.com</vendor>
    <homepage href="null"/>
    <description>Webstart Test Oracle Forms 10g</description>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="timeout" policy="always"/>
  <resources>
    <java version="1.6.0"/>
    <jar href="frmall.jar" download="eager" main="true"/>
  </resources>
  <applet-desc name="Webstart Test Oracle Forms 10g" main-class="oracle.forms.engine.Main" width="990" height="660">
    <param name="background" value="no"/>
    <param name="logo" value="no"/>
    <param name="serverApp" value="default"/>
    <param name="lookAndFeel" value="oracle"/>
    <param name="allow_debug" value="true"/>
    <param name="separateFrame" value="false"/>
    <param name="em_mode" value="1"/>
    <param name="latencyCheck" value="true"/>
    <param name="networkRetries" value="240"/>
    <param name="serverArgs" value="module=test.fmx useSDI=yes"/>
    <param name="serverURL" value="http://localhost.localdomain:7778/forms/lservlet?ifcfs=http://localhost.localdomain:7778/forms/frmservlet?config=jpi"/>
    <param name="colorScheme" value="teal"/>
    <param name="splashScreen" value="no"/>
    <param name="dontTruncateTabs" value="true"/>
  </applet-desc>
</jnlp>

Start java webstart with your jnlp url, here is an example in linux:

./javaws http://localhost.localdomain:7778/j2ee/webstart_10g.jnlp

Java webstart comes up with the standard test.fmx from the forms services installation:

Screenshot show the succesful start of test.fmx in java webstart

Isn’t it easy?

, , , ,

4 Comments

Follow

Get every new post delivered to your Inbox.

Join 45 other followers