Posts Tagged Reports

#DEVCAMP17 wrap up


Yesterday I attend the annual barcamp DEVCAMP of the DOAG development community. There are mostly developers with SQL, PL/SQL, Forms & Reports, ADF, JET background and some Java, Javascript and APEX developers too. And not to forget: 1 dba and some managers. Here are my summary.

I arrived on evening before just in time for the life cooking event and later at the bar to meet lot of the people I already know and some new too.

The morning begins with a short introduction to the format of a barcamp.

As warm up Jens Schauder starts with an talk about clean code. He begins to compare what the lack of hygiene for Middle Ages mean and the statement that we are in the IT Middle ages. In extreme cases not tested and not understandable software can kills people! So the task for every day is “write an test” and refactor the code to clean code.

Then the barcamp planning starts. In short time three slots are filled up and the really barcamp starts.


Influenced by the starting talk next there was a session related to clean code and how to implement the related processes. You should teach a little bit of the theory behind it. It is essential to decide all rules with the whole team and review the continuous use of it. If the rules are not followed, then first you should ask why this happens and listen for the reasons. Jens Schauder recommends here these books. Maybe you have to adjust the rules to convince all developers. But in extreme cases of deny any of the decided rules you should escalate and delegate this to the responsible manager.

Next session was about how to test heterogeneous applications, especially SQL, PL/SQL and Forms but others too. I mentioned here two possible strategies, which both has it’s tradeoffs:

I noticed here that testing is mainly seen as to check the contract between developer and customer, sometimes useful for regression test but seldom as required for changing or refactoring the code. The participants seems to be overwhelmed by the amount of tools and effort to do automatic testing. Yes – there is a lot to do in advance, which pays off later.

In the next break I get a shortcut for actual requirement for forms change to implement some kind of SSO without additional servers. I get some nice hints and have now to check, if one of this is successful. This are the advantages of networking here.

The we discussed about Alternatives to Oracle Reports. Seems that it depends on your requirements, which tool to choose. Please do an value analysis here. So if you need pixel exact layout or want not pay much money Oracle Business Intelligence Publisher will not your friend. If you search for an active community maybe you should not choose Eclipse BIRT or at least use the commercial version from Actuate. But both of these and Jasper Reports are used from present participants. Further alternatives seem to be SAP Chrystal Reports and Pentaho. And don’t forget to test exotic features like widows and orphans!

After a coffee break we discussed the future of Oracle ADF. The punchline here was: ADF is not dead, but JDeveloper is very buggy. None of the participants does really miss any bit feature, but most struggles with the IDE. It seems, that the problems are bigger, when you work on windows. Maybe some of the product managers should be forced to worked again with windows to see our problems. I have articulated there 2 problems with the ADF community. I we try to raise the acceptance we should not try to extend the focus of the activities to alternative technologies as MAF or JET. Second we should not self call ADF into question on every conference, we should leave this part to the fans of other technologies.

The last session again turns around automatic testing of PL/SQL, some repeating to the described session above.

In closing session most of the participants said, that they want to come back next year. Maybe it is better to put some fixed sessions or workshops, as this is easier to describe to the bosses as “I will go this event, but it is not clear, what will happens there.”


I have learned not so much new things this year, but I attend these time more the known to me technologies. But I get the confirmation, that most of the things we do or plan do to are on the right track.

Unfortunately I observed some people in the sessions, which comes only to search for finding confirmations to reject for itself, what at least the initiator of the topic want to do.

You find more informations in Twitter

That’s it!

, , , , , , , , , ,

Leave a comment

#DOAG2016 wrap up


Another DOAG is over and here are my summary.

Day 1

Unfortunately the early train from duesseldorf arrives not before 9:30, so I missed the first morning slot. But on the other hand I this was the slot where I had to decide between 8 presentations, which I’m interested in.

The first soft skill presentation was about creative techniques beyond brain storming. The mentioned 3 techniques was all unknown for me, maybe I give it a try next time.

