BAM 12c what does it and what not?
No stress project
So after being absent for a period (6 months), there are not many changes on the workplace. But as time passes by, we all feel the urge to make a good decision in choosing the right report-tooling that we can use for our new middleware version on our on-premise cloud environment.
As I did try to use BAM11g 5 years ago and my colleagues are interested, but they have no time to do the research, I volunteered to do this little investigation.
Looking to all the options:
- open source tooling??
- BTM
- BAM
- OEM 13c
- Oracle Real Time Integration Business Insight
- custom development??
But the most important question is why and what do you want to monitor? What is the real business value? Our last attempt was unsuccessful because off all the people who were included in deciding what had to be monitored. This time I want to make it just our technical decision. If we have chosen a tooling that is suitable for our needs, then it is time to look at our customers wishes.
So what do we want?
- pro active monitoring. Can we use the tooling to alert us before failure. Can we use PKI’s and certain rolling windows features?
- Action should be taken on certain failures:
- stop a service if it takes to much memory?
- alert through mail if error X or warning Y is arising?
- if an error occurs, can we zoom in on the chain of services to pinpoint our faulty service?
- …
There can be many more wishes, but this could be a great start.
We have a lot of Oracle software and we have the licences for OEM13c, BTM12c, BAM12c and Oracle Real-Time integration business Insight of course.
What can OEM13c do for us?
Virtual machineries
I have a lot of virtual machines. The onces I use at the moment are:
- Integration 12.2.1.3.0 (SOA Suite 12.2.1.3.0 Developer appliance)
- OEM 13c (OEM13c download link with help directions)
- Older version of the SOA BPM 11.1.1.6 version (no link available anymore)
- Custom made version of a Weblogic install with SOA. This was created where colleagues could get acquainted with the stopping and starting sequence, but also one step further: they could build and deploy a simple HelloWorld BPEL Webservice. I installed Oracle BTM as a new domain so I could check the new version we wanted to use and check if the OSB harvesting was better
- New installed Oracle DB Developer with my own custom install of the Oracle SOA Suite enviroment.
OEM 13c first show stopper
I started all kinds of virtual machines and off-course I ended up with a unresponsive machine 🙁
So I figured that I should not try all machines at the same time, because even my 32 GB internal memory is limited for a couple of machines!
That said: lets start with some basics. My last development steps were in SOA Suite 11g, so I started this machine with OEM13c.
Starting the OEM13c is time consuming, so I could configure network settings on the machines. I always use 2 network controllers: one is the default NAT network and the other is the “Host only adapter”. That way my virtual machines can reach each other and I can use my own browser to connect with the browser URL’s of the virtual machines.
That all worked, except for my OEM13c machine … I know that I had this problem before and it was firewall ralated. Searching through my blogs: found zip-nothing-nadda … That was done in Word …. a long time ago, as blogging wasn’t as easy as it is nowadays 😉
So what were the commands for disabling my Oracle Linux Firewall?
- Stop the ipchains service. # service ipchains stop. (that gave an error for me!)
- Stop the iptables service. # service iptables stop. (that worked for me, now I can reach the server from my other virtual machine and host browser)
- Stop the ipchains service from starting when you restart the server. # chkconfig ipchains off. (gave an error again service doesn’t exist)
- Stop the iptables service from starting when you restart the server. # chkconfig iptables off. (make sure after rebooting that it still will work … firewall disables I mean)
That gave me an security error, but that we can solve easily:

If you accept the fact that you might have an unidentified certificate added to the trusted certificates then your good to go:


