Archive

Posts Tagged ‘ESB’

Solving ORABPEL-11075 Unable to create control directory

January 3rd, 2012 No comments

Recently I engaged with a customer who experiences (among other problems) the following. Since there is hardly any info on Oracle Support or blogs I thought I’d share some info here:

WSIF JCA Execute of operation 'SomeService' failed due to: Unable to create control directory.
Unable to create control directory: "/mnt/queues/controldir/bpel/fileftp/controlFiles/epajYGFxPFPErSM8HcN8HQ==/outbound".
; nested exception is:
ORABPEL-11075
Unable to create control directory.
Unable to create control directory: "/mnt/queues/controldir/bpel/fileftp/controlFiles/epajYGFxPFPErSM8HcN8HQ==/outbound".
Please make sure that the directory name is valid and that there are adequate permissions to create the directory.

Solution

As the last part of the error message suggests, check for file system stuff:

  1. Is the share and/or mount your file / ftp adapter is pointing to still available?
  2. Can the share be reached from your SOA Server?
  3. Does the directory name exist?
  4. Are the required permissions available?

Correct inaccuracies.

Common Issues and Workarounds for File/FTP Adapter

There is an extensive document on solving issues with file and FTP adapters on Oracle support. The documentation for file and FTP adapters can be found:

  1. 11g JCA File / FTP adapter
  2. 10g File / FTP Adapter

Choosing your Oracle Application Integration Infrastructure

June 29th, 2011 No comments

Today I presented at ODTUG Kaleidoscope. The presentation is aimed at supporting architects and especially developers to choose the right integration infrastructure for a job.

Kscope 2011 Solid Service Bus implementations

June 17th, 2011 No comments


From now on counting down in days to the upcoming ODTUG Kscope 2011. ODTUG is a user group for for a wide range of technologists working with the Oracle platforms. During this conference I’ll be presenting on solid Service Bus implementations using the Oracle Service Bus, Mediator or both. The full schedule of Kscope is here.

ESB: No WebService Provider is registered at this URL

May 17th, 2011 No comments

When you are using Oracle ESB 10g and encounter the message No WebService Provider is registered at this URL when testing a web service from the ESB Console try the following:

Oracle Enterprise Manager OC4J_SOA

EM OC4J_SOA

Verify the ESB web service providers are generated correctly in ESB runtime (known as the esb-rt):

  • Login into Enterprise Manager
  • Go to the Application Server Control
  • Click OC4J_SOA oc4j instance
  • Click Web Services tab
  • Verify the deployed web services are listed here, and test that services.

In case there are no web service from the ESB runtime (esb-rt) the service providers were not generated correctly, restart ESB-RT:

  • Click OC4J_SOA oc4j instance
  • Click the Applications tab
  • Expand Middleware Services, ESB and esb-dt
  • Check the esb-rt and click the restart button

