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

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

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

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