Archive for February, 2009
(Dutch) AMIS kennissessie Scrum
Feb 26th
Komende dinsdag is er bij AMIS een kennissessie over Scrum. Aanmelden kan via deze link.
Datum: dinsdag 3 maart 2009
Tijd: 16:30 tot 21:00, incl. diner
Locatie: AMIS, Edisonbaan 15 in Nieuwegein
Doelgroep: Deze sessie is interessant voor zowel developers, projectmanagers, consultants als sales medewerkers.
Coördinator: Robbrecht van Amerongen
Scrum, Just enough, just in time…
Scrum is een methodiek die ons in staat stelt om snel kwalitatief hoogwaardige software op te leveren; er wordt ontwikkeld en opgeleverd wat volgens de inzichten van vandaag nodig is (in plaats van wat maanden geleden eens is bedacht).
Read the rest of this entry »
Using Flashback Query in Oracle SQL to spot changes and compare records
Feb 24th
Using Flashback Query is really simple. Leveraging Flashback Query in applications has become a more viable option with the advent of the Table Archive in Oracle 11g R1 – as with that feature a database administrator can instruct the database to collect and retain historic data for a specific table (rather than all redo log files for all tables heaped together).
This article shows some simple scripts with Flashback Query that demonstrate how easy we can spot changes in records. Read the rest of this entry »
Using asynchronous mechanisms in Java and JavaScript for improving the user experience
Feb 23rd
In this article, we will continue a discussion on asynchronous processing started in a previous article that introduced asynchronous and parallel processing Java using Executors, Futures, Callable Objects and the underlying thread model in Java 5 and 6.
While a stand alone Java application – without UI – is a rare thing in my world, a Java Web application certainly is not. And performance, especially perceived performance, is pretty important in that world. The first page load is the most important measure I suppose for what the user feels is the performance of the web application. The fact that after the initial load, additional elements can be loaded into the page – asynchronously – is fine. The intial page load and the browser’s indication that the load is done (and the hourglass disappears) is what is most important for the happiness of the user.
We will see three stages in this article, of a very simple web page. It is a JSF (JavaServer Faces) page, that contains some very simple elements of which one displays an ‘expensive’ value – a value that takes some time to get hold of. Maybe because a database query is involved or web service is called. Whatever the cause, this one element is expensive. Read the rest of this entry »
Session announcement: Oracle Service Bus (25 feb 2009)
Feb 23rd
Just wanted to draw your attention to a "Knowledge Center" session at AMIS this wednessday (25 feb 2009, starting at 16:30). It concerns the new Oracle Service Bus (previously the BEA Aqualogic Service Bus), and will be presented by former collegue Jeroen van Wilgenburg, now working at Xebia. Jeroen has worked with the OSB on his current project, so he will be able to give us real-life experiences, not just a "summary of features"! For more information, and information on how to register, take a look at the AMIS Agenda: http://www.amis.nl/activiteiten.php?id=681&preview=&draft=
Management of Boilerplate Text in JavaServer Faces Applications
Feb 20th
(including all source code left out of the article in IOUG Collaborate 2009 Select Journal)
Web applications, like any type of application, contain a great deal of boilerplate text. This includes button labels, field prompts, hint text, error messages, page titles and display label for domain values. The boilerplate text is typically specified by functional analysts and is frequently refined during testing or even later in the lifecycle of an application. Having this text embedded, hard-coded, all through the application in page definitions, backing beans, JavaScript validation functions and model classes is not a good idea. It makes efficient management of the boilerplate text virtually impossible.
Additionally, it may very well be that the boilerplate text is not static. The text may have to be aligned with whoever is accessing the application. Users from different departments or organizations may use different terminology. What for one user is a customer could be a client or patient to another user. Of course, users may speak different languages; depending on their personal preference, such as the language setting in the browser so they may desire the text to be presented in English, Spanish, or French.
This arrticle discusses an interesting challenge: A JSF application should display boilerplate text, namely titles, button labels, prompt, error messages, tool tips, etc. in a context sensitive way. This must be done not just by language, region and variant, which are the well known dimensions along which the standard JSF and Java mechanism works with Resource Bundles. Beyond this simple "locale" sensitivity, which was also needed, a more specialized context dependency was required along several dimensions.
Asynchronous processing in Java applications – leveraging those multi-cores
Feb 19th
Processors are not going to get much faster. No higher clockspeeds are foreseen. The speed of processing will be further increasing through parallellization, engaging multiple CPU cores for handling all tasks rather than a single faster core.
This is but one reason for taking a closer look at the threading model in Java and the way we can do asynchronous and parallel processing as of Java 5. Another reason for my interest in asynchronous processing has to do with (perceived) performance. If an application performs a task on behalf of a user, it may block until the task is completed. The user cannot do anything until the task completes – watching the hourglass or whatever busy cursor is used. With asynchronous processing, a task which the user does not immediately require the results from can be processed in a separate thread. The perception of the user therefore is that the task is performed (or at least processed) much faster than in the synchronous case. And even though it is only perception – perception is usually all that counts!
Furthermore, if the task can be broken in smaller pieces that can be executed in parallel, we really can speed up the task – provided processing power is available. Many tasks involve IO-processing, database access or web service calls – all operations that do not burden the CPU very much and leave room for parallel activities in other threads.
In this article I will tell about my first explorations of the world of Futures, ExecutorServices, CompletionService, Callback interfaces and ThreadPools. Read the rest of this entry »
Logging in JDeveloper 11g / WebLogic Server
Feb 17th
When developing an application it makes sense to add logging to this application. The Apache Commons Logging is a way to implement logging to your application independent of the eventually used implementation. While adding log messages to a Fusion Web Application (ADF) and running this application with JDeveloper the logging is not displayed in the application log window. This is not what expected en certainly undesirable. Read the rest of this entry »
OGH Oracle Ace Cases with…Marco Gralike
Feb 16th
An advert for myself. Wow! How cool is that…
The local Oracle User Group Holland starts on the 16th of April with a new series of presentations given this time by the Dutch Oracle ACE’s and Oracle ACE Directors under the compelling name "Oracle ACE Cases". They asked me to do the kick-off of the series… A whole evening with just me and "my" Oracle XMLDB. I felt honored, so I said yes, but was also surprised…
I still notice that "people" have problems regarding the "specialism" Oracle XMLDB. Is it development, dba stuff, an architecture, an appliance…? I was very proud to be able to present in 2007, for the first time, on a big symposium called UKOUG, although under the label "Fusion Technology". In 2008 I had the pleasure to be on the 25th anniversary of the UKOUG, this time I had to "compete" (if you make an attempt, why not grasp for the stars
) in the same time slot with a Mr. Tom Kyte and a Mr. Jonathan Lewis and this time my XMLDB topic was relabeled as "Server Technology".
So the name of the game is changing and being a DBA, I think this correct for core functionality as Oracle XMLDB currently is, at least since the Oracle 11g database release. I also like approaching (performance, architectural, database, etc) problems via a holistic view on the world, something that appeals me in working with the Oracle XML database. A DBA perspective is not enough, you also have to grasp what the development colleagues are trying to achieve and, for example, how it hooks into the middle tier or its place in the business process.
A database never stands alone…
Anyway, if you want to hear my end off the story while trying to achieve (ahum, my attempt that is…) too present like only a Cary Millsap can, with a twist of James Morle’s humor, register yourself for this Dutch event on the 16th (presented in Dutch). Hopefully a good kick-off to a very interesting series of Dutch Oracle Ace Cases.
Register Here: OGh Ace Case: XML DB with Marco Gralike
PS: …if not…and you are at this years Hotsos Symposium (Dallas), I will be the guy who is listening with awe and great respect to Mr. Chris Date’s presentation and a nickname tag with the text "XML Just Rocks…" (living up to my addictions)

