Our recent posts...
Passive adapters in Oracle ESB that won’t be activated
Configuring SOA Suite 10g for high availability (HA) isn’t the most easy thing to do. Several administrators I spoke with and worked with in projects brought this up. I really hope that FMW 11g -besides all the new functionality, enhancements and support for new standards such as SCA- also makes things like HA easier to configure.
One particular issue we recently ran into in one of our projects has to do with the use of non-concurrent adapters in Oracle ESB when upgrading our clustered environment from 10.1.3.3 to 10.1.3.4. Non-concurrent (or singleton) adapters are adapters that cannot run in an active-active configuration since the underlying infrastructure does not provide a good locking mechanism. Examples are file and FTP adapters. JMS and database adapters on the other hand support concurrency. For non-concurrent adapters you have to ensure that there is only one adapter instance active at runtime. Otherwise you could have two active file adapters both reading the same file, starting two ESB flows instead of one. Futhermore, you want to have fail-over. If the ESB RT (runtime) node on which the active file adapter is running (or adapter itself) fails, the passive adapter on another ESB RT node should be activated. In earlier SOA Suite 10g releases you had to install and configure a separate ESB RT for this (ESB Singleton) and deploy non-concurrent adapters to this separate node. Real overkill. Fortunately, in later versions you could deploy non-concurrent adapters to the existing ESB RT’s and configure these adapters in an active-passive configuration by setting the clusterGroupId property. The jGroups protocol is then used so that only one instance of all adapters that have the same clusterGroupId value will be activated.
When we upgraded to SOA Suite 10.1.3.4 none of our file adapters in the acceptance environment was activated anymore! After some investigation it seemed that ESB 10.1.3.4 uses its own jGroups configuration instead of the jGroups configuration as specified in the global jgroups-protocol.xml file (as was the case for ESB 10.1.3.3). That isn’t a problem by default. However, in our case both our test and acceptance environment are clustered and both run in the same network. The internal jGroups configuration of both test and acceptance by default probably use the same ip and subnet addresses. Meaning all adapters of all ESB projects in the same network with the same clusterGroupId are all put in the same active-passive configuration. For ESB project “A” only one file adapter instance for test was active, the same file adapters for ESB project “A” for acceptance were all in passive mode. Luckily you can specify the useJgroupConfigFile property for an ESB endpoint and set it to true to enforce using the jgroups-protocol.xml configuration file; as was the case in ESB 10.1.3.3. Then configure a different ip and subnet address combination for test and acceptance. That way the non-concurrent adapters in the same ESB projects but in different environments are separated when they have the same clusterGroupId. Another workaround would be to include the environment name in the clusterGroupId value, e.g. MY_ESB_TEST_ID and MY_ESB_ACCEPTANCE_ID.
Architecture in Practice
On May12th I attended a book launch and seminar called ‘architecture in practice’. I worked with one of the authors, Hans Tönissen, in a project. I met and corresponded with The other author, Guido Bayens, on several occasions. The day seemed a bit like a reunion because I met a few colleagues from my past employer too. That felt very nice.
Chairman of the day was Harry van Zon. He connected the different contributions of the speakers very smoothly. The day had six themes:
- The making of the book ‘architectuur in de praktijk’
- The function of architecture within (our) companies
- Professionalizing the function of architecture
- Connecting the architect and other professions within a company
- Innovation with architecture
- Developing architecture proposition
Architecture in practice – Architectuur in de praktijk
The book contains an easy to read explanation of different views on (IT) architecture. The authors have integrated a few of the approaches that are being used in the market today and looked for a way to connect these to TOGAF standards and methodology. I think they did a really good job!
When one looks at the many approaches and ways to do architecture, you realize that an architect can never have in-depth knowledge about all the approaches, let alone apply them. So you really have to work in multidisciplinary teams. I agree with this.
Hans and Guido are looking at the possibility to organize recognized certification for architects. Both are connected to the Novius Architecture Academy and teach there.
After ‘the making of the bookâ’ several other speakers enlightened us with their insights.
Professor Theo Camps elaborated on organizational issues and architecture and talked about the difference between architecture as an art and architecture as a craftsmanship.
After lunch I had to choose between four parallel sessions: The first choice was between ‘developing architecture’ at a large Dutch insurance company or ‘architects and projects’ at the Dutch Railways, the second choice was between ‘governance and change with architecture’ at Province Flevoland and ‘the making of a business architecture’ at Holland Casino. Difficult choices!
Knowledge & skills of an architect
After a short break at 3 pm, we split into different smaller groups to discuss certain topics. I joined the group that discussed what qualifies an architect. We talked about whether an architect should be a generalist of specialist, what rolls he/she has to fulfill, and what knowledge, skills and behavior is needed. Furthermore we identified what you could do (practice) to gain experience and what instrument could be used. Great discussion and very practical suggestions! This is the conclusions we reached:
Knowledge and awareness
- Knowledge of how to get from strategy to design
- Overall business knowledge (generalist) with some knowledge of some domain-specific issues (specialist)
- Knowledge of the (type of) organization
- Awareness of the state of affairs / maturity of architecture and informal structures
- Awareness of the phase the organization and architecture (role) is in
- Knowledge of the roles that are present within the organization
- Affinity with ICT (preferably not too technical)
- Ability to work together to reach consistency
- Ability to connect architecture with business strategy
- Ability to create a platform for consistency
- Ability to translate architecture into principles and instructions
- Ability to consider organizational design as a constraint
- Ability to direct
- Ability to communicate
- Ability to act as an adviser or partner to C-level management and senior partners of the organization
- respect for specialization and understanding of the specialist
- Courage to pioneer
- Patience, continued willingness to teach and explain
- Align with business
- Continue learning
- Getting applicable experience (with change) by doing just that
- Change jobs every 5 years
- Give presentations
- Selling architecture within your own company
- ‘Catch-up talks’ with colleagues
- Take up more difficult or complicated cases
- Horizontal and vertical networking
- Inter vision with colleagues, coaching and training
Skills
Behavior
Means
As I said, I was part of the discussion group, and I agree with all of the ‘features’ mentioned. As an architect you need to have many competencies and skills, but you don’t need to know about everything. With your communication skills, eagerness to learn and ability to connect you will succeed.
The day ended with some networking and I spoke to several nice people. It was a very interesting and nice day. Thanks!
Web Services article on OTN
Oracle recently released Oracle Enterprise Pack for Eclipse (OEPE) 11g. OEPE is a certified set of Eclipse plug-ins that is designed to help develop, deploy, and debug applications for Oracle WebLogic Server. I wrote an article on OEPE’s Web Service capabilities, and more specifically its support for the JAX-WS and JAXB standards. The article includes a step-by-step tutorial, explains different approaches to Web Service development, and concludes with several best practices. You can find the article on Oracle Technology Network (OTN).
Head, heart and hands
Although I realized that it could be a little bit too technical for me, some titles of presentations intrigued me so much that I decided to attend the SOA practitioners Forum by Software AG in April. The fact that my colleague was planning to attend this meeting as well, gave me even more reasons to go. It is always very enjoyable to go to an event with a coworker.
SOA is dead
The sessions ‘SOA has come of age’, ‘enterprise architecture’ and ‘the lifecycle governance’ interested me a lot. The presentation ‘SOA has come of age’ treated the notion that ‘SOA is dead’. Anne Thomas Manes and others wrote many blogs stating this. Nothing new to the people that keep in touch with market development. The speaker pointed that part out very well, quoting Gartner and others. He tried to prove the maturity of SOA with some customer based figures from his own company. Hardly sufficient evidence, but it explained the focus of his company.
enterprise architecture
The enterprise architecture part was presented by an English speaking French woman who talk without a microphone while looking at her own slides behind her. So, this was very hard to follow and again treated from a tool perspective.
bridging the gap
It struck me that every presenter seemed to try to bridge the gap between IT and Business. Considering from whose viewpoint you’re looking at this gap, there seems to be push or pull mechanism. In Anglo American countries it is the opinion of the IT world that Business has the responsibility to align IT to Business (IT pulls). In Germany and the Netherlands IT feels the responsibility to align Business people to their IT (IT pushes).
I filled in the questionnaire and gave some advice: use microphones, make challenging statements, allow attendees to ask questions during the sessions to make the whole more interactive. And please don’t change anything to the friendliness of the hosts, to the catering and the accessibility of the location because these were great. Thanks for Software AG’s hospitality!
Publishing process information using sensors and AQ
Sensors in Oracle BPEL PM provide a nice mechanism to publish in-flight process data in a fire-and-forget fashion. The information that is published (sensor data) is separated from the communication mechanism (sensor action) which is a good thing: it promotes separation of concerns. JMS and BAM are supported communication mechanisms to publish sensor data, native Oracle AQ is not. It is however possible to use JMS over AQ instead of in-memory or file-based JMS for transactional and persisted message delivery and integration with database components. I’ve described the involved steps to publish sensor data from BPEL PM to AQ-backed JMS and subscribe to these events from ESB since it is bit of a configuration-nightmare. These steps apply to SOA Suite 10.1.3.4:
- Create a new AQ queue or topic (multi-consumer queue) in the database; e.g. MyQueue. These AQ destinations are typically created in the schema “JMSUSER”. Make sure its payload is of type JMS text (SYS.AQ$_JMS_TEXT_MESSAGE) and not XMLType. If not already there, configure a connection pool and data source in OC4J that refers to the database schema that owns the AQ destinations.
- Create a Database Persistence provider in OC4J. In Enterprise Manager go to oc4j_soa –> Administration –> Database Persistence and click “Deploy”. You could e.g. use JMSUserRP as Resource Provider name and JMSUserRA as Resource Adapter name. Point to the data source as described in the previous step.
- Create a Resource Adapter connection factory for the newly created Resource Adapter by navigating to oc4j_soa –> Applications –> Default. Select the module from the Resource Adapter list that you’ve just created. Create a new Connection Factory and new Administered Object. Use the queue interfaces -e.g. javax.jms.XAQueueConnectionFactory- in case you publish to an AQ queue, and the topic interfaces if you use a multi-consumer AQ queue -e.g. oracle.j2ee.ra.jms.generic.AdminObjectQueueImpl. Examples of JNDI names are JMSUserRA/XAQCF for the connection factory and JMSUserRA/Queue for the administered object.
- Define a sensor and sensor action in BPEL PM. Either choose “JMS Queue” or “JMS Topic” as “Publish Type” in the sensor action. Enter the connection factory JNDI name from the previous step as JMS Connection Factory, e.g. JMSUserRA/XAQCF and the JNDI location of the AQ queue or topic. The last value should be like: [JNDI name of the "Administered Object"]/[either "Queues" or "Topics" depending on the AQ type]/[Name of the AQ queue or topic]; for example JMSUserRA/Queue/Queues/MyQueue.
Now, you can create an ESB project that subscribes to the published sensor events and actually does something useful with it.
- Create an inbound JMS adapter in a new ESB project. Enter the Resource Adapter connection factory -e.g. JMSUserRA/XAQCF- as JNDI name in the first step and select the correct AQ destination from the browse list in the next step.
And voila you’re done.
There are two sides to this. First of all -not the most important one however- is the technical implementation and configuration details as described above.
Secondly it provides a nice pattern. You can use sensors to publish relevant in-flight process data from running instances. This promotes decoupling since BPEL PM does not (need to) know who is interested in the sensor data. It might be that nobody is interested in it. Secondly, you can use ESB’s fan-out and content-based routing patterns and connectivity features to route process data to all interested components, possibly filtering and transforming its data.
Behind the scenes of OBUG, literally!
This week I attended the OBUG Benelux Connect 2009 user conference. OBUG stands for the Oracle BeNeLux (Belgium, Netherlands, and Luxembourg) User Group. The conference was held at the Metropolis Cinema Complex in Antwerp. One of the sessions I planned to attend was the “Report from the R&D Lab – Analyzing the upcoming 11g Release of Fusion Middleware” session by Lonneke Dikmans and Lucas Jellema. The presentation was held on behalf of WAAI, a collaboration of four Dutch companies in which Lucas, Lonneke, and I participate. Goal of the WAAI collaboration is to share, bundle, and expand knowledge on the upcoming Fusion Middleware 11g release. In this presentation, the initial findings and research of WAAI would be made available to the audience, including real world examples and demonstrations. At least, that was the plan…
From Kuassi Mensah from Oracle -who had an earlier presentation on Database Web Services and SOA- we heard that you couldn’t hook up your laptop. That meant no demo’s! And nobody had informed the speakers about this! Even stranger since Javapolis is held at the same venue and tons of demo’s are given there each year. While Lonneke, Lucas, and I chatted about this we got the idea that I could do the demo backstage while they did the presentation. We asked the Metropolis crew, who was more than willing to help out. Thanks a lot for that guys!
Time was running out while Lonneke and Lucas showed me what to demo and virtual machines, SOA composites, schema’s, and other stuff quickly moved from one laptop to another. Lonneke and Lucas stayed remarkably calm given the situation. Just a few minutes before the presentation we crawled through a secret hatch in the back of the cinema. While I “installed” myself right next to the digital projectors, professional sound systems, buttons, wires, and tons of popcorn Lonneke and Lucas went back to do the presentation. Guided by their instructions during the presentation -while we couldn’t see each other- we still managed to show Fusion Middleware 11g stuff to the audience
It turned out to be a great presentation after all, despite the organization or lack of it. Also quite educational when it comes to the inner workings of cinemas and good for the friday afternoon talks with colleagues

