Wednesday, January 16, 2008

Oracle and BEA

January 16, 2008: Oracle announces an agreement to acquire BEA Systems.

Sphere: Related Content

Monday, January 14, 2008

Oracle® SOA Suite Best Practices Guide 10g Release 3 (10.1.3.3.0)

I stumbled on the document "Oracle® SOA Suite Best Practices Guide 10g Release 3 (10.1.3.3.0)" dated December 2007 today, intresting!

Sphere: Related Content

Tuesday, January 08, 2008

The Next-Generation, Grid-Enabled Service-Oriented Architecture

The following two articles gives an insight on how the Tangosol Coherence product has been utilized in the 11g version of Oracle SOA Suite ( I hope )

The Next-Generation, Grid-Enabled Service-Oriented Architecture

Next-Generation Grid-Enabled SOA: Not Your MOM's Bus

Sphere: Related Content

Oracle SOA Suite 11 g - Technology Preview

Here is the link to Oracle SOA Suite 11g - Technical Preview 3

Happy new 2008!

Sphere: Related Content

Thursday, December 13, 2007

Patch 6501312 - BPEL Repository spring cleaning

A new patch with id 6501312 creates a purge_instances procedure in the oraclebpel schema that you can use to delete your old BPEL Process instances.

Currently (Thu Dec 13 15:36:56 CET 2007) there seemes to be a problem with the paths for this patch in unix so I installed it using the following procedure:

1 Copy the files in 6501312/files/bpel\system\database\scripts to $ORACLE_HOME/bpel/system/database/scripts

2. Run the sqlplus scrip to create index and create the procedure "purge_instances".

Example:

bash$ sqlplus /nolog
SQL*Plus: Release 10.1.0.5.0 - Production on Thu Dec 13 10:19:06 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect orabpel@instance
Enter password:
Connected.
SQL> @upgrade_6501312_oracle.sql
SQL> commit;
SQL> @purge_instances_oracle.sql

After this you may start your spring cleaning:

BEGIN
purge_instances(to_timestamp('2007-12-13 10:30:25','YYYY-MM-DD HH24:MI:SS'));
COMMIT;
END;

Happy cleaning!

Sphere: Related Content

[Error ORABPEL-10902]: compilation failed, XML parsing failed because ""

ORABPEL-10902 shows up from time to time to annoy any BPEL developer.

It could be (I think) somthing like:

  1. General namespace errors
  2. Incorrect variable errors
  3. Variables that you try to access "out-of-scope"

The error message "" is not that helpful in any case, but if we change the 'verbose' setting to true in the ant build.properties file we get better information.

deployment tasksverbose = true

Thanks to Marc Kelderman, I can't wait until I get the next ORABPEL-10902!

Today we saw an ORA-600 when we added a diskgroup into our ASM instance... but that is a different story.

Sphere: Related Content

Wednesday, December 12, 2007

Trick Question - "good but expensive" vs "quick and dirty"

Your project manager has asked you to estimate the difference in cost between the "good but expensive", "quick and dirty" path or solution!

What should you do?

Steve McConnells answer in this blogentry is that you should ask three more questions:

1.How much it will cost to backfill the good path after you've already gone down the quick path?
2.If you choose the quick path now, how much does that slow down other work until you're able to retrofit the good path?
3.Is there a path that is quicker than the good path and that won't affect the rest of the system?

Steves Bottom line: When facing the prospect of taking on technical debt, be sure to generate more than two design options.

Sphere: Related Content

10.1.3.3.1 deployment

After deploying 10.1.3.3.1 I got the following startup errors (even if I followed the README to the point)

--------
07/12/11 22:10:41 Start process--------
07/12/11 22:11:39 log4j:WARN No appenders could be found for logger (wsif).
07/12/11 22:11:39 log4j:WARN Please initialize the log4j system properly.¨

07/12/11 22:11:44 WARNING: Application.setConfig Application: orabpel is in failed state as initialization failed. java.lang.InstantiationException: Error initializing ejb-modules: error in opening zip file; nested exception is: java.util.zip.ZipException: error in opening zip file
07/12/11 22:11:44 WARNING: Application.setConfig Application: hw_services is in failed state as initialization failed. java.lang.InstantiationException: Error initializing ejb-modules: [hw_services:hw_services_ejb:RemoteWorklistService] - Unable to load ejb-class oracle.tip.pc.services.hw.worklist.RemoteWorklistServiceBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassNotFoundException:
Missing class: oracle.tip.pc.services.hw.worklist.RemoteWorklistServiceBean
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor Loader: oc4j:10.1.3 Code-Source: /oracle/product/soa_10.1.3/j2ee/home/lib/oc4j-internal.jar Configuration: in META-INF/boot.xml in /oracle/product/soa_10.1.3/j2ee/home/oc4j.jar
This load was initiated at hw_services.root:0.0.0 using the Class.forName() method.
The missing class is available from the following locations:
1. Code-Source: /oracle/product/soa_10.1.3/bpel/system/services/lib/bpm-services.jar (from in /oracle/product/soa_10.1.3/j2ee/oc4j_soa/config/server.xml) This code-source is available in loader oracle.bpel.common:10.1.3. This shared-library can be imported by the "hw_services" application.

