ODTUG Kaleidoscope 2008

Thursday night I got this fantastic news:

“Dear Karen:
Congratulations! Your abstract,
Use the Power of Apex Dictionary Views to Increase the Quality of Your Apex Applications,
has been accepted for presentation at ODTUG Kaleidoscope 2008, June 15-19, in New Orleans, Louisiana.”

Wauw!! A range of emotions ran through me. I go to New Orleans, the city from the gospel and the jazz!

It’s the first time I go to a foreign country to give a presentation, so you understand that I’m very excited to be one of the selected speakers at ODTUG! This is a wonderful opportunity!

The Apex-core team at iAdvise has developed their own QA-tool on top of the Apex Repository to guard the quality of our application guidelines and conventions. I will bring this case together with my colleague Jan Huyzentruyt. We already did a lot of presentations together in Belgium, but it is the first time we are doing it abroad …

So, we are looking forward going to New Orleans and we are honoured being on the list of speakers together with big names like Tom Kyte, Steven Feuerstein, Mark Rittman, Carl Backstrom, Patrick Wolf, …

Hope to see you there!

ODI – Troubleshooting

What happens to your ODI interopability when changes are made in your target datastore, in other words how are changes picked up and handled in ODI?

I staged such a scenario to test the robustness of ODI and following troubleshooting hints & tips could be of help to anyone facing this situation in a real-time environment:

  • ‘The primary key is not unique, PK Errors’: I couldn’t figure out what this error was about because my sequences were defined correctly on the target datastore and the invocation in my ODI interface was defined correct as well. => Solution: delete the working tables in your sunopsis working repository, the snpw-schema. When you run the interface again it’ll work smoothly.
  • ”Join error between the table ‘x’ and the table ‘y” => This error was resolved by deleting all constraints defined on my target-model and by reverse engineering the model-object again. => New attributes, constraint are reversed as expected, but existing constraints and attributes aren’t automatically deleted, this is a manual job you’ll have to perform.
  • You’re getting ‘privileges’-exceptions when trying to execute your interfaces => make sure to grant the target-datasource dba-privileges this is needed to be able to access the snpw- and snpm-datastores.
  • Working with Excel Data : ‘-1305 : S0002 : java.sql.SQLException: [Microsoft][ODBC Excel Driver] The Microsoft Jet database engine could not find the object ‘MO’. Make sure the object exists and that you spell its name and the path name correctly.’ => This error is thrown when the Excel you’re pointing to is opened up whilst running ODI interfaces. When you close the Excel file no, this exception will be resolved.

Other usefull hints & tips are always welcome.

Oracle BPA Suite – Tips & Tricks regarding usability

This week I attended the SOA Forum in Lisbon for which Oracle had organized 2 days regarding overall presentations and case studies and then 2 days of expert camps.
These expert camps where divided in Advanced SOA and Oracle BPA Suite.

I suscribed for the BPA-one because I’m interested in the full development life cycle that is offered now, starting from analysis until development.

The Bpel Blueprint that got my attention, especially the ability to forward-engineer changes from BPA into your BPEL and vice versa.

The BPA-workshop started from scratch and gave us, the attendees, the possibility to get in toch with the different features within BPA as well for analysts as for developers through the usage of BPEL Blueprints.

The tips & tricks that can be of use for anyone interested in getting started with BPA, are the most important part to remember. The rest is basic workshop/tutorial stuff top get acquanted with the tool/environment.

Tips & Tricks:

  • Installation-possibilities: When you want to install BPA you have different options depending on your requirements. If you just want to get acquanted with the tool and don’t want to start using the tool for production purposes you can use the following set-up: Architect + local repository (Oracle Lite or Oracle DB). If you want to get acquanted and use the tool for real implementations, use the following set-up: Architect + Repository Server. If you want to use your existing installation of Oracle XE or Oracle DB you can install Architect with a local repository pointing to XE or your DB => make sure you’re using the UTF8-character set, otherwise you will need to install a separate database instance
  • You can run BPA as a Java Application or an Applet
  • You need to use the same version for your bpa suite and your IDE, e.g. BPA and Jdeveloper 10.1.3.X, and SOA Suite 10.1.3.x
  • You can only add access rights on group-level in Business Architect, not on model- or object-level => in other words, you need to organize the folders properly
  • When your working within Business Architect and with models and objects you need to keep in mind you’re working in an object-oriented fashion, meaning= when an object is displayed on multiple models, you are referring to object occurences, not to the object itself. Each object occurence can have its own specified properties, independend from the other object occurrences
  • You can’t integrate Business Rules in the release of BPA Suite
  • Swimlanes and pools aren’t generated into the BPEL Blue print, these aren’t part of the generation functionality

Hopefully these tips & tricks, comments can help you in your first steps using BPA Suite.

AIA – Application Integration Architecture

This week I went to the SOA Forum in Lisbon which was really interesting because I was able to discuss the different features of ODI, SCA, BPA, AIA, … with other partners and of course Oracle.

The AIA presentation was really great because now I got an in depth view of the amazing features and development that has been done by the Apps people.

AIA now delivers SOA integration to all the Apps people so your available to integrate with Siebel, SAP, … using Process Integration Packs, the so called PIPs. These packs include the needed services, data, error-handling, validation-logic etc. to be able to integrate your E-business Suite application to third-party clients.

What struck me the most was that a lot features should be made available to the SOA community as well, the fusion middleware stack so to say.