change management 10, “inspire change”
The last in the series of the change management seminars was presented by Jaap Boonstra, professor of management changes in organizations @ Amsterdam University. He works primarily for organizations in financial services and government.
Jaap’s seminar was titled “to inspire change.” It was very nice Jaap welcomed everyone (who was in time;) personally when entering the conference hall. He shook my hand and I immediately told him I liked that. It creates an immediate opportunity to talk, to share information about previous seminars and what I liked about it.
As I was almost the first person to arrive and was very near the open door, I could see the reactions of the participants when they too were personally welcomed by Jaap. It struck me that many women, like me, expressed they enjoyed this way to get to know each other, while men were almost all (pleasantly) surprised but said nothing about it, except a few single “O’s”.
It was not only pleasant but prevented a long introduction, because Jaap could immediately begin his presentation, which had an informal character during the entire evening. Instead, the public was ‘characterized ‘. The participants in the seminars, 265 in total consisted of:
- 104 line managers
- 42 directors
- 41 project managers
- 40 staff and
- 38 consultants
They work in services industry, financial services, consultancy, health & education, production, local and central government.
The content of the seminar was about the subjects of management changes:
- why changes are difficult,
- choosing a change strategy and
- dilemmas and successes
And it was about leadership and change:
- about paradoxes and transformative leadership perspective,
- about open-mindedness and ‘appreciative’ search and
- strategic communication.
The subjects were underlined with real case examples, some so aweful they caused me a stomach ache.
Besides the emotional impressions which I had to digest, some hard facts remained in my mind:
a. That, in accordance to the bell curve of change, 5% of all people are against any change, 15% is critical negative, 5% all for, 15% is positive critical and 60% neutral. That would mean that, if you have 15% of the critical positive with you in the process, you have sufficient critical mass to begin change.
b. That your organization can best be treated as an integrated system where everything is connected to everything, and that change is not possible if you do not take all aspects into account.
The main aspects why changes fail, is if you do not take into account (in order of importance):
1. culture,
2. unclear strategy,
3. politics,
4. staffs labor uncertainty
5. classical (hierarchy) structure,
6. technology and
7. your own clumsiness.
So, before you start with change, you first stop to think before you go ahead.
Jaap talked about the difference between design and development, between acting and reflecting, denominating and researching , aspects and objects of change and, support patterns and action patterns ( system & spiral dynamics). And he spoke of ‘places of difficulty’.
I really enjoyed Jaap made references to viewpoints and approaches from professors of the previous seminars like Beulens, Stoker and de Caluwé. And of course he linked to theories of gurus like Senge, Quinn and Kotter. Thus connecting the one to the other.
Unfortunately I had to leave a quarter of an hour before the end of this session (18.45 uur). I had agreed to meet a friend in Hilversum to travel to Ghent in Belgium together for a two day Open Space Conference.
This seminar was a worthy last session of the series, in my opinion. Am very curious what the “day of the change management ‘ on April 7th 2009 will bring. Looking forward to it.
2009 Belgium Agile Open Space part 2
Saturday, the 2nd day started with breakfast, hotel checkout, feeding the parking meter and hiding our suitcases in the trunk of my car. We took our laptops with us to the conference. We didn’t dare to leave them in the car.
Memorable of this second day were the sessions “Can architecture be agile?”, which Katrien and I hosted, “writing a book on Agile means” and “Play Politics.” Of course the one about agile architecture since Katrien and I hosted this together. We traveled from enterprise architecture to application architecture and forth and back and forth. I made a few notes that can help me to gain more insight . That is very nice.
The session on Agile means was a sticky note session on which the participants recorded all tools and means you can use to facilitate Agile processes. Some needed no explanation, others were completely new to me and explained. Great session!
In the last (double session) ‘Play Politics’ we formed political parties that had to promote a program, established by fate, and get votes from other parties. So, coalitions were formed, negotiations were performed, we debated, we dealt (I strongly suspect even bribes came into play). Marc and I formed the ‘perfect pair’ party and finally won the most votes (and money). Participant argued that I put the rules to my hand, spoke ‘to the point’ and reinvent the game on the fly. I surprised myself by playing this political game so well, where, in reality I get really allergic. Am I that political or did I learn by experiencing? Mmm, time to personally investigate my behavior .
Again I enjoyed myself this day. At noon a cook served lasagna, salad, French bread, vegetable burgers and Mousaka. Very nice! The cook said he had great admiration for the fact that we attended the meeting in such large numbers on our Saturday day off and were so keen to work. Peter explained we we’re really happy to do so.
After this very interesting day Machiel and I, despite the extensive lunch, went to eat Thai food at around six and then leave for home because driving on an empty stomach is not pleasant. Because Eva tomtom gave directions in a very soft tone, I drove in the wrong direction (to the city center), but after a few maneuvers we got back on the E17. En route, we talked about our favorite music so the 2 hour drive to Hilversum seemed very short. To get to my home place it was just a short ride.
I had two great days. Harald and Stefan posted photographs on Flickr. http://www.flickr.com/groups/agileopen/pool/show/
2009 Belgium Agile Open Space part 1
I was very eager to participate in Agile Open Space Belgie2009 in Ghent.
The day of departure on Thursday, February 19 was a long and exciting day in which I had to ‘devoure’ a lot of miles. First, from my home in Assendelft to Nijkerk to go to work, then drive to Nijenrode at Breukelen in the afternoon for the last of a series of seminars on change management, and then pick up Machiel in Hilversum for a joint trip to Ghent.
In Ghent we arrived at our B and B hotel where we were welcomed by two very friendly hosts. We decided who would take which room. I took the room in which a lot of African art and things were displayed, singing ‘welcome to the jungle’… Machiel took the room that looked like an office. We were invited for a glass of wine and were also served a snack. I think that we chit chatted for over an hour. Because of 8:00 am breakfast next morning, we wanted to go to our rooms early.
Friday morning we were served a delicious breakfast. We were not even 300 meters away from the conference location IBBT and therefor got there in time. We saw some familiar faces and a lot of new people. So, meet and greet. Of course we started with kick-off, explain how Open Space works and topics were suggested by the more than 50 participants. Very interesting topics for me as well. The most interesting this first day were Machiel’s session about scrum Kanban and the one hosted by Koen about Agile Consortium Benelux (ACB).
The scrum Kanban session was an intense meeting of proponents and opponents of the combination scrum + lean. Some of the participants were very passionate and got quite personal. Machiel reacted very professional and calm with caution, imho. The questions and replies gave him a good opportunity to sharpen his approach in real life. That’s why I like Open Space and am so happy to join.
The session on ACB focused on the, still very small, participation of Be in the ‘Benelux’ and about what ACB could mean to the Agile community. At this moment it is more a Dutch initiative (and possibly European when UK gets involved). The observations and suggestions made during the session, gave Koen and Patrick things to research or insights on the possible added value of ACB to (Belgian) Agile community.
IBBT turn out to be very suitable for this type of meetings. Hot coffee and tea (with biscuits) were available throughout the day, in the afternoon tasty sandwiches were served for lunch and later in the afternoon we could also take soft drinks to our liking. After an intensive and enjoyable day, dinner was served in ‘Vooruit’, which was located appr. 1800 meters from the conference site. Machiel and I would get directions on how to walk to this place by one of the other participants, but instead we got a ride to Ghent town centre in ‘Amsterdam’ style.
The daily special with fish, vegetables and basmati rice was very tasty. The drinks flowed abundantly. The moment that a few pints of beer ended up into Rob’s lap, was a sign for us to go back to the hotel. It was a nice walk along a Ghent’s canal, called ‘Muinkkanaal’, and a lot of vintage industrial buildings. There wasn’t anything wrong with our coordination for, even though we were not familiar in Ghent, we walked straight to our hotel. In my room I called my spouse to say goodnight. And then, before my head even touched the pillow, I fell asleep.
Custom adapter article on OTN
A while ago someone asked me if you could create your own adapter and use it from Oracle SOA Suite. More specifically if you could create an inbound e-mail adapter (not available out-of-the-box in SOA Suite) that polls for new mail messages and use it as activation agent for starting a BPEL process or ESB flow.
I knew this was possible -at least the possibility was documented- and searched for a how-to. I couldn’t find one explaining all steps involved. However, I did find lots of questions on the OTN forums asking how to achieve this. I thought it would be nice to write an article about it after I got it working. It’s published on OTN.
The article includes a step-by-step tutorial for building the adapter and plugging it into Oracle SOA Suite components such as BPEL PM and ESB. The article also briefly discusses adapter support, offerings, and convergence in future Oracle Fusion Middleware releases that incorporate former BEA products.
Drop me a line if you’re interested in an example for using a outbound adapter instead of an inbound one. I’ll see if I can add such an example in the future.
Blogs
- 26 Jul
- 10 Jun
- 02 Jun
- 26 Mar
- 25 Feb
-
05 Nov
Some tips & tricks on migrating SOA Suite 10g to 11g – Part 2
- 04 Nov
- 02 Nov
- 25 Oct
- 20 Oct
- Best practices 2 - Web Services
- Fault handling in Oracle SOA Suite 11g - Part II
- Fault handling in Oracle SOA Suite 11g
- Migrating Web Services from JDeveloper 10g to 11g
- Migrating EJB 3 applications from OC4J to WebLogic
- Best practices for BPM, SOA and EDA
- Some tips & tricks on migrating SOA Suite 10g to 11g - Part 2
- Logging messages in Oracle SOA Suite 11g using OWSM
Loading ...