07/12/11 22:11:50 Initializing B2BDiscoveryServlet07/12/11 22:11:54 Finished initializing B2BDiscoveryServlet07/12/11 22:11:56 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized


I then tried to redeploy BPEL services by using the $ORACLE_HOME/config/deploy_bpel.sh script.

This script gave me the following error:

config>> ./deploy_bpel.sh
BUILD FAILED/oracle/product/soa_10.1.3/bpel/system/services/install/ant-tasks/redeploy.xml:33: The following error occurred while executing this line:/oracle/product/soa_10.1.3/bpel/system/services/install/ant-tasks/redeploy.xml:66: Error while expanding /oracle/product/soa_10.1.3/bpel/system/services/lib/workflow_javadoc.jar


I then commeted out the workflow_javadoc.jar from bpel/system/services/install/ant-tasks/redeploy.xml, and then the redeploy works again!

Sphere: Related Content

Tuesday, December 11, 2007

10.1.3.3.1 Patchset Release now available!

Patchset 10.1.3.3.1 for 10.1.3.3.0 is avaliable as Patchid 6492514.

For more information see the BPEL home page.

Sphere: Related Content

Monday, November 26, 2007

Teamwork: Feedback

In software development teams it is important to be open and give feedback. I have been trained to give feedback with my feelings, instead of my thoughts, and to focus on a behaviour in a "I" perspective (Not "the group thinks ").

The structure of the feedback is:

When you ...
I feel that ...
This causes ...
I wish that ...

The "I Feel" makes it hard to argue is a true statement...

I also think that it is important to educate my team on feedback reactions.

The Feedback reaction staircase looks likes follows (I guess i neeed an image for this )

___________________
___________|Continue or Change
________|Understand
_______|Explain
_______|Defend
Reject|

The idea here is that it is important to be able to "catch" feedback in the two uppermost steps, ie it is better to Understand the feedback than to Reject, Defend or Explain your behaviour. It is very,very easy to start explaining your behaviour.

Examples:

Change – ”I think that was good feedback, I will try to change my behaviour, could you help?"
Continiue – ”I think I have undersood your feedback but I will continue as before because ... "
Understand – ”Yes I understand. Could you explain a bit further.."
Explain – ”Yes, but it was because I was tired”
Defend – ”No, you misunderstood”
Reject – ”I Do not care!"

(This is from the ugl.biz courses)

Sphere: Related Content

Thursday, November 22, 2007

Purging runtime documents in B2B

The Oracle B2B purge utilities are used as :

%. setenv.sh (b2b env)
% java -ms1024M -mx1024M oracle.tip.repos.purge.PurgeManager purgeRuntime -start 01-JAN-2007 -end 20-AUG-2007 STATUS
Execution context started.
Purge started, please wait...
Purge completed.