OEM13c Agent install
So we should really get started and get our hands dirty. For me the best way to learn and remember. You could easily learn it with only looking to the documentation but would you remember it after a while? I won’t, so that for me is the reason why I want the hands-on part just so I can remember it better and know what other people are talking about.
So let’s do this!
You can do it somehow automagically, but I prefer the manual way. So you can see what goes wrong 😉 … I tend to be a bit negative with this stuff 😀
If you log in at the Enterprise Manager you can click in the menu at the top right of the page:
The screens for installing showed up and after a long while (OEM transfer the agent software to a location, pre-install checks etc.) it turned out that my Linux version was to old 🙁
So we don’t give up this fast (oh well … it has been months after I finally went on with this test again) and we installed the agent on a newer version of the Oracle Integration Virtual Appliance (SOA Suite QS 12.2.1.3). I installed it succesfully. I could see something happening in OEM13c … but damn: why didn’t I make notes and pictures of it? I guess I was traveling from work to home and made some screenshots with the promise to myself that I would really blog about it within a day. It never happened till now!
But … in the meanwhile I had to reinstall the newer Virtual Appliance because I messed things up. So after starting it once again, I had issues on the OEM13c side…offcourse! It could not connect, because the Agent was non-existing.
But I remembered that deinstalling was also an option, but I seemed to have forgotten how.
After looking around, I saw the
Well after trying the Agent Decommision…
After this you receive the list of items that will be deleted and cannot be undone! So be wise and use your power with great responsibility: I mean push that “Continue” button .. NOW 😉
Quite rapidly the process tells me that everything has gone!! Everything!! 🙁
So this has cleaned up the mess I created a long time ago. But hee, how did I install this in the first place? Oh jeez, my memory is aging I guess cause I don’t seem te remember this as well 🙁
For Auto Discovery, you should be aware of the network components etc. in your network. We can also Add Targets Manually. This opens the screen:
Give the right information, like a FQDN host entry. Cause otherwise the isntaller will fail!
Figure out where to place the files on the target and make sure you use an account that can logon to the system:
I allready had a named credential that I could choose, but I wasn’t sure if it was the right one. So I created a new one with the hostname (integration) in it:
The installer summary is shown:
After this the installer show the progress:
Aww .. shoot: this brings back memories indeed! That error was shown years ago, as I started with this test 😉 … luckily I am blogging about it now as I am trying to. So next time, I could have read it in this blog
“Either set the “oracle.sysman.prov.agentpush.enablePty” property to true in the “/u01/OracleHomes/Middleware/sysman/prov/agentpush/agentpush.properties” file, which is present on the OMS host, or disable the “requiretty” flag in the sudoers file.”
So I changeed the agentpush.properties file … and started once again with the Retry button.
This looks better, with no Remote Prerequisite Check warning:
No Errors:
We had a couple of meetings and after lunch I was looking at a nice screen, but … what the *peep* happened over here? I saw a message that the Agent could not be reached…the virtual machine crashed during the hours of not paying attention 🙁
So after starting my virtual machine again, it gave me this nice screenshot…
So I could not connect with my FMW through the agent, so I stopped the agent. Removed the integration entry after the localhost and added this to the static IP address. This doesn’t fix my problem .. darned ! Now what? Well I am guessing that this won’t be solved in the near future.
oh wait … wait one second. Something else comes into my mind: what was there about firewalls … even in this blog?! Why didn’t I think about that. I got a connection refused and didn’t expect it to be OS related. But now we are discovering things!!
Just for fun: I found this out in the train heading back home! We are travelling to the last stop, so I really hope that this discovering is going fast enough 🙂
crack … a bit closer, but it feels so far away 
So after a good nights rest (kinda), I was looking at the error once again. I tried it once more and saw a little message on top of the page about changing more info than click Continue, while I was hitting the Add Targets button .. oh my .. would that be a stupid mistake ?
Nope! Once again it stopped with an error .. but with an handshake error … wait a minute …
Error Details: java.lang.Exception:-java.lang.RuntimeException:-java.lang.RuntimeException:-javax.naming.CommunicationException-t3s://integration.oracle.com:7001:-Destination-192.168.56.112,-7001-unreachable;-nested-exception-is:---javax.net.ssl.SSLHandshakeException:-Remote-host-closed-connection-during-handshake;-No-available-router-to-destination at
Could it be certificate related? shoot .. one other day ruined 😉
Finally I found something that was helpful :
https://support.oracle.com/knowledge/Enterprise%20Management/2066039_1.html
Not the problem or the solution helped me, but it showed me where the logging of the agent was:
[oracle@integration log]$ pwd /u01/app/oracle/13cAgent/agent_inst/sysman/log
I saw errors about nslookup not being able to find the server integration .. that is odd: it gives an servername with a complete different IP address, that I could not relate to my server and that isn’t showing up in the ifconfig results … odd odd odd ..
ok .. 4 hours later and I feel really dumb 🙂 … jeez … all the time I was looking at the error that there was an authentication error .. so I finally thought: lets change the first credentials from OS credentials to weblogic credentials … TATAAAAA … problem solved and 45 targets discovered:
Wait … it states that there is a localhost configured … so I have to look into that, to make sure that everything can be discovered.
It was stated that the UnixMachine was on localhost, so I changed that to the servername:
but it didn’t seem right, so I’ve removed that entry (believing that is for listening to all addresses) and did an Add Middleware Target again!
But the same message occurred once again 🙁
Oracle Real-Time integration business Insight
After playing around with the default Oracle Integration 12.2.1.3.0 Vbox appliance, I discovered this new tooling and the same goes for the OSA part: Oracle Streaming Analytics.
Trying to comprehend the different use cases for all those different products, it can be resumed like this:
- OSA could be used to analyse streams of data and act upon results of the queries
- BAM: you can send some data to BAM from within your BPEL process. So at design time you have to add certain watches to make sure that data is sent to the BAM server
- Insight: almost the same as BAM,but this time you can add those watches after design time, so its more a business thing.
Fout: Error: User and Group cannot be added in sbconsole after created in WLS Console
Bug 22526026
For this bug, one of our developers found, We installed the patch on our OSB server 12.2.1.0. This made sure that our developer could go on developing his OSB service. We wanted to know if this bug is fixed in the next release of the Oracle SOA Suite 12.2.1.3.0, that was allready released. So I created a simple OSB service, with a lot of hassle as I blogged in this part,
I discovered that Oracle released an Virtualbox with that newer release so I downloaded this one. It was shipped with a complete Desktop and SOA QS 12.2.1.3.0 and the complete server install. This is really cewl, because some of the features are not available on the integrated SOA QS Server. Think about BAM and MFT and other nifty stuff you want to play around with.
So for my test case I found out that after starting the Adminserver and the OSB Server, I also had to start the SOA Server for the OWSM policies.
Recreating the situation
Login at the console

