Archive

Archive for the ‘Service Bus’ Category

Configuring SOA Infrastructure for SOAP optimization

July 29th, 2010 PeterPaul No comments

SOA Infrastructure Common SettingsIn the 10g release of Oracle SOA Suite you could set properties to instruct web service calls to go via SOAP or not. If you were calling services on the same server or domain you could gain some performance with a native call and avoiding the SOAP overhead. To do this you would set the optSoapShortcut property.

With SOA Suite 11g on WLS SOAP optimization is automatically configured. In the scenario where you upgraded to 11g R1 and are using this optimization shortcut approach, you should specify the Server URL in the SOA Infrastructure Common Settings. Optimized calls are only active when the host name value (referred to as WSDL URL in the composite.xml) matches the Server URL.

To configure the SOA Infrastructure Common Settings choose from the SOA Infrastructure Menu > SOA Administration > Common Properties. As shown in the screenshot. Other access ways to this configuration screen are described here.

Set the Server URLEnter the server URL in the Server URLs section. This URL is published as part of the SOAP address of a service in the concrete WSDL file. Either set both values to the host name (for example, myhost) or to the full domain name (for example, myhost.domain.com). If these values do not match, a regular SOAP call is performed instead of an optimized local call.

One of the scenarios that you have to set the Server URL in order to use the optimized local call is after a migration of AIA to AIA 11g R1.

Restart a failed AIA 11g R1 installation

July 8th, 2010 PeterPaul No comments

In this blogpost I’ll share some steps you can take to get your AIA 11g R1 installation back on track. If you do not perform the Pre-Installation Configurations as described in the Foundation Pack 11g Release 1 (11.1.1.2.0) Installation Guide (available as partnumber E17949-01 via eDelivery), it is possible that your AIA installation fails. After checking the pre-installation configuration it is possible to start the installation again if you follow these steps:

  1. Navigate to /user_projects/domains/ and delete the edit.lok file.
  2. Delete any file located in /user_projects/domains//pending
  3. Log into the weblogic console and activate all the changes.
  4. Restart SOA Suite and Weblogic domain.
  5. Press retry button on the installation screen

If the installation screens are no longer available because you closed them, use the log files to figure out what targets haven’t been performed yet and run these targets (in the sample case below it were Deployments and PostInstallScript):

Move to the /aia30/aia_instances/aia30poc/bin and source ./aiaenv.sh.

ant -f /aia30/Infrastructure/Install/AID/AIAInstallDriver.xml -DDeploymentPlan=/aia30/config/FPInstallDP.xml -DPropertiesFile=/aia30/config/AIAInstallProperties.xml Deployments

ant -f /aia30/Infrastructure/Install/AID/AIAInstallDriver.xml -DDeploymentPlan=/aia30/config/FPInstallDP.xml -DPropertiesFile=/aia30/config/AIAInstallProperties.xml PostInstallScript

SOA Suite 11gR1 PS2 notes and blogs

June 17th, 2010 PeterPaul No comments

In the blogpost on the release of SOA Suite 11gR1 PS2, I mentioned a link to the documentation index. Since it hasn’t been update by now, I suggest you go to the middleware documentation page. This page is more up to date and has the link to the web library and download address (Alert! approx. 860 MB) of E14571-01 – the Fusion Middleware Online Documentation Library 11g Release 1 (11.1.1.3.0).

SOA Suite 11gR1 PS2 installation notes

Besides the reference in the documentation library to the Install Guide and the Quick Install Guide, there are several blogs describing the installation of 11.1.1.3. Which is actually a patch on 11.1.1.2:

SOA Suite on Amazon EC2

This week it was announced that BPM 11g R1 is available as an Amazon Machine Image (AMI). This AMI includes SOA Suite 11gR1 Patchset 2 and JDeveloper with the SOA and BPM extension. In AWS filter on 64-bit and put soa-bpm in the search box. This should enable you to find oracle-soa-bpm-11gr1-ps2-4.1-pub. Some of the tips I posted on x SOA Suite in the cloud could be useful here as well.

Running SOA Suite 11g on your workstation

May 19th, 2010 PeterPaul 2 comments

Fusion Middleware 11gThere are several advantages when working in a project with Oracle SOA Suite to have a local installation of the SOA Suite on your workstation. While developing and trying bits of code you can’t break other peoples work as you can on a central server. Running FMW 11g on a workstation with say memory on the low end of the spectrum can be challenging. In this blog I’ll show you some additional (to this previous post) measure that my blogless colleague Rob Heikoop came up with.