<Marco/>
Quest Software’s Toad and Oracle Performance Seminar
Feb 6th
Last Wednesday Quest organized a seminar in Amsterdam on the performance of the Oracle database and the programs you write for it.
There were three presentations.
- Development
- Application Testing
- Database maintenance
Development
The main issue in this presentation was that you should care about performance as early as possible in your development. It is much cheaper (time and money wise) to tune your code early in the process than when it’s all on production and when there’s lots of lines of code to check. 60% of the performance issues can be found in the SQL statements used. Another 30% can be found in the indexes used. That makes up 90% of the performance issues.
Quest has a couple of tools available that can help you with solving these issues. You can use the code Xpert or the profiler (and their front-end to it). But you can of course also ask the database (inspect the SGA) or, if all else fails, ask your users or your DBA. Another tool they promote is the SQL optimizer for Oracle. This tool rewrites the SQL statement you provide it (more times than you could do yourself in the same time) and looks for the best execution plan (it doesn’t actually execute the statements). Chances are this will come up with a better statement than the one you wrote.
Application testing
This was mainly a presentation on Firefighting performance problems in production. Not really testing your application, but responding to issues raised by the users, like ‘The application is slow’, or (worse) ‘The application doesn’t work’ (don’t be too specific, please…). What is mostly done is monitoring alarms, thresholds being exceeded, for instance high CPU usage or the amount of memory available is low. For this Quest offers different tools too, for instance Spotlight on Oracle.
Database maintenance
Then there was a presentation on what a presentation on what a ‘hobby DBA’ can use to trouble shoot a production application. You don’t have to be an expert on Oracle DBA tasks to be able to see where a bottle neck is present. As long as you have the right (monitoring) tools in place. This way, everybody can identify such issues and take appropriate action, that is, have the right people do their thing.
All in all it was mainly a bit of a sales rap, but I think developers (I am not a DBA) need to know about these tools (and be able to view the results) and there are probably more tools available than just the Quest ones, but if you don’t know what to look for, how can you find the right ones.
Echo2: Building a web application without web skills…without web skills…
Feb 6th
Echo2… oh no, naf! (not another framework). I just want java, not some tricky framework I have to learn into depth before being productive. Ok, then you’re up to Echo2!
Building a complete interactive web application with partial page refreshing (AJAX) without knowledge of AJAX and even without knowledge of (X)HTML, Javascript, JSP, TLD, XSLT. That can’t be possible or can we do this? Yes we can!

