tisdag, februari 28, 2012

Problem Synchronizing Users to Beehive from Active Directory After Applying 2.0.1.6 Patch

After upgrading to Beehive 2.0.1.6 (from 2.0.1.4) we encountered a strange problem. All of a sudden we noticed that users that were created using Active Directory synchronization were not able to login to some services, like Zimbra and Team Collaboration. They were however able to login to Beehive Central.

When we checked the bee_data.ws_workspaces table we saw that initially there were 2 workspaces created for newly created users, but after a while there were 0 workspaces. Also, we noticed a lot of the following errors in the BEECORE log files:

  • ErrorCode: ErrorCode:[BEER-00700,SEVERE,A database operation failed due to a transient or permanent error]
  • Details: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

As we have 2 BEECORE instances on each mid-tier node it appears that the BEECORE instances gets into a race condition if they are started at the same time.

So the solution was first to increase the PollInterval from 2 minutes to 10 minutes. Then we had to ensure that the 2:nd BEECORE instance on each mid-tier was started well after the first BEECORE instance had completed its synchronization tasks against the Active Directory.

We got information from Oracle Support that this is a bug (Bug 11072043 "STBH: USER GETS CREATED IN ENABLED STATE WITH 2 DELETED WORKSPACES") that will be fixed as of Beehive 2.0.1.7. So, until then we have to be careful when starting Beehive.

onsdag, juni 15, 2011

Configure Oracle Beehive with Barracuda Loadbalancer

Oracle / F5 provides instructions for configuring Beehive with BIG-IP, however for other loadbalancers the information is very limited. As we use Barracuda loadbalancer at our site, we had to set this up. In case someone else is using this setup, this might help a bit.

I will assume that you have your Barracuda loadbalancer up & running, so I will not go into details about that. Also, as we do SSL offloading in the loadbalancer these instructions assumes that you have your certificate uploaded to the loadbalancer. To do SSL offloading in the loadbalancer was recommended to us by Oracle as doing this on the Beehive servers will consume a significant amount of resources.

The actual setup of Beehive in Barracuda is then quite straightforward, start by creating separate service for each of the Beehive services. That means one service each for HTTP, IMAP, SMTP, XMPP and BTP.

Note that you cannot do SSL offloading in the loadbalancer for the XMPP service. For this service you will have to terminate the SSL in your Beehive node, using the instructions provided in the Beehive documentation for XMPP. We had a SR running with Oracle Support for a while until they could confirm that it wasn't possible. In the end we decided not to use the Barracuda for XMPP, instead we routed the traffic directly to one of our Beehive nodes.

The Barracuda services should then be configured as follows:

  • HTTP as a 'Layer 7 - HTTP' service
  • IMAP as a 'TCP Proxy' service
  • SMTP as a 'TCP Proxy' service
  • BTP as a 'TCP Proxy' service

In each of the services you will need to enable SSL Offloading as this options default to 'No'. Apart from that, you could basically use the default options from the Barracuda. For the HTTP service you probably also want to consider the 'Send traffic to Last Resort Server' that will direct any HTTP request to a web server that will display some information in case Beehive for some reason becomes unavailable.

To summarize, the setup of Oracle Beehive with Barracuda loadbalancer is a quite simple & straightforward, we did not encounter any particular issues during the setup, with the exception of the XMPP issue.

onsdag, januari 26, 2011

Using op5 (Nagios) for Beehive Monitoring

In addition to using Enterprise Manager we also use op5, a Nagios based monitoring software. So, naturally I wanted to be able to monitor some of the Beehive services using this tool as well as Enterprise Manger. What I initially wanted to know was basically if the OC4J containers in Beehive were up and running or not. As op5 uses the standard NRPE (Nagios Remote Plugin Executor) agent in order to perform the monitoring, the task wasn't that hard to accomplish.

The first (and basically only issue) was that I couldn't find and good NRPE plugins to use to perform the monitoring with. The standard check_procs plugin couldn't be used as I did not find any ways to distinguish between the different OC4J processes using this plugin. Well, this wasn't a big issue as you basically can use any given script as a NRPE plugin. So, I quickly created a script that would allow me to count the # of processes for the different OC4J containers, not the prettiest solution, but it does the job.

Here is the script:
#!/bin/bash

OK_PROCESSES="4"
PROC_NAME="BEEAPP"

