Navigation Bar

Wednesday, November 5, 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 News Nov 2025




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

Wednesday, October 8, 2025

Oracle Dewdrops Oct 2025

Dewdrop #91 09-Oct-25

MYSQL database installation


Dewdrop #92 27-Sep-25

A little deepdive into the struts framework


Dewdrop #93 24-Oct-25

Jakarta Struts - connecting to the database

God's Word for the day
Whoever touches pitch gets dirty,
  and whoever associates with a proud person becomes like him.
Do not lift a weight too heavy for you
  or associate with one mightier or richer than you.
How can the clay pot associate with the iron kettle?
  The pot will strike against it and be smashed.
Sirach 13:1-2

Love for Enemies
You have heard that it was said,
  'You shall love your neighbour and hate your enemy.'
But I say to you, Love your enemies and pray for those who persecute you,
  so that you may be children of your Father in heaven;
For he makes his sun rise on the evil and on the good,
  and sends rain on the righteous and the unrighteous.
For if you love those who love you, what reward do you have?
  Do not even the tax collectors do the same?
And if you greet only your brothers or sisters,
  What more are you doing than others?
Do not even the Gentiles do the same?
  Be perfect therefore as your heavenly Father is perfect.
Mathew 5:43-47

Oracle News Oct 2025

Oracle Newsletter 28-Oct-25

Oracle Empowers Banks to Unlock New Opportunities in Tokenization, Settlement, and Digital Assets
















Oracle Newsletter 14-Oct-25

Oracle Database@Azure Powers Cloud Migrations for Organizations


Oracle Newsletter 14-Oct-25

Oracle Database@Google Cloud Adds New Oracle AI Database Services, Additional Regions, and Groundbreaking Partner Program


Oracle Newsletter 14-Oct-25

Oracle Autonomous AI Lakehouse Enables Open, Interoperable Data Access Across Multi-Platform, Multicloud Environments


Oracle Newsletter 14-Oct-25

Oracle Cloud Infrastructure Enables More Customers to Rapidly Deploy AI and Cloud Services


Oracle Newsletter 14-Oct-25

Oracle Cloud Infrastructure Enables More Customers to Rapidly Deploy AI and Cloud Services


Oracle Newsletter 14-Oct-25

Children’s Hospital Los Angeles Taps Oracle to Enhance Business Systems


Oracle Newsletter 14-Oct-25

Oracle Announces AI Assistant and New AI-Powered Features for Oracle Fusion Data Intelligence


Oracle Newsletter 14-Oct-25

Oracle Becomes the Destination of Choice for AI Innovators


Oracle Newsletter 14-Oct-25

Retraced Advances Transparency and Sustainability in Fashion with Oracle Autonomous AI Database


Oracle Newsletter 14-Oct-25

Oracle Launches New Customer and Partner Offerings to Accelerate AI Adoption and Business Results With Oracle AI Factory


Oracle Newsletter 13-Oct-25

Oracle Unveils New Defense Ecosystem Members


Oracle Newsletter 13-Oct-25

Oracle and Duality Deliver Privacy-First AI to Government and Defense Customers


Oracle Newsletter 09-Oct-25

Health Systems Simplify Secure Data Exchange with Oracle Health


Oracle Newsletter 09-Oct-25

Oracle Intelligent Communications Orchestration Network Makes It Easier to Connect Critical AI and Cloud Services


Oracle Newsletter 09-Oct-25

Oracle Named a Leader in IDC MarketScape for Worldwide Corporate Loan Lifecycle Management


Oracle Newsletter 07-Oct-25

SoftBank Corp. Accelerates Japan’s AI and Sovereign Cloud Future with Oracle Alloy


Oracle Newsletter 07-Oct-25

Oracle Health Powers Rural Health Innovation and Transformation


Oracle Newsletter 07-Oct-25

NATO CCDCOE to Research Battlefield Connectivity with Oracle 5G Solutions


Oracle Newsletter 06-Oct-25

Oracle AI Agents Help Marketing, Sales, and Service Leaders Unlock New Revenue Opportunities

God's Word for the day
An enemy speaks sweetly with his lips,
  but in his heart he plans to throw you into a pit;
An enemy may have tears in his eyes,
  but if he finds an opportunity, he will never have enough of your blood.
If evil comes upon you, you will find him there ahead of you;
  pretending to help he will trip you up.
Then he will shake his head and clap his hands,
  and whisper much, and show his true face.
Sirach 12:16-18

Concerning Retaliation 
You have heard that is was said, 
  'An eye for an eye and a tooth for a tooth'
But I say to you, Do not resist an evil doer.
  But if anyone strikes you on the right cheek,
Turn the other also;
  And if anyone wants to sue you and take your coat,
Give your cloak as well.
  And if anyone forces you to go one mile,
Go also the second mile.
  Give to everyone who begs from you
And do not refuse anyone who wants to borrow from you.
Mathew 5:38-42