Time for a fresh coat of paint...

After more than 5 years my blog Dutch tilt needed a fresh coat of paint. In all these years i used Rapidweaver to maintain this blog and therefore spent sometimes more hours to add some content in the correct format or adding functionality then actually writing an article. So i decided to make the change to Wordpress and at the same time continue blogging under the new name reddipped.com.
Cheers,
Peter
Comments

Backing up Virtual Machines (or other large files) on OS X

For my Oracle based lab configurations i use virtualization software on my Mac. I have used VMWare Fusion in the past, currently use Parallels Desktop and am considering to switch to Oracle Virtualbox in the near future. Since we have multiple Macs in our household an old mini running OS X server with a big external harddisk (WD MyBook Studio) serves as a Time Machine backup server. Time Machine which is part of OS X is a perfect tool for regular backups but for two reasons really useless for making backups of Virtual Machines. First, most of my virtual machines have virtual disks which are 10GB to 40GB in size. Most of them are not split in 2GB files, therefore starting a VM will immediately result in a new Time Machine backup of over 40GB if these virtual machines are not excluded from the backup. Secondly, for most virtualization software the VM consists of multiple configuration, disk and memory files. All these files are bundled in a Package, inconsistency between one or more of these files makes the whole VM corrupt, and since backing up all files of one VM can take a substantial amount of time the chance that you only have a partial backup of your VM using Time Machine is substantial. Therefore i excluded all my VirtualMachines from Time Machine and rely on RSync to sync my VMs to a destination folder on another Mac. In my case this is the same OS X server i use for the Time Machine backups, but you can use any other Mac with File Sharing enabled. I prefer to use the same account to access both Macs, but you could backup your VMs on your source machine under account 'a' to a folder owned by account 'b' on a destination machine. It takes a few simple steps to sync your VMs easely and much faster.


Read More...
Comments

Importing multiple reports in BI Publisher

When preparing the installation of OIM Suite Bundle Patch 6 i had to import the for supplied BI Publisher report artifacts. These supplied artifacts, reports and datamodels, are logically grouped in folders and sub-folders. For example; the "Access Policy Details" and "Access Policy List by Role" reports and reportmodels are grouped in the "Access Policy Reports". The BI Publisher catalog utility, BIPCatalogUtil.sh", has an import parameter, basedir, for importing a set of reports or data models. When importing the reports using the basedir, you probably will get, like me, a java.lang.StringIndexOutOfBoundException. Read More...
Comments

Adding Python logging module to WLST

When developing a WLST script i was looking for a standard way to implement logging for that script. Since any recent version of Python contains the logging module, i was somehow surprised that this module was not available in WLST. I found some nice workarounds using the log4j classes but still prefer the Pythonic way. Weblogic server 10.3.6.0 still contains version 2.2.1 of Python wherein the logging module is not by default available. I found a compatible version of the logging module here at red-dove.com, but failed miserably adding the module to the environment variable PYTHONPATH. After copying the logging folder from the downloaded tarball to a folder /u01/app/pymodules i added the directory to PYTHONPATH. Paths in this environment variable are normally reflected in sys.path but this seems not the case in WLST.

[wlsadmin@pvm0001 medrec]$ export PYTHONPATH=$PYTHONPATH:/u01/app/python
[wlsadmin@pvm0001 medrec]$ java weblogic.WLST

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

wls:/offline> print sys.path
['/u01/app/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar/Lib', '__classpath__', '/u01/app/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar', '/u01/app/Oracle/Middleware/wlserver_10.3/common/wlst/modules/jython-modules.jar/Lib', '/u01/app/Oracle/Middleware/wlserver_10.3/common/wlst', '/u01/app/Oracle/Middleware/wlserver_10.3/common/wlst/lib', '/u01/app/Oracle/Middleware/wlserver_10.3/common/wlst/modules', '.']
wls:/offline> import logging
Traceback (innermost last):
  File "<console>", line 1, in ?
ImportError: no module named logging
wls:/offline>


What can be made up from the output of sys.path is that there is a location for additional modules in ${WL_HOME}/common/wlst/modules. When copying the logging folder from the tarball to this location you can use the PYTHON logging module in WLST.

[wlsadmin@pvm0001 medrec]$ java weblogic.WLST

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

wls:/offline> import logging
wls:/offline> logging.basicConfig()
wls:/offline> log = logging.getLogger("MyFirstLogger")
wls:/offline> log.setLevel(logging.DEBUG)
wls:/offline> log.info("That does work =:-)")
INFO:MyFirstLogger:That does work =:-)
wls:/offline> 




Comments

Shutting down Jetty programmatically safely