Click on the Security Realms link on the left

Continue to click on the MyRealm link

And select the tab “Users and Groups”

Select the tab “Groups” and click on button “New” to go to the Group information screen

Some information to identity where this group is for and “OK” to create the group:

After that select the tab “Users” and click on the “New” button to create a new user:

Insert information about this user:

After creating this user we have to make sure that the user is in the BugTest group:


I allready created a simple HelloWorld Service that uses an extra service for the real greeting.
So lets try to add a policy to the Proxy service and after that we add the group to the policy and see if the same error occurs.
To get to this point we have to login at the sbconsole:

Go to the proxy you would like to add the policy to:

Click on the “Edit” button in the upper left corner:

Go to the Policies part:


Add the wss username policy by clicking the paperclip:

Now you have to search for the desired policy and while selected, click on the attach button:

After clicking on OK, you can leave the default override screen and remember to click on the save button:

After that we have to add our desired security settings (our bug!):

Now in this screen we can add users or groups that have access.
So normally the selected username wss policy grants all weblogic users to call the webservice.

Now we want to override this default and make sure only selected users/groups can call this webservice.
To do this click on the Service name in the Message Access Control part
select Groups in the dropdown box and click on Next

You have to type the Group Name(that’s why you shouldn’t use this policy for autorisation..really!) and make no mistakes. This part will not check if the group or user exists!
So in my example I have to add the Group: BugTest.
and Oh My, there is a bug:
Patch 22526026
So lets get patching. Reading the readme.txt and I saw some stuff that was different on my install: the $ORACLE_HOME is pointing to a DB install directory and not my FMW. Using a different Java Location, because there was no JDK/JRE installed in my FMW home. The default: /usr/java/default is used for this installation.
So altered my ORACLE_HOME into:
export ORACLE_HOME=/u01/app/oracle/fmw/12.2
so lets check the OPatch lsinventory:
$ opatch lsinventory
Now I know that this could lead to some problems, because there are a couple of One-off patches installed:
26355633
26287183
26261906
26051289
So lets try and install our patch. I didn’t stop my servers, just to see if this can work. It states in the Readme that it is a rolling patch. It will not work if you don’t have a FMW_ROLLING_ORACLE_HOME.
For more information, consult the My Oracle Support MOS Note: 1942159.1
opatch version number is:
13.9
go to the directory where the opatch is and apply opatch:
The installer indeed states that the servers should be stopped.
OSB kennis
a little is not enough
My experience in the SOA world has always been on the right side ;-). The BPEL side, that is! A little inside joke my colleague and I always have.
But to be honest, all the OSB questions are redirected to him and most of the BPEL ones to me. As we are upgrading our integration stack we have come across some bugs and problems with the versions we want to use (that is Oracle SOA Suite 12.2.1.0). The bugs we discovered in short are:
- Patch 22526026. User and Group cannot be added in sbconsole after created in WLS Console.
- CSF Key on Business Service does not override the default value
As always there is a big chance that Oracle tells us to upgrade, that why we wanted to check if this is still a problem.
So for the first bug-check I wanted to create a simple process:

HelloWorld OSB service that calls an other OSB service that does the actual replying with Hello 🙂 … and I struggled with this one. Oh my! How the lack of knowledge showed!
I tried to get a simple assign working and this caused me to try a lot of things in the weekend and evenings 🙁
There are so many tutorials online and I am posting mine, because I could not get it right, using those blogs. Even the ones I choose because the authors should know what they are talking about. So if a blog states that you should assign a value to the $body then I will oblige. After doing so I encountered a lot of errors, but so happy to see I am not the only one:
value must be an instance of {http://schemas.xmlsoap.org/soap/envelope/}body
How irritating it was to get stuck with the same error, even after trying all the blog solutions. Yesterday I asked my colleague and he looked at me with question-marks in his eyes. So if he was trying not to say: “What the f*ck are you doing and why are you doing that” … That made me show the tutorials and he told me that for using the $body I could not use an Assign action, because this is an existing variable. So create a new one to use, or instead of using an Assign action, use a Replace action.
And it worked. Really? I feel humble once again.

