The next presentation promises a live demo of a forms 12c migration to production. Nothing really new here and remembers me for an “beautify our village” contest. But fairly enough for customers which absolutely want to remain on Oracle Forms. As Translation Hub 12c is not available and Oracle Reports 12c will be the last version, I think 11g will the last version we will use on our side before completing migration to ADF.

I attend two presentations, which shows Auraplayer on top of Oracle Forms to provide mobile applications via Oracle Mobile Cloud Service (MCS). I understand the MCS thing, although I find it very complicated to use. But put another layer on complicated and most slowly Oracle Forms to create web services for mobile applications seems no use case for me. I doubt that the recording of web services works really well for complicated forms which switch the displayed items and canvases depending on the selected data. All samples was very simple forms, but the response time of the resulting mobile app was not acceptable for me.

The presentation about continuous integration in APEX give me some new ideas for maybe replacing our actual deployment processes for PL/SQL in the future. Will have a look at the mentioned sql-maven-plugin, when we go for Maven for ADF too. Will check Rspec as BDD framework to run PL/SQL unit tests. Promising is the feature to tie together Selenium tests and data checks in the same Rspec test definition. One drop of bitterness remains, as the presenter had no idea how to solve a merge conflict. Seems that this was only a proof of concept and not really used daily there.

Best practices for PL/SQL performance was a good reminder, what I all know about this topic but use to seldom. But will use some of the configuration things like native compilation of the system packages or PL/SQL optimization level in my docker instances for automatic testing to optimize test times.

SQL tips and tricks was a sovereign presentation, but shows me again that for several Oracle database releases only little improvements for the developer comes with.

Day 2

In session “Standing at a Crossroads, ADF and JET” Duncan Mills clearly show the differences between Oracle ADF and Oracle JET. Running gag: The “Schnecke Chart” for quick decision between both. Will look, if I can reuse this for other decisions.

Next I tried an meeting at the Unconference about continuous integration for PL/SQL. But the most discussions really goes about the automation part. Most participants missed the most importantly definition of continuous integration: ” … continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.”. Unfortunately I realize now that in the German Wikipedia translation this basis is completely softened: “developer should integrate as often as possible”. Not really new for me here, hope I have told something useful to the others.

“Extending Oracle ADF BC Models to REST, Cloud and Mobile” was a good time to remember what’s now possible as it really available and we now try another migration away from ADF 11g to the hottest version. I have seen this in the last conferences already.

Have read “Deep Dive Into Oracle ADF Transactions: Advanced Techniques” in the web already, but the information was a little bit clearer after seeing Eugene Fedorenko live.

Something completely different: “Free Load Testing Tools for Oracle Database”. I had known Swingbench before. SLOB is completely new for me and did not seen Apache JMeter JDBC test in this context before. Will test the last maybe in the future.

“Top 10 stumble stones for ADF 12c” was very technical but cool, good to have Markus Klenke at our site while our coming migration next weeks.

“Faster, Better, Cheaper: Oracle ADF Development in the Cloud” – with lot of problems in the demo part. Maybe really because of the DOAG WiFi. Quick Tip for all presenters: as I know at DOAG conferences there is ever an laptop available with LAN, try to put it in your laptop! For the content: DCS seems to restricting to much. I prefer Jenkins over Hudson. No push option directly with commit i JDeveloper etc.

Masking test data is very relevant in our banking busines, so I attend “Oracle Data Redaction live in Telko”. Seems that there are many fall knits here, as this doesn’t seem to solve all requirements out of the box.

Before the evening keynote Günter Stürner and Jürgen Menge was awarded, congratulations to both.

Following keynote “Hacking for managers” was very entertaining, if you are German then you should look on youtube for the presenter.

Now we are not ready for the evening party, we start the yearly German ADF Community meeting. Interesting part was a presentation of the Tools Statement of Direction, which again clearly differentiate between ADF, MAF, JET, MAX and ABCS. We get the clear statement ADF is standard for SAAS and JET for PAAS development at Oracle. In my opinion Oracle miss to communicate this in other presentations and miss to further present ADF in the public. A lot of questions of the present Community members was answered here too. Later we eat together with some of the product managers and community members and discussed topics for future presentations.

Later I go back to my hotel to remotely patch our fresh ADF Server with patch for critical escalated bug to start our planned migration for ADF next week. More later in a separate post.

Day 3

In “Indiana Nimphius und der JavaScript Tempel des Todes” Frank shows us his view on the JavaScript Universum, maybe we can really not avoid this in the future on some business cases. But for the next time we will stay on strongly supported ADF and will reduce JavaScript usage there to the minimum.

Thank god the roll-out of SQL Developer 4.1.5 is not started already in our company. Will look how fast I can add the free PLSQL/COP SQL Developer Plugin of Philip Salvisberg from Trivadis to the silent install process. He showed in “Fighting Bad PL/SQL” the theory and the practice how his static code analysis tool for PL/SQL does work. Depending on the outcome and the price maybe we will later implement in continuous integration.

The keynote “Big Picture of digital revolution” wakes the expectation to us to take responsibility for the effects of digital revolution to the society and makes me very thoughtful.

After our hopefully successful migration to ADF I want to change our deployment from ANT to Maven, so I attend the presentation “Migration Maven Possibilities”. This gives a good reminder what to do at that point.

Very interesting presentation, which really does not deserves so few visitors, was “Home Lab Setup and Familiarization of E-Business R12.2”. My time with E-Business Suite is over 15 years away, so I was surprised that I recognized much of the components. I think I’m sure not to install E-Business Suite for the moment, but lot of the instructions for the Home Lab Setup could I reuse for other technologies. Some concepts for the E-Business Suite, eg. double filesystem for reducing offline time for patching, are very interesting.

With last 2 presentations I enter again the world of ThickDatabase paradigm. We ever know that executing business in the database seems faster as in the middle tier, but we had no proofs. Now Toon Koppelaars from Oracle itself give us this with a deep analysis. The question remains – will the other Oracle departments will learn from this?

day 4

Tomorrow I will be trained in Continuous Delivery with Oracle Fusion Middleware and Oracle Cloud. I will release another blogs, when implementing some findings from this training.


As you see I switch often between technologies. This happens not ever voluntary. Normally I interested more in the development like ADF, MAF and JET. This year these presentation are unfortunately distributed over the conference. So I have discussed this today with the DOAG executives, they will improve this next year.

Nevertheless I get a lot of ideas from presentations in technologies I do not or not regularly use, so sometime I intentionally choose from such interesting presentations.

A recommendation for all conference visitors. Read the abstracts before you go to a conference and maybe before you book! You avoid disappointments because of wrong expectations. Often the title has the only purpose to be accept the presentation and has little to do with the real content. Abstracts give you often a better idea about the content.

That’s it!

, , , , , , , , , , , , , , , ,

Leave a comment

Oracle TranslationHub neither supported for 12c Database, 12c Forms/Reports or 64 bit!

If you need TranslationHub (Windows only) for your forms and reports development and plan to move to one of the following

  • 12c Database for your TranslationHub repository
  • 12c Forms/Reports (only available for 64 bit Windows)
  • higher version of 64 bit 11g Forms/Reports

then please immediately stop! None of this combination works with TranslationHub!

For the last point I had created enhancement request 14155931 back in June 2012!

For the first point I had created a service request last week I and get following answer:

Unfortunately, OTH is no longer supported or being developed. Customers can continue to use OTH as-is.
About the errors, based on today’s standards, OTH has several limitations: 

  1. It is a 32bit product and expects to co-exist with a 32bit DB and optional Forms/Reports installation. 64bit installations will not work.
  2. Likely OTH will not work correctly on newer operating systems like Windows 8.1 or newer. It likely will also not be stable on Windows 7-x64 either, although it may generally seem to function.
  3. It may be possible to use a version 12 database as the target database for OTH projects, however this has never been certified and therefore shouldn’t be supported if issues arise.

Although Oracle currently do not have replacement for OTH, the Forms team is working on a possible alternative that may be available in the future. If customers require the use of OTH immediately, they should consider installing and using it in an environment that was previously certified for its use.
The Oracle Technology Network Forums should be considered (for the customer) if there are questions about OTH.

Product Management is aware of the importance of this situation.
Any news regarding OTH will be published on Forms’s OTN page, however, for the moment, unfortunately, there is not much we can help with, in Support.

As 11g Database and 11g Forms will run out of support soon in my opinion Oracle has immediately to provide a working 64bit TranslationHub for 12c Database and Forms as long you has no replacement for this tool.

What do you think?

Update: See the according discussion on the forms forum.

, , , , , , ,

Leave a comment

SLES shell script to check required os packages according to documentation before starting oracle forms & reports installation


If you try to install oracle forms & reports on SLES 11.3 than despite all installer checks are passed maybe you get a message like:

Error in invoking target ‘install’ of makefile ‘<FR_HOME>/sqlplus/lib/’.

The reuirement check of the installer shows only missing openmotif classes which are not really required on SLES (see Doc ID 1567715.1), but no problems with a compiler or something similar.

Checking for binutils-2.19-11.28; found binutils-2.23.1-0.23.15-x86_64. Passed
Checking for gcc-4.3-62.198; found gcc-4.3-62.200.2-x86_64. Passed
Checking for gcc-c++-4.3-62.198; found gcc-c++-4.3-62.200.2-x86_64. Passed
Checking for glibc-2.9-13.2; found glibc-2.11.3-17.87.3-x86_64. Passed
Checking for glibc-32bit-2.9-13.2; found glibc-32bit-2.11.3-17.87.3-x86_64. Passed
Checking for glibc-devel-2.9; found glibc-devel-2.11.3-17.87.3-x86_64. Passed
Checking for glibc-devel-32bit-2.9-13.2; found glibc-devel-32bit-2.11.3-17.87.3-x86_64. Passed
Checking for libaio-0.3.104-140.22; found libaio-0.3.109-0.1.46-x86_64. Passed
Checking for libaio-devel-0.3.104-140.22; found libaio-devel-0.3.109-0.1.46-x86_64. Passed
Checking for libgcc43-4.3.3_20081022; found libgcc43-4.6.9-0.13.22-x86_64. Passed
Checking for libstdc++43-4.3.3_20081022-11.18; found libstdc++43-4.6.9-0.13.22-x86_64. Passed
Checking for libstdc++43-devel-4.3.3_20081022-11.18; found libstdc++43-devel-4.3.4_20091019-0.37.30-x86_64. Passed
Checking for make-3.81; found make-3.81-128.20-x86_64. Passed
Checking for sysstat-8.1.5-7.8; found sysstat-8.1.5-7.47.1-x86_64. Passed
Checking for openmotif22-2.2.3; Not found. Failed <<<<
Checking for openmotif-2.2.3; found openmotif-2.3.1-3.15.1-x86_64. Passed
Check complete. The overall result of this check is: Failed <<<<

The problem here is, that sometime not all checks for os packages are really implemented in the installer. I have a SR to open a bug for this.

In the meantime I have implemented a bash shell script to check against the required os packages in the documentation. For my problem these are listed here. You can simple copy the required packages at the top of the script in the array sections.

The magic contains some bash substring modifications an using the version compare option of zipper.



while [[ $i -lt $len ]]; do 

  installed_package_version="`rpm -q ${required_package_name} --queryformat %{version}-%{release}`"
  if [ $RETCODE -eq 0 ]; then
    compare="`zypper --terse versioncmp ${required_package_version} ${installed_package_version}`"
    if [ $compare -eq 1 ]; then
      echo [$result1] $required_package_name Reqired : $required_package_version Installed: $installed_package_version
      echo [$result1] $required_package_name Reqired : $required_package_version Installed: $installed_package_version
    echo [fail] $installed_package_version
  let i++; 

If you run this script you can see the failing packages on your platform:

[pass] binutils Reqired : 2.19-11.28 Installed: 2.23.1-0.23.15
[pass] gcc Reqired : 4.3-62.198 Installed: 4.3-62.200.2
[pass] gcc-c++ Reqired : 4.3-62.198 Installed: 4.3-62.200.2
[fail] package gcc-32bit is not installed
[pass] glibc Reqired : 2.9-13.2 Installed: 2.11.3-17.84.1
[pass] glibc-32bit Reqired : 2.9-13.2 Installed: 2.11.3-17.84.1
[pass] glibc-devel Reqired : 2.9 Installed: 2.11.3-17.84.1
[pass] glibc-devel-32bit Reqired : 2.9-13.2 Installed: 2.11.3-17.87.3
[pass] ksh Reqired : 93t Installed: 93u-0.26.1
[pass] libaio Reqired : 0.3.104-140.22 Installed: 0.3.109-0.1.46
[pass] libaio-devel Reqired : 0.3.104-140.22 Installed: 0.3.109-0.1.46
[pass] libaio-32bit Reqired : 0.3.104 Installed: 0.3.109-0.1.46
[fail] package libaio-devel-32bit is not installed
[pass] libgcc43 Reqired : 4.3.3_20081022 Installed: 4.6.9-0.13.22
[pass] libstdc++43 Reqired : 4.3.3_20081022-11.18 Installed: 4.6.9-0.13.22
[pass] libstdc++43-devel Reqired : 4.3.3_20081022-11.18 Installed: 4.3.4_20091019-0.37.30
[pass] libstdc++33 Reqired : 3.3.3 Installed: 3.3.3-11.9
[pass] libstdc++33-32bit Reqired : 3.3.3 Installed: 3.3.3-11.9
[pass] libstdc++43-32bit Reqired : 4.3.3_20081022 Installed: 4.6.9-0.13.22
[fail] package libstdc++43-devel-32bit is not installed
[pass] libstdc++-devel Reqired : 4.3 Installed: 4.3-62.200.2
[pass] make Reqired : 3.81 Installed: 3.81-128.20
[pass] openmotif Reqired : 2.3.1-3.13 Installed: 2.3.1-3.15.1
[fail] package openmotif-devel-32bit is not installed
[fail] package openmotif22-libs-32bit is not installed
[pass] openmotif-libs Reqired : 2.3.1-3.13 Installed: 2.3.1-3.15.1
[pass] openmotif-devel Reqired : 2.3.1-3.13 Installed: 2.3.1-3.15.1
[fail] package openmotif-libs-32bit is not installed
[fail] package openmotif21-libs-32bit is not installed
[pass] openmotif22-libs Reqired : 2.2.4-138.17 Installed: 2.2.4-193.1
[pass] sysstat Reqired : 8.1.5-7.8 Installed: 8.1.5-7.47.1

The route cause for the error message in the installer are line 4 and 13, where 32bit Compiler are required for making sql plus despite this forms and reports installation is 64bit version.

Maybe you can use this script with little modification in other environments.

That’s it.

, , , , ,

Leave a comment

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:

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  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>
####<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/

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


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  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>
####<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.

, , , , , , ,


Oracle Reports Designer 11g 64bit on Windows7 64bit very buggy – Use Reports 32bit instead!

As I have seen in Oracle certification matrix Forms & Reports 11g 64bit is supported under Windows7 64bit. So I tried to install it and to work with it. Unfortunatly there are serious bugs in it, please read for more information MOS Doc ID 1395965.1:

  1. After starting Reports Builder, trying to open “Data Model” or “Web Source” will crash the Report Builder
  2. Impossibility to create a Query based on a Pluggable Data Source (PDS) in reports builder
  3. Reports Builder spins on CPU (grabbing full power of one CPU) when “Copy/Paste” functionality is used in Layout Model

For 1./2. is a workaround to disable all Pluggable Data Source (PDS) in cauprefs.ora, if you don’t use that feature.

But for 3. is no workaround besides to use Forms & Reports 11g 32bit!

, , , , ,

1 Comment

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.

, , , , , , , ,


%d bloggers like this: