Showing posts with label oracle. Show all posts
Showing posts with label oracle. Show all posts

Tuesday, September 21, 2010

Installing Oracle on Ubuntu

Most of the applications we write here at CTP depend on an Oracle database.
After putting some effort on configuring our development environment for a new project and figuring out the process wasn't as straightforward as I expected, I decided to share my finding in this walkthrough.
It describes the steps required to install Oracle on a Ubuntu Server.

Prerequisites


The instructions apply to Oracle 11g (version 11.2.0.1.0) on an Ubuntu 10.04.1 Server Edition 64-bit.
Download Ubuntu's installation ISO from http://www.ubuntu.com/server/get-ubuntu/download and Oracle's ZIPs from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html.
A Windows environment is used as client. You will need the following tools:


Server configuration



Installation


Install Ubuntu in your server. In this example a virtual machine with 32 Gb of disk and 2Gb of RAM is used.
During the installation process, select the "SSH server" to be installed. To do it after installation, run:

sudo apt-get install openssh-server openssh-client

X Forwarding


You should configure PuTTY to forward the graphical applications from the Ubuntu server (the 'server') to your Windows workstation (the 'client'),
as the Oracle 11g installation depends on it.
Open PuTTY and enter the IP address of your server, give a name to the session and save it. Configure the following options:

  • In "Connection > SSH > X11", check "Enable X11 forwarding" and for "X display location" enter "localhost:0"

  • Go to the "Session" menu and save your session again, to persist the configuration changes.



Start the X server in your client computer before connecting to the server through PuTTY. In the programs menu, open "Cygwin-X" and run "XWin Server".
It may start a graphical terminal (XTerm) but you should close it, to avoid confusion. All you need is to keep the server running, indicated by the fancy X icon in the system tray.
Now you can establish the SSH connection. To test if the X Forwarding is properly configured, run xeyes in the server (if not found, run sudo apt-get install x11-apps) and you should see the eyes in your desktop.

Swap configuration


The amount of swap space required by the Oracle DB depends on the available RAM:

Available RAMSwap required
Between 1 and 2 Gb1.5 x RAM
Between 2 and 16 Gb1 x RAM
More than 16 Gb16 Gb

To check the existing configured space, run

$ free
total used free shared buffers cached
Mem: 2057836 181680 1876156 0 12268 91092
-/+ buffers/cache: 78320 1979516
Swap: 1417208 0 1417208

In this walkthrough I'm going to add 2Gb to the existing swap space.

# Creates a swap file, may take a while to execute
$ sudo dd if=/dev/zero of=/mnt/2Gb.swap bs=1M count=2048
# Activating the swap file
sudo mkswap /mnt/2Gb.swap
sudo swapon /mnt/2Gb.swap

To have the swap file mounted automatically after a reboot, add the following line to the /etc/fstab file:

/mnt/2Gb.swap none swap sw 0 0

Updating and installing dependencies



$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential libaio1 libaio-dev libmotif3 libtool expat alien ksh pdksh unixODBC unixODBC-dev sysstat elfutils libelf-dev binutils lesstif2 lsb-cxx rpm lsb-rpm gawk unzip x11-utils ia32-libs

Installing libstdc++ 5


Ubuntu comes with libstdc++ version 6, but Oracle requires version 5. To fix it:

$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
$ dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
$ sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64
$ cd /usr/lib64
$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
$ ls -al libstdc++.*
lrwxrwxrwx 1 root root 18 2010-09-17 14:19 libstdc++.so.5 -> libstdc++.so.5.0.7
-rw-r--r-- 1 root root 829424 2010-09-17 14:18 libstdc++.so.5.0.7
lrwxrwxrwx 1 root root 19 2010-09-14 12:05 libstdc++.so.6 -> libstdc++.so.6.0.13
-rw-r--r-- 1 root root 1044112 2010-03-27 01:16 libstdc++.so.6.0.13

Links update


Update the symbolic link /bin/sh from /bin/dash to /bin/bash.

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2010-09-14 12:05 sh -> dash
$ cd /bin
$ sudo ln -sf bash /bin/sh
$ ls -l sh
lrwxrwxrwx 1 root root 4 2010-09-14 14:19 sh -> bash

Some links need to be created as well:

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename

System users & groups


Change to root and create the following users and groups