When Googling the web for a flexible and secure way to shutdown an embedded Jetty server programmatically i found some examples. These examples were nor safe because the server could be shutdown by guessing the correct uri initiating the shutdown, or did require extra interfaces (sockets) listening on the loopback interface to initiate the shutdown. When writing my own embedded Jetty concept i had 4 requirements. First, it should be practically impossible to stop the Jetty server from outside the application (unless you have a special key). Secondly, it must be possible to stop the Jetty server from any servlet. No extra implementations of socket listeners. Last, when initiating a stop of Jetty anywhere in the code, is should be able to set the exit or return code to the underlying operating system.

Here in a nutshell how i realized all these requirements.


Read More...
Comments

Kerio Connect IMAP Exchange Download

I recently upgraded my OS X Server on 10.7 to 10.8 (Mountain Lion) and was left with a not so Mac feeling. In short, a lot of the functionality working perfectly under 10.7 now just stopped working. After a lot of frustrating hours i decided to replace most of the standard OS X functionality by Kerio Connect. Kerio Connect installed in minutes and was easy to configure due to its friendly administrative interface, so i was back online! On OS X i used fetchmail to download my e-mail from different POP and IMAP servers. Kerio disappointingly only supports POP3 downloads and is bearing IMAP downloads. Since i still wanted to download mail from a Exchange 2010 IMAP server using SSL i found out how to use fetchmail to download mail from an Exchange 2010 server and forward it to the Kerio Connect server.


Read More...
Comments

Accessing Weblogic mbeans in BPEL Part 1

Weblogic Server provides runtime MBeans which provide information about the runtime state of its resources. The entry point for these MBeans are the MBeanServer Services. There are two Runtime MBeans, the DomainRuntimeServiceMBean, which is only available at the Administration Server and the RuntimeServiceMBean which is the entry point for WLS runtime MBeans for the current server. WLS runtime MBeans can provide information about the runtime state of WebLogic Server resources. An overview of the available Runtime MBeans can be found in the Weblogic Server MBean Reference. Sometimes it can be useful to retrieve data from these Runtime MBeans in a BPEL process. For example the name of the Weblogic domain, the machine or the managed server whereon the BPEL process is running.

Here is an example how you can retrieve the Weblogic Domain Name, Machine Name and Server Name whereon the BPEL instance is running.


Read More...
Comments

Resolving UPGMED-02047 Failed to look up PortType from WSDL

Just a quick post about an issue i ran in today which maybe can helpful. Today the migration of a specific Oracle 10G esb service failed using our ant SCA-build script. In the ant script a task, upgradeESB, is defined based on the class oracle.ias.upgrade.task.MediatorUpgradeTask. During the execution of the upgradeESB task the portType in the wsdl of the esb service is fetched (UPGMED-02044). Although the portType is there, it is not found (UPGMED-02045) in the wsdl and subsequently also not in the service resulting in a MediatorUpgradeException, UPGMED-02047.




Read More...
Comments

Error while reading wsdl file …. Exception: null

Although my SOA Suite composites deployed without any error, for some of them JDeveloper returned a “Error while reading wsdl file …. Exception: null” error when opening one of my external references to adapters within that composite. This general occurred to me after upgrading a 10g BPEL service to a 11g composite. When receiving this error, a namespace or attribute within the adapters WSDL can be incorrect, but i also found out that it can show up when the WSDL is 100% correct. This is probably due to a bug in JDeveloper Studio Edition Version 11.1.1.5.0 or 11.1.1.6.0. Here some hints where to look for in the WSDL, how to solve the issue and eventually working around the JDeveloper bug.


Read More...
Comments

Converting files to UTF-8 without BOM in ANT

In the process of upgrading 10G BPEL proces to 11G composites we encountered "Content is not allowed in prolog. ORABPEL-01501" and "XML-20109: (Fatal Error) PI with the name 'xml' can occur only in the beginning of the document." errors. Major cause is that the original BPEL processes do contain schemas delivered by external organizations in a variety of encodings. Some of them did contain within the encoding not allowed characters which were accepted in 10g but do not pass the more strict validation of schemas in 11g. To forestall most of these issues i wrote the folioing ANT target which is called during the upgrade process to correct most (not all!) of these file encoding issues.


Read More...
Comments

QBrowser start script for WLS adopted by QBrowser project

It is always nice to hear that your contribution is appreciated! The QBrowser start script which i recently published in my article "Starting QBrowser for Weblogic on (Oracle) Linux" is adopted by the QBrowser for GlassFish JMS / WebLogic MQ project on sourceforge.net. The script will included in version V2.5.2.8.1 and up.


