Thursday, February 17, 2011

Lib Couldn't be found error while installing FOD Schema

One of my future goals include to learn JDeveloper and ADF. So I started with Oracle by Example series (I think the best thing to learn a tool on OTN documentation). In article that I started out there was a requirement to install FOD schema. I checked and to my disappointment was unable to find this in default installation 11g. So I had to install it. I followed the link provided in the article and to my surprise it was not a simple SQL script that I required to run rather was an application that I had to run by first opening it in JDeveloper.

So I opened it up and did the necessary steps mentioned and than ran the project. The output was not good at all. It gave me the error that path to lib folder is missing. It was pointing to the root folder where I unzipped the application despite the fact that I gave the correct JDeveloper home path where necessary. I cannot believe it took three hours to fix this problem. And to my anger the error was the same that I had experienced a couple of days ago. Use of \ instead of / while giving folder paths to apache. So please use / instead of \ while giving paths in Oracle configuration (No, I know you are using Windows). 

Wednesday, February 16, 2011

Oracle Database Firewall

Oracle has recently released a new product named Oracle Database Firewall. Essentially the concept is same and that is to monitor and possibly block the unwanted connections to database (rather than OS here). However it does not block connections because it is not on network level but what it does is block invalid SQL statements. Now what is the definition of invalid SQL considering that any syntactical errors are detected by DBMS already.


Here invalid SQL does not mean the SQL that produces wrong results but here it means an SQL that is suspected to be one created from SQL injection techniques. SQL injections are pretty common and in most cases if not all they are unavoidable. There are techniques to prevent code from inadvertently executing injected statements but someway or the other they all fail to protect the data fully. But now you have database firewall. And the best thing about it is that it only works with Oracle Database but also on SQL Server, Sybase, IBM's DB2 etc. 


For more information you can see this podcast from Director Security at Oracle Corp.

Monday, February 14, 2011

Apache path error on Windows

I can almost remember this correctly. I have made this mistake three times. The mistake is to use \ instead of / while setting paths for apache on Windows. Whether it was setting report path parameter in configuration of Oracle AS services, or setting images path while installing APEX I have made this mistake again and again, only to waste a couple of hours of my life. The exception can be in case of report configuration because it was then when I made this mistake for the first time. The reason it happens to me only on Windows is because I copy paste the addresses from path bar of Windows explorer and we all know that Windows uses \ instead of / in paths but apache does not.


So be very very very careful (can't stress anymore) every time you configure something in apache which is installed on Windows. Even if it is necessary to copy paste address from address bar make sure to remove \ and replace it with /. The error it caused usually states that required directory or file cannot be found. So every time you see an error like this don't stress too much and do this change first. :)

Wednesday, January 19, 2011

Firefox out Chrome in

I used and I loved Firefox for almost six years. Much of the time I did not even considered anything else but then Chrome came in. The first thing that got my attention was that it is from Google but then I was unable to leave my Firefox. I continued to use Firefox despite the fact that the Chrome was just too much appealing.

It ended last week and finally I have switched to Chrome. It's lighter, more attractive and even now it looks like that people behind Firefox has admitted the fact that Yes Chrome is better. If you are wondering what I am trying to say then just download the beta version of Firefox 4. You will be surprised if you are a fan of Firefox that actually they have copied the interface of Chrome. Same goes for IE 9 beta. I think I have found a new love.

This pretty much makes this prediction of mine true!!!

Saturday, December 4, 2010

Oracle EBS – An Introduction

Oracle E-business Suite is a software package that lets an organization manage the key business processes. The better way to understand it is to imagine the world without it.

Automation is the key. Companies tend to automate processes to save time, money and other resources. Usually in a world without Oracle EBS or any other ERP software for that matter, there will be department specific applications where every department would have built its own application using some technology. So in one organization there would have been tens of different applications quite possibly built in different platforms. And there is also possibility that all those applications may store same data independently thus resulting in data duplication. For example the employee information is something that most departments in an organization need. Now here is a software package, mind you one software package that does this all. That removes all those applications numbered in tens and storing same data independently without any integration. And even if there is an effort of integration which is a must have for any company that will be cumbersome. And managing all those applications with proper integration can be a nightmare with heavy budget.

Oracle EBS does this all. Manages all parts of business processes, stores data only once and makes it available to all other applications with an integration that stands out. But it is software package not just single software which it looks and behaves like. There are many applications (GL, AP, Absence, Expense etc) that are bundled into product families (Financials, HRMS, CRM etc). And this fact adds more beauty to it. This modular nature of EBS allows you to implement parts of EBS rather than whole package at once. For example it is perfectly OK if you just want to implement Financials and nothing else. And as business and need grows you can add more product families to it without any hassle and without worrying about integration issues between existing and newly implemented modules.

Thursday, August 26, 2010

What’s in the Name!!! Oracle