ctp@oracle11g:~$ sudo -s
root@oracle11g:~# addgroup oinstall
Adding group `oinstall' (GID 1001) ...
Done.
root@oracle11g:~# addgroup dba
Adding group `dba' (GID 1002) ...
Done.
root@oracle11g:~# addgroup nobody
Adding group `nobody' (GID 1003) ...
Done.
root@oracle11g:~# usermod -g nobody nobody
root@oracle11g:~# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
root@oracle11g:~# passwd -l oracle
passwd: password expiry information changed.
root@oracle11g:~# mkdir /home/oracle
root@oracle11g:~# chown -R oracle:dba /home/oracle

Creating ORACLE_HOME



root@oracle11g:~# mkdir -p /u01/app/oracle
root@oracle11g:~# chown -R oracle:dba /u01

System parameters


Some Linux kernel parameters need to be modified, as specified in Oracle's installation guide. To do that, add the parameters below to the file /etc/sysctl.conf:

fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

The oracle user needs to have some shell limits increased by adding the parameters below to the file /etc/security/limits.conf:

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

Add the parameters below to the file /etc/pam.d/login:

session required /lib/security/pam_limits.so
session required pam_limits.so

Reboot the system to reload the configuration.

Oracle installation


From the directory you extracted the Oracle zip files, run database/runInstaller as the user oracle created above (see Unix Tips if you need help). You can ignore the DISPLAY warning, if any. If you receive an error regarding the X forwarding permission, use this remote X forwarding trick.

Installation options


The suggested installation options:

  • Create and configure a database

  • Server class

  • Single instance database installation

  • Advanced install

  • Enterprise Edition

  • General purpose/Transaction processing

  • Memory, Character sets, Security and Sample Schemas - as default


Run the fixup script following the instructions and then ignore the package dependencies.

To check if everything is ok, open the following address in your browser:

https://<server>:1158/em


Startup script


First, edit the file /etc/oratab or create one if you don't have it already. Make sure that the last parameter is "Y", meaning you want the database to be started during boot.

oracle:/u01/app/oracle/product/11.2.0/dbhome_1:Y

Now create the startup script /etc/init.d/oracledb.

cd /etc/init.d
sudo touch oracledb
sudo chmod a+x oracledb

Add the following content to the startup script

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Enterprise Manager

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_OWNR=oracle
export ORACLE_SID=oracle
export PATH=$PATH:$ORACLE_HOME/bin

if [ ! -f $ORACLE_HOME/bin/emctl -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/lsnrctl start
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/dbstart $ORACLE_HOME
sudo -u $ORACLE_OWNR -E touch /var/lock/oracle
# Oracle enterprise manager startup
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/emctl start dbconsole
echo "OK"
;;
stop)

echo -n "Shutdown Oracle: "
# Oracle enterprise manager shutdown
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/emctl stop dbconsole
# Oracle listener and instance shutdown
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/lsnrctl stop
sudo -u $ORACLE_OWNR -E $ORACLE_HOME/bin/dbshut $ORACLE_HOME
sudo -u $ORACLE_OWNR -E rm -f /var/lock/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac

exit 0


To execute the script automatically during server startup:

sudo update-rc.d oracledb defaults 99


General tips n' tricks



Unix tips


Open a shell as anoter user:

sudo -u <username> -s


Remote X session config



$ xauth list
oracle/unix:10 MIT-MAGIC-COOKIE-1 a18621a7bf2c102fc2b27758007b56a0
# Copy the line returned above
sudo -u oracle -s
export HOME=/home/oracle
# Paste the copied line after xauth add
xauth add oracle/unix:10 MIT-MAGIC-COOKIE-1 a18621a7bf2c102fc2b27758007b56a0


References


Thursday, May 20, 2010

JavaOne 2010 and Oracle OpenWorld 2010

... or "Oracle acquired the city of San Francisco":
This year is the first year of JavaOne under the umbrella of Oracle and it takes place in the same city and the same week as Oracle OpenWorld: September 19th - 23rd in San Francisco.

You may ask how Oracle can host two conferences of that size at the same time in the same city: Moscone Center (for me the home of JavaOne) is now the home of Oracle OpenWorld whereas JavaOne has been relocated to the so called "The Zone" consisting of three large hotels, all near Union Square (see red markers in the following map):


View JavaOne 2010 in a larger map

Registration is open for both conferences and both do offer a discount at this moment when registering within the next few weeks.

If you go to JavaOne for the first time you might want to compare it with last year's conference where it was hosted by Sun Microsystems for the last time:

We (the CTP Java Competence Group) are very curious how both conferences will present themselves in this new Java era led by Oracle.

Friday, October 30, 2009

Portal Update November 2009 and Java Buzz

After a busy summer I think it is absolutely necessary to summarize the latest updates in the Java Portal space.

From the commercial side, major players are:
  • Oracle WebLogic Portal:
    The current release is still WLP 10g3 but soon we expect the first 11g release with codename "Sunshine".
    Major improvements are
    - JSR-286 compliance (Portlet 2.0)
    - WSRP 2.0 support (Event based coordination, IPC for remote portlets, resource serving)
    - Full interoperability with WebCenter in both directions
    - Improved Ajax support
    - VCR Direct SPI Support for UCM
    - Even more REST APIs to access portal informations
    - New REST API to access Unified User Profile data
    - First support of the new Content Management Standard driven by Oasis: CMIS
    - Apache Beehive still supported but not enhanced
    - Replacement of Autonomy Search Engine by SES

    The REST API Architecture in WLP 11g:




  • Oracle WebCenter Suite 11g R1:
    WebCenter Suite includes the formerly known product AquaLogic Interaction by BEA, now called WCI, WebCenter Interaction. Download it here.

  • Adobe: Adobe? Yes... Since the new release of Adobe ColdFusion 9, there is a new portal player to be considered when it comes to interoperability based on JSR-168/286 portlets. ColdFusion 9 is now fully compliant with the Portlet Containers from the Java world.

  • IBM WebSphere Portal 6.1: no updates.
Open Source portals that have the most promising potential at the moment are:
  • JBoss Portal and eXo Portal have been merged!



    This latest interesting announcement has been made official on Sep 3rd at the JBoss World in Chicago. eXo has fully committed its entire open source portal stack to Red Hat’s newly introduced GateIn portal project extending it with cutting-edge collaboration features as well as document and content management features.

  • Liferay Portal 5.2: no major updates since last post.

  • SUN continues to offer the Web Space Server based on the Liferay Portal source code. No major updates besides a brand new white paper.

  • JBoss Portal 2.7.2:
    - Since June 2009, JBoss fully focused on the new project GateIn

  • eXo Portal 2.5.1: no updates besides GateIn announcements

  • Jetspeed 2.2.0: After quite a long time without updates a new version has been released (summer 2009) that is fully JSR-286 compliant! The new version comes along with quite a bunch of updated documentation pages... So it would be worth to have a look at it again. Download it here.
Besides the Portal related activities, let's have a look on Java related quick news:
  • Java EE 6: The JSR-316 has reached Proposed Final Draft. The hot discussions between JSR-299 vs JSR-330 have finally found a common resolution and both will be part of EE6 where JSR-299 will be based on the dependency injection specification defined by JSR-330.
  • Oracle has still not acquired SUN : The OK from EMEA is still pending.
  • JSF 2.0 : Mojarra 2.0, the production-quality, reference implementation for JSF 2.0 is out! This will of course be part of GlassFish v3 (final release planned for Dec-12th 2009) but you can grab the bits right now for your first dirty hands-on experience!
  • IntelliJ IDEA is now available in two editions. The Community Edition (JavaSE-focused) is now Available under OpenSource at JetBrains.org
  • Geek Food: I discovered mainly two new things that I found diserve a Geek award:
    - Prezi ! Forget PPT and Google Presentations... Old school!
    - Play ! Clean alternative to develop JavaEE apps based on RESTful architectures.
  • Google Wave: I finally got an account (thanks a lot J. !!) but up to now I'm rather disappointed... nonetheless, the full features are not released yet, so I'm ready to get blown away. If you are interested, I still have some invitations left :-) Start your wave!
  • JavaOne 2010 : ... no, still no signs whether there will be a next JavaOne :-(

Wednesday, October 21, 2009

Oracle WebLogic Server Versions

I recently got confused with the version numbers of the Oracle WebLogic Application Server, some people use the internal (BEA) version number, some refer to the Oracle release number.

So the following list should clarify the mapping between these two versioning schemes:
  • WLS 10g3 (10.3.0) : recent version but used by latest WebLogic Portal 10g3
  • WLS 11g R1 (10.3.1) : current version
  • WLS 11g R1 PS1 (10.3.2) : upcoming patchset version planned for Nov/Dec 2009
  • WLS 11g R1 PS2 (10.3.3) : another patchset anticipated March / April 2010

  • WLS 11g R2 : Planned for 2010. I haven't found any relation to a 10.x version at this moment.
    Oracle OpenWorld 2009 Updates: WebLogic Server 11g R2 in 2010 will get Oracle RAC and Coherence integrated to make them native in the application server. WebLogic Server will get RAC event awareness, providing fast connection and fail over, while Coherence will be managed as part of WebLogic - currently it's an external application.
  • WLS 12g : Planned for 2011. I assume this will be the Java EE 6 compliant release along with the release of all other Fusion Middleware 12g products.
Comments are welcome!

Friday, January 30, 2009

Portal Update January 2009

After the snowy december we are back with new posts this year and we are looking forward to an interesting year! Java EE 6 is the late christmas present for many of us Java aficionados and it is going to be released probably around JavaOne in June...

In the portal corner, the following was important this month:
  • SUN: no updates

  • Liferay:
    - One UI to rule them all: Check out this introduction of a new management console in Liferay Portal. This portal product is definitely going to be more and more interesting among the free portal products!

  • Oracle:
    - Oracle Fusion Middleware Radio has released some talks about portal product roadmaps. No much news if you followed all our portal updates so far ;-). But if you are interested in to listen to them, here they are:
    Oracle WebLogic Portal Roadmap (formerly BEA WebLogic Portal)
    Oracle WebCenter Interaction Roadmap (formerly BEA AquaLogic User Interaction)
    Oracle Portal
    Roadmap

  • JBoss:
    - Release of JBoss Portal 2.7.1 which is a maintenance release for the 2.7 series that support JSR-286 portlets. The detailed release notes can be found here.
    - The JBoss Portlet Bridge has reached Beta 6 and it integrates Seam and RichFaces. Documentation on this Beta release can be found here.
    - Next-Gen Identity API for JBoss Portal is in public review. Check their documentation here.

  • eXo:
    - eXo Portal 2.5.1, a maintenance release, is now available and has finalized its support of Right-To-Left languages like arabic. See video here.
    - eXo Portal and Spring Security: This is a very nice documentation released in January about how to integrate Spring Security 2.5.x into eXo Portal.

  • Other portal and Java related quick news:

    Jan-26: JSR-299: WebBeans is dead. Long live Java Contexts and Dependency Injection!

    Jan-23: Java EE 6 has gone Public Review!
    - WebBeans (Gavin King, JSR 299, @TA )
    - Bean Validation (Emmanuel Bernard, JSR 303, @TA )
    - JSF 2.0 (Ed Burns & Roger Kitain, JSR 314, @TA )
    - Servlet 3.0 (Rajiv Mordani, JSR 315, @TA )
    - JPA 2.0 (Linda DeMichiel, JSR 317, @TA )
    - EJB 3.1 (Ken Saks, JSR 318 @TA )
    - JCA 1.6 (Binod PG & Sivakumar Thyagarajan, JSR 322, @TA )

    Jan-18: Performance Analysis: VisualVM 1.1 has been released!
    Dec-16: JBoss Application Server 5.0 has gone GA. So JBoss has finally joined the list of "Java EE 5 Compatible Implementations".

  • NetBeans:
    - Portal Pack 3.0 Beta is now available
  • IBM: no portal news
  • Eclipse: no portal news
  • IntelliJIDEA: no portal news

Friday, November 28, 2008

Portal Update November 2008

Another month has passed, year end is close so let's see what happened this month in the portal space:
  • SUN:
    - WebSynergy Milestone 3 Release! This is the last milestone release before the upcoming commercial release. Enhancements are mainly in documentation, integration between Liferay and WebSynergy.

  • JBoss:
    - JSR-286 Portal: Release 2.7 has been released on Oct 30th, right after I posted last month's summary ;-) This release supports all features specified by the Portlet 2.0, namely Public Parameters, Portlet Resource Serving, Portlet Filters, Portlet Coordination and provides some additional features not actually specified by JSR-286.

  • eXo:
    - eXo Portal 2.5 beta released: Fully JSR-286 compliant, supports Google Gadgets and comes with an integrate Gadget Repository
    - At DevFest in Bangkok, eXo announced a new product called eXo Social. It is consisting of two modules, eXo People and eXo Spaces, both running on top of eXo Portal 2.5. Both modules feature API based on OpenSocial and will bring social networking closer to the enterprise!
    The release of eXo Social 1.0 is targeted for January 2009.

  • Oracle (BEA):
    In some Oracle Open World 2008 slide decks I picked up these interesting statements:

    WebLogic Portal (WLP):
    - The whole WSRP framework of the WebLogic Portal will be integrated into WebCenter
    - WebLogic Portal's VCR (Virtual Content Repository) will also be integrated into WebCenter
    - Supported Content Management APIs in next year's releases of Oracle's portal products will be focused on JSR-170, REST and the recently announced new standard from OASIS called CMIS (announced Sept 10th 2008, involved companies are SUN, Microsoft, IBM, Oracle, Alfresco)
    - Next release (11g) has codename "Sunshine"

    AquaLogic User Interaction (ALUI):
    - Fully part of WebCenter Suite and WebCenter Services, means:
    - ALUI Blogs/Wikis and Tagging have been integrated into WebCenter Services
    - ALUI Collaboration and Interaction Mgmt have been integrated into WebCenter Suite
    - Next release (11g) has codename "Neo"


  • Other portal and Java related quick news:
    - Dec-10: Devoxx is already sold out! ;-) (fka JavaPolis, Javoxx)
    - Dec-02: SUN announced that JavaFX Desktop should be released!
    - Nov-27: JPA 2.0 released (public review)
    - Nov-19: NetBeans 6.5 is out
    - Nov-11: SpringSource acquires G2One (Groove and Grails specialists company)
    - Nov-08: Seam 2.1 supports GlassFish v2
    - Nov-06: GlassFish v3 Prelude released! Together with the OpenPortal Portlet 2.0 Update 1 and OSGi, RESTful Web Services, support for Rails and Grails, and technology previews (JSF 2.0, JAX-RS 1.0, EJB 3.1)
    - Nov-05: JSR-299 WebBeans released (public draft)
    - Nov-03: Metro 1.4 released ( = WSIT 1.4 + JAX-WS RI 2.1.5 + JAXB RI 2.1.7)
    - Oct-31: GlassFish includes EclipseLink as its default JPA implementation

  • IBM: no portal news

  • Eclipse: no portal news

  • NetBeans: see quick news above

  • IntelliJIDEA: no portal news

Tuesday, September 30, 2008

Portal Update September 2008

Despite autumn degrees start dropping, portal updates don't get freezed:
  • SUN presents Mango*: Traditionally when we talk about the FOSS stack (free open source software), the first thing that still comes to mind is the LAMP/SAMP stack (Linux/Solaris, Apache, MySQL, PHP/perl/pyhton).
    While LAMP/SAMP has been very successful for lots of Internet based businesses (e.g. Facebook), it may not be enough for enterprises looking for advanced middleware features found in commercial products (like JavaEE5 features in general, Portals, SSO, etc.).
    Along with the evolution of Java based open source products, SUN positions certain bundles to build the official successor of FOSS:
    MANGO* (MySQL And Netbeans, Glassfish and an Open*-Glassfish product) can be seen as the next generation FOSS stack or FOSS 2.0 which brings reliable, scalable and open software to the enterprise. So with the OpenPortal project, there is a strong OSS portal stack ready as a Mango... nice!
  • SUN: WebSynergy Community Build 5 has been released at the end of this month! Updates are: WSRP 2.0 improvements, jBPM integration into SAW and first functionalities of SWA (Secure Web Access, originally packaged with OpenPortal).
  • SUN: Netbeans 6.5: Portal Pack 3.0 M1 has been released. It supports WebSynergy Stable Build 2, and has provides tooling for the following:
    - Non-Java portlets: Groovy, Ruby and PHP
    - SAW-Plugin included (Simple API for Workflow)
    - The plugin for the JCR based Mirage product is also included

  • eXo:
    - People News: Sep 8th: former JBoss portal project lead Julien Viet starts as new eXo Portal Product Manager with focus on portlet container and JCR.
    - They announced a new release for september including GWT application support in the eXo Portal. I have not seen such a release this month, so if I missed it, let me know. Otherwise I'll post it next month.

  • JBoss:
    - JBoss released JBoss Portal 2.7.0 CR1
    - JSR-286 Portlet Coordination: a very good post about how JBoss Portal has implemented this new Portlet 2.0 feature.

  • Oracle (BEA)
    - WebLogic Portal 10g3: On Sep 16th, Oracle has released Oracle WebLogic Portal 10g3 for download. It is pretty much like WLP 10.2 with the major difference that it runs on WebLogic Server 10.3. The codename for this release is Sunrise.
    - WebCenter Interaction (formerly known as BEA ALUI): No news during this month.
    - Oracle seeds the cloud: At Oracle OpenWorld, Oracle announced that it will certify/support deployments of Oracle Database (all editions), Oracle Enterprise Linux, Oracle Enterprise Manager and Oracle Fusion Middleware (and therefore WLP and WebCenter Suite) to Amazon Web Services' (AWS) Elastic Compute Cloud (EC2). In fact you may transfer your existing licenses to AWS if you like. Oracle is also providing free Amazon Machine Images (AMIs) in that environment, so you can get up and running on a full Oracle-on-EC2 environment in minutes.
    - Oracle Beehive: At OpenWorld 2008, Oracle announced Oracle Beehive (for the developers: this is NOT Apache Beehive): "Oracle Beehive is the solution to cure the present communication fragmentation", said Oracle President Charles Phillips and continued: "The goal is to take a company's setup, in which various communication and collaboration software applications from a number of vendors are running on an army of servers, and integrate the offerings into one Beehive system."

    Architecturally, it is an open, secure, scalable and standards based Collaboration Platform providing all collaboration features through web services (using WSDL, SOAP, WS-Security based on SAML). The core of the platform is based on an event-driven architectural style which allows easy logic implementations for certain events (like "customer got an email"). Content-wise the platform features a JSR-170 compliant interface for document accesses as well as interfaces for protocols like IMAP and SMTP (mail), WebDAV (documents), CalDAV (calendar events), XMPP (instant messaging).

    Beehive has been quoted already as "Oracle's answer to Microsoft's Sharepoint, but with real enterprise readiness".
    However the uphill battle in the collaboration market will look like, I wonder how Oracle will position it with the feature-overlapping WebCenter Suite (which includes collaboration components of BEA ALUI already). It probably addresses a different business need (e.g. build collaboration platform from scratch or from existing).

  • IBM: no updates for September:
    - still WebSphere Portal Version 6.1 with a couple of extension modules, called portal accelerators
    - WebSphere Portals can be tried out without installation at IBM's Greenhouse

  • Vendor agnostic:
    - CTP: Our collegues from the Advisory Solutions have posted a nice overview on enterprise portals in the future.
    - As indicated in last month's post, InfoQ has now posted all three articles about writing portlets using JSF, Ajax and Seam deployed to JBoss Portal: Part 1 , Part 2 and Part 3.

Monday, August 25, 2008

Oracle WebLogic Server 10g R3 Summary [WLS 10.3]

Introduction
Since the acquisition of BEA, Oracle releases BEA's WLS for the first time under the new brand Oracle WebLogic Server. Besides the new technical features discussed in this article, also notice the slightly modified name of the product from "10.3" to "10g R3". The codename of this release remained unchanged: ESSEX.
You can download it from this page.
Under Developer Tools at the bottom of the page, you can download the bundle WLS + Workshop 10.3 (even though the .exe file for Windows is still called server103_win32.exe, nothing about bundle or platform).

New Features

Admin Console
  • On-Demand Deployment:
    So far, internal
    applications like the WebLogic Administration Console, the UDDI and its explorer web app have been deployed at startup time (WLS 10.0).
    Now you can specify that such internal applications are only loaded at first access (on demand).
  • Console Configuration Search:
    You can now search for configuration values across the whole WebLogic Domain.
  • Security:
    Now supports SAML2
  • Spring Console:
    The WebLogic Console has been extended to inspect Spring Beans and manage them. As this feature is bundled as Console Extension, you need to enable it first via the preferences tab in the console (spring-console.jar) or you put the JAR file into the autodeploy folder $BEA_HOME\wlserver_10.3\server\lib\console-ext\autodeploy.
  • Guardian:
    Is now included in the WLS but disabled by default. Enable it via Domain Structure (left menu) and then Oracle Guardian Agent (to the right side)
Core Server
  • JDK 1.6 Support:
    A performance boost of about 10% can be expected compared to JDK 1.5 (which is still supported with this release but not recommended as primary choice)
  • Scripting Support:
    Web container supports multiple scripting languages, such as PHP, Groovy, and Ruby. For more information, see JSR 223: Scripting for the Java Platform.
  • Lightweight Server Runtime:
    WLS 10.3 provides two different runtime configurations: WLS or WLX.
    They are select via JAVA_OPTION -DserverType=“wlx” or "wls".
    BEA announced the "micro Service Architecture ( mSA ) " at BEA World 2006 and it seems that it took 'til now to really bring that architecture approach into their products.
    The default mode is WLS which loads all services internally. If WLX is selected, EJB, JMS and JCA is NOT loaded which results in a much smaller memory footprint as well as some performance boost at startup time.
  • FastSwap:
    The reloading of classes by class loaders (hot swapping, hot loading, hot classloading, hot deployment, etc.) without the need of a full web application redeployment is still not fully solved to satisfy today's developer needs that very often complain about the time wasted waiting for a redeployment.
    While JDK 1.5 brought the hotloading feature already but with certain limitations (works as long as class variables and method signatures have not changed), WLS 10.3 eliminates those to a certain extent:

    Limitations: The following changes are not supported by FastSwap:
    - Changing the list of implemented interfaces or the superclass
    - Changes to the class' annotations (as this is solved via Reflection)
    - Changes of EJB interface methods
    - Changes of Enum based constants
    - Addition or Removal of a finalize method
    - Only available in "Development Mode"
    - In general all Java Reflection based features are not supported by FastSwap (there is a commercial product available that does not have this limitation: Java Rebel 1.0 (might be aquired by Oracle soon ;-)

    Said in a nutshell how FastSwap works:
    If enabled via weblogic-application.xml (configure the item true), there is a agent running in the JVM for each deployed web app which scans the following directories for new classfiles (based on the timestamps):

    earApp/APP-INF/classes
    earApp/webapp/WEB-INF/classes

  • Additional to the EJB3 annotations, the following are supported when Kodo is used as Persistence Provider:

Annotation
Description
@AllowRemoveDuringTransaction
Flag that specifies an instance can be removed during a transaction.
@CallByReference
Flag that specifies the parameters are passed by reference.
@DisableWarnings
Flag that specifies all warning messages are disabled.
@Idempotent
Number of times you want the EJB container to automatically retry a container-managed transaction method that has rolled back.
@JMSClientID
Client ID for the MDB when it connects to a JMS destination. Required for durable subscriptions to JMS topics.
@JNDIName
JNDI name of an actual EJB, resource, or reference available in WebLogic Server.
@MessageDestinationConfiguration
JNDI name of the JMS Connection Factory that a message-driven EJB looks up to create its queues and topics.
@TransactionIsolation
Method-level transaction isolation settings for an EJB.
@TransactionTimeoutSeconds
Timeout for transactions in seconds.

Application Development
  • Spring Security:
    The Spring security (acegi) provides security to a Spring application while providing a rich set of security providers.
    In order to combine JAAS based security providers with your Spring Security features, you can use any authentication provider for performing authentication.
    After successful authentication, WLS principals are converted to Spring GrantedAuthority through a mapper class. After than, Spring Security is performing the authorization phase.

  • Comet, Bayeux Protocol, HTTP Publish Subscribe Server:

    Overview

    Since 10.3, developers of Web 2.0 applications can take advantage of this new feature:
    The HTTP Publish-Subscribe Server allows clients to subscribe to a channel (similar to a topic in JMS) and receive messages as they become available. Behind the scenes, the Bayeux Protocol is used which defines a contract between the client and the server for communicating with asynchronous messages over HTTP. The server-side push technology is called Comet.

    How to use
    Each web application has its own instance of a pub-sub-server so the configuration is on web app level: the web app's weblogic.xml descriptor references the shared Java EE Library of the pub-sub-server and enables it that way. Once enabled, the configuration is done in the weblogic-pubsub.xml.

    Web application developers can optionally use server-side pub-sub APIs in their servlets or Java classes to get the pub-sub server context, manage channels, and manage the incoming and outgoing messages to and from the clients.
    If Ajax clients need to interact with the WebLogic based web application via the pub-sub-server, WLS 10.3 provides a Dojo based java script library that support two out of four transport types: long-polling and callback-polling.

    Scalability:
    Horizontal scalability is solved by clustering. Pub-Sub-Servers are per default using in-memory persistence, are kind of clusterable but isolated. This means that each runs in its own context and is not aware of others (e.g. a chat application does not broadcast the message to all members in the cluster).
    But WLS 10.3 allows you to configure JMS to be the persistence message provider for the pub-sub-server. Configuration details and limitations are documented in the official documentation.

Supported Frameworks
  • Spring 2.0.2
Supported Databases
  • MySQL 5.x
  • Oracle 9,10,11 and Oracle RAC 10g and 11g
  • Pointbase 5.6
  • Sybase 12.5.03 and 15
  • Microsoft SQL Server 2005

Java Standard
Version
Java EE
5.0
JDKs
1.6 and 1.5 (1.6 is 15% faster)
Java EE Enterprise Web Services
1.2, 1.1
Web Services Metadata for the Java Platform
2.0, 1.1
Java API for XML-Based Web Services (JAX-WS)
2.1, 2.0
Java EE EJB
3.0, 2.1, 2.0, and 1.1
Java EE JMS
1.1, 1.0.2b
Java EE JDBC (with third-party drivers)
4.0, 3.0
MS SQL jDriver
1.0
Oracle OCI jDriver
1.0 and some 2.0 features (batching)
Java EE JNDI
1.2
OTS/JTA
1.2 and 1.1
Java EE Servlet
2.5, 2.4, 2.3, and 2.2
Java EE Application Deployment
1.2
Java Authorization Contract for Containers (JACC)
1.1
Java EE JSP
2.1, 2.0, 1.2, and 1.1
RMI/IIOP
1.0
JMX
1.2, 1.0
JavaMail
1.2
JAAS
1.0 Full
Java EE CA
1.5, 1.0
Java EE JSF
1.2, 1.1
Java EE JSTL
1.2, 1.1
JCE
1.4
Java RMI
1.0
JAX-B
2.1, 2.0
JAX-P
1.2, 1.1
JAX-RPC
1.1, 1.0
JAX-R
1.0
SOAP Attachments for Java (SAAJ)
1.3, 1.2
Streaming API for XML (StAX)
1.0
JSR 77: Java EE Management
1.1
JSR 233: Java EE Management
JSR 223: Scripting in the Web Container: PHP, Ruby
1.1
1.0

Web Service Standard
Version
Java EE Web Services
1.2, 1.1
Web Services Metadata for the Java Platform (JWS)
2.0, 1.0
Java API for XML-Based Web Services (JAX-WS)
2.1
SOAP
1.1, 1.2
WSDL
1.1
JAX-RPC
1.1
SOAP Attachments for Java (SAAJ)
1.3, 1.2
WS-Security
1.1, 1.0
WS-Policy
1.2, 1.5
WS-SecurityPolicy
1.2
WS-PolicyAttachment
1.0
WS-Addressing
1.0, 2004/08 member submission
WS-ReliableMessaging
1.1, 1.0
WS-Trust
1.3
WS-SecureConversation
1.3
UDDI
2.0
JAX-R
1.0
JAX-B
2.1, 2.0
SAML
2.0
SAML Token Profile
1.1


Other Standard
Version
SSL
v3
X.509
v3
LDAP
v3
TLS
v1
HTTP
1.1
SNMP
SNMPv1, SNMPv2, SNMPv3
xTensible Access Control Markup Language (XACML)
2.0
Partial implementation of Core and Hierarchical Role Based Access Control (RBAC) Profile of XACML
2.0
SAML
1.1, 2.0
Data Direct database drivers
3.7

Wednesday, July 2, 2008

Summary of Oracle Fusion Middleware Strategy Webcast of July 1st 2008

While I read through several infos about yesterday's webcast, I took some notes and want to share the summary here. Give me feedback should there be missing infos or even wrong infos.

  • Strategy: Oracle President Charles Phillips says that the acquisition of BEA is not "yet another one". Reason: BEA was leader in middleware and well positioned in China market. On top of that, BEA's products are very much complementary to Oracle's.
  • And, among the three product pillars "database", "middleware" and "applications", middleware is the fastest growing at the moment, and probably in the next few years.
  • Product Support: All BEA products will continue to be supported under the same time lines previously published by BEA prior to its acquisition.
  • Product Categories: are divided into three categories from a strategic product point of view: "Strategic Product", "Continue & Converge" and "Maintenance"
  • "Strategic" means: immediate integration into Oracle's Fusion Middleware Stack offering. If a BEA product has been selected as "strategic", it means that the BEA product is taken as such. The corresponding Oracle product (if there is any) is integrated into the BEA product (Integration Path: Oracle -> BEA).
  • "Continue & Converge" means: BEA products in this category need some redesign with gradual integration into the Fusion MW Stack (so there the integration path is BEA -> Oracle); products are supported for at least 9 years
  • "Maintenance" means: patches only, product phases out, support for at least 4 or 5 years
  • WLS has become the strategic JEE container, but OC4J development is kept ongoing (reason unknown). Primary focus for next WLS version is OSGi integration.
    WLS is now called Oracle WebLogic Server and is bundled with JRockit and WebLogic Operations Control as Oracle WebLogic Suite.
    It is also interesting that WLS is moving from openJPA / Kodo to TopLink / EclipseLink which is the same persistence layer technologies as in SUN's Glassfish (v2 and v3).
  • JRockit (BEA / Intel JVM) is strategic.
  • SOA: BEA's ALSB and Oracle's ESB are converged into a new product called Oracle Service Bus (OSB), also strategic.
  • SOA Governance: AL Enterprise Repository (ALER) is rebranded into Oracle SOA Governance Repository. The existing Oracle Service Registry is kept as the UDDI product.
  • BPM: ALPM and Oracle BPEL Process Manager are merged into a new product called "Oracle BPM", also strategic.
  • Portals: Oracle's existing products "WebCenter Framework" and "WebCenter Suite" are continuing to be the strategic products in the portal space.
  • AL-Pathways and AL-Ensemble as such are categorized as "Maintenance", but the RESTful APIs of those are converged into WebCenter Suite.
  • Monitoring: BEA Guardian is integrated into Oracle Enterprise Manager
  • Product Downloads: Technical Previews of BEA products are no longer public. This means that for instance WLS 10.3 TP2 must be requested through partner sites (I will check what that really means).
  • BEA Communities such as Dev2Dev and Arch2Arch are migrated to OTN: http://otn.oracle.com/
  • IDEs: Oracle's JDeveloper is going to be the primary IDE. Besides that, Oracle will publish an "Oracle Eclipse Plugin Pack", kind of continuing the BEA Workshop roadmap.
  • Conferences: Oracle Open World 2008 Sep 21-25 in San Francisco (BEA World is now integrated into this), Oracle Develop Program (dev2dev conference is now integrated into this)
  • Original Webcast PDF