Rob came up with two things:

  • Use only one Domain in WLS. You’ll have to combine the admin en the SOA_domain. Running just one domain saves memory.
  • Keep the database centralized. In the central database each developer has it’s own SOA schema that is especially created for him. To do this run the RCU for every developer and use the prefix to reflect for example the developers initials (example of using RCU on slideshare). Not running the database on your workstation saves memory and CPU.

In order to have new developers being able to use this quickly we copy the reference installation (with plug-ins, patches and the works) and alter the configuration:

  • Alter the scripts in the C:\Devel\SOAMiddleware\user_projects\domains\soa_domain\bin directory to reflect your workstation name instead of that of the reference machine. You can do this easily by using an editor like Notepad++ and use Search > Find in files > Replace in files. Otherwise you’ll be stopping your teammates server…. (again sorry Rob)
  • Change the configuration files in C:\Devel\SOAMiddleware\user_projects\domains\soa_domain\config\jdbc to reflect the prefix created especially for you while using the RCU. Again Notepad++ can help you here.

Now you can start the tools:

  • WebLogic Server: C:\Devel\SOAMiddleware\user_projects\domains\soa_domain\bin\startWebLogic.cmd
  • JDeveloper: C:\Devel\SOAMiddleware\jdeveloper\jdeveloper.exe

SOA Suite 11gR1 PS2 released

April 28th, 2010 PeterPaul No comments

Previous I mentioned a preview of the 11g R1 PS2 new features. Here are a few links for this new release – 11.1.1.3.0:

Existing PS1 users simply apply the patch to upgrade to 11.1.1.3.0.

Other releases

Running SOA Suite on Amazon EC2

March 18th, 2010 PeterPaul No comments

SOA Suite on EC2

SOA Suite on EC2


One of the things on my To Do list was to move my local SOA Suite 11g R1 to The Cloud. It seemed a good idea to save my laptop some resources (to spare some for JDeveloper) with only a limited investment. Besides that it can be a good way to demo applications, and work together with my colleagues on these demos.


During the last months I noticed that there are several good blogpost on the subject. In this post I’ll show you the ones I used and provide some additions to them.

Setting up Amazon Web Services (EC2 and S3)

This arcticle on OTN guided me while signing up for:

  • Amazon AWS
  • Amazon S3 – Simple Storage Service
  • Amazon EC2 – Elastic Compute Cloud

and to setup PuTTY. The only hick-up here was that I’m using the PortableApps version of PuTTY that doesn’t come with the puttygen – Key Generator.

Provisioning a SOA Server on Amazon EC2

This blogpost guided me in the provisioning of the AMI (Amazon Machine Image).

  • AMIs are per region: The Amazon Machine Instance (AMI) for SOA Suite (id = ami-acb557c5) is only available in the US East (Northern Virginia) Region.
  • Don’t bother to setup the Elastic Block Store (EBS) Volume. It is scripted in the latest version of the AMI, as described in step 5 of “SSH to your image and accept license”. The EBS Volume is seeded using a snapshot (id = snap-dd980db4) that is provided. This volume will be used to persist your data across sessions and AMI start/stop.
  • When launching the image (during the Configure Firewall step) set the SecurityGroup to accept HTTP traffic on port 7001 in case you want to use the SOA Suite from outside the Image.

Upcoming SOA Suite 11g PS2 features

March 9th, 2010 PeterPaul No comments

Yesterday Clemens Utschig posted a list of SOA Suite 11gR1 Patchset 2 ~ 11.1.1.3.0 (SOA) features. He says it is a non-exhaustive list. It contains features like:

  • Full and complete support for BPEL 2.0 (designtime and runtime)
  • Reintroduction of “BPEL domains” – that are called Partitions because there are already WebLogic Domains
  • Enhancements to BPEL’s transactional behavior and audit-trail
  • Full BPMN 2.0 support – part of BPM 11g which runs on top of 11g PS2 SOA core

Update: for the Java developer

In an additional post the features for the Java developer were announced. These include:

  • Support for interface.java as a first class citizen next to interface.wsdl
  • Full support for Spring as component implementation
  • Support for EJB bindings (binding.ejb)
  • Invocation of a composite service

Oracle Sun – SOA and Integration strategy outline