It is quite a debatable topic of what is meant by an Oracle DBA/Architect when he utters the word Oracle. It's a question that is one of the earlier confusions of a novice when he enters in Oracle world and also it's a question that creates a rift in the mind of some seasoned Oracle practitioners as well.

According to Greek Mythology Apollo was termed as the God of fine arts and reflections. To help his followers in the matters of public relations and others Apollo used to speak at its temple. Apollo chose an older woman to convey his messages to common people. The name of that woman was Pythia and she spoke through meaningless cries which were only understood by priests. Those meaningless cries were called Oracle. So every time a person needs any advice from Apollo he would go to the temple and asked for Oracle. The word Oracle means "thing of wisdom".

In modern era Oracle was the name of a project of CIA in early 70s. That project vanished pretty soon and today Oracle is something else. Inspired from Codd's twelve rules for relational model for databases Larry Ellison suggested IBM to build a DBMS that uses those twelve rules. Upon IBM's refusal Larry Ellison and Bob Miner decide to quit their jobs in IBM and work for their own. They hired a room and started to build a DBMS that used relational model of databases. They build their first version in 1980 but did not commercialize it. In 1982 the second version came and they decide to name it Oracle. Today that product is the most popular and most reliable DBMS to ever exist.

It is still amongst the most amazing things in computer world that with all the rapid progress in the software and hardware industry, after almost forty years the basic elements in database design are still Tables, Columns and Rows. It's not because of lack of innovation in database area, it's only because of the fact that those ideas from E.F. Codd were so strong that there never has been a better alternative to that. And the only person to realize the potential of these concepts in late 70s was Larry Ellison.

Now back to the question what's meant by Oracle in today's world? There are three entities that are termed as Oracle and they are Oracle Corporation (Name of the company that Larry Ellison and Bob Miner started in 1978, at that time it was known as Relational Software Inc. Named to Oracle in 1983 and is the second largest software company in the world today.), Oracle Database (The physical set of files that makes storage and retrieval of data possible) and Oracle Server (The RDBMS, the software written in C Language that retrieves and manipulates the data stored in Oracle Database). As you can see that each one of these three entities has their own unique name i.e. Oracle Corporation, Oracle Database and Oracle Server. But for ease and for sometimes for style people rarely use the complete name of all three entities and simply say Oracle. The context on which the name is pronounced determines what is meant by Oracle.

Thursday, July 16, 2009

Chrome, Firefox 3.5 and IE 8

I am not a web master, not even an ordinary web developer. But as an IT professional I really have deep interest in browser market. As of any writing these lines are not final words but just what I think about these products.
Chrome is relatively new in market as compared to the two others but you can’t ignore it because of one single reason and that is “it is from Google”. My personal experience with it is simply exciting. I am impressed the same way as I was when I first used Gmail. The most amazing thing about it is how light it is in use. Whether it is starting up, closing, tab switching and whatever; it is extremely light in use. I am saying this because I have Firefox on the same hardware as I have this and in certain matters like startup it is much better than Firefox. The interface is really beautiful and easy to use with minimum amount of menus and buttons which give you the maximum area of your screen for the actual website. Even the status bar only appears when it is needed, once the website is completely open it becomes transparent.
Firefox has been my personal choice for the past two years and if I am not wrong it holds the maximum market share as well. The biggest advantage that Firefox had over the others is the large members of Mozilla community backing it up and the biggest add ones collection which can change your browsing experience into much more than just surfing. Experts say that Firefox 3.5 has not come up to the expectations but still I think it has got better than ever. The speed and memory consumption has definitely improved.
When I first started using computer I was really of the point of view that internet means Internet Explorer. To use internet you must have IE. And this continued for a long time until one day I saw Opera. But I think the credit here is not for IE rather it goes to Windows. Windows is leading OS in desktop market and most people use IE just because they are used to it not because of some personal liking or disliking. I never liked IE until its most recent version 8. With light tab switching, In-private browsing, paragraph bookmarks, compatibility view, and being not as heavy as IE 7; IE 8 does carry a lot of weight. It is also the first version of IE that is built according to W3C standards. So a website designed for W3C HTML will run perfectly in IE 8; no separate development required.
So what’s my take? I have profound love for Firefox but ever since I have installed Chrome (a few days back) I have not used Firefox. Have I found a new love when it comes to internet browsing? It’s a question that I can’t answer right now. Only time will tell that whether I am switching to Chrome or staying with Firefox or may be both.

Monday, April 27, 2009

Upgrading APEX 3.1 to 3.2

Oracle has recently released new version of its rapid application development tool better known as Application Express (APEX). Version number is 3.2 and its main features include security enhancements and Oracle Forms Migration. The late mentioned was a great interest for me. I did not have access to the database server on which we have APEX installed but for test purposes I used another server I had with Oracle Database 10g R2 on it. So I installed APEX 3.1 on it and after carefully reading upgrade instructions I started the upgrade. Here are the simple steps.