Or with PL/SQL
exec purge_runtime('01-JAN-2007',20-AUG-2007','STATUS')

Where STATUS := Invalid or Error or Complete

Sphere: Related Content

B2B and Tracking Messages in AQ

This thread on Tracking Messages in AQ in the Oracle forums is intresting

Ramesh Nittur Anantharamaiah suggests the following to for a status overview:
SELECT a.queue_table, a.name, b.waiting, b.ready, b.expired
FROM dba_queues a, v$aq b
WHERE a.qid = b.qidAND owner = 'B2B'


Martien van den Akker suggests the following query to be able to see the message ids easily:

SELECT qtb.queue,
qtb.msg_id,
qtb.msg_state,
qtb.enq_time,
qtb.delay,
qtb.user_data.msg_id,
qtb.user_data.inreplyto_msg_id b2b_inreplyto_msg_id,
decode(instr(qtb.user_data.inreplyto_msg_id, ':'), 0, qtb.user_data.inreplyto_msg_id, SUBSTR(qtb.user_data.inreplyto_msg_id, 1, instr(qtb.user_data.inreplyto_msg_id, ':') -1)) inreplyto_msg_id,
decode(instr(qtb.user_data.inreplyto_msg_id, ':'), 0, NULL, SUBSTR(qtb.user_data.inreplyto_msg_id, instr(qtb.user_data.inreplyto_msg_id, ':') + 1)) conversation_id,
qtb.user_data.from_party,
qtb.user_data.to_party,
qtb.user_data.action_name,
qtb.user_data.doctype_name,
qtb.user_data.doctype_revision,
qtb.user_data.msg_type,
qtb.user_data.payload,
qtb.user_data.attachment,
qtb.consumer_namefrom aq$ip_qtab qtb
ORDER BY enq_time DESC;

I also noted that if you have GridControl 10.2 you can create a UDM based on the following query (reference to IOUG Collaborate 07: Oracle 10g Grid Control ) :
select q.owner '.'q.name queue_name, s.readyfrom v$aq s, dba_queues q where s.qid = q.qidand q.owner IN ('B2B')

And then set alert levels as you wish:
Warning "B2B.IP_OUT_QUEUE:50;B2B.IP_IN_QUEUE:50"
Error "B2B.IP_OUT_QUEUE:100;B2B.IP_IN_QUEUE:100"

And then create create error messages such as "Queue %key% contains %value% unattended messages."

Today I also use this query to have a peek in the actual messages and "DUMP" the contents to be able to try to understand a charachter set issue:

SELECT qtb.queue,
qtb.msg_id,
DBMS_LOB.SUBSTR(qtb.user_data.payload,4000,1),
DUMP (DBMS_LOB.SUBSTR(qtb.user_data.payload,4000,1),16)
FROM aq$ip_qtab qtb
WHERE MSG_ID = '3989F49C24206660E0440003BAE85389';


To list the consumers registrated for the B2B in and out queues one may use the following SQL:

SELECT *
FROM aq$ip_qtab_s

Sphere: Related Content

Oracle OpenWorld SOA presentations

Is avaliable here.

Enjoy!

Sphere: Related Content

Tuesday, October 30, 2007

Extending the Oracle BPEL Error Hospital with custom Java Actions

Sjoerd Michels on Extending the Oracle BPEL Error Hospital with custom Java Actions

Sphere: Related Content

Tuesday, October 23, 2007

More Oracle BPEL 10.1.3.3 Fault Policy Management

I looked in the Technote SOA Suite 10.1.3.3.0 New Features again and suddenly there is a new chapter Fault Management Framework in there.. nice!

This new section contains the following topics:
■ Fault Management Framework Overview
■ Designing a Fault Policy
■ Fault Management Framework Use Case
■ Java Action Fault Policy

Sphere: Related Content

Monday, October 22, 2007

Oracle SOA Suite 10.1.3.1+ Cluster ?

Stellan asks "what do you mean with cluster" in his article What is an Oracle SOA Suite 10.1.3.1+ Cluster?

That is an good article!

I ask: What is an Oracle SOA Suite 10.1.3.1 + Oracle Integration B2B 10.1.2 cluster ??

Sphere: Related Content

Wednesday, October 03, 2007

Rameshs Oracle Fusion Middleware B2B Blog

I noticed Ramesh Nittur Anantharamaiah's blog today, nice of Ramesh to share his thought outside of the Oracle Forums.

Sphere: Related Content

Monday, September 10, 2007

Oracle BPEL 10.1.3.3 Fault Policy Management

IT-eye has a good article on Oracle BPEL 10.1.3.3 Fault Policy Management

I have not found any information on what is possible to do in the "test" tag within a condition, but this article sorts part of that out, the below example does "ora-terminate" for the "INVALID_WSDL" fault code.

<condition>
<test>$fault.code/code="INVALID_WSDL"</test>
<action ref="ora-terminate"/>
</condition>

Today however I saw a fault code = "null" from an JCA adapter so I need to have a look at what happens when the fault code is null.

Sphere: Related Content

SOA Suite 10.1.3.3.0 New Features Technote

Oops, I missed this new Technote SOA Suite 10.1.3.3.0 New Features

From the list of contents:

  • Deploying a Custom Worklist Application and Enabling SSO
  • Changing Workflow Standard View Definitions
  • New Database Views for Oracle Workflow
  • File/FTP Adapter New Features
  • MQSeries Adapter New Features
  • Database Adapter New Features
  • AQ Adapter New Features
  • JMS Adapter New Features
  • Oracle ESB Singleton Behavior for Inbound Adapter Endpoints
  • Decision Service Support for Ilog JRules

Sphere: Related Content

Saturday, September 01, 2007

BPEL 10.1.3.3 Debug "keepGlobalVariables"

In our build platform we use three diffent bpel.xml files to be able to use different settings in each environemnt, ie right now we have a dev, test and prod environment so we have three different files.

  • bpel-dev.xml
  • bpel-test.xml
  • bpel-prod.xml

One setting that we usually use set to true in the development environment and false in the others is the keepGlobalVariables property. In BPEL 10.1.3.3. this is not set to true by default.

If thes variable is set to false you will not be able to see variable data in the BPEL Debugger window for BPEL instances that have compleated and the variable is out-of-scope.

To set the keepGlobalVariables property to true add a problerty with the name keepGlobalVariables as follows:

<BPELSuitcase>
<!-- .... -->
<BPELProcess src="test.bpel" id="test">
<configurations>
<property name="keepGlobalVariables">true</property>
</configurations>
</BPELProcess>
<!-- .... -->
</BPELSuitcase>

Sphere: Related Content