February 4th, 2010 PeterPaul No comments

The webcast of the SOA and Integration strategy was a few days later available as the overall strategy. You can find the entire webcast here.

SOA Platform

The combined Oracle Sun solution focus boils down to the following bullets:

  • Oracle SOA Suite continues as the strategic product.
  • Sun JCAPS continues to be supported and maintained
  • GlassFish ESB continues as an open source project
  • A bridging technology is planned to support collaboration between JCAPS and Oracle SOA Suite.
  • Key functions from the Sun SOA products will be incorporated in the Oracle SOA products.

Portal technologies

Oracle WebCenter stays the strategic portal offering. Support for both GlassFish Web Space Server and Sun Portal Server will be continued. An upgrade path to WebCenter is planned for both. The IP (Intellectual Property) for Sun’s Web Space Server will be released into the Liferay open source community.

Monitoring AQ

December 23rd, 2009 PeterPaul No comments

Although there were already several posts on querying AQ, like “in the queue” and “enqueue“, the next one is great when monitoring queues. We are using this to monitor AQ, especially for Oracle ESB (hence the commented addition):

1
2
3
4
5
6
7
8
9
SELECT aq.name
,      aq.queue_table
,      aq.queue_type
,      v$aq.* 
FROM   v$aq
,      all_queues aq
WHERE  aq.qid = v$aq.qid
-- use if looking for ESB AQ: and    aq.queue_table = 'ESB_JAVA_DEFERRED';
;

The query will result in something like:

Monitoring AQ query results

It contains the following metrics:

  • Waiting – Number of waiting message;
  • Ready – Number of messages with status ready;
  • Expired – Number of expired messages;
  • Total Wait – Total waiting time per queue;
  • Average Wait – Average waiting time per queue.

A describtion of the AQ and Streams views can be found here.

Tuning AQ for Oracle ESB

December 16th, 2009 PeterPaul No comments

If you are using AQ within Oracle ESB there might be a point in time you want to tune AQ performance. In this post you’ll find the results of Metalink research, and our experience on a production system.

Queue compatibility

When creating the ORAESB schema (in version 10.1.3.3) using the script $ORACLE_HOME/integration/esb/sql/oracle/create_esb_topics.sql, the queues are created with 8.1 compatibility. This is solved in 10.1.3.4. To alter this find the statement

1
2
3
4
5
6
dbms_aqadm.create_queue_table
    ( Queue_table => qtablename
    , Queue_payload_type => 'SYS.AQ$_JMS_TEXT_MESSAGE'
    , multiple_consumers => true
    , compatible => '8.1'
    );

and change this to:

1
2
3
4
5
6
dbms_aqadm.create_queue_table
    ( Queue_table => qtablename
    , Queue_payload_type => 'SYS.AQ$_JMS_TEXT_MESSAGE'
    , multiple_consumers => true
    , compatible => '10.2'
    );

if you already created the queues, use this statement:

1
2
3
4
dbms_aqadm.migrate_queue_table
    ( queue_table => 'ESB_JAVA_DEFERRED'
    , compatible => '10.2'
    );

If you’re not sure check the compatibility with this query:

1
2
3
4
5
6
SELECT queue_table
,      compatible
,      recipients
FROM   dba_QUEUE_tables
WHERE  owner = 'ORAESB'
;

Streams pool size

Verify the current stream_pool_size using the following query:

1
2
3
4
5
6
7
SELECT component
,      current_size/1024/1024 "CURRENT_SIZE"
,      min_size/1024/1024 "MIN_SIZE"
,      user_specified_size/1024/1024 "USER_SPECIFIED_SIZE"
,      last_oper_type "TYPE" 
FROM   v$sga_dynamic_components
;

look for the streams pool. There are several Metalink notes on this setting (including 316889.1, 102926.1 and 335516.1). The latter has a general recommandetion per RDBMS version:

  • 11g: set STREAMS_POOL_SIZE to be greater or equal to 100 MB;
  • 10gR2: set SGA_TARGET > 0 and STREAMS_POOL_SIZE=0 to enable autotuning of the Streams pool;
  • 10gR1: use the STREAMS_POOL_SIZE init.ora parameter to configure the Streams memory allocation;

And of course you could use V$STREAMS_POOL_ADVICE to get advice for your specific situation.

Upgrade the JDK

A described here upgrading the JDK can also give a performance boost.