while getopts "o:N:" optionName; do
case "${optionName}" in
"o") OK_PROCESSES="${OPTARG}";;
"N") PROC_NAME="${OPTARG}";;
esac
done

CURRENT_PROCESSES=`ps -ef | grep ${PROC_NAME} | grep -v bash | grep -v grep | wc -l`

if [[ ${CURRENT_PROCESSES} -eq ${OK_PROCESSES} ]]; then
echo "${PROC_NAME} OK: ${CURRENT_PROCESSES} processes"
exit 0
else
echo "${PROC_NAME} ERROR: incorrect number of processes: ${CURRENT_PROCESSES}"
exit 2
fi

Once the script was in place I could continue to configure op5 to use these lines for the monitoring:
command[bee_core]=/opt/plugins/check_beehive -o 2 -N BEECORE
command[bee_mgmt]=/opt/plugins/check_beehive -o 1 -N BEEMGMT
command[bee_app]=/opt/plugins/check_beehive -o 4 -N BEEAPP
command[bee_client]=/opt/plugins/check_beehive -o 4 -N BEECLIENT
command[bee_soa]=/opt/plugins/check_beehive -o 1 -N oc4j_soa


And finally I just had to add these commands as services in op5 (as check_nrpe services) and the monitoring was up & running.

torsdag, januari 20, 2011

Some Notes About the Help in the Oracle Zimbra Client

One thing that is a bit annoying in the Oracle Zimbra Client for Beehive is that the help that is included in the client is not modified to reflect that changes that has been made to the client from Oracle's side. Instead comes the Zimbra client with the standard Zimbra help and there are many things there that is likely to confuse your end users.

For example, it contains a section about "Instant Messaging Basics", but there is no instant messaging functions in the Oracle version of the Zimbra client. Some other things that are mentioned but not exists are Spell Check, Multiple signatures, Conversations, Zimlets and many more. As these things are mentioned but non existent will most likely confuse you end users.

So what we have done is instead written our own instruction on how-to use the Zimbra web client and put these instructions on our Intranet. Then we have redirected the Help link in the Beehive Zimbra client to point there instead.

To implement the redirection you can just change the file:

<BEEHIVE_HOME>/j2ee/BEECLIENT/applications/zimbra-ui/zimbra/help/en_US/advanced/Zimbra_User_Help.htm

