- Essbase and OBIEE Article Now Up On OTN
Sat, 17 May 2008 15:48:50 GMT, OracleBlogs
My new article on Essbase and Oracle BI EE has just gone up on OTN. It covers the steps you’d need to go through to build a simple Essbase database based on the SH Sample Schema that comes with Oracle 9i, 10g and 11g, and how you’d then plug that database into Oracle Business Intelligence [...]
- Release Update Packs 12.0.5 for Financials and HRMS Now Available
Sat, 17 May 2008 15:39:35 GMT, OracleBlogs
This announcement isn't really directly related to the E-Business Suite technology stack, but it can't hurt to highlight this news here since it affects so many of our readers. Oracle Financials and Oracle Human Resources Management System (HRMS) have released two new product family Release Update Packs for E-Business Release 12.0.5.
- Back from holiday…
Sat, 17 May 2008 13:21:02 GMT, OracleBlogs
Just got back from holiday.Sorry to all those people waiting for answers to their mails, blog comments and forum posts. I’m starting on the process of catching up, but it’s going to take some time. I’m taking the brutal approach to catching up. If the subject of an email or blog post doesn’t jump [...]
- Stuff That Just Works
Sat, 17 May 2008 04:57:12 GMT, OracleBlogs
I’ve been so very busy lately, but not with bloggable activity. This week has been slow on Mix news; ENTP is putting the finishing touches on a big feature, and we did deploy a few bug fixes.I did finally catch up on feed reading from a month ago, and a post from friend of the [...]
- Release Update Packs 12.0.5 for Financials and HRMS
Sat, 17 May 2008 04:24:46 GMT, OracleBlogs
This announcement isn't really directly related to the E-Business Suite technology stack, but it can't hurt to highlight this news here since it affects so many of our readers. Oracle Financials and Oracle Human Resources Management System (HRMS) have released two new product family Release Update Packs for E-Business Release 12.0.5.
- Register of Interest
Sat, 17 May 2008 03:06:06 GMT, OracleBlogs
Registering InterestI have been involved in some interesting discussions recently on the use of a service registry. Oracle SOA Suite ships with a limited use license for a service registry and there is the option to upgrade it to a full use license and so the question comes up, Antony why would we want to use a registry and can we use it for all our service lookups. Lets start by looking at what a registry is.
Glorified Yellow PagesUncharitably a registry may be described as a glorified yellow pages. It allows artifacts such as XML schema and service WSDLs to be stored in a searchable, categorized archive. Artifacts are stored under different categories and may have keywords associated with them to assist in searching. So at the end of the day the registry is just a repository of meta-data about artifacts. In the same way a car is just a large amount of beaten metal with a power unit that drives wheels. Calling it a repository of meta-data does not actually explain what it does or how it may be used.
Registry use CasesLet me suggest a few registry use cases
- Design Time Service Discovery
A registry can be used to catalogue existing services and associated artifacts. This encourages re-use by making it easier to discover existing services. The ability to promote items between registries also makes it possible to put in place a service approval process that vets new services before making them available to developers. This again promotes re-use and generalisation of existing services.
- Run Time Service Discovery
A registry can also be used at runtime to provide the physical endpoint for a service. This makes it easy to change the physical provider of a particular service. This also simplifies migration of services between development test and production environments as outlined in the next use case.
- Service Migration Mechanism
The use of multiple registries provided a managed path for services to be promoted between environments, either from a development perspective or from a runtime perspective.
Design Time ConsiderationsUse of a registry at design time is generally a good idea but it does a require a certain amount of discipline in its use otherwise it becomes yet another dumping ground for all design decisions, good and bad! However individual develpoment team can maintain their own local registry that has a well defined promotion process to a central registry, allowing teams to work on their development services which may later be migrated to a corporate registry. In my experience most customers are not making use of a registry even in their design time environments and this is probably the best place to start using a registry.
Run Time ConsiderationsUsing a registry in a runtime environment promises a greater degree of de-coupling. However a similar amount of decoupling may be achieved through the use of an ESB alone. If a registry is used to look up an ESB endpoint then there is a potential cost to be paid in terms of an additional lookup. If an ESB endpoint is not looked up then there is the risk of coupling the data formats of unrelated services together, losing the use of an ESB to provide message transformation to/from canonical form. Some informal tests I ran indicated that the additional overhead of a registry lookup does not add much to the service invocation, but in high volume environments it may be the straw that breaks the camels back. A good policy may be to begin using a service registry in design time, later trying it out in non-high volume environments. Using an ESB can make this migration to registry use easier, if less pure by having the ESB perform the registry lookup.
Using a Registry with Oracle BPEL PMThe current production release of Oracle BPEL PM has built in support for use of a registry. Al that is required to make a service lookup occur through a registry is to perform the following.
- In the BPEL Console, go to the "Manage BPEL Domain" and set the following properties
- uddiLocation - the inquiry address of the registry
- uddiUsername - if it is a secured registry set it to a username for performing lookups, if not set it to urn:unknown
- uddiPassword - if it is a secured registry set it to a password for performing lookups, if not set it to urn:unknown
- In a BPEL process for each service endpoint (partner link) that you want to go through a UDDI lookup
- Add a property "registryServiceKey" to the partner link with the "Entity Key" value assigned in the UDDI repository
For more on potential performance impacts of registry lookup see Chintan Shahs blog entry. Note that I haven't seen such a bad degradation as he reports, but I could believe it for a complex WSDL and high system load, meaning unresponsive threading, particularly in a Windows environment.
An Example of Dynamic LookupTo give a feel for dynamic lookup I have uploaded 3 JDeveloper Projects in the this file.
- JavaWS includes a simple Java web service (GreetingWS) that can be registered in a service registry. When registering it in the registry you will need to note the service key and copy it into the partner link property in Dynamic BPEL.
- DynamicBPEL is a BPEL process that looks up the web service (GreetingWS) and invokes it in three different ways
- Static, it uses the endpoint defined in a WSDL file
- Dynamic, it sets the endpoint explicitly (passed in as a parameter to the process), showing how you can be very dynamic in the endpoint you invoke.
- UDDI, it uses the UDDI repository to lookup the endpoint, showing how unintrusive it is on the rest of the process.
- TestDynamic is a BPEL process that you invoke to test the DynamicBPEL process. It iterates over all three methods and calculates how long each method takes to complete the given number of iterations. The first invocation is not counted to allow the system to "warm up" for each call.
- New ActivePerl 5.10.0.1003 includes DBD::Oracle 1.21
Sat, 17 May 2008 00:20:52 GMT, OracleBlogs
Jan Dubois of ActiveState dropped me an email today about the DBD::Oracle 1.21 release. He says:
"We have released ActivePerl 5.10.0.1003 today, which included the latest DBD-Oracle module for 32-bit Windows and Linux builds."
- Master with Two Details on the Same Page
Fri, 16 May 2008 22:32:12 GMT, OracleBlogs
ADF makes it very easy to create a master detail page with one drag and drop operation from the data control palette onto the page.
But what if you want a master with 2 details on one page?
It's actually quite simple to achieve this - but I got asked this a couple of times last week so here goes...
All you need to do is drag the first detail over and drop it as a master->detail.

