Wednesday, May 27, 2009

My first incursion into Oracle SOA Suite 11g

That's it!

I worked 9 months with Oracle® SOA Suite 10g Release 3 (10.1.3.1.0) in a project of implementation of a shared services company for the areas of purchasing and logistics for hospitals and other providers of health care.

I'm a little bit excited with the new release, Oracle SOA Suite 11g, especially to discover what's new since acquisition of BEA, sooooooo I installed the preview version of the SOA Suite 11g software. The final version will only be available after Summer!

The installation step by step:

1. Create home directories and set the following environment variables:

Set these using Control Panel -> System -> Advanced -> Environment Variables

a) set JOH=c:\jdevtp4 – your JDeveloper unzip location – no spaces!
b) set JDEV_USER_DIR=c:\jdevinstance – no spaces!
c) set JAVA_HOME=c:\java – if using JDev base version, your Java SE 5 JDK– no spaces!
d) set BAM_OC4J_HOME=C:\ORACLE\OracleBAM_AS11 – your BAM OC4J home will be the same as your BAM home in this configuration – no spaces!

(Note: You can use any directory location or choose these sample locations but you must not have a space in the path!)

2. Download and install the Oracle Express Edition 10.2.0.1 (Oracle XE) - Oracle XE Server.

You can do this here: http://www.oracle.com/technology/software/products/database/index.html

Take a look at the installation guide here: http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25143/toc.htm#CIHHJEHF

3. If you are using XE, after installation you must increase the values of these parameters for SOA 11g to work properly

sqlplus sys/@XE as sysdba
SQL> show parameter session
SQL> show parameter processes
SQL> alter system set sessions=100 scope=spfile;
SQL> alter system set processes=150 scope=spfile;
SQL> shutdown immediate
SQL> startup
SQL> show parameter session

(Importante note: There's a problem here!!! After the shutdown, it returns an error like "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor".

What we have to do is to edit the "init.ora" file (C:\oraclexe\app\oracle\product\10.2.0\server\init.ora):

...

###########################################
# Processes and Sessions
###########################################
sessions=100
processes=150

...



Apparently the system starts the OracleServiceXE first, then starts the OracleXE_homeTNSListener, causing the database to not register automatically, so we must stop the services and restart them in the correct order:

net stop OracleXE_homeTNSListener
net stop OracleServiceXE

net start OracleXE_homeTNSListener
net start OracleServiceXE

Take a look here: http://www.mydatabasesupport.com/forums/oracle-server/86542-startup-problem.html

Problem solved! Don't waste more time... let's move on...)

4. Download the Oracle JDeveloper 11g Technology Preview 4 - (Build 4949) and unzip the JDeveloper zip file to c:\jdevtp4 (%JOH%).

You can do this here: http://www.oracle.com/technology/software/products/jdev/htdocs/soft11tp.html

(Note: This release is not feature complete!)

5. To enable the WebCenter and SOA extensions, modify the JDeveloper configuration file:

a) Exit JDeveloper 11g, if it is currently running.
b) Using a text editor, edit \jdev\bin\jdev.conf.
c) Remove or comment out the last line in the file that starts with "AddVMOption -Dide.noextensions=oracle.bam...".
d) Save the modified file.
e) Start JDeveloper.

6. Start JDeveloper by opening a command window and running the executable: %JOH%\jdev\bin\jdev.exe (This starts JDeveloper with a console window which shows informational and error messages).

The first time you start JDeveloper, you must respond to some configuration prompts:

a) Select java.exe in the %JAVA_HOME%\bin directory (no spaces in path).

b) User type: Default Role.

c) Want to migrate from a previous version of JDeveloper? NO.

d) DO NOT update JDeveloper!

7. Create the SOA infrastructure database schemas.

Open a command window to run these sql scripts:

> cd %JOH%\rcu\integration\soainfra\sql
> sqlplus sys/ as sysdba
@createuser_soainfra_oracle_all.sql jdev_soainfra
SYSTEM TEMP

> sqlplus jdev_soainfra/
@createschema_soainfra_oracle_all.sql jdev_soainfra (different login!)

8. Configure SOA to install the Integrated OC4J Server.

a) Set the proxy if necessary: In JDeveloper, select Tools -> Preferences, Web Browser and Proxy, enter the proxy information, and select Test Proxy.

(Note: Add your machine name to the host exceptions list - C:\Windows\system32\drivers\etc\hosts).

b) Set the correct server to be used: In JDeveloper, select Tools -> Preferences, Run, and then select Integrated OC4J Server.

c) Configure the SOA infrastructure: Select Tools -> Configure SOA… (Choose the Basic configuration option unless you want to use Oracle B2B. For Oracle B2B, please select the ‘Configure All’ option. Specify the database location and the SOA schema user name and password and test it).


9. Download and install the
Oracle BAM or Oracle B2B.

If you're going to use Oracle BAM read the following documentation: http://www.oracle.com/technology/products/integration/bam/index.html

If you're going to use Oracle B2B read the following documentation: http://www.oracle.com/technology/products/integration/b2b/index.html

10. Check the installation by starting the SOA Console in a browser: http://localhost:8988/SOAConsole.

You can see all this in the Oracle SOA installation guide: http://www.oracle.com/technology/products/ias/bpel/techpreview/soa11g_installation_tp4.pdf (It's quite the same! I just added some important notes.)

Next post will be about building an application using all of the components - the SOAHelloApp Application! Just to check the potencial of this new release... ;).

And the next one will follow the quick Start tutorial for the End-2-end PO Processing sample - an application to process and approve purchase orders. This application contains a database adapter, web services binding, Mediator ESB routing service, BPEL process and human task.

2 comments:

Monteiro said...

Oracle presented this suite and their next approach to take out the market. In other words, they're investing in open standards, so their main focus will not be only in databases but in the middleware (where it resides the organizational processes and a lot of the communication with other databases). So, in the future we will see oracle everywhere! not only in databases :)

llarafernandes said...

That's why Oracle bought Sun Microsystems ;).

Post a Comment