and implement a simple HTTP redirect there. If you have multiple BEECLIENT instances you need to implement the change in each of them (putting a soft link in place won't work here).

Also, just be careful that when you apply a patch or upgrade Beehive you most likely will have to re-implement this change.

fredag, januari 14, 2011

Mailing lists in Beehive

One things that strikes you when starting to setup Beehive is the absence of mailing lists. Even though Beehive focuses on collaboration rather than on e-mail, mailing lists still plays an important role in an organisation. So, given the fact that you don't have regular mailing lists in Beehive but your end users demand them, what can you do? So far we have seen 3 options that you can use in Beehive.

* Using Beehive workspaces
* Using Beehive (or in our case Active Directory) groups
* Using an external mailing list server

I will discuss these options below and give you my take on each of them.


Using Beehive workspaces

Each user can create a workspace in Beehive and add users to it. So this can be used to mimic a mailing list, but imho, it is a bit of an overkill to setup a workspace just to be able to have a mailing list. As any user can create a workspace you quickly loses any naming standards you might have in place within your organisation, which will make it practically impossible to find the right mailing list for the end users. Also, you will loose control of abandoned workspaces within Beehive when employees leaves. You could have a centralized administration for company wide workspaces and uses these as mailing lists, but this will turn some of your employees into full time workspace administrators.


Using Beehive groups

In our case we synchronize our Active Directory with Beehive and have user and group management there. As you can set a mail address on a group you can use this as an alternative to mailing lists. However, as you do not want any given person to have the right to work inside your LDAP server, this option leads either to a lot of work for your LDAP administrators or you will have to setup a 3:rd party product (or create your own) only for the purpose of handling group memberships.


Using an external mailing list server

This is perhaps the best option to choose for having mailing lists within Beehive. You will only have setup the initial mailing list and you will have to create an external contact in Beehive (if the address should be visible in the address list), but once that is done you can delegate all administration of the list to the list owner. You will also be able to keep any naming standards that you might have in place. Below is an overview on how this could be setup.

onsdag, januari 12, 2011

Relaunching this Blog

I have now regained some interest in keeping a technical blog again, so I will once again start to write some technical stuff in it. This time it will be on Oracle Beehive and other things that occurs in my daily work that might be of interest.

onsdag, december 17, 2008

Final Post (on SOA & Java)

This is the final post I will make in this blog about SOA and Java. After almost 10 years at Oracle, today is my last day here. I will now go on a 3-week long vacation before I will pick up some new challenges. As my main focus will switch away from the SOA & Java world, I will not continue to write about these topics anymore. I will keep the old articles here for reference and historical interest. I will still continue to post in this blog, but it will be on completely different topics. So, I just would like to say thank you to those of you who has been reading this blog so far!

Take care!
Stellan

fredag, augusti 22, 2008

5 Top Products we Acquired from BEA

Having spent the last weeks looking into the products that we got added to our product stack with the acquisition of BEA, I now feel that I'm starting to get a grip on them and can see how they will fit into our product portfolio. So far some of the products feels very strong and I will elaborate a bit on why I think so in this post. So, I'd like to rank the 5 strongest products, in my opinion, that we got from BEA.


#5 Oracle BPM aka AL BPM

This product will certainly fill a gap in our portfolio for creating business process. It will enable you to quickly & efficiently create business processes. It will also assist with the monitoring of them according to KPI, which will assist in improving the processes according to business needs. It does in no way replace our other products for creating processes, like BPEL, for example. Rather it complements it in a very good way.

Sure, there is a danger here that users starts to generate & implement processes on their own, similar to what we see in the database area where users stores business data in spreadsheets or small databases outside of their main databases. One could perhaps compare this risk of generating "process islands" similar to the risk of generating "information islands" for data storage. However, as we will not be able to prevent users from storing data outside of the main databases we will likewise not be able to stop them from creating processes outside of the main SOA architecture, thus we need to be able to provide a good tool for this purpose and this is BPM.


#4 WebLogic Server

You might be a bit surprised that I put WebLogic only as number four. The main reason is that WebLogic plays in an area where I think that we already have a very strong product. For sure, WebLogic is a darn good Application Server too, but we got other products from BEA that imho better fills gaps in our product portfolio, thus WebLogic only ends up in spot four.

The two main things like about WebLogic, and where I think that Oracle AS could be better, is in administration and JMS. The administration tools for WebLogic I find superior to the ones we provide with Oracle AS. The concept of the administration server, which you use to push configuration out to the managed servers is very nice, and will ensure that all servers in a cluster has the same configuration. This was not so easy to do in Oracle AS. Also I find the JMS implementation in WebLogic superior to the one we have in Oracle AS, however, I will not go into the details in this post about this.

There are a few things that I like in Oracle AS, that WebLogic don't have, for example that ability to run the OC4J container standalone just to mention one.


#3 AL Data Services Platform

Also perhaps a surprise. In this case it's not so much the product itself, it's rather the area that it's targeting that is interesting. As of today the common way of writing software is in a three-tier architecture: GUI-Middleware-Database. I believe that this will change in the near future and that we will see that four-tier architectures will become more and more common where we introduce a data & computing grid between the middleware and the database, so that we will look into architectures that looks like: GUI-Middleware-Grid-Database.

We already have a few products in our product stack that targets this domain, like ODI and Coherence. But we still miss a few pieces to be able to provide a complete stack of products for this domain and here is where the functionality from the Data Services Platform comes into the picture. WebLogic perhaps provides a better choice for an existing product, while DSP provides us with functions that will be crucial for the next big thing. That is why DSP is higher on my list.


#2 Tuxedo

Before the middleware era, C, C++ and Cobol were the common languages for accessing the Oracle database. When Oracle entered the middleware area it was all Java, Java and some more Java. Sure, we provide modules for Pearl & PHP, but Java is THE middleware language in the Oracle stack. I guess the C & Cobol developers may have felt a bit stepmotherly treated along the road. That is, until now.

Tuxedo can be described as a middleware platform for C, C++ and Cobol. Sure, developers for these languages have previously had the option to license Tuxedo from BEA, but to have it in-house is imho a big bonus for Oracle. This will hopefully give the large group of people developing in C, C++ and Cobol the message that they are not forgotten by Oracle. It will also show that Java is no longer the only option that we provide for developing middleware.


#1 JRockit

Before the buy of BEA we could provide all pieces of software, from the operating system to the developer IDE, except for one piece; a JDK. With BEA we now have JRockit, however, this is not the main reason why it is on the number spot on my list.

The Liquid VM version of JRockit will enable you to run Java applications directly on top of a virtual machine without any operating system. This is a very cool feature that will boost many Java applications. Still, this is neither the reason why JRockit ends up in the number one spot.

The reason I have JRockit on place number one is the Real Time version of JRockit. This will enable users to run their Java applications with minimal and deterministic interruption for garbage collection. This is a very crucial feature for existing Java applications that needs to be highly performing, but even more important will the combination of JRockit RT and Coherence be. This combination will enable Java developers to write the next generation of Java applications that will perform on the same level as C / C++ applications. This is something that has been missing in the Java world for a long, long time. Hence, JRockit ends up in my number one spot.



onsdag, augusti 20, 2008

Coherence 3.4 Developer Pre-Release 2 Available

The Coherence 3.4 developer pre-release 2 is now available for download. Please note that this release is only available via Oracle MetaLink for customers with CSI numbers.

Please refer to the release notes for a full list & complete details on the new features

To obtain the Oracle Coherence 3.4 Developer Pre-Release 2 product, logon to MetaLink and lookup Note 732071.1 and follow the directions.

måndag, augusti 18, 2008

BPA, BPEL & BPM. Jungle or a Wide Open Road?

We (Oracle) provide several tools within the business process design & development area. Also, with the acquisition of BEA we got even more tools to add to our product stack. At a first glance this might be a bit confusing and it also might appear as there are some overlaps between the different tools, however, if you look a little deeper you will find that there is a place for each of these tools within your arsenal for creating business processes.

Let's start by have a quick glance at the players, whom they are and what they are do before we do a more throughout comparison between them.

To start with, the players are: Oracle Business Process Analysis Suite, Oracle BPM Suite.

Oracle Business Process Analysis Suite
This is the architects' tool. It includes support for process modeling and simulation which makes this a key component of the business process lifecycle. It provides a graphical modeling environment for defining process maps and detailed process flows consisting of both human and automated steps. It also supports data modeling, organizational modeling, impact analysis and rich report generation. Through simulation, you can quickly determine the performance of the process under certain hypothetical conditions. The Business Process Architect Quick Start Guide
is a good place to learn more about this tool.

Oracle BPM Suite
This is a software suite that integrates all phases of the BPM lifecycle (modeling, implementation, execution and monitoring). It will provide the user with an end-to-end tool for all aspects of the business process lifecycle. It is also very suitable to process development according to agile ideas.

Oracle BPEL Process Manager
The Oracle BPEL PM tool will enable to user to create processes that adhere to the BPEL standard. It consists of both a design time and a runtime environment. The design time environment is integrated into Oracle JDeveloper and the BPEL PM runtime is highly performing and can be installed on top the most common application servers.

So, after introducing the players, let's have a deeper look into when to use each of these tools by using some examples.

Example 1
Acme Inc. is entering the world of SOA. They will replace or integrate all their current processes into a single SOA strategy. Ron is an architect that has been given the task to model this new SOA strategy. Which of the above tools would be most appropriate for Ron to use?

Example 2
Karen is a department manger who also is quite technical. She work for a company that promotes empowerment quite heavily, and she has quite lot of flexibility of how she runs the day to day business of her department. Today she manually handles the holiday requests of her staff using mail and a spreadsheet; however, she would like to automate the process somehow. The company does not have a generic holiday approval process; it is up to each manager to handle, which is in line with their ideas on empowerment. Which of the above tools would be the best for Karen to use to automate this process?

Example 3
John is a software engineer that has been given the task to implement an order entry process. The process has already been designed and he has been given the blueprint. The process is very crucial to the business of the company and needs to be available 24*7, thus it will be deployed in a HA environment. Which of the above tools would be the best for John to use?

Well, the answers might be obvious to the you, however, they should give you an idea on where each of the tools in the Oracle BPM stack can help you with various aspects of your process modeling & creation.

Oh, I almost forgot, the answers. In Example 1 the Oracle BPA Suite is the obvious choice. In Example 2, most people would go for Oracle BPM Suite as this will help with all phases of the BPM lifecycle. Example 3 would be an example on where to use Oracle BPEL Process Manager as you have High Availability requirements.