We have a very nice Java-Application at our side, and wanted to speed up the performance with the OracleDataSource (before we were working with Standard JDBC).

oracle.jdbc.pool.OracleDataSourceSo we tested a lot and the performance was slightly better in the test-environment than before.After that we went to production with it.... and the phones began to rang, the performance was BAD BAD BAD Cry

After 3 hours of analyzing of our sourcecode we had the solution:

                        Caching is not enabled by default  (suprise surprise... by Oracle)

After adding  additionals lines

        <jdbc-connection-pool datasource-classname= "oracle.jdbc.pool.OracleDataSource" ...>
        <property name="ImplicitCachingEnabled" value="true"/>
        <property name="MaxStatements" value="190"/>
        </jdbc-connection-pool>

We had an incredible speed up! 

The application is now about 10 times faster than before using this DataSource.  If it is possible in any case use this Datasource!

 


I was testing around with Oracle on Windows (2003) and got "insufficient disk space" when cloning a database.
The problem is in a perl-script (db_common.pl) of the agent, that checks the disk-space and uses an old windows-function to determine how much is left.
The solution is to install a newer client (downloadable at OTN choose the "Mass Agent Deployment").


if you are using the servlet you have to add the parameter "distribution" and "destination".

An example:

http://abc.def.com:8888/reports/rwservlet?report=c:\myreports\testreport.rdf&userid=scott/This email address is being protected from spambots. You need JavaScript enabled to view it.&destination=c:\temp\test.xml&distribute=yes

If you are starting it in the reports-builder just choose "Distribute" from the File-Menu.
The "distribution" functionality is a great feature since Reports 9.i
It enables you to send mails of the reports to different recipients, printers change the subject of the
mail, split the generated file by grouping (f.e. departments).

There are two ways to use "the" distribution. The first is to use the built-in property in the Report-builder.

distribution functionality in the reports-builder

The easier way, but within there you cannot use all features. For an exact list of the features you should take
a look at the documentation for your report-version at
http://www.oracle.com/technology/documentation/reports.html
choose the "Oracle Reports Building Reports" document.

The second-way is to use an xml-file and pass this file in the url.
Here you can download an example for such an file:

distexample.xml


!!! Don't forget the "destination" tag, the server needs them in the documentation they are not in the examples...
Acer N35

After the service of my Acer N35 (connector was broken) the builtin GPS was not working. So i brought it back to Acer and they changed the antenna. I got it back and ... it was not working again.... the answer on the support-line was i shall bring it to them.

After consulting the Internet (RTFM) and a friend of mine the solution was to set the clock. After the standard-Reset the clock was reset to xx.xx.2004 and GPS needs to know the correct date and time to determine the correct sateliltes.....

A terminal-file in Forms is like a key-configuration-file in other applications. In Client-Server Mode it was set by environment or registry-variables. In Webforms you have the possibility to add it to your servlet-parameters (edit some files...) or you can put it in the formsweb.cfg the easier way.

Here a example:

[sepwin]
separateFrame=True
lookandfeel=Generic
otherparams=term=C:\oracle\FRHome_1\forms\fmrpcweb.res

 



If you are running on 10G and you get "ORA-00257 ORA-16020 Archiver Stuck" then you should look at the size of your flashback-area and increase it. Most of the documentation you find about this errors is about, that the disk is full, but nobody mentioned, that there is a new feature called "flashback" in 10G and that this area also can be full.


Resize the flashback-area with for example:

alter system set db_recovery_file_dest_size = 4000000000;


If you are using the datapump (expdp or impdp etc.) and you get the following errors:

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DATA_PUMP_DIR is invalid

There is no directory defined. You have to define it on the server.
Choose a user with the rights to create an directory, start sqlplus and enter following
command:

create directory data_pump_dir as '\exphd\datapump';

for windows...

create directory data_pump_dir as 'x:\exportdrive\datapump';

Be sure, that the directory exists on the os before you define it in the database!
The Forms and Reports-Service-Installation from an assistant fails, and it was an issue with the apache-configuration,
check if the host you are installing has an DNS-Suffix.
If not uninstall of the server, giving a Suffix and reinstalling let the installation work
I could not find an possibility to install it without an DNS-Suffix.

phpbb simple machines forum Some time ago i needed a forum software and took a look at the open-source-community. There were a lot of forums out there the most used is phpBB. The installation worked fine and everything was fine. The only thing was that there was no file upload/download function within the forum.