Backup is always good. So I backed up my current installation. To backup your APEX installation all you need to do is to backup three schemas and images directory located in HTTP Server home. As I used Export Data Pump for backup so I needed to create an Oracle directory.

SQL> create directory backup as ‘e:\oracle\backup’;

SQL> exit;

C :\> expdp backup/***@ORCL directory=backup dumpfile=apex_bkp.dmp schemas=(‘FLOWS_030000’,’FLOWS_FILES’,’APEX_PUBLIC_USER’)

Next I backed up the images directory (Location = $Oracle HTTP SERVER HOME/Apache/Apache/images). Don’t remove it to another place, just rename it to something else than images. Backup is complete.

To upgrade APEX set your current working directory to where you have extracted the APEX 3.2 zip file and start SQL*PLUS. Enter the following command.

SQL> @apexins apex30 apex30 temp /i/ ORCL

This is same as fresh install. Remember in APEX 3.2 you don’t have to specify the admin user password while running the installation script. It will take some time to upgrade and during that all you need to do is to sit back and watch (better start reading something). After it is completed it will create a new user and will update APEX metadata to 3.2. There a will be crystal look in interface of APEX which will distinguish it from previous release. Also if you want to make sure that you have done what you were planning to do then go and create a migration project. If you are given a choice between FORMS and ACCESS then it means you are successful and if there is only ACESS in drop down menu than you have done something wrong.

Remember that your old applications, workspaces and users etc will still remain intact after upgrade.

Monday, January 19, 2009

Being Nice

The subject of the post is a bit misleading. This is not a morality lesson rather yet another technical post. However it is about Linux rather Oracle, so you can say change factor is there.

Process scheduling is among the most important tasks that a kernel must do in order to effectively achieve Multiprogramming. Multiprogramming is a concept that all modern operating systems implement; it allows the user of the system to run several applications at a time. However in reality there can be only one application or process that can use the CPU at any given time. The kernel of the operating system switches the CPU from one process to the other and it does so extremely quickly that the user gets the illusion that multiple processes are using the CPU at a time. The decision that which process to run at what time is very critical and kernel does this by scheduling processes. Different operating systems use different algorithms. One of the things upon which the kernel relies on in making the decision of which process to run at any given time is; Process Priority.

Process priority is a value that is given to each process which determines how much this process is important. Linux handles the process priority by setting a nice value to every process. It's a nice analogy and it means that how much a process is nice to the others. A higher nice value means lower priority (process is nice to the others) and vice versa. The administrator can set the nice value and can also change it at any time. Most Linux distributions include priority classes for more complex process scheduling but they are rarely used instead the Nice value is more common and much reliable.

Friday, November 7, 2008

From Oracle Forms to APEX

Oracle Forms have a legacy of well over a decade in Oracle application development. The main reason for their popularity is their tight integration with the Oracle Database. The application development can be enormously fast when using them alongside Oracle Database. But like I said in my earlier post that the problem with Oracle development tools is that they are not up to the mark. Same applies for Forms and Reports Developer. Since 6i nothing has been done to improve them. Although Oracle has incepted a web interface starting from 9i but that does not seem to be much. It uses Java in the form of JInitiator which hangs more and works fewer. I have done quite an extensive development using Forms and Reports Developer for well over two years and still doing to a great extent. I also had to manage Oracle Application Server which is hosting applications built using these two tools. So, quite a relationship: to say the least. But as the matter of fact now a day I am sick and tired of this platform.

It seems that Oracle has also backed down from these tools or at least I haven't heard anything about these tools from Oracle news sources for a very long time. Instead Oracle is supporting a shift from Forms to Oracle ADF and JDeveloper. But problem for me is that I hate anything that has anything to do with Java. So this migration is not in my concerns. However I have made a shift and the shift is from Forms to APEX. Oracle Application Express (simply APEX) formally known as HTML DB is a web based RAD tool to build application that use Oracle Database has their data source. I used the word RAD because in my opinion application development is faster as compared to Oracle Forms and in turn to any tool used with Oracle Database. The biggest pleasure for me is less effort on interface designing and yet better attractive interface. Also according to my users it is easy to use and HTML makes it run much better in browser then Forms applications.

The thing that made me think of making this transition was PL/SQL. It is common in both. All of your knowledge of PL/SQL applies to one hundred percent here. But beware of the coding style of yours, don't repeat Forms style coding here. The problem with them is that they will not give any errors at compile time but results will not be as you might expect. For example if you have to write a small trigger in Forms to return values of an item you will be quite habitual in typing as:

Return: bind_variable;

No Begin … End block and still it is perfectly ok to write like this. It is also ok in APEX as well as for as compilation goes but it will not work. You need to rewrite it like below to work properly:

Begin

Return: bind_variable;

End;

Now it will work. In more than one ways Oracle APEX is appreciable and one must do that although it has no comparison with big Giants like .Net and J2EE.