Then drag the second detail over and drop it as a table or a form - and now you have the three tables on the page and you are almost done.
But if you'll run your page now you'll find that your second detail is not refreshing when you are switching between the master records the way that your first detail does.
ADF did this synchronization part automatically for the first master-detail you dropped. All you are missing is a partial page rendering setting on your second detail.
See the difference between the two detail tables here:


So let's set it up - all you need to do is go to the form or table that contains your second detail and set its partialTrigger property to point to the master component.
(You can look at the setting for your first detail component and copy them).
- Will you be at the 2008 DC PHP Conference in June?
Fri, 16 May 2008 20:40:58 GMT, OracleBlogs
Don't forget the Washington DC "2008 DC PHP Conference & Expo" is coming up at the beginning of June. I'll be there. (Oracle is a sponsor). Will I see you?
- Invoking an EJB Session Bean from a BPEL Process
Fri, 16 May 2008 20:30:07 GMT, OracleBlogs
EJB session beans can be invoked from a BPEL process through WSIF. Oracle BPEL PM ships with a WSIF provider for invoking EJBs.
For demonstrating this, lets create a new EJB session bean. The session bean shall have one single business method namely "greetUser" that takes in a string argument userName, and returns a string value "Hello ".
Step 1: Creating the HelloWorld Session Bean.
1) Create a new BPEL empty process project.
2) Open up the New Gallery and choose to create a new EJB session bean".

3) Choose the option for creating EJB 2.1 session bean. Give the Bean the name"HelloWorld", accept the remaining defaults and finish the wizard.
4) Double click on the EJB in the Applications Navigator to bring up the EJB Module Editor". Specify the new business method in the "Methods" tab. Type in the parameter name and type manually in the text editor
5) CLick ok to accept the changes. Click on the "orion-ejb-jar.xml" in the Applications Navigator. Here you need to provide the JNDI locaiton of the session bean. For this, add a "location" attribute on the

6) Your bean is now ready for deployment. Build the project and deploy to an OC4J container.
Step 2: Build the BPEL Process
1) Create a new BPEL Process project.
2) Create a new WSDL document in the project directory and name it HelloWorldEJB.wsdl.
3) Create a portType with one operation named "greetUser" [it need not be the same name as the EJB business method, though].
4) Add the bindings section that allow the process to invoke the EJB through WSIF. The salient portion of the bindings section is the jndiProviderURL. For an Application Server install, use the opmn ormi jndi provider URL. For standalone installations,use plain ormi provider URLs. The ejbName in the provider URL is the ejbName value in the ejb-jar.xml that was created as a part of the EJB session bean creation.

5) Create a partnerlink for the WSDL that you just created and an invoke activity that can be used to invoke the plnk.
6) Provide the username/password for connecting to the OC4J Instance that hosts the EJB within the bpel.xml deployment descriptor. This is typically the oc4jadmin user.

7) Copy the EJB compiled classes from the EJB project created earlier into the $ORACLE_HOME/bpel/system/classes directory and restart the BPEL runtime. These classes are required for BPEL to get a hold on the home interface of the EJB to create an invoke the business method.
8) Deploy the BPEL Process and see the results for yourself
The demo EJB and BPEL Client project can be downloaded from this link.
Powered by OracleBlogs

|