Now check the j2ee/_instance_name_/log/*/oc4j/log.xml to see if the ESB application has started correctly. Verify that ESB-RT application is initialized correctly by searching for ‘ESB bootstrap: Runtime initialized‘ message in the log file. If you also restarted the ESB-DT, verify that ESB DT application is initialized correctly by searching for ‘ESB bootstrap: Repository initialized‘ message in the log file. And finally check that the ESB web service providers were generated correct (see above).

Purging BPEL and ESB instances

April 11th, 2011 No comments

The question on the ability to purge instances for both Oracle BPEL and Oracle ESB keeps recurring so I decided to come up with a small overview.

Oracle BPEL

  • FMW version 11.1.1.4 and up, there is a new version of the purge_soainfra_oracle.sql. Ensure that you run the purge setup scripts from the 11.1.1.4 RCU or 11.1.1.5 RCU location, respectively, as this contains the latest purge details. Details are in the SOA Admin Guide
  • FMW version 11.1.1.1 and up, there is a purge_soainfra_oracle.sql script in the RCU_HOME/rcu/integration/soainfra/sql/purge directory. In the release before 11.1.1.4 you need to apply patch 10297850 to obtain the updated purge scripts. More details are in the FMW Admin Guide on Managing Database Growth. Mark Kelderman posted on how to improve the performance of this script by adding a specific index.
  • From BPEL in SOA Suite version 10.1.3.3.1 and up, there is a purge_instances_oracle.sql script in the SOA_HOME/bpel/system/database/scripts directory.
  • For BPEL in SOA Suite version 10.1.3.1 you need patch 7162289. After applying this patch purge_instances_oracle.sql will be located at SOA_HOME/bpel/system/database/scripts.
  • In case you’re still running BPEL 10.1.2.0.2 check Oracle support document 398578.1 and document 341102.1

Oracle ESB

  • For Mediator in FMW 11g refer to the scripts and links mentioned in the BPEL paragraph.
  • To purge ESB instances in 10.1.3.4 you need to apply at least MLR#4 to have purge scripts available. There are 3 scripts available:
  • $ORACLE_HOME/integration/esb/sql/other/purge_by_date.sql
    $ORACLE_HOME/integration/esb/sql/other/purge_by_id.sql
    $ORACLE_HOME/integration/esb/sql/other/purge_by_instance_id.sql
    

Update 2011-06 SOA Suite 11gR1 PS3

Recently the SOA Suite Engineering Team published a presentation on Purging strategies in Oracle SOA Suite 11gR1 PS3. Besides the information presented in this post, the presentation goes into targeted deletion from the EM and looks into looped and parallel purges. It also mentions the use of database partitioning. That can be very useful when you have long running instances and a large installation (the presentation gives more than 500GB total OR more than 10GB daily depending on environment specifics).

Update 2011-07 Purging the Extreme Edition

Mark Kelderman posted a blog on Purging SOA Suite 11g Extreme Edition. He give a SQL script that deletes data from Mediator, BPEL, BPM, Workflow and Composite, and after that reclaims disk space.

Update Purge Oracle Service Bus

Marc Kelderman posted on his blog on Purging OSB Report Data. Besides the default way to delete the data using the console. He also gives a SQL script to purge directly in the database.

Categories: BPEL, Oracle, Service Bus, SOA Suite
Tags: , , , ,

InfoQ videos: Using a Service Bus to Connect the Supply Chain

December 22nd, 2010 No comments

The session I presented at the SOA Symposium 2010 is now available online via InfoQ. You can find it as a Service Bus case study. It is introduced as:

a case study of using a service bus in a supply channel connecting a wholesale supplier with hundreds of retailers, the overall context and challenges faced – including the integration of POS software coming from different software providers-, the solution chosen and its implementation, how it worked out and the lessons learned along the way.

Watch the video, download the mp3 or sheets.

SOA Symposium 2010 videos available via InfoQ

November 22nd, 2010 No comments

This year, in partnership with InfoQ.com (the largest community site for technical architects), 1/4th of the SOA Symposium sessions was filmed and will be published on InfoQ. From early November InfoQ has started publishing these videos. At the time of writing the following videos are available:

Cloudy SOA

This session on Cloudy SOA by Mark Little covers:

an introduction to cloud computing pointing to the fact that the middleware needs of the cloud are similar to SOA’s, showing some of the benefits of running SOA along with the cloud, asking if cloud computing and SOA should evolve together and giving some future directions to consider.

BPM Top Seven Architectural Topics in 2010

Hanjo Normann’s session presenting the BPM Top Seven Architectural Topics in 2010 covers:

how to design a BPM/SOA solution including: modeling human interaction, improving BPM models, orchestrating composed services, central task management, new approaches for business-IT alignment, solutions for non-deterministic processes, and choreography.

Resurrecting SOA

Anne Thomas Manes in her Resurrecting SOA session goes into details on why she:

believes organizations need SOA more than before, but using a redefined SOA based on the SOA Manifesto, focusing on models, methodologies and patterns, not on technology, intended to produce the desired business and technical goals.


For a complete overview of SOA Symposium sessions on InfoQ check their SOA Symposium page.

Tuning AQ for Oracle ESB

December 16th, 2009 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.

Oracle ESB performance enhancements

September 7th, 2009 8 comments

Because the growth in the number of messages that one of our customers is receiving on it’s Oracle ESB, they were looking into how to enhance it’s performance. Oracle came up with the following clues:

  • Upgrade SOA Suite to a higher patch level
  • Reduce logging (including instance tracking in ESB)
  • Increase the number of listeners in ESB on Queues
  • Turn off payload validation

In order to see what these could do for them we did some loadtesting. The upgrade to a higher patch level of SOA Suite was needed at least to get the ESB working correctly with the configured number of listeners. However because of some issues running Oracle Universal Installer there wasn’t any time left to verify that the patch resulted in increased performance.
For functional and application management reasons turning of logging was not considered an option at this stage.

Increase the number of listeners in ESB on Queues

set ESB listeners in console

set ESB listeners in console

For each ESB System the number of listeners can be configured. These listeners are used to read from JMS topics. If there is only one listener (which is the default) message are read from the JMS Topic one at a time. The first screenshot shows where to set the number of listereners using the ESB Console.

Average response time

Average response time


To determine the optimum number of listeners for the specific ESB, OS, hardware combination we did some loadtesting. The results for the average response time are shown in the next screenshot.

As expected the respons time increases at a certain point when the number of listeners is raised.

With 90% and max response time

With 90% and max response time

“Time out” messages are never created by averages. While this first graph looks great and is very convincing, we are even more interested in the 90% and maximum respons times. A chart for these statistics has been included as well. Analyzing this graph one can conclude that this has an even stronger support to set the number of listeners to an appropriate level.

From this experiments it can be concluded that the response time can significantly be reduced by setting the number of listeners of an ESB system to the appropriate level. The maximum respons time has can be decreased by over 50%. This has a significant impact on the availability of the services exposed using the ESB.

Turn off payload validation

Turn off payload validation

Turn off payload validation


Another idea to enhance the performance is to turn off payload validation. Needless to say that this also has functional aspect. In most cases the validation that is performed here has some kind of business (related goal), like data quality. To switch it off, has impact, and the validation has te be migrated to some place else in the software.
Response time

Response time


The performance results can be dramatic. In a positive way! As is shown in the figure on the right, the respons time can be reduced to a fifth of the original. This goes for both the average and the maximum respons times.

If you can change your service so payload validation at this point is no longer required, this is a great step in enhancing the Oracle ESB’s performance.

What is in the queue?

April 16th, 2009 No comments
Async queue

Async queue

One of our customers asked me exactly this question. They have an  Oracle ESB and it seemed that it could not handle all incoming requests. With the queues being a decoupling point between the incoming requests and the related transactions to the back office systems, its size can be an indication of just how busy the system is.

As I couldn’t find the answer using the Oracle Enterprise Manager Oracle Enterprise Manager and its MBeans, I started to look on the web for a tool. The tool I found and started to use was HermesJMS. This helps you interact with JMS providers making it easy to browse or search queues and topics, copy messages around and delete them.

HermesJMS screenshot

HermesJMS screenshot

The HermesJMS requires Java 1.6. It has a clear installation guide installation guide and it is tested for multiple JMS providers. Besides the guide we needed for the Oracle AS there is also another blog describing the install and use of HermesJMS.

Using HermesJMS we were able to answer this customers question.

Categories: Oracle, Service Bus, SOA Suite
Tags: , , , ,