Navigation Bar

Thursday, December 11, 2025

The Oracle Story

                              No one after lighting a lamp puts it under the bushel basket, but on the lampstand, and it gives light to all in the house
                                                                                                                                                             Mathew 5:15

Oracle corporation, initially called Software Development Laboratories, was founded in 1977 by Larry Elison and Bob Miner, computer programmers at Ampex Corporation, an American electronics company along with Ed Oates, Elison's supervisor at Ampex. The idea for the relational database was inspired by a paper by Edgar F Codd that outlined a relational model. They had the vison of making this data management concept commercial as it arranged large amounts of data efficiently and also enabled quick retrieval. Thus the trio started developing the program based on Codds theory and in 1979 the company released Oracle, the earliest commercial relational database program using structured query language. 



Once he learned the skills and concepts for relational databases Larry Ellison began to pursue his dream to start a data management company now know as Oracle. In the early years it was in competition with IBM which was also in the race to develop a relational database at that time. The IBM database is IBM DB2. But of the two Oracle is more widely used and popular.

Its first customer was the US Air Force which used the program at its air force base.

Oracle has grown from its humble beginnings as one of a number of databases available in the 1970s to the overwhelming market leader today.

In 1978 the first Oracle software was born, written in assembly language running on PDP-11 under RSX-11 in 128K memory. The first Oracle version was never released and the implementation separated oracle code from user code. The name Oracle came from the code name of a CIA project that the three original founders Elison, Bob and Ed had worked on in Amex Corporation.



In the year 1979,they offered the first commercial SQL relational database management system. The second version of Oracle released ran on PDP-11 hardware and they named it as Oracle v2 to capture more customers and they starting promoting it on the VAX platform.
In 1984 the database software was ported to the PC platform with the MS-DOS version 4.1.4 running on 512K memory.
In 1985 it was released to operate in client-server mode.

Initial funding was through personal funding of its founders and Venture Capitalists and it went public in 1986 and was then financed through its IPO and since then it has not raised any additional funds through Venture Capitalist or private investors.

In 1987 UNIX-based Oracle applications were introduced and a year later Oracle v6 was released with hot backups, embedded PL/SQL procedural engine within the database and support for row-level locking. In 1988 Oracle induced PL/SQL. The growth in the company led to relocation of the world headquarters to Redwood Shores, California in 1989 and revenues reaching $584 million.

In 1989, Oracle moved its headquarters to Redwood City, California. 

In 1995, Oracle Systems Corporation changes its name to Oracle Corporation and it became the first large software company to report an internet strategy and offered the first 64-bit RDBMS.
In June 1998 Oracle v8 was released with internet technology, support for terabytes of data and SQL object technology. 

In 1998 they announced integrating a JVM with the oracle database and in September of that year Oracle 8i was release, with i standing for internet. 
In 1999 Oracle offered its first DBMS with XML support.

In 2010 Oracle Corporation acquired Sun Microsystems After the merger Oracle owned Sun's hardware product lines as well as Sun's software product lines including the JAVA programming language.
My tryst with JAVA

Oracle Corporation has now diversified into a range of services like Oracle cloud services, Oracle middleware, Oracle Beehive, Financial services, hardware systems etc.
Middleware includes weblogic server which is a J2EE server and Oracle fusion middleware.
Oracle applications include ERP, CRM and Human Capital Management HCM.
Cloud services include SaaS Software as a service, PaaS Platform as a Service, IaaS  Infracture as a Service and DaaS Database as a Service.

More on the history and the growth of the relational database can be found in the articles below

Key Events and Milestones 

Thought for the day
Courage to continue matters more than success or failure.
--Winston Churchill

Oracle Dewdrops Dec 2025

God's Word for the day

The Majesty of God
The compassion of human beings is for their neighbours,
  But the compassion of the Lord is for every living thing.
He rebukes and trains and teaches them,
  And turns them back, as a shepherd his flock
He has compassion on those who accept his discipline
  And who are eager for his precepts.
Sirach 18:13-14

A tree and its fruit
Beware of false prophets, who come to you in sheep's clothing
  But inwardly are ravenous wolves.
You will know them by their fruits.
  Are grapes gathered from thorns or figs from thistles?
In the same way every good tree bears good fruit
  But the bad tree bears bad fruit
Mathew 7:15-17

Monday, December 8, 2025

Oracle News Dec 2025




God's Word for the day
The right spirit in giving alms
My child do not mix reproach with your good deeds,
  or spoil you gift by harsh words
Does not the dew give relief from the scorching heat?
  So a word is better than a gift
Indeed does not a word surpass a good gift?
  Both are to be found in a gracious person
A fool is ungracious and abusive
  and the gift of a grudging giver makes the eyes dim
Sirach 18:15-18

A tree and its fruit 
A good tree cannot bear bad fruit,
  nor can a bad tree bear good fruit
Every tree that does not bear good fruit
  is cut down and thrown into the fire
Thus you will know them by their fruits
Mathew 7:18-20

Wednesday, November 5, 2025

Oracle News Nov 2025

Oracle Newsletter 28-Nov-25

Oracle Named Overall Winner in Chartis RiskTech AI 50 2025 for Second Year



































Oracle Newsletter 07-Nov-25

Oracle and Ci4CC Partner to Accelerate Oncology Innovation





God's Word for the day
If ever a miser does good, it is by mistake.
  and in the end he reveals his meanness.
The miser is an evil person;
  and he turns away and disregards people.
The eye of the greedy person is not satisfied with his share;
  greedy injustice withers the soul.
A miser begrudges bread and it is lacking at his table.
Sirach 14:7-10

The Sound eye 
No one can serve two Masters, 
  for a slave will either hate the one and love the other,
Or be devoted to the one and despise the other.
  You cannot serve God and Wealth.
Mathew 6:24

Oracle Dewdrops Nov 2025


God's Word for the day
Riches are inappropriate for a small minded person;
  And of what use is wealth to a miser?
What he denies himself he collects for others;
  And others will live in luxury on his goods,
If one is mean to himself, to 
  whom will he be generous?
He will not enjoy his own riches
  No one is worse than one who is grudging to himself;
That is the punishment for his meanness.
Sirach 14:3-6

The Sound eye 
The eye is the lamp of the body.
  So, if your eye is healthy, your whole body will be full of light.
But if your eye is unhealthy, your whole body will be full of darkness.
  If then the light in you is darkness, how great it the darkness!
Mathew 6:22-23

Monday, October 13, 2025

Jakarta Struts : Connecting to the database

Now that we have the struts application up and running we can keep adding to the framework as per the ask of the project.

In the first version of the getquote project we have built a basic form where it will ask for a stock code and return the price of that stock code. 

Here the execute method in LookupAction (which is called from the RequestProcessor ) simply checks if the stock code symbol value is "SUNW", and if so it returns a predefined value of the stock which is displayed in the forwarding page quote.jsp.

If we want to make this application a bit more usable it would be useful if we get maintain a database of stock code with their price and date. Now if a user wants to query the historical value of a stock he can simply enter the stock code and the date for which he want the price and the application should return him the price.

The below post illustrates the changes that are required to be made in the current application to to connect to the mysql database.

For installing and connecting to mysql you can refer to the post link below

MYSQL database installation

For creating the stocks table in the stocks database you can refer to the link below

Creating the Sample Stocks Database 

Once your mysql installation and connection is tested you are ready to make the required code changes in your getquote application to connect the database.

There can be n number of ways of achieving this, but in the example which I describe below

There are 3 important steps for accomplishing this

  • Changes to the struts config file for configuring the DataSource
  • Getting the correct version of the mysql connector jar and the Jakarta Commons Database Connection pool (DBCP) jar file
  • Changes to the LookupAction controller to connect the the configured database.
Changes to the struts-config.xml
A sample part of the struts-config.xml with changes for setting up a suitable datasource is below


<data-sources> <data-source type="org.apache.commons.dbcp.BasicDataSource"> <set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> <set-property property="url" value="jdbc:mysql://localhost/stocks" /> <set-property property="username" value="root" /> <set-property property="password" value="mysql" /> </data-source> </data-sources>

This datasource has the following main attributes 
The type of datasource - org.apache.commons.dbcp.BasicDataSource 
A fully qualified class name of the configuration object for the instance of the DataSource  -
 driverClassName which which in this case is a mysql driver - com.mysql.jdbc.Driver
the url for the datasource - jdbc:mysql://localhost/stocks
and a username/password to connect to the datasource.
This <data-sources> element must be the first element in your struts-config.xml file prior to the <form-beans> and the <action-mappings> elements.

Changes to LookupAction.java
We import some JDBC packages required to perform DataSource operations
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
In the getQuote method in LookupAction.java we add the following lines of code in a try-catch-finally block to use the DBCP datasource. 
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
DataSource dataSource = null;

try {
	dataSource = getDataSource(request);
	conn = dataSource.getConnection();
	stmt = conn.createStatement();
	rs = stmt.executeQuery ("select * from stocks where symbol = '" + symbol + "'");
	if (rs.next()){
		double tmp = 0;
		tmp = rs.getDouble("price");

		price = new Double(tmp);
		System.err.println ("price : " + price);
	} //end rs.next
	else {
		System.err.println("Symbol not found returning null");
	}	
		
}	//end try
catch (SQLException sqle) {
		System.err.println (sqle.getMessage());
}
finally {
		...
}

In this code the first thing we do to retrieve the DBCP datasource is to call getDataSource() with the request parameter. This method exists in the org.apache.struts.action.Action class and is used to retrieve the defined DataSource from the ServletContext. For this you pass a reference of the request to getDataSource() which pulls the DBCP DataSource from the ServletContext. Next the dataSource.getConnection() method requests a Connection from the DBCP DataSource's pool of connections and retrieves the required Connection to the calling action. Once the database Connection object is got, we execute the sql statement to fetch the required data and store it in a ResultSet object. Once the resultset is got we close the ResultSet, Statement and the Connection.
dataSource = getDataSource(request);

Finally we add the correct version of the .jar files in the lib folder of the getquote project for the version of Struts, Java, Tomcat server and mysql datababase - namely .
mysql.jar
commons-pool-1.4.jar
commons-dbcp-1.2.2.jar

For the version of struts I am using I have taken the corresponding version of the jar files from the links below

For the complete code changes that are required in your struts application you can refer to

Testing the Database connection
http://localhost:8080/dynagetquote/index.jsp
When we test the application we can enter the stock codes we have entered in the database and get the corresponding prices.











References 
God's Word for the day
What does a wolf have in common with a lamb?
  No more has a sinner with the devout.
What peace is there between a hyena and a dog?
  And what peace between the rich and the poor?
Wild asses in the wilderness are the prey of lions;
  likewise the poor are the feeding grounds for the rich.
Sirach 13:17-19

Concerning Prayer 
"And whenever you pray do not be like the hypocrites;
  for they love to stand and pray in the synagogues
and at the street corners, so that they may be seen by others.
  Truly I tell you, they have received thier reward.
But whenever you pray, go into your room and shut the door
  and pray to your Father who is in secret; 
And your Fahter who sees in secret will reward you."
Mathew 6:5-6

Thursday, October 9, 2025

MYSQL database installation

 Download the latest version of mysql database from the site below

Mysql Community Downloads

or an earlier version from the mysql archive site link below

Mysql Product Archives

Before starting the installation you need to make sure that any previous installation of the mysql database is completely removed, including the MYSQL service.

Otherwise you will get errors like

C:\Windows\system32>mysql -u root -p
Enter password: *****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


Now click on the msi file downloaded to begin the setup.




























If you want to change default path of the InnoDB datafile click on Modify









Based on the nature of your data processing you can use DSS or OLTP or a manual configuration
For my project I have selected OLTP







Select a standard character set





















If you get an error like this it means your previous setup of mysql running on port 3306 has not been completely removed. The service should also be removed as shown in the slides below.


Run the msi file and click on Remove








Run the msi file






After removing the existing service can reconfigure a new service as below.
Do a fresh installation as per the steps given above.

Now you will get a screen to set a new passwoard and no tab for current password which was the case in the earlier slide.




Now the service gets created successfully and in services.msc ti will show as running.






Now on the command prompt you can login to mysql with the root user and password set during the installation and type show databases command to see the existing mysql databases.



Now for the struts getquote project we create the stocks database, stocks table and insert data into the table as below.


mysql> create database stocks;
Query OK, 1 row affected (0.00 sec)

mysql> use stocks;
Database changed

mysql> CREATE TABLE STOCKS
    -> (
    ->   symbol  varchar(15)  not null primary key,
    ->   price   double not null
    -> );
Query OK, 0 rows affected (0.11 sec)

mysql> insert into stocks values ("SUNW", 78.00);
Query OK, 1 row affected (0.05 sec)

mysql> insert into stocks values ("YHOO", 24.45);
Query OK, 1 row affected (0.11 sec)

mysql> insert into stocks values ("MSFT", 3.24);
Query OK, 1 row affected (0.08 sec)

References 

God's Word for the day
Who pities a snake charmer when he is bitten,
  or all those who go near wild animals?
So no one pities a person who associates with a sinner
  and becomes involved in other's sins.
He stands by you for a while,
  but if you falter he will not be there.
Sirach 12:13-15

Concerning Oaths 
Again you have heard that it was said to those of ancient times
  'You shall not swear falsely, but carry out the vows you have made to the Lord.'
But I say to you, Do not swear at all,
  Either by heaven for it is the throne of God,
Or by the Earth for it is His footstool,
  Or by Jerusalem, for it is the city of the great King.
And do not swear by you head, for you cannot make one hair white or black.
  Let your word be 'Yes, Yes' or 'No, No';
Anything more than this comes from the evil one.

Mathew 5:33-37