Comments

Starting QBrowser for Weblogic on (Oracle) Linux

For my personal OSB playground i use a Virtual Machine with Oracle Linux. When recently working on an OSB project with JMS i was looking for a tool enabling me to send messages to a JMS Queue or Topic. After i failed to get Hermes JMS working properly i tried QBrowser light. Although there were no proper unix scripts supplied to start QBrowser, it was quite easy to write one my own based on the batch files. I got QBrowser working after correcting all version numbers of the jar files in the QB_CLASS_PATH to the current version of my installation. Since i did have no intention to validate the version numbers of the jar files for each configuration i have, i made a little script which automatically detects the installed com.bea.core.* jar files, adds them to the QB_CLASS_PATH and starts QBrowser.

Read More...
Comments

Using filename in xmltask sections at runtime

Xmltask is a valuable extension to Apache ANT for processing XML files. It is possible to apply one same task to multiple XML-files using wildcards in the attribute source of xmltask or by using the type. The capability of using wildcards in the attribute source will be deprecated, so it would be wise to anticipate on this by using using the type when using wildcards. When processing multiple files using xmltask it would be nice to have the name of the file being processed at runtime, however xmltask does not supply a way to extract or use this filename as a property. You can workaround this is by using a separate target looping through the files in the file set and calling your xmltask target for each of the files in the file set passing the filename as a parameter.

Read More...
Comments

How to: Resolve 'Load of wsdl with Message part element undefined in wsdl'

Because Oracle BPEL 10G does not have a as strong validation of BPEL processes as in Oracle 11G it is possible that 10G services which appeared in 10g syntactically correct fail to compile after migrating to 11G. One error which can occur is 'Error: Load of wsdl "{WSDL_A} with Message part element undefined in wsdl [{WSDL_B}] part name = parameters type = …" failed'.

The error is caused by a conflicting namespace in one of the imported WSDL or Schema files. This can be a WSDL or Schema directly imported in the composite.xml or a WSDL or Schema imported by another WSDL. The error is misleading, the root cause of the error will with any certainty not be in the reported file WSDL_A. When having more complex BPEL services with multiple partnerlinks it can be challenging to find the namespace conflict. Here a structured way to get to the source of the problem.

Read More...
Comments

SoapUI install directory detection / mockservice execution script

For some 'homework' i needed a (bash) script to start the soapUI mockservicerunner on Oracle Linux which could start the mock service regardless of the soapUI installation directory. I could not find a single reference to the installation directory, and therefore wrote some code to find the installation location, To speed up the detection the script first searches the directories where you might expect to find soapUI, secondly in less logical locations. When found, the soapUI installation directory is stored in the script itself to speed up future executions of the script. Here it is, have fun !

Read More...
Comments

Defaulting to Audit view for BPEL instances in Oracle BPEL 10g


Although FMW 11g is around for some time, there are still organizations running on SOA Suite 10g. So maybe this tip is still useful for some of you. When testing my not-yet-quite-finished BPEL processes on my local BPEL server i am not interested in the manage view when selecting a BPEL instance. What i need is the audit view of my BPEL process. Since most of the BPEL Console is based on JSP, you just have to find the right jsp-file in the container...

Read More...
Comments

Deduplication or extracting unique elements using XSL

When searching for an efficient way to de-duplicate elements in a BPEL process, i found several blogs and communities on the web showing examples how to use the XSL key and generate-id functions to extract unique elements. Only none of them explained the science behind the magic. Here a more elaborate explanation how the extraction of unique elements, based on a chosen combination of key elements, from a XML message works.

Read More...
Comments

Updated: SOA Suite 11g R1 on OL x86-64 in VM Ware Fusion


A revised version of the installation guide for Oracle Fusion Middleware on Oracle Linux in a Virtual Machine is available. This document is based on the SOA Suite PS 4, Oracle 11gR2 DB, Oracle Linux 5u7 x86-64 and OEPE for x86-64.

The document SOA Suite 11g on OL 5u7 x86-64 in VMWare.pdf can be downloaded here.


Comments

Oracle Linux 5U7 on VMware Fusion 4

When installing Oracle Linux 5U7 as a Guest OS on VMWare fusion 4, you will probably run into the "no module ehci-hcd found for kernel 2.6.32-200.13.1.el5uek" during the VMWare Tools installation process. This error is caused by missing usb kernel modules in /lib/modules/2.6.32-200.13.1.el5uek. You can easily solve this by opening a Terminal session, substitute the user by root (su - root) and executing the command below.
cp /lib/modules/2.6.18-274.el5/kernel/drivers/usb/host/?hci-hcd.ko \
/lib/modules/2.6.32-200.13.1.el5uek/kernel/drivers/usb/host
Now you can start the installation of VMWare tools by executing
./vmware-install.pl

