Wednesday, April 4, 2012
Moving Blog
To simplify the blogging experience, we have setup a new blog location related to HKM Consulting LLC and our SOA, Cloud and other general technology experiences. You can reach us at: New HKM Blog
Sunday, August 7, 2011
Getting soapUI AMF example on MacOS Running
If you are trying to get soapUI 3.6.1 AMF example running with BlazeDS samples, make sure you do the following:
- Place the flexsample.jar file under /Applicatons/eviware/soapUI-Pro-3.6.1.app/Contents/Resources/app/lib
- Restart the application and create a TestSuite, TestCase, AMF Test Step
- Specify the endpoint of: http://localhost:8400/samples/messagebroker/amf
- Specify the AMF Call as: product.getProducts
All is good!
- Place the flexsample.jar file under /Applicatons/eviware/soapUI-Pro-3.6.1.app/Contents/Resources/app/lib
- Restart the application and create a TestSuite, TestCase, AMF Test Step
- Specify the endpoint of: http://localhost:8400/samples/messagebroker/amf
- Specify the AMF Call as: product.getProducts
All is good!
Tuesday, June 28, 2011
SEVERE: WSSERVLET11: failed to parse runtime descriptor: exception during WSDL parsing
Have been doing development of JAX-WS service in Metro/Tomcat 6 and ran across the following failure when deploying the WAR file. Examination of google results didn't provide the exact answer I needed but resolved it by doing the following:
- Under the WEB-INF a directory called com existed that I had noticed before.
- Examined the contents of it and found the package and java classes was reproduced in this location.
- Deleted the directory, recreated the WAR and redeployed.
All was good!
- Under the WEB-INF a directory called com existed that I had noticed before.
- Examined the contents of it and found the package and java classes was reproduced in this location.
- Deleted the directory, recreated the WAR and redeployed.
All was good!
Saturday, December 11, 2010
Musings about Oracle SOA Suite 11G
A little over a year ago I undertook a project to migrate a customer of mine from Cape Clear to a new solution. The solution chosen was Oracle Fusion Middleware and more specifically we settled on the Oracle SOA Suite 11G. With no training, great assistance by Oracle Product Management and lot of trial and error we were able to get SCA composites with BPEL components developed within a 1.5-2 month time frame. Like most SOA Platforms, the secret was not so much in the development but more so in the runtime and tuning. Like most BPEL engines, this one was no different in that the Database and its proper configuration required great effort on the part of Oracle support and my clients DBA and WLS experts. The migration took approximately 10 months. So what did I learn?
- Development with Web Service standards is a significant time saver.
- We struggled with where the rubber meets the road.
-- JMS Adapter configuration within the container to integrate to a non-certified JMS Provider.
-- Oracle RAC Tuning and Configuration for SOA Suite specifically
-- WLS Tuning and Configuration for SOA Suite specifically
So in the end migration if planned properly can be done, but always leave extra time for the tuning and performance testing.
- Development with Web Service standards is a significant time saver.
- We struggled with where the rubber meets the road.
-- JMS Adapter configuration within the container to integrate to a non-certified JMS Provider.
-- Oracle RAC Tuning and Configuration for SOA Suite specifically
-- WLS Tuning and Configuration for SOA Suite specifically
So in the end migration if planned properly can be done, but always leave extra time for the tuning and performance testing.
Oracle vs. Open Source
With all the clients we work with, HKM has to be flexible to meet their budgetary needs. Some of our clients will have enterprise agreements and others are just starting. To this end, open source is the defacto starting point for many. Over the next several months I will be diving into the Apache solutions to a take another peak at the most recent Apache CXF, Camel and Ode. I am specifically interested in Ode to see how it has progressed from when I tried it 2 years ago and how close these solutions are to Oracle SOA Suite and other traditional vendors.
Monday, November 22, 2010
Oracle SOA Suite 11G, JmsAdapter and Sonic MQ Topics
Recently we were working with a customer who needed to integrate SOA Suite to Progress Sonic MQ and specifically topics that were hosted. The first step with Oracle is to edit the JmsAdapter.rar configuration (specifically weblogic-ra.xml) to point at Sonic MQ. Sonic
<connection-instance>
<jndi-name>eis/sonic/queue</jndi-name>
<connection-properties>
<properties>
<property>
<name>ConnectionFactoryLocation</name>
<value>MyCF</value>
</property>
<property>
<name>FactoryProperties</name>
<value>java.naming.factory.initial=com.sonicsw.jndi.mfcontext.MFContextFactory;java.naming.provider.url=tcp://sonicmq1:2506;com.sonicsw.jndi.mfcontext.domain=Domain1</value>
</property>
<property>
<name>AcknowledgeMode</name>
<value>AUTO_ACKNOWLEDGE</value>
</property>
<property>
<name>IsTopic</name>
<value>true</value>
</property>
<property>
<name>IsTransacted</name>
<value>false</value>
</property>
<property>
<name>Username</name>
<value></value>
</property>
<property>
<name>Password</name>
<value></value>
</property>
</properties>
</connection-properties>
</connection-instance>
Having integrated to Sonic Queue(s) in the past, we were running into an issue where the SOA Suite cluster was picking up the message for each node within the cluster and was unaware of initially how to solve this. A simple solution was identified and specifically it was within the jDeveloper JmsAdapter Wizard. The following image shows the "Durable Subscriber Id". By simply specifying a value here, the cluster is only allowed to consume one message from the topic.
<connection-instance>
<jndi-name>eis/sonic/queue</jndi-name>
<connection-properties>
<properties>
<property>
<name>ConnectionFactoryLocation</name>
<value>MyCF</value>
</property>
<property>
<name>FactoryProperties</name>
<value>java.naming.factory.initial=com.sonicsw.jndi.mfcontext.MFContextFactory;java.naming.provider.url=tcp://sonicmq1:2506;com.sonicsw.jndi.mfcontext.domain=Domain1</value>
</property>
<property>
<name>AcknowledgeMode</name>
<value>AUTO_ACKNOWLEDGE</value>
</property>
<property>
<name>IsTopic</name>
<value>true</value>
</property>
<property>
<name>IsTransacted</name>
<value>false</value>
</property>
<property>
<name>Username</name>
<value></value>
</property>
<property>
<name>Password</name>
<value></value>
</property>
</properties>
</connection-properties>
</connection-instance>
Having integrated to Sonic Queue(s) in the past, we were running into an issue where the SOA Suite cluster was picking up the message for each node within the cluster and was unaware of initially how to solve this. A simple solution was identified and specifically it was within the jDeveloper JmsAdapter Wizard. The following image shows the "Durable Subscriber Id". By simply specifying a value here, the cluster is only allowed to consume one message from the topic.
Sunday, March 21, 2010
Oracle 11.1.1.2 XPath issues
Currently I have been migrating BPEL for a client using Oracle SOA Suite and ran into incompatibilities between 11.1.1.1.0 and 11.1.1.2.0. A simple example that worked in 11.1.1.1.0 and not in the latest patched released is a simple evaluation where I am trying to confirm the existence of an element in a message.
<bpws:getVariableData("message","part","/element/element")> = true()
The same statement also works in Cape Clear ESB and its BPEL implementation.
One workaround that I used was to count the nodes using the Oracle XPath Advanced Functions:
ora:countNodes("message","part","/element/element") > 0
I am working with Oracle support services to see how this can be resolved in the code base.
<bpws:getVariableData("message","part","/element/element")> = true()
The same statement also works in Cape Clear ESB and its BPEL implementation.
One workaround that I used was to count the nodes using the Oracle XPath Advanced Functions:
ora:countNodes("message","part","/element/element") > 0
I am working with Oracle support services to see how this can be resolved in the code base.
Subscribe to:
Posts (Atom)