What are these amazing features that should be promoted to the fusion middleware stack:

  • Enterprise Business Object : The EBO is being used within AIA to describe the true business objects (such as customer, product, …) in a standardized way. Through using these objects any services can retreive the payload and messages in a standardized way and integration is garantied in a loosely-coupled way.
  • Enterprise Business Services : The EBS can be seen as the black dot in the middle that handles the payloads of 3-party applications and transforms your 3-party messages into standard EBO’s.
  • Application Business Connectivity Service : ABC is the important part inside the PIP’s (Process Integration Packs) which will handle the interfacing with SAP, PeopleSoft, Siebel, … and respond with a standardized payload, namely the EBO to your EBS. => This connector can be seen as the Adapters you’re already familiair with within Enterprise Service Bus and BPEL.
  • Composite Application Validation System and Composite Application Error Management and Resolution : enables you to test and simulate your integration services without the need for the whole architecture to be in place. No need for a Siebel-EBS dev, test, q&a and production environment, just test and simulate your processes using the AIA-validation and error packs. The error handling has been augmented so error messages are exchanged in a standardized way and the wright application and the wright user are notified in real-time. This validation logic and error handling could be a true value asset for the Fusion Middleware Market as well, which could just be a service offered by the SCA, by the composite.
  • BSR = Business Service Repository, which is an extension on the already existing UDDI but is an answer to the common need for higher-level repositories for models and objects. The UDDI as we know it today only serves as a repository for services which are specific to applications. By taking this to the next level, the customer can now offer a portfolio of solutions instead of a portfolio of services. The BSR will act as a catalog of objects, messages and services that compose the integration scenarios.

AIA has tackled big integration issues already … and the fusion of apps and middleware will be the next level?

Tips & Tricks that’ll save you a lot of time regarding ODI, Flex, Soa Suite

Latelly I’ve been spending a lot of time regarding deployment and configuration of Adobe Flex applications integrated with Bpel on an OC4J-container.

On the other hand I’ve been experimenting a lot with ODI and how the tool will handle changing data models, changing datasources, …

Lastly I’ve been playing around with invocation of Bpel Processes using Web Service Proxy Clients instead of the Bpel Invocation API.

The question that’s still unanswered because no documentation or benchmarks or best practices are available yet is: ‘What’s the best practice in invoking bpel processes, the Bpel Invocation API or Web Service Proxy Clients?’

Tips & Tricks ODI:

  • Interesting Notes: 423740.1, 423817.1
  • Grant dba-privileges to your source-db-user, otherwise you’ll get ‘insufficient privileges’ exceptions when trying to execute your interfaces

Handling changing data models (new tables, deletion of existing attributes in tables, addition of new attributes, additional relationships, … ) :

  • Go to your datamodel and reverse engineer the changed tables again. New attributes are added, deleted attributes aren’t removed yet because they’re referenced in interfaces in your ODI Designer.
  • Go to your interfaces defined in the Designer-tab in ODI: remove all active mappings to the attributes that were deleted
  • Go back to the model-tab in designer and right-click the attribute in your tabel and choose delete. When all references are updated correctly (no active mapping), the attribute will be deleted from your datamodel

Tips & Tricks Flex:

  • When you’re getting weard errors regarding ‘conversion exception between java.util.Date and java.util.Calendar’ or exceptions regarding producer or consumer-errors => make sure you’ve defined ‘autocommit’-property to false on your data services (Using LCDS)
  • How to handle static data without usage of Value Object or Data Transfer Objects => use SQLAssembler without usage of java-classes or actionscript-classes in your data-management-config.
  • rtmp-host connection failure on OC4J => try to reset the connection-port to another value than the default one which is ‘2038’. I’ve defined the value to ‘2035’ and now no errors are thrown anymore
  • Use [managed] attribute to make sure all changes on objects are synced between 2 clients
  • Deploying data-management-config to different JEE Servers, e.g. Tomcat and OC4J. When you deploy to tomcat you have to define the full JNDI-location which would be for example: java:/comp/env/jdbc/flexDS. When you deploy to an OC4J, you need to define the short JNDI-descriptor: jdbc/flexDS.

The other exceptions, weard behaviour was already addressed in earlier posts:

  • You need to add an xsl-choose-when-otherwise xsl-node structure to you transform-activity in your bpel-process and in the otherwise-tag define the xsi:nil=true on your attribute to make sure the web service proxy won’t set this attribute to required.
  • You need to update the toplink-mapping file being generated in bpel when using the database adapter. Relationships aren’t defined properly, because the method accessor is checked for all one-to-many relationships whilst these aren’t defined in the java wrapper classes. Uncheck these ‘map to method accessors’ and these exceptions will disappear. You can uncheck these when drilling down in your toplink.mwp file into to your object on your mappedCollections.

A beautiful one were all newbees in SOA Suite spend ages and ages to figure out what the problem is … Oracle please fix this ???

You’ve installed SOA Suite (you can choose which version) and entered a custom password during installation for your oc4jadmin-password, not the ‘welcome1’ password. You can choose your own password wright ?

But when the newbee starts creating his first bpel and esb projects, there are weard errors poping up: ‘connection timed out’, ‘jndi-location for db-adapter isn’t properly defined’, …

Well, weard but true, the ‘welcome1’ password is defined hardcoded in different ‘oc4j-ra.xml’ files used in the jmsadapter-folder, dbadapter-folder, … Make sure to change the passwords correctly when you’re drilling through the different Oracle By Example-exercices or tutorials.