Comments

Reading not XMLEncoded XML into Java Beans


For a small Java project is was searching for a standard JDK Class to read a XML configuration file into a Java bean. Important was that the structure of the XML file was maintainable by humans using external editors and not necessarily all elements in the XML file had to match attributes in the Java bean(s) wherein the contents of the XML file is stored. The XMLDecoder class in the java.beans package only can de-serialize objects encoded using the XMLEncoder class and therefore is less useful for his purpose.

xmlbeans

Based on Java's SAXParser and a relative simple handler extending DefaultHandler, i was able to parse an external editable XML into a Java bean holding (ArrayLists of) other beans as attributes, also capable of holding one or more Java Beans as attributes.

Read More...
Comments

Oracle BPEL 10g XSL Cache Initialization

In my current project the BPEL development team, wherein i participate, maintains and develops BPEL processes on 10g. The complexity of these processes are not the processes itself but merely the applied transformations in these processes which also contain custom XSL functions. Testing of the XSL transformations within the IDE (JDeveloper) therefore is in many cases not an option. Alternatively the whole service has to be deployed to a local installed BPEL server and tested by instantiating the service. The main disadvantage here is that BPEL keeps it XSL files in cache, even the XSL files which were re-deployed. So when testing a re-deployed service with modified XSL files, the results of the transformations are unchanged, simply because the 'old' version of the XSL files are still in memory. To load the modified XSL files in memory the BPEL server has to be re-started after each deployment. When having to go though multiple iterations of testing and therefore time-consuming restarts of the local BPEL server can be quite annoying.

Read More...
Comments

How to: SOA Suite 11g R1 on Oracle Linux in VM Ware Fusion

When i started reading the books ‘Getting Started with ORACLE SOA Suite 11g R1’ (by Heidi Buelow et al.) and ‘SOA Suite 11G Handbook’ (by Lucas Jellema) i needed a running SOA Suite 11g environment to be able to do the exercises. As a Mac user i use VM Ware to virtualize my educational environments, preferably on a Linux operating system to minimize the cost of licenses and reduce the overhead of the guest operating system on my host operating system. Both books do contain installation guidelines, but are focussed on installation of the SOA Suite 11g on a Microsoft Windows operating system. Although the getting started handbook does give you some hints how to tune the environment, the performance, on a system with the suggested 3Gb RAM, is to low to consider it workable.

Therefore i wrote a document describing step-by-step how to get an up and running SOA Suite 11g R1 environment with a minimal environment.

Read More...
Comments

Public final

After 18 months following the Java Certified Professional Program at the Open University I finally may call myself a certified java developer. In the past months subjects like UML, Object Orientation, Java Collection Framework, Swing, JSP, JSTL, EL, Struts and Spring have come by. The last assignment of this CPP was designing and building a basic online auction system. On top of the minimum requirements I added some extra features; Category administration, member registration confirmation and password reset through links in e-mail, article images, SMS bid notification and an automatic invoice generation system.

If interested, you can experience it here.

Comments

Using WS Addressing in BPEL Partner Links

The fullWSAddressing partnerlink property is available in Oracle BPEL since 10.1.3.3. When set to true this property enables you to set the WSA addressing properties From, Action, To, and FaultTo, through the deployment descriptor parameters. After enabling the partnerlink property i have not been able to find any change in the deployment descriptors or web.xml to utilize the WSA headers and had to search for an alternative solution. The Web Services Adressing 1.0 recommendation also describes the ReplyTo, MessageID, RelatesTo, RelatesTo/@RelationshipType messaging addressing properties in addition to the previously mentioned headers, which are not made available through the fullWSAddressing partnerlink property. You can however make use of all WS Addressing properties when calling external webservices through a BPEL Partner Link. I will explain in a few steps how to build a BPEL process making use of WS Addressing without usage of the fullWSAddressing partnerlink property.

Read More...
Comments

Recently published; Oracle Siebel CRM 8 Installation and Management


Alexander Hansal, author of the blog Siebel Essentials, wrote the book Oracle Siebel CRM 8 Installation and Management. The Books is written with the role of a system administrator in mind who has to ramp up quickly on Siebel CRM, focusing on typical tasks such as installing and managing the Siebel CRM infrastructure. The publisher, Packt Publishing, sent me a free copy and asked me to write a review for this book. I will try to read the 572 pages in the next few weeks and come back with a review here and on amazon.com.

You can have your own preview here.

Comments