see my 2013 on Twitter video here.
It’s Christmas time, 2013 is almost over. I’ll be heading to Berlin next week, which will be my last business trip for this year. 2013 has been a good year! A year packed with exciting projects, interesting tech workshops and new customers looking for honest OFM consulting and doing cool stuff.
Free WebLogic 12c Distinctive Recipes Book
To give something back, I am offering three free copies of my 2013 book WebLogic Distinctive Recipes.
By the way, guess who is Santa Claus on that picture? Don’t get fooled by the belly… I had to use an extra pillow to trick my 9-year-old nephew into believing that Santa exists (some friends believe that Beyoncé later copied my trick with the pillow).
To participate in the raffle simply let me know that you like a copy before Dec 20th:
✘✘✘ Just retweet the announcement on Twitter, or tweet about it yourself (and make sure I will see it).
✘✘✘ Or, if you are more a Facebook person, SHARE the Facebook announcement.
There is no purchase required to participate! All you need is a delivery address. Winners are drawn Dec 21st. Decisions are final. Any recourse to courts of law is excluded.
Training for the Cutting Edge: Presentation about SW Architecture and Tools for Public Clouds at the European Patent Office
Last week I provided a day long cloud training event at an European Patent Office for about 30 patent officers. Explaining details about software architecture and tools we covered the following cloud technologies: Amazon Web Services (EC2, S3, EBS, Elastic Load Balancer, CloudFront, RDS) and Oracle Cloud Database and Java Service, Netflix OSS.
The whole event was very rewarding. Just imagine speaking to a large group of highly skilled experts of about every possible computer science topics such as networks, programming languages, encryption, development tools, CPUs etc.
Unfortunately I can’t share the slides with you since this was a custom private event.
Also most of the feedback was provided right after the training. Just a few people who had to dash off provided online feedback, have a look below.
Coments about the training even:
There is still the training day to come where you can learn about WebLogic 12.1.2 as well, but DOAG conference is almost over. I enjoyed it a lot, especially the increased number of OFM talks.
I’ve done my talk “10 Things You Should Know about WebLogic 12.1.2″ yesterday. Apart from covering the 10 most exciting features I guess I mentioned at least half as many showstoppers and the audience seemed to appreciate it.
You can get the slides somewhere at the DOAG site (I guess) and from slideshare.net
Glad to see that interest was huge and more than 100 people attended, including people standing at the side and in the back. The WebLogic training day on Friday will be next. It is fully booked as well. Looking forward to see you there!
I posted some more impressions on the WebLogic 12c Distinctive Recipes Site.
To be able to code more than the most basic WLST scripts for WebLogic you should have reasonably good Python skills. Fortunately there are many good and free resources to get started. Note that WLST as of WLS 12.1.2 is using Python 2.
Here is a list of recommendations to learn more Python and become better a WLST:
- A gentle Python video tutorial by MIT Open Courseware (better suited for the non-developers): Core Elements of a (Python) Program.
- Python Standard Library
- Maybe the best single source: free Jython book.
- Learn from the pros and check out the beautifully crafted scripts at Middleware Magic.
- I’ve done a 15 min WLST / JMX video. In depth WLST without any coding: overview.
As you can see I haven’t mentioned any real books yet. Let me know your favourite!
Good collection to remember which just saved me from a stupid Excel task.
(It might help you with your WebLogic log files.)
Yes, it is true.
I became an Oracle ACE Director! I was nominated in summer yet working in Sydney and Melbourne but travelling back to Munich I was just too busy to blog about it. This is of course a great honor: Being an ACE Director is playing in the Champions League.
What makes me feel even more flattered is that some of those people who I respect most at (and around) Oracle nominated me. Thanks to all of you! Also thanks to everybody who hired me for consulting work, attended my workshops or bought one of my books: ultimately you made this possible.
What it means
Well, hopefully this means that I can speak at some more conferences, exchange with other ACE dirs, establish better contacts with Oracle VPs and PMs, and possibly have a tiny little bit more impact on how Oracle Fusion Middleware is going to evolve.
What will change?
Nothing. Sincerely, not a thing. Those who know me understand that I am not at all looking for fancy titles to impress people. For me the question is if there will be a real benefit for my work – which means for my customers.
Myself, I will continue to write about technology which happens to be mostly Oracle. Oracle didn’t buy me (I got a logo and a T-shirt). Also in the future I will mention bugs, missing features and complain about architecture that doesn’t seem right. I will continue to write books and articles explaining how easily features can be used and in which situation they are useless. Also I will continue to explore new formats like in my WebLogic book.
I just looked at a problem at a customer site installing WebLogic 12.1.2 in a VirtualBox environment. WebLogic 12.1.2 uses – unlike all previous versions of WebLogic – the Oracle Unified Installer (OUI) which first of all seemed to be the problem.
Here is what happened in detail:
– The installation failed because the OUI installer is checking the prerequisites and reports all CPUs with 0 MHz. For sure, this is not good enough (even with all the clever energy saving techniques in modern CPUs)
– The key question is whether OUI is buggy or the problem is somewhere else, e.g. in the OS or virtualization layer.
$ grep MHz /proc/cpuinfo
reports indeed 0 MHz for all CPUs. So the problem is not related to OUI but a VirtualBox issue. Still a weird problem. Why would CentOS be running with 0 MHz??
– VirtualBox might report 0 MHz for your CPU in case you selected the wrong chipset for your machine (in our case the developer’s HP laptop). Note, this means that exactly the same VirtualBox image will run fine on different hardware!
To fix it, stop the running guest and change the chipset setting in VirtualBox Manager from the default PIX3 to the non-default ICH9.
– Once this is done. Restart the guest image and check again. The CPUs should be reported correctly and OUI will run successfully.
$ grep MHz /proc/cpuinfo cpu MHz : 2664.287 cpu MHz : 2664.287 cpu MHz : 2664.287 cpu MHz : 2664.287
Have you lately tried to use SNMP with WebLogic? I did, because I upgraded an earlier Windows-based domain to WebLogic 12.1.2 running on CentOS Linux.
WebLogic is showing some strange and undesired behaviour here… Firstly, to get started with SNMP basically all you need to do is to enable the SNMP agent.
This is good enough when running under Windows. Then you might specify a trap destination such as localhost 4000 and run the WebLogic command-line tool to listen to the destination and verify if your setup is working.
The command line to run the trap listener looks like this
$ java weblogic.diagnostics.snmp.cmdline.Manager SnmpTrapMonitor -p 4000 Listening on port:4000
Now, of course you (well, in this case me) forgot to modify SNMP UDP Listen Port and the Master AgentX Port. For sure you know that you cannot bind to ports less than 1024 in UNIX.
- Interesting enough, there is an error message in the Weblogic startup – it is just pointing you to the wrong direction since it complains about port 171 not being available. Now, you might wonder, port 171 is configured nowhere!
- Apparently WebLogic is trying 161 and the following 10 port numbers, eg. to avoid conflicts when several servers are running on a single machine (nothing to complain about, this behavior is documented, just click on “help”).
- If all ports are unavailable (or not allowed for non-root users in UNIX), WebLogic does not complain about the configured port not available, but about the last one it tried. Not such a good solution…
- Looking at the Master AgentX port, the situation is different again. Of course the restriction for binding to ports less than 1024 still applies, but there is no auto-increment on WebLogic. Unfortunately, the error message in the log file does not even mention the port number.
To conclude, when specifying a SNMP port number that you cannot bind to, you might see an error message containing a different port number than the one you configured for SNMP UDP Listen Port.
For the Master AgentX Port you will see a rather generic message, not containing the problematic port number at all.
Both is good to know and leaves some space for improvement.
<Sep 21, 2013 8:53:54 AM CEST> <Error> <SNMP> <BEA-320951> <Failed to initalize the SNMP AgentX master subagent. One possible cause is the failure to bind the Master agentX port. If this is the case, check to see if the specified AgentX port is available, or ensure that the process has permissions to bind to the desired port. weblogic.diagnostics.snmp.agent.SNMPAgentToolkitException: java.net.BindException: Permission denied at weblogic.diagnostics.snmp.agent.monfox.MonfoxToolkit.initializeMasterAgentX(MonfoxToolkit.java:186)
If you are installing Oracle Service Bus (OSB) 22.214.171.124 – which is the newest version as of this writing – based on WebLogic 10.3.6 you are required to use the Oracle Enterprise Pack for Eclipse (OEPE) 126.96.36.199 (supported with Java 6).
Note that OSB 11g won’t run on WLS 12c. Although WLS 10.3.6 supports JDK 7, at the end I decided to run my WLS installation on the same JDK 6 version used for the OEPE IDE.
Typically matching OSB, WLS and OEPE versions is a no-brainer when downloading the bundle that contains WebLogic with Eclipse and OEPE for a particular 32-bit environment. The real fun starts with systems running 64-bit JVMs.
For my 64-bit CentOS 6.4 system I downloaded all the individual components separately with matching version numbers:
- Supported Oracle DB 11gR2 (XE works but not officially supported)
- WebLogic 10.3.6
- Generic Patch 13573621
- Eclipse with OEPE 188.8.131.52
- OSB Installer 184.108.40.206
- RCU (when OSB is used with reporting or OWSM)
You can get all the different OEPE versions from here:
The important thing to understand about the OEPE download is that it contains already ORACLE enterprise funtionality but not the OSB functionality.
Still there exists no separate OSB plugin. When running the OSB installer after the WLS installation, you specify the directory containing Eclipse with OEPE and the functionality will be added.
This is the location where you would get an error message telling you that you are using the wrong version of OEPE. If you version matches, OEPE will be updated for OSB functionality.
A good summary for other matching versions of previous product releases can be found in this OTN posting.
This is a note to myself. Hopefully good enough for me to reuse it one day. So the following instructions will probably only give you a rough idea if you found this page looking for help on Google.
Anyway, these steps worked fine for me. What a bliss not having the file systems 98% full when starting a project. Somehow, I always run out of disk space when I install SOA Suite. No matter how big I initially size it.
The challenge certainly is to get VBoxManage, fdisk and lvm right without completely messing up your system.
fdisk and to a lesser extend lvm are razor sharp tools that can easily cause bleeding wounds. So make sure you have a backup (<- repeat this last sentence after me).
On Host side (e.g. Windows 7 here)
VBox instance has to be shut down for the following steps.
Extend the VBox image
Run the from the command line on the host system:
C:\Users\frank>"\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd --resize 29696 "\01_work\30 vms\virt box\CentOS 6.4 64b STUDENT\CentOS 6.4 64b STUDENT.vdi"
On Guest side (e.g. CentOS 6.4 here)
Double check that you are on the guest side. Runing fdisk accidentially on the host side can destroy your whole computer, whereas running it on the guest side typically reduces the risk to destroy your virtual image only.
Use fdisk -l to list devices, then e.g. fdisk /dev/sda to add another primary partition (coomand n), next free number (e.g. 3), of type 8e (Linux LVM) (t), print part table (p), write table (w). Reboot…
Add new partition as physical volume (PV)
[root@ccloud12 ~]# lvm
lvm> pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Extend existing volume group (VG)
lvm> vgextend vg_ccloud12 /dev/sda3 Volume group "vg_ccloud12" successfully extended
Find out partition name
lvm> lvdisplay --- Logical volume --- LV Path /dev/vg_ccloud12/lv_root
Extend logical volume
lvm> lvextend -L+8.48G /dev/vg_ccloud12/lv_root Rounding size to boundary between physical extents: 8.48 GiB Extending logical volume lv_root to 25.56 GiB Logical volume lv_root successfully resized
Resize the File System (Guest System)
resize2fs -F /dev/vg_ccloud12/lv_root
Try df -h and enjoy your new diskpace.
Let me know if you had any success eg. using Oracle Enterprise Linux. Any super secret tips how to improve or shorten this are welcome.
Trying to run the Web Service Test Client as you used to do it until WebLogic version 12.1.1 fails in WebLogic 12.1.2. It took me a while to find out why.
My 12.1.2 domain was running in development mode, I deployed a web service but could not access the web service test client. The admin console did not display the link under Deployment / Testing and also the typical URL /wls_utc didn’t work.
Web Service Test Client / Console in WebLogic 12.1.2
Now here comes the news.
First of all, the link to access the test client has changed in a way which is hard to spot. No word about this in the release notes. To access the web service test client use the following new URL:
(until 12.1.1 it was wls_utc)
Testing from Console is BROKEN
Of course then you should be able to access the test client using the admin console via Deployments / Testing. Surprisingly this didn’t work for a really simple web service I used for testing. For exactly the same web service, only deployed in 12.1.1 domain, the console displays the testing link.
So not sure if it was only my example, which couldn’t be any simpler, but the testing link was not displayed.
UPDATE: I was trying this with more different web services. I did not work with any of my examples. I looks like a bug to me. I recommend to ask your friendly Oracle consultant if it is a feature.
Using Web Service Test Client from an URL
Although the bug described above, the good news is that you can still use the
for testing, eg.
Those of you who know the possibilities of the SOA suite test client (part of EM) or the OSB test client might have missed some more features in the WLS web service test client. The test client coming with 12.1.2 is overhauled (or new?) and comes with a number of additional possibilities like settings for authentication, WS-Adressing, WS-Atomic TX etc. (see the tabs in the first screenshot above).
Let me know if it is working for you.
Update: Bug fixed in WebLogic 12.1.3:
the bug described below seems to be fixed in WebLogic 12.1.3. Node manager is now checking the state of the servers and correcting it if wrong.
As usual, please feel free to provide your own experience in the comment section.
WebLogic 12.1.2 Node Manager Bug
While working with WebLogic 12.1.2 I discovered the following bug. Not sure though if the same would happen with 10.3.X.
Try the following:
- Create a domain with one managed server
- Configure a machine, then start the per domain node manager. Using the admin console start the managed server. All working lovely so far.
- It’s lunch time. Stop node manager. Then stop the managed server using the admin console. This shouldn’t be a big deal.
- After lunch: start admin server and node manager. Node manager reports managed server is running (which is not correct!).
- Try to start managed server and it will report an error message that it is in incompatible state.
Check the video below to reproduce it (just a quick recording, not a nice one):
1.) Interesting enough the server.PID file is removed when the managed server is shut down. However when restarting the node manager the managed server it is detected as running.
2.) With the node manager stopped, when forcing the managed server to shut down via admin console, ms1.state file shows FORCE_SHUTTING_DOWN, whereas when forcing the managed server to shut down (same button) with node manager running, the state is SHUTDOWN.
As you could guess, I wanted to spend my morning with sth else.
Comments welcome! Lunchtime for me now.
Note to self only. I just used it to shrink a WebLogic 12.1.2 image from 11 GB to 5GB. NIH, but lovin’ it!
0. If you have done an upgrade of your Linux clean up
e.g. in CentOS run
sudo yum clean all
this often frees several GB.
1. mark the empty space on the guest side (CentOS in my case, could be Oracle Enterprise Linux OEL …)
cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
2. use VBoxManager on the host side to shrink the disk image
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd --compact "c:\01_work\30 vms\virtbox\WLS12.1.2 STUDENT\WLS12.1.2 STUDENT.vdi" 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
A Twitter Bootstrap Based Self-Measuring Application To Quantify the Effect of Precompilation on WebLogic – Part II
This is part II. It’s the part explaining how to measure the effect of precompilation.
The previous part, part I, covered the basics of precompilation. The next part, part III, will be about why even simple web applications should be different to what you and me were doing 10 years ago.
Measure the Effect of Precompilation
How NOT to do it
Don’t create a non-precompiled web application, run it with a load script that is simulating the requests of several clients, and then to compare run a precompiled version of the same web application with the same load. There is a rather big middleware vendor who is exactly showing this in a performance tuning course, but please folks, don’t try it at home.
There are quite a some reasons while at the end you cannot really measure a difference this way. To list a few: you load testing tool might record think times, several simulated clients won’t help, because after the first access the resource will be automatically compiled and so on.
A more clever way…
To measure how much time could be saved with precompilation I developed an application which is timing itself!
The application contains 10 JSP pages and automatically forwards from one JSP to another. The first JSP page will store the wall clock time and the last one will retrieve it and calculate the total execution time of the application. When running the application for the first time it will roughly take 9 times the time to precompile a JSP page plus 9 times the delay that the application is waiting until it is forwarding to the next JSP. Note, that you cannot measure the time to compile the first page, because it has to be compiled first before you can store the starting time.
If you subtract the time the application is waiting until automatically forwarding to the next page (a value arbitrarily set to 3 seconds here) and divide it by 9, you will have an estimation the average time it takes to precompile a single JSP.
Even better: if you run the exact application again, it is already precompiled! That’s a handy cross check. This way you can even quantify the time it takes to load the JSP page or the class file.
On my small Lenovo X220 laptop with a SSD the compilation of a single JSP page cost more than half a second. When running the app for the first time I get the following results:
For the second run the results look as follows:
There is still some time needed per JSP but it is about 40 times smaller and more or less constant if you decide to run the precompiled version again.
Measure your own system, it’s an interesting benchmark. And let the world know – post your results here including your CPU, disk etc!
I recorded an a webcast showing how to use the application to measure the compilation time of JSPs. You can watch the webcast using the following URL:
The application that is shown in this webcast above is a first prototype, without any design touches. Part III of this posting will explain who to achieve a beautifully looking design almost without any extra work!
Download the Application
The application that is provided to download here is the one that is described in part III of this posting. It has the same functionality but includes a tiny bit of web design using the Twitter Boostrap framework.
You can download the new and pretty application from the following location:
Not precompiling your apps will cost you more than half a second per JSP. Use the application above to benchmark your system.
For an application with 5000 JSPs you will waste an extra 40 minutes waiting.
A Twitter Bootstrap Based Self-Measuring Application To Quantify the Effect of Precompilation on WebLogic – Part I
Sounds cool, doesn’t it? Yet a bit academic – I agree. So why this title? It is as precise as it gets. And it’s less 140 chars, so I can even tweet it. Yet no worries, I’ll enjoy dissecting the headline for. There are a number of important messages. To make it more readable I will split it into three parts.
- So let’s get to the topic right away (which by the way is precompilation).
- To prove it makes a real difference, I will show in part II how you can measure the effect of precompilation since quite often people fail to do so.
- Later in the cool part, part III, we look at some exciting bells and whistles for web applications (Twitter Bootstrap framework).
Why would you precompile your application?
Precompilation isn’t really necessary to make an application work correctly. WebLogic will compile necessary artifacts when they are needed. For example a JSP page which is not precompiled will be compiled at the time it is accessed.
Deploying an application without precompilation forces you to use lame excuses such as “It’s a bit slow right now, because it is running for the first time after deployment“. I am sure you don’t want to be remembered for lame comments. Running your applications without precompilation costs you time. And time is expensive.
What is the difference between precompilation and compilation?
Well, every Java class has to be compiled before it is executed by the JVM. The .java file is converted into a .class file. Other stuff, such as a JSP page could be deployed as is. It will then be compiled by WebLogic.
What can be precompiled?
If you don’t want to think about it, simply precompile your .war or .ear files. JSPs, web service artefacts and EJBs can be precompiled. Let’s look at the JSPs in more detail:
The JSP is converted into a servlet Java file which in turn is compiled into a .class file.
Precompilation after deployment?
You can request WebLogic to precompile your application right after deployment. To do so set the XML element <precompile>true</precompile> in the weblogic.xml deployment descriptor.
Many projects seem to use this solution, but it is certainly not the best idea. There are at least two reasons why I am not a big fan of this solution.
1.) Using the setting mentioned above precompilation happens right after deployment. This is the time when you want to show off your application. However, the application is not precompiled yet. Even worse, during precompilation system resources are used and the application is slowed down.
2.) When setting the <precompile> element, the application is precompiled after redeployment and after server restart. Do you really want your application to be precompiled after every server start?
Precompilation before deployment!
I recommend to precompile before you deploy. If building your application takes a long time, precompiling will make the process even longer. Then consider to have two different build targets: One for quickly testing your application without precompile, another one with precompile for load testing and deploying your application in an production environment.
After setting an environment suitable for running WebLogic commands from the command-line, all artifacts for an application surf.ear can be precompiled as follows:
java weblogic.appc surf.ear
Note, that the former JSP precompiler weblogic.jspc is deprecated.
Sometimes JSP fragments are included within a JSP yet these JSP fragments are not syntactically correct JSPs. Now if the fragments have a .jsp extension the precompiler will try to compile them and fail, therefore you should set the tag <precompile-continue>. Then precompilation will continue on errors.
Also there are faster compilers than javac. You can specify a different compiler with the switch -compiler.
Precompilation with Maven
If you use Maven to manage yours builds, Maven can call the application compiler appc for you when building you application. So everything in the paragraph above applies to building your application with Maven as well.
If you precompile the deployment module before deploying, the classes will be added to the module and you should never see WebLogic compiling them again.
In case you are having problems with reoccurring precompilation, check the following issues:
- Verify that the JDK version used to precompile is exactly the same as the JDK used to run WebLogic.
- Make sure the time on the machine used for precompilation is synchronized with the machine where the application is deployed.
Precompilation isn’t a new topic, however it is often done the wrong way or it is not done at all.
Always precompile your deployments unless you manually create a quick distribution for testing during development. Don’t precompile using the <precompile> deployment descriptor after server start.
Add the precompile step into your continuous build process.
WebLogic 12c deployment descriptor documentation for precompile:
Using WebLogic Maven plugin:
WebLogic Maven appc goal:
Reviews and Attendee’s Opinions
My WebLogic 12c training courses in AUS were a great success so I’d like to share the reviews with you. My special thanks go to AUSOUG president John Bushell for making this possible and Burke Scheld for organizing the events.
what Did you like about the workshop?
I got some really nice feedback after the presentation, here is all the answers.
Tricks and Tips
Info about the non-core tools and tricks, very handy to get to hear about little odd things like that.
Useful hints and tips, and a good overview of WebLogic 12c
Useful open source software and administration tips
It covered some left of field topics and points – some of the things I was hoping for.
4/19/2013 1:46 PMView
Good tips on tuning. Good opensource tool suggestions.
Tips and tricks on weblogic server management.
Live demos, interesting content
Opportunity to see things that are new to me in a class room environment
Good independently sourced information about Weblogic features and capabilities. The idea of using virtual images helps to set a test environment quickly. The expertise of the presenter makes him capable of providing information that is beyond what you can find on the official Oracle docs.
Good presentation, good explanations, aimed at the right level for me.
We can discuss the good, as well as criticise the bad, features of Oracle software.
Frank provided information about some useful tools that I wasn’t aware of. The overview of the new features in 12 was good. The configuration tips were handy. The cost of the workshop was very reasonable for the information gained from it.
To get an overview of technologies and to discuss those.
Well presented with references to resources for continuing help
Nice pens from the presenter. And the idea of giving away a free book.
Interesting insite into some open source tools that enhance the administration features of WebLogic
Frank obviously knows his stuff, and backs up recommendations with excellent real world examples.
Very well presented. Topics were relevant and current
Comments about presenter:
Good presenter, and well prepared. Always interesting
Experienced and keen to answer questions and offer advice
Good relaxed presentation with time to digest the material – thankyou well done
4/19/2013 1:46 PMView
Frank was a great presenter and his style was very professional. English was very good and understandable.
Knowlegable, responsive, good communicator
Frank had good experience and knowledge of weblogic server.
Frank Munz was knowledgeable, concise and to the point
Well prepared, you can tell that he has a long experience with the platform
Very good, knowledgeable, easily understood
Frank is an excellent presenter and very knowledgeable about almost every aspects of Weblogic software.
I liked Frank’s relaxed presentation style and the depth of his knowledge of the product.
Excellent guy who knows what he’s talking about, broad range of experience and good examples.
excellent presentation style
I like how he is not biased towards a brand of technology but instead rationalises upon technology choice depending on immediate/long term goals.
Great presentation – really informative and easy to follow.
Good presenter, though he gets a little carried away reiterating key points
Frank is organised and knowledgeable and presents with a comfortable, easy to listen to style.
Very nicely presented
Learn about my internal WebLogic 12c training offerings.
Oracle SOA Suite is certainly the most comprehensive and also the most complex product of the classical WLS / OSB / SOA Suite stack. There are plenty of tools and other products tightly interwoven with SOA Suite:
It all starts with the installation where a supported database is required for the meta data repository. The necessary schema are created with the separate repository creation utility (RCU). Testing processes is done from Oracle Enterprise Manager. Finally developing BPEL processes requires JDeveloper as an IDE.
That’s it to get started yet more complex projects often involve a Oracle Web Service Manager, and sometimes a repository and a registry.
The recipe below is part III of a series of introduction recipes covering Oracle Fusion Middleware. It’s reduced to the max and as buzzword free as it gets. It certainly doesn’t replace an in-depth training though.
… better read this first
For a better understanding make sure to read part I and II first:
Part III: this document
Download the Oracle SOA Suite Introduction Recipe
You can download the SOA Suite recipe as a PDF file from here. Enjoy!
This recipe is straight out of my book WebLogic Server 12c: Distinctive Recipes
Collecting material for the next edition of my WebLogic 12c book I began writing a primer about Oracle Coherence from a WebLogic perspective. Coherence is part of the WebLogic Suite and you can start using it right away.
Many WebLogic professionals still consider Coherence as something complicated and challenging to get started with, so I made a number of hands-on Coherence primer screencasts available – also more blog postings with best practices will follow.
Make sure to subscribe to WebLogic book YouTube channel: http://www.youtube.com/weblogicbook
Coherence is a coherent data grid that provides a number of different cache implementations, which are well described here. The following figure illustrates how data A. B, C is stored into different nodes with the same put(key, value) method.
Oracle Coherence Basics, Multicast Test and Firewall Issues
Oracle Coherence Command Line, Replication and Availability
Development with NetBeans Introduction
Oracle Coherence NetBeans API and NamedCache
Coherence ActiveCache with WebLogic
Coherence ActiveCache can be used to offload session data from WebLogic into Coherence cache nodes. These cache nodes can be managed with WebLogic Nodemanager. A detailed explanation can be found here.
Oracle Coherence ActiveCache for WebLogic 12c configuration
Oracle Coherence ActiveCache Demo for WebLogic 12c
Oracle Service Bus is one of these software products that haven’t changed much in their core since many years. These days I tend to see more and more OSB projects and one reason certainly is that license wise OSB is included with Oracle SOA Suite.
Compared to SOA Suite, OSB is conceptually different though. Even with a good understanding of SOA Suite (which I will cover in one of the following posts), there will be a slightly steep, but rather short learning curve for OSB.
The following recipes tries to motivate and explain the usage of OSB without the usual marketing hype. Make sure to read the previous posting about getting started with SOA in general and Oracle Fusion Middleware.
OSB is virtualizing service calls from clients to the service implementation. By using so called proxy and business services (both are components within OSB) incoming and outgoing requests can be arbitrarily connected and protocols can be converted. Proxy services contain the processing logic (validation, enrichment, transformation etc.).
If you are trying to get started with OSB, here is the link to download Oracle Service Bus Overview and Getting Started (PDF).
PS. Actually this recipe is taken out of my book Oracle WebLogic Server 12c – Distinctive Recipes.
Not everybody is starting up JDeveloper first thing in the morning in order to work with Oracle SOA Suite. Let’s face it: Instead of being an SOA expert, any given IT specialist is more likely a certified DB admin, a Java developer or somebody who was just told by his manager to take care of that Oracle Service Bus installation. In case you are one of them and looking into SOA and the related Oracle products this posting is written for you.
Technology and Oracle
The following two recipes provide firstly a no-nonsense explanation of Service Oriented Architecture (the first part is not related to Oracle at all !) and secondly an overview of Oracle’s Fusion Middleware (OFM) product stack.
The description is deliberately easy to read and I intentionally didn’t reuse any fancy marketing slides since they are often too generic and contain too many buzzwords.
For everybody trying to get started and reading a 101, here is the link to download SOA and Oracle Fusion Middleware for busy IT professionals (PDF).
PS. Actually these two recipes are taken out of my book Oracle WebLogic Server 12c – Distinctive Recipes.
AUSOUG Workshop Series 2013 with Frank Munz
This independent workshop is run by Frank Munz, Oracle Technologist of the Year 2011 and published author of WebLogic 12c: Distinctive Recipes and Middleware and Cloud Computing. Frank was running the popular Oracle and Amazon Cloud Workshops in 2012 and now presents a 3h workshop based on his new WebLogic 12c book in 2013.
Duration: 3h including a short coffee break
Content: In the workshop we will cover worthwhile WebLogic 12c features, best practices (also applying to earlier version of WebLogic), default settings that you should better change, security glitches, useful open source tools and other stuff Oracle doesn’t tell you about.
The workshop will be centered around the core WebLogic technologies. We will examine the interesting new features of Java EE 6, the merged JVM, configuration management, debugging of memory leaks, stuck threads, deployment of configuration settings with application modules, performance tuning tools and mistakes, custom JMX MBeans, etc.
Format: The workshop will contain lots of live presentations. An Oracle Virtual Box Image with all the examples will be provided at the end, so you take them away and use them any time you like on any computer. (Note: The Virtual Box Image won’t contain Oracle WebLogic Server which can be installed in a couple of minutes.)
Target Audience: Ideally you have some hands-on experience with WebLogic, but even if you are just starting and looking for an overview of the exciting parts you are most welcome. The workshop is suited for architects, administrators and those developers interested in more than just Java EE standards.
Frank’s WebLogic 12c book: http://www.amazon.co.uk/dp/0980798019
Subscribe to the WebLogic 12c webcast channel on YouTube with over 30 free WebLogic 12c videos available online: www.youtube.com/WebLogicBook
For registration check the AUSOUG site first.
$95.00 (inc GST) for members
Dates and Venues:
Seats are still available for the following venues:
Apr 8, 2013: Brisbane
Apr 10, 2013: Sydney
Apr 15, 2013: Hobart
Apr 17, 2013: Adelaide
Apr 19, 2013: Perth
Apr 11, 2013: Canberra
Apr 12, 2013: Melbourne
3h are too short? You’d rather prefer an in-house WebLogic 12c workshop? Feel free to drop me an email! All my workshops include course material, all lab applications to take away. Also typically a VirtualBox image is provided so you can ran any example at any time and anywhere.
Dr. Frank Munz has over 15 years’ global experience with top middleware vendors such as Sun and Oracle. A middleware and distributed-computing expert, Frank has a Ph.D. in computer science and has published more than 20 peer-reviewed scientific papers and over 200 articles.
Frank’s consultancy, munz & more, focuses on Oracle middleware and cloud computing, offering a high-end training program worldwide.
Oracle rewarded Frank with the Oracle Technologist of the Year award in 2011.
Frank loves to talk about features and showstoppers at conferences all over the world.
Reviews and Attendee’s Opinions
Click here for the reviews of the WebLogic training course (Brisbane, Adelaide, Perth events)
My new WebLogic book is published now!
- Over 40 videos replacing the boring screenshots used in typical cookbooks.
- No “Click here. Click there.” instructions
- Useful recipes
- Download deployment modules: Web Services, EJB 3.1, Timer EJBs etc
- Best Practices
- Default parameters that you should better change
- Performance glitches you should be aware of
- Open source projects you have to know
- Stuff Oracle doesn’t tell you about…
- Published in Australia. Click on the book image to buy.
Check out the book’s homepage.
Can you easily find out which WebLogic servers are listening to which port numbers and addresses?
Imagine a multi-project machine with a dozen IPs and tens of domains. When trying to start WebLogic another process has already bound to the address and port so you get the following Java exception:
java.net.BindException: Address already in use
What is listening to a particular port on a certain IP?
Is it a WebLogic? If so, what is its domain name and directory?
There is a helpful UNIX command lsof (the name means “list open files”).
Actually lsof is very versatile. Here are some examples of its usage.
Find what is listening on localhost and port 7001 on the local machine.
$ lsof -i @localhost:7001
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 2802 oracle 397u IPv6 37417 0t0 TCP ccloud:afs3-callback (LISTEN)
You can tell from the output it is a Java process with PID 2802. To find out more about the Java process, (is it really WebLogic or maybe the Derby database or node manager using a weird port number?) narrow it down with ps.
$ ps -ef | grep 2802
oracle 2802 2746 18 10:40 pts/2 00:03:10 /usr/java/jdk1.7.0_04/bin/java -client -Xms256m -Xmx512m … .
-Dweblogic.Name=AdminServer … weblogic.Server
Looking at -Dweblogic.Name=AdminServer in the output above tells you it is a WebLogic admin server running. Now if you’d followed recipe 7 you could determine from the username the name of the WebLogic domain. Then you could conclude the domain directory from the domain name.
Discover Domain Name and Directory
Even if you didn’t follow recipe 7 with regard to users and names, there is still a solution. Here comes another trick with lsof (this is why I mentioned that it is so versatile!).
You can still find out what domain the WebLogic instance belongs to by looking at the files it has opened. In particular, you want to see the log files it has opened, because they belong to the domain and unveil the domain directory.
$ lsof -p 2802 | grep ‘\.log’
The last line in the output looks as follows:
java 2802 oracle 348w REG 253,0 0 261838 /u01/domains/surfandconsulting/servers/AdminServer/logs/access.log
You can easily narrow down the grep command above if you know that your domain directory contains e.g. the word “domain”.
Process holding a file
You can also do it the other way around. Find out which process has a particular file opened.
$ lsof /domains/surfandconsulting/servers/AdminSrv/logs/access.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 2802 oracle 348w REG 253,0 0 261838 /domains/surfandconsulting/servers/AdminServer/logs/access.log
The output is telling you it is a Java process with process ID 2802, so you could use ps again to find out what exactly this Java process is.
Binding to name
Check if WebLogic is listening to a particular name, e.g. the host name of the machine.
$ lsof -i @ccloud:7001
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 2802 oracle 397u IPv6 37417 0t0 TCP ccloud:afs3-callback (LISTEN)
From the output you can tell it does!
Binding to IP address
Check if WebLogic is listening on the local machine to the address 220.127.116.11
$ lsof -i @18.104.22.168:7001
There is no output, so WebLogic is not listening to this address.
I recorded a hands-on webcast available that walks you through the usage of lsof.
Oracle WebLogic Server 12c: Distinctive Recipes
Many more recipes are contained in my new WebLogic 12c book.