The theme of the day was infrastructure essentials. There were four topics. I took away the following points:
WebLogic Server essentials for SOA: CAT, Errors and ExceptionsFlavius explained how class loading works in WebLogic. As a JEE developer, this was pretty straight forward. However, I still learned two new things:
- Using CAT, WebLogic Server class loader analysis tool to analyze class loading on WebLogic (http://localhost:7001/wls-cat/ )
- The difference between a ClassDefNotFoundError and a ClassNotFoundException. Knowing the difference helps in trying to solve class loading problems. The ClassNotFoundException is an exception from a class loader that tries to load a class that is not available to that specific class loader. The ClassDefNotFoundError is an error because a class that was there during compilation can not be found by another class at runtime. There was an interesting lab to show the differences.
|Tip for the organizers: it would have helped my understanding a lot if you would have drawn a picture that showed in what library or war file what class was residing. Because of the name I was incorrectly assuming the CLTestHelperInner was in the same jar as the CLTestHelper class and it was unclear why the ClassDefNotFoundError was thrown.|
Another interesting topic was the server architecture, including WorkManagers in WebLogic. Unfortunately there was not a lot of time spent on this topic and there we no labs about this either.
SOA Composite essentials: what will 12c bring us?
This was an overview of what a composite consists of. As far as I am concerned this could have been skipped: we were all supposed to have prior knowledge and experience of the SOA Suite. The advantage of covering the subject was that we got to ask Simone a bunch of questions about plans for SOA Suite 12c :D
SOA infrastructure essentials: the stack trace, the soa bundle and the reference endpointThe first part of this presentation covered some basic stuff, like SCA and Spring. Then it got really interesting: Rajesh showed us the Spring configuration of the Fabric (Service Infrastructure) and the Message routing that occurs when a request is delivered to the Service infrastructure. It makes the stack traces that you find in SOA Suite a lot more readable and usable!
In terms of deployment the one new thing I learned was to combine a MAR (MDS archive) and a SAR (a SCA archive or JAR) into one ZIP file, a SOA Bundle. Usually I deploy the MDS artefacts separate from my composites. The advantage of the SOA Bundle approach is obviously that your MDS artefacts don't get out-of-synch with your composites. The downside is you create new versions of the documents in MDS that are part of the application even if you did not change these artefacts.
|Tip from me: Use deployment scripts rather than deployment from JDeveloper or Enterprise Manager and don't go crazy with the SOA bundle option: you don't want to redeploy everything in your workspace every time.|
Last but not least he explained that you can only override endpoints from WSDLs that are local to the project (or composite). So overriding the endpoint in Enterprise Manager from a reference that has a remote WSDL location won't work. Unfortunately you can't see this in Enterprise Manager, the only way to know this is to look in the composite.xml and inspect the location of the WSDL. This was shown in the lab. This lab did not add a lot of value in my opinion and could have been skipped.
MDS Essentials: tell me more!
This was a very basic overview. Unfortunately it did not cover the data structure(s), purging and other topics that I was expecting from an advanced class like this. The lab showed some basic stuff like creating connections to MDS and deploying the SOA bundle from JDeveloper. And again we talked about the upcoming version of SOA Suite 12c :D
All in all a very interesting day with interesting people. I can't wait to see what tomorrow will bring!