Knowledge Center Technical Architecture
Logging is a very important aspect of application development as it offers run-time access to the behaviour and data of the application. It’s important for debugging purposes but also to investigate exception situations on production. The Java developer has a choice between logging frameworks but Log4J is probably the most used one. The usage is quite simple: grab a Logger, e.g. private static Logger log = Logger.getLogger(MyBean.class);, and then use that logger to log the actual message at the required level, log.debug(“This is a debug message”);. To print the logmessages, the Log4J is configured externally with a properties file that defines the location (e.g. console, file, database etc.) and the format of the logmessages. Other logging frameworks, like Java Util Logging, are used in a similar way. It’s actually a good practice to not use Log4J directly, but to use a wrapping or facade framework, that allows switching of the actual logging implementation itself. In the past that would have been Apache Commons Logging (ACL), but now SLF4J is commonly used because it doesn’t have the classloader issues of ACL and it provides some nice message formatting (and performance) More >
While going through my list of requirements for our AMIS re-usable ADF taskflow library, I ran into the following requirement: publish a contextual event on a Drag and Drop action. If you know contextual events, you immediately notice that there is no way to publish a contextual event from a Drag and Drop action. There are two types of events: ADF Binding Type events or JSF Component Type Events such as actionEvents, valueChangeEvents or clickEvents (also called eventBindings). However none of those is directly related to Drag and Drop. With some knowledge of the ADF Framework you will be able to create contextual events anyway. This post describes how to publish contextual events when a Drag and Drop action occurs. (more…)
Last night we organized the “Ode to the Task Flow” session at AMIS. After a short presentation introducing the Bounded Task Flow it was time for the hands-on lab: “Build your first taskflow”.
In this lab many of the attendees created their first taskflow, learning the basics of ADF taskflows. This first taskflow receives a job title, and optionally your favorite color via input parameters. Based on that information a welcome message is created. The taskflow is smart enough to invoke the proper logic by using a router to show the correct page fragment based on an input parameter. From this activity, you can change your name in another view activity. This taskflow includes routers, method calls, input parameters, default activities and wild card control flows.
After diner (great Chinese food) there was no time for my usual after diner dip. I had to present a demo on packaging an ADF Task Flow as an ADF Library, and invoking it into a new application. After this demo, the second hands-on lab started. This part of the “Ode to the Taskflow” hands-on lab, was about the mechanism used to achieve reuse across applications: the ADF Library – the bundle in which reusable taskflows are More >
- An Evening with Oracle Database Security Expert: Pete Finnigan on Tuesday 25th of May, 2010.
Miracle Benelux and Pete Finnigan agreed to do an extra special on the AMIS premises the evening just before Pete’s 2 day Masterclass in Utrecht will start (for the 2 day Masterclass agenda, see also the following URL). During this AMIS Query, besides the free food and normal standard setup of such an AMIS Query Event, Pete will have a presentation on Oracle security and there will be a lot of room of informal discussions during and after this session. There is still some room if you would like to learn from one of the best on Oracle database security.
More details on those masterclasses can be found on the Miracle Benelux site. Hopefully this will be the first of series… More details about this event will follow shortly.About Pete Finnigan…
Pete is a world renowned expert in the area of Oracle security providing consultancy, design, security audits and trainings all in the area of Oracle Security. Pete is a member of the Oak table network, he has spoken regularly all over the world at More >
Agile software development, the principles. Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.1
During the years I have a lot of times encountered performance problems that ended up to be fast queries (less than 10ms) which are executed very much. In these situations the execution plans, from such queries can look like:
OPERATION OPTIONS OBJECT# NAME
-------------------- -------------------- ---------- -----------------------------------
SELECT STATEMENT .
SORT ORDER BY .
TABLE ACCESS BY INDEX ROWID 120713 XXX.TABLE_WITH_MANY_COLUMNS
INDEX RANGE SCAN 121558 XXX.INDEX_WITH_FEW_COLUMNS
In a lot of cases we deal with a query for example which is returning fewer columns than exists in the involved table like four, from an involved table having twenty columns. Although the execution plan looks already pretty “OK”, it still results in a query which is in top three most resource taking queries.
To enhance the query we can use “Fat Indexes” or nowadays better known “Tapio Indexes” (I call them like that nowadays). What are these kind of indexes…. In More >