Oracle released Oracle Application Server Containers for J2EE 10g (10.0.3) Developer Preview J2EE 1.4 compliant developer preview about three weeks back. We have carefully examined issues/concerns raised by the J2EE development community in several threads in theserverside.com on our previous releases and tried to address them. You can try this out and give your feedback to us. We appreciate all your comments after trying out this release.
- Posted by: Debu Panda
- Posted on: March 23 2004 12:42 EST
The top 10 reasons you want to try OC4J 10.0.3 are:
1. OC4J 10.0.3 is one of the first J2EE 1.4 implementations. Oracle is one of the first J2EE vendors that have configured the J2EE 1.4 Blueprint Java Adventure Builder Application 1.0 at to run on OC4J. See http://otn.oracle.com/tech/java/oc4j/1003/how_to.html for details.
2. OC4J is great to develop with because of its simple and efficient environment -- startup times are low and deployment is fast.
3. The configuration of OC4J is very simple with several configuration and deployment options: A JMX enabled GUI interface utilizing JSR77 and JSR88 capabilities, A JMX enabled web interface, command line utility or just by hand editing the configuration files. The deployment and configuration of custom MBeans with applications to enable them to be managed from the OC4J JMX Console is supported. The JMX GUI/Web consoles are prototypes and will not be what's delivered in the actual product. See http://otn.oracle.com/tech/java/oc4j/1003/how_to/jmx_demos.zip for an example that demonstrates using JMX from within a sample application.
4. OC4J works with a number of popular J2EE development environments. Oracle provides Oracle JDeveloper 10g as an integrated IDE for OC4J for development, deployment, testing, tuning and debugging at http://otn.oracle.com/products/jdev. Developers who use XDoclet will find tags specific to OC4J at http://xdoclet.sourceforge.net/tags/oracle-tags.html. Eclipse developers can use extensions like Lomboz (http://www.objectlearn.com/index.jsp) to develop with OC4J.
5. We have completely revamped the Transaction Manager in OC4J to support distributed transactions between heterogeneous XA-resources like third-party databases like MS SQLServer, IBM DB2 and third-party JMS providers like MQ-Series. See http://otn.oracle.com/tech/java/oc4j/1003/how_to/how-to-midtier-2pc.zip for the sample that demonstrates of distributed transaction.
6. We have significantly improved the In-memory JMS implementation to make it more robust and reliable. You can use the In-memory JMS to build and test your MDB applications that use the JCA 1.5 Resource Adaptor interface. Also you can use IBM MQ-Series as the JMS provider for OC4J using the JCA compliant Generic Resource Adaptor interface. See http://otn.oracle.com/tech/java/oc4j/1003/how_to/jcajmsmq.zip for the MQ-Series demo with OC4J.
7. We have now integrated the OracleAS Toplink CMP as the default persistence manager for CMP entity beans so you get the great caching and performance benefits of OracleAS Toplink. See http://otn.oracle.com/products/ias/toplink/preview/examples/oc4j_examples.zip for OracleAS Toplink samples.
8. A brand new functional area that we've addressed with this release is Job Scheduling. OC4J 10.0.3 integrates the OracleAS Job Scheduler that provides asynchronous scheduling services for J2EE applications. See http://otn.oracle.com/tech/java/oc4j/1003/how_to/jobscheduler/bidwatch-demo.zip for eBay auction monitor demo.
9. OC4J 10.0.3 has comprehensive support for Web services that includes but not limited to JAX-RPC stateless and tasteful Web services, Top-down document-literal Web service, Top-down RPC-literal Web service, JAX-RPC handlers and Handler chains, SOAP Headers, SOAP with Attachment APIs for Java (SAAJ), Web Services Metadata annotation, EJB 2.1 Web service, PL/SQL Web services, SQL DML operations as Web services, SQL queries as Web services, Java classes in the database as Web Services, Asynchronous Web services for JMS topics and queues, CORBA Web services, WS-I basic profile
1.0. See http://otn.oracle.com/tech/java/oc4j/1003/how_to/how-to-ws.html for a set of samples that run on OC4J.
10. And of course OC4J is free for developers and ISVs! You can download OC4J 10.0.3 Developer Preview from OTN at http://otn.oracle.com/tech/java/oc4j/1003/content_preview.html
- New type of Web Services: tasteful? by Rob van Dort on March 24 2004 04:18 EST
- Yummy! by Tilo Christ on March 24 2004 04:19 EST
- Impressive by Syed Zulfiqar on March 24 2004 06:00 EST
- Impressive by Rob Kischuk on March 24 2004 08:59 EST
- OC4J vs. 9iAS by Craig Pfeifer on March 24 2004 09:22 EST
- Impressive - Not! by Eric Ma on March 24 2004 10:00 EST
- Top 1 million Reasons to try new Sun Java System App Server 8 by Rich Sharples on March 24 2004 17:13 EST
- tell me why I should use "developer preview" by Jim Zhang on March 24 2004 17:46 EST
- tell me why I should use "developer preview" by raymond xu on March 24 2004 20:44 EST
- tell me why I should use "developer preview" by Cameron Purdy on March 24 2004 23:11 EST
- tell me why I should use "developer preview" by Ved Gangaputra on March 25 2004 00:37 EST
tell me why I should use "developer preview" by Jim Zhang on March 25 2004 02:06 EST
tell me why I should use "developer preview" by Debu Panda on March 25 2004 09:29 EST
- What else can cause this error by Josh Smith on April 23 2004 09:19 EDT
- tell me why I should use "developer preview" by Chucks Ezeugoh on September 30 2004 09:24 EDT
- tell me why I should use "developer preview" by Debu Panda on March 25 2004 09:29 EST
- tell me why I should use "developer preview" by Jim Zhang on March 25 2004 02:06 EST
- Top Ten Reasons to uninstall Oracle Application Server 10g by Fyodor Kupolov on February 04 2005 18:06 EST
OC4J 10.0.3 has comprehensive support for Web services that includes but not limited to JAX-RPC stateless and tasteful Web servicesNew in computing: tasteful services...
Anyway, an impressive list of improvements.
I liked OC4J having used it in a previous project because of its agility, but I missed a managament console then.
"g" stands for Grid, any special Grid features worth mentioning?
This preview version of OC4J has a web and a GUI console.
The web console is at http://host:port/adminoc4j/. You need your admin password (set at install) to use it. This is described in the Readme.txt file.
The Swing GUI console is started by running $J2EE_HOME/admin_gui.jar. Connect to it as admin with the password you set at install. The RMI port is 23791 by default.
Is there any document which compares weblogic vs. oracle application server? Or at list I look for a PPT/PDF/... that highlights most of OracleAS server features.
Well, this kind of question is often asked by pointy haired (Dilbert) managers. Thus, I'm sure these non-technical technical managers has done more homework on selecting their SUV's.
Let's say the managers' bank, pre-approved a SUV loan for 20k with 0% interest. The bank will only do the loan for the following SUVs, all for 20k.
So, I will provide a J2EE server = SUV list for you:
1) Borland Enterprise Server (BES) = Porsche Cayenne
The Cayenne power comes from a twin-turbocharged V-8 with 450 horsepower, idle to 60 in 5.6 seconds - the fastest "real-world" SUV in the market.
The only difference between BES and Cayenne is that BES has a better cockpit.
2) Weblogic = BMW X5
The X5 has intelligent all-wheel drive system with exotic luxury features.
The BMW X5 and Weblogic are products of the same inspiration for the same market.
3) Websphere = 1995 Ford Expediion with Escort drivetain
Escort's 4 cyl 1.8 L engine delivers good gas mileage for Expedition, but bad news if you actually have to get somewhere.
Websphere's EJB container may have better mileage.
4) Oracle OC4J 10g = Last place finish Junkyard Wars ch allege
A cable TV show that challenges participants to build from junk yard materials.
Thus, build a SUV that will carry a 50 pound weight for 50 yards. Incredible, the exact same requirements for OC4J...
Could it be that the author of this list was looking forward to his lunchbreak?
"Tasteful" web services sounds like the IT equivalent of a good steak :-)
"Tasteful" web services sounds like the IT equivalent of a good steak :-)More like a mis-steak....
This should be "stateful webservices"
the spellchekerr in MS Word is the culprit here
This should be "stateful webservices"the spellchekerr in MS Word is the culprit here thanksDebu"Tasteful" is a valid English word. Why is the spellchecker in MS Word to blame?
Haven't used MS for a long time so I can't confirm but my guess is that "Stateful" isn't in their dictionary (yes, yes, it's a real word - I know) - a lazy user would just let the spellchecker automatically replace it with the nearest word which is probably "tasteful" - "shameful" would've been more fun.
This should be "stateful webservices"the spellchekerr in MS Word is the culprit here thanksDebu"Tasteful" is a valid English word. Why is the spellchecker in MS Word to blame?
It looks impressive, but do you provide any facility for AOP which is available in JBoss and Weblogic. I am not sure whether toplink will be a selling point since entity beans were too heavy and limited. It is one of the -ve candidate in J2EE. So, is it possible to use Toplink through Session beans, is there any additional benefits.
It looks impressive, but do you provide any facility for AOP which is available in JBoss and Weblogic. I am not sure whether toplink will be a selling point since entity beans were too heavy and limited. It is one of the -ve candidate in J2EE. So, is it possible to use Toplink through Session beans, is there any additional benefits.Entity beans were largely considered heavy and limited due to the implementations and the EJB 1.0 spec for CMP. Performance is generally observed to be much better for CMP 2.0. With Toplink as the underlying implementation, use Toplink as the basis for your performance expectations, not other vendors' CMP implementations.
This seems to be a growing trend - vendors using flexible persistence frameworks as their CMP implementation rather than developing a completely separate implementation. Oracle has Toplink, and JBoss is doing very much the same thing with Hibernate. (Is Geronimo/OJB next?)
The other point you raise is quite valid, though - is Oracle going to force people to use EJB in order to benefit from the Toplink code. The question isn't so much about using Toplink as an AOP interceptor - while there's a lot of AOP hype, it's no holy grail (not bad either). The real issue is whether developers can at least create persistence solutions using Toplink without using EJB. It doesn't have to be aspect-oriented, but we'll hope they haven't made it EJB dependent.
The real issue is whether developers can at least create persistence solutions using Toplink without using EJB. It doesn't have to be aspect-oriented, but we'll hope they haven't made it EJB dependent.Fear not, TopLink has not been made EJB dependent. OC4J 10.0.3 allows you to use TopLink to persist POJOs, CMP Entity Beans or BMP Entity Beans. It is the same underlying persistence engine, so developers have the flexibility to choose what architecture is most suitable for their application without having to worry about what persistence features will be available. You can even use TopLink in a fat client if so desired.
As with previous versions of TopLink CMP support, Entity Beans and POJOs can be mixed (ie Entity Beans can have references to POJOs and they are all persisted by TopLink).
With my preferred J2EE app server and persistence framework I am able to persit POJOs that have been tool generated. IOW, I can take arbitrary Java class source code that has come into existence through arbitrary means and persist it - even in container managed XA context.
Entity bean CMP-based persistence (regardless of what persistence engine is used under the hood) is a complete turn-off relative to this kind of flexibility, i.e., freedom from entity beans.
Oracle is coming to the J2EE/EJB party too late. Folks have already moved on to better technology than EJB and such things as claiming adherence to J2EE 1.4 fall flat.
Paying Sun a half million dollars for J2EE certification is not only a huge rip off but is getting to be pretty much irrelevant these days. The better Java app server technology is just rapidly making old-style EJB irrelevant. People don't want to keep banging their heads against a wall with inferior development approaches simply because that is what the EJB specification dictates. Because much superior alternative approaches now exist, EJB is falling by the wayside - rapdily.
Yes, oracle is coming lately, but toplink is already there :). Do you know better persistence framework nowadays than Toplink (or Hibernate)? Let me know. Btw. Oracle 10g AS is using Toplink as a persistence backbone (just like JBoss will use Hibernate). So in your post you're wrong - you can persist pojos with oracle (toplink) (you don't need entity beans at all)
... Where do you go from this... is a choice I leave on you
Do you know better persistence framework nowadays than Toplink (or Hibernate)? Let me know.Have a look at KODO JDO. I would not say that it is the best or even better in most of the important aspects than mentioned one, but it definitely worth an attention.
If this is an OC4J release, will there be a separate "AS" release as well, or have you dumped the AS portion?
So basically you are saying that OC4J 10.0.3 finally caught up with WebLogic 6.1, which has the bulk of these features you mentioned (except for J2EE 1.4 compliance and some Web Services stuff). But let me remind everyone that WebLogic 6.1 was released in the summer of 2001, and we are currently in 1Q'04.
My hat off to ORACLE for a job well done :-). Now tell Larry to stop fighting DOJ and buy BEAS when it is still affordable.
(1 million J2EE developers can't be wrong)
10. And of course OC4J is free for developers and ISVs! You can download OC4J 10.0.3 Developer Preview from OTNWhy should I settle for "Developer Preview" from Oracle and IBM when I can get a production quality J2EE 1.4 Compatible AppServer from http://java.sun.com/j2ee/1.4/download-sdk.html? Doesn't make sense to me.
Also, OC4J is free for developers and ISVs -- big deal!!! Can you do better by making your AppServer free for development, production deployment, and redistribution like Sun's AppServer Platform Edition? Unless you make it free for all, I am going to stick to Sun's J2EE 1.4 SDK.
why? "for the name of oracle" is the only reason I can get:)
Jim: Also, OC4J is free for developers and ISVs -- big deal!!! Can you do better by making your AppServer free for development, production deployment, and redistribution like Sun's AppServer Platform Edition? Unless you make it free for all, I am going to stick to Sun's J2EE 1.4 SDK.
Yes, and while they're at it, they should make the Oracle database free too.
In fact, I don't think we've gone far enough -- I think that they should pay us to use their software.
Coherence: Clustered JCache for Grid Computing!
Don't flame this thread ..without trying this release. I tried this version and seems to be fairly stable and better than both IBM's preview and Sun AppServer8 (J2EE 1.4 SDK) as far as J2EE 1.4 features are concerned.
I was playing around the Blueprint apps in J2EE 1.4 SDK and thought it had a bug as the application does not track the record .. however the apps run fine in OC4J.
Don't flame this thread ..without trying this release. I tried this version and seems to be fairly stable and better than both IBM's preview and Sun AppServer8 (J2EE 1.4 SDK) as far as J2EE 1.4 features are concerned.I was playing around the Blueprint apps in J2EE 1.4 SDK and thought it had a bug as the application does not track the record .. however the apps run fine in OC4J.I did download OC4J and try to run it. I did like how fast it unzips into place and installation seems very simple and quick. But after I typed in "java -jar oc4j.jar" to start the server, it just cramps out with an error message:
blah blah blah... Fatal error: Cannot instantiate ApplicationServerThread AND not in embedded mode
- forcing exit
It complained that I don't have the right J2SE SDK installed on my machine, but I do. OC4J just not smart enough to find it. I didn't have that problem with either the IBM's preview or Sun's J2EE 1.4 SDK. So I guess this is what you called "better than both IBM and Sun".
I am expressing my frustration at companies that seem to use developer like their alpha testbed. Toss out some "preview" and expects us to adopt. Well, it doesn't work that way. You got to show some value! Jboss shows value by providing an open source AppServer. Sun shows value by providing free AppServer that you can actually deploy into production! Where is the value in OC4J? I still need to pay for an expensive Oracle AppServer 10g license to put my application in production. That is not something I am willing to pay for...
I did download OC4J and try to run it. I did like how fast it unzips into place and installation seems very simple and quick. But after I typed in "java -jar oc4j.jar" to start the server, it just cramps out with an error message:blah blah blah... Fatal error: Cannot instantiate ApplicationServerThread AND not in embedded mode - forcing exitIt complained that I don't have the right J2SE SDK installed on my machine, but I do. ..Are you in windows and you have JRE installed in one location and J2SE SDK another location? If so just include the following directive in the j2ee/home/config/server.xml
<java-compiler name="javac" in-process="false" encoding="ISO8859_1" bindir="d:\Program Files\j2sdk\j2sdk1.4.2\bin" extdirs="d:\Program Files\j2sdk\j2sdk1.4.2\lib\ext" />
Unlike some of the others in here, I have a very good reason to jump to 10g. We are already running OC4J 9, but would like to jump to 10 so we can use the 1.4. I am just having some trouble getting it configured. I got the error listed in the original post, and added the attribute you listed, but it didn't appear to be problem as I still get the same error.
Initially I get a "Error creating deployment director" ......
Then the Fatal error: Cannot instantiate...........
What else could be causing this. I want to try to run the new version to see what problem/advantages it gives us so I can report it to my boss. No sense in knocking it before I get it running.
Hi just saw this now and yeah the modified line in server.xml solves the problem but another error message erupts.
04/09/30 14:19:33 CorpAndBuilderWebsite: JspServlet: unable to dispatch to requested page: Exception:oracle.jsp.provider.JspCompileException: <H3>Errors compiling:D:\JDeveloper9051\j2ee\home\application-deployments\CorpAndBuilderWebsite\CorpAndBuilderWebsite\persistence\_pages\_builderregister\_search.java</H3>Error occurred during initialization of VM
Could not reserve enough space for object heap
The machine is a 256MB PIII Intel running Windows NT 4.0 Workstation (service Pack 6). frankly i dont know what next. Please help.
It actually took me a while to discover this solution so if you could put tips like this on the otn web site..it would help a great deal.
Thank you once again
I actually forgot to mention that the JDK is the 1.4.0 release.
Well after a lot of tinkering i have gotten it to work and have specified ojc as the compiler with the bindir attribute set to the <Jdev_install_base>\jdev\bin and for some reason it doesnt come up with the
Could not reserve enough space for object heap error anymore.
Strange but i cant seem to understand why this happens....seems to me though that the ojc compiler has got a smaller memory footprint. Does anyone have any comments on this?
Currently I participate in a project targetted to Oracle 10g (9.0.4 - Versioning is the first reason :). I'am a survival consultant, because project is in critical situation. I've never used Oracle AS before (only JBoss, BES, Websphere, Weblogic), but my first impression (after 2 month) is AWFUL:
- The release is very buggy - each redeployment needs to restart server - otherway it will cause memory leaks or other unknown problems.
- OID (Oracle LDAP) can not be installed on the same machine with other Oracle application server. Moreover it requires 1GB of physical memory to run.
- If you made a mistake in app descriptors or configs - the best you can get is something like "Unable to start OC4J instance: cased by IllegalStateException ...".
- Documentation is suxx... I've got a feeling that document writers explore the features of Oracle AS and describe them as they understand, so each article solve the same problem VERY differently. Most of the samples I've ran need aditional bug fixing, several examples produced compile time errors.
- In order to turn on a feauture like SSO or Security LDAP Provider, you should patch 100 property and config xml files.
- I had to decompile jazn implementation in order to understand how the security subsystem works, and as far as I can judge this app server is developed by several teams, which don't know about existence of each other.
- The server has no development mode. I've compared Weblogic and Oracle running similar applications - and it seems to me that BEA's product is a lightweight container;)
I hope that 10.0.3 will solve the most irritating bugs, so this AS could be used for production and development.