Tuesday, November 17, 2009

Should Java be free from Sun/Oracle?

There was an interesting blog from SAP CTO “Freedom of Java”! He has a very absurd comparison of freeing Java from Sun/Oracle’s clout with falling of Berlin wall. Should we free Java from Sun? My answer is an emphatic No! I have been a Java enthusiast for about a decade. Although I never liked Sun’s control over Java/JCP, I have to admit that Java flourished under Sun’s stewardship. I hope Sun/Oracle will continue the leadership in taking Java to the next level. Oracle once claimed they support 300% Java! As an ex-employee of Oracle I know that Oracle’s business is completely dependent on success of Java, all of fusion middleware, applications, management products (enterprise manager) developed in Java. Oracle cannot gamble or bungle on Java. SAP’s concern seems to be too unjustified and seems to be politically motivated.

They are suggesting that Java/JCP should be freed from Sun/Oracle and controlled by some independent consortium (Java foundation) and have volunteered to throw money, time and energy behind Java. I don’t think SAP has contributed much to Java community in the past 15 years, besides furthering its own NetWeaver platform to attract developers to their proprietary application platform.

Interestingly enough they claim to have Java EE 5 certification for past two years. Note that Java EE 5 was finalized about two and half years back. I think they still do not have a production version of application server that supports Java EE 5. I could not find in their website about their production support even for J2EE 1.4. Their website still claims support for J2EE 1.3 as shown below:

They still have a developer preview for Java EE 5 at http://www.sdn.sap.com/irj/scn/downloads?rid=/library/uuid/00846edd-355b-2b10-f38c-df94ec96eb74

How can we believe that SAP will pump millions of dollars to an open consortium to support Java’s future growth when they have not invested money to build an application server that supports latest Java standards? I think they are just playing a devil’s role here to complicate matters with Oracle’s pending acquisition of Sun.

Without strong leadership, Java will perish. If we leave it to open source then it may fork and we will end up with several Java flavors and that will be a death blow to Java. Sun has invested billions of dollars on research, development and building the community around Java and should control it. If Oracle’s acquisition of Sun succeeds then Oracle should control Java/JCP, if it fails for some reasons then who should take over Sun (if SAP does!) should own Java!

That’s my 2 cents!

Tuesday, October 06, 2009

Book: Middleware Management with Enterprise Manager Grid Control

I coauthored another book Middleware Management with Oracle Enterprise Manager with Arvind Maheshwari. This covers managing both Oracle Fusion Middleware and non-Oracle Middleware such as IBM WebSphere, JBoss, Microsoft Middleware with Oracle Enterprise Manager.

Tuesday, June 02, 2009

My JavaOne Presentation:

I'm co-presenting with my co-author (EJB 3 In Action) Reza Rahman on JPA Application Tuning.

Here are details for the talk:

TS-3977 -Keeping a Relational Perspective for Optimizing the Java™ Persistence API

Thursday June 04 4:10 PM - 5:10 PM Hall E 134

If you are attending JavaOne this year, please attend the presentation. Also we have a book signing scheduled tomorrow (Wednesday June 3, 2pm at Java Book Store) so stop by if you want your book to be signed


Friday, January 09, 2009

Using Quartz Scheduler on WebLogic Server

I'm not a Quartz expert but I keep on getting emails with Quartz questions as one of my blog was published as a featured article at TheServerSide.com 4-5 years back. I got some questions on using Quartz on WebLogic Server recently. I modified the original example to run on WebLogic Server.

You can download this sample from here.

The Example

1. This sample uses TestEJB which is a stateless bean that has yourMethod that need to be scheduled as a job/service.

2. This method execution is scheduled as a Job from from QuartzManagerBean which is EJB 3.0 Session bean.

3. A Generic Servlet QuartzServlet uses dependency injection to invoke the QuartzManager from its init() method.

4. The QuartzServlet is automatically loaded using load-on-start mechanism. Hence as soon as the application is deployed - the job will be submitted .

How to Run the Example

1. You can download the code example from here.

2. This is designed to be deployed in the exampleServer. If you want to deploy in a different domain/server you have to make appropriate changes to common.xml

3. Start your WebLogic Server. Unlike OC4J that requires –userThreads, no special parameter or flag is required for WebLogic to run the example.

4. Set your environment variables. If you are using examplesServer, you can use %BEA_HOME%\wlserver_10.3\samples\domains\wl_server\setExamplesEnv.bat script to set environment variables required to compile and deploy the application

5. To compile and deploy, just run


You will see the application to be deployed in console where WebLogic Server was started.

Jan 9, 2009 10:45:54 AM org.quartz.plugins.management.ShutdownHookPlugin initialize

INFO: Registering Quartz shutdown hook.

Jan 9, 2009 10:45:54 AM org.quartz.simpl.RAMJobStore initialize

INFO: RAMJobStore initialized.

Jan 9, 2009 10:45:54 AM org.quartz.impl.StdSchedulerFactory instantiate

INFO: Quartz scheduler 'WebLogicQuartzScheduler' initialized from default resour

ce file in Quartz package: 'quartz.properties'

Jan 9, 2009 10:45:54 AM org.quartz.impl.StdSchedulerFactory instantiate

INFO: Quartz scheduler version: 1.3.0

Jan 9, 2009 10:45:54 AM org.quartz.core.QuartzScheduler start

INFO: Scheduler WebLogicQuartzScheduler_$_one started.

Invoking EJB to schedule Job ..

0 0/5 * * * ?

Scheduling Job ..

0 0/5 * * * ?

Timer scheduled now ..

Generating report

Report Generation Completed

Hope this helps!