But after googeling around for a while i found a common mod for implementing this functionality. The installation of the mod was a damned hard thing, i had to edit about 20 files. Alternatively you could install already patched files, but the problem was that my forum was already installed and configrured, and so i would have to reconfigure it.... But after that it worked.

Some weeks after launching the forum a new version was released. Nothing big, so i followed the installations-instructions and they said that i had to reinstall all mods.... damn... the other possibility was to patch the files automatically. It took me a long time to install this patch. After some more weeks another patch was sent, and i realized that the mainenance of this forum costs a lot of time.

The next problem that occured was when my provider called me, some script tried to cheat around in my account. The vulnerability was.... phpBB... so i shut down the forum. But there were a lot of people that wanted to have access to the old messages, so i began to look to an alternative forum, and came across the Simple Machines Forum (SMF). I know this forum because Joomla, my favourite CMS is using it.

So i gave it a try, and installed it, it looked fine, easy to install easy to maintain, with the possibility to install and unistall mods automatically, very fast and very good looking :-)

And by accident i  came across an migration-script from phpBB to SMF, and also gave it a try.... and could not believe it, the users, rights, threads, forums, attachments!!! were migrated and still working! My forum is up again and enhanced with several mods like a chat-mod and other nice features.

I can just recommend this software. 

Timers are an programmatic construct to do something after a certain period of time. You construct them with "CREATE_TIMER" and do the Events in the WHEN-TIMER-EXPIRED trigger. 

If you are discussing about do's and don'ts in forms and webforms the statement is posted "Don't you timers in webforms because they cause lot of network-traffic. If you ask why you are told "because they are implemented on the middle-tier (application-server)".

So, i began to think about a simple java-bean to workaround this bad forms-behaviour, and took a look at some forums and in metalink. My result is, that there is no reason NOT TO USE TIMERS in webforms.

Timers in Webforms are implemented as Java-routine on the client-tier, and not on the Application-Server. That means if a timer expires in the WEB the Java-Web-Client has to go to the Application-Server and ask what to do. In the Client-Server-Environment he wouldn't have to go to the Application-Server because the complete application-logic is on the client. Seems to be that there is more traffic? We have to take a closer look to explain that.

Two examples:

Some unexperienced Newbie wrote a very very naughty program called "Clock" this clock is an text-item in forms and counts up the time every second. Let's take a look what network-traffic we have in the WEB and in Client/Server (C/S).

example with timer that fires every second


We can see that Webforms and also C/S-Forms have to go to the database (webforms via Application-Server) to get the Sysdate. That means, there is almost the same amount of traffic.

In the next example we check every hour if the user worked more than 10 hours at this day. If yes we display an annoying-message that tells him to go home.

example with timer that fires every minute 

In this example the condition is checked one time in an hour, and if it is true an timer is fired every minute that pops up an alert-message. You can see, that there every minute Webforms has to go to the Application-Server but C/S-Forms does not have to make any network-traffic. But simple packet one time in a minute, if you are surfing in the internet you cause more traffic in one minute than the timer in one hour! Also in some whitepapers from Oracle they say, that you can use timer if you don't fire them in less than one minute or 30 seconds. Of course in some other papers they also tell "don't use timers".

 

The difference between PJC (Pluggable Java Components) and Java Beans in Forms

PJC extend the functionality of already implemented objects like buttons, text-fields, radio-groups etc.
Java Beans can contain every Java-Program. That means if you need to implement a super-text-field, that
automatically changes the color every 10 seconds (very useful) then you would implement an PJC.
If you implement an calendar or Slider-Control then you would implement a Java-Bean.

In Java a class that extends a Text-Field (=PJC) would look like this...

public class ColorField extends VTextField{
...
..
.

A Java-Bean would look like this

public class SuperCalendar extends VBean{
...
..
.

Communication to the class can be done with "SET_CUSTOM_PROPERTY" from forms.
If you want to communicate with Forms you have to "dispatch" an event like this:

ID fpropNoString = ID.registerProperty("ERR_NO_STRING_PASSED");
CustomEvent vCustomEvent = new StdEvent(pHandler, fpropNoString);
dispatchCustomEvent(vCustomEvent);

But JUST Java-Beans are able to dispatch events! PJC are not able to dispatch events, that shall be
implemented in future releases. I thinkt that is a big disadvantage of PJCs.