Friday, March 6, 2015

Code Snippet Icons in JDeveloper

When using the 'Code Snippets' feature in JDeveloper you have the option to browse for a .png file to use as a icon. However, I've found that this does not work (in both Jdev 11g and 12c) even though in the main window it will load the correct .png, it does not use it on the Components Pallet.


However, as a workaround I've found that you can use the build-in icons that are located in the jar files, but you need to know their names and paths. Thus, here is a list of the jar files that can be used for icons.

  • [MIDDLEWARE_HOME]\oracle_common\modules\oracle.javatools_[JDEV_VERSION]\oicons.jar
  • [MIDDLEWARE_HOME]\oracle_common\modules\oracle.javatools_[JDEV_VERSION]\javatools-nodeps.jar
You can open each of these files, and view the icons inside that can be used. (You will need a tool such as 7-Zip to open / extract the jar)


You can then use the following path to reference the files with the correct filename:
  • /oracle/javatools/icons/[filename].png


Now even though you don't have your own icons, you still at least can have different and more appropriate icons for your snippets. 

Wednesday, January 21, 2015

Oracle BPM Worklist details display error

I’ve had the issue several times on Oracle BPEL Worklist app where the details of the task is not displayed with the error ‘Server not found’.image
The the reason for this seems to be that the page is trying to resolve a internal load balancer address, and not the external facing client side load balancer that the browser can access. To fix this, do the following steps:
Go to the BPEL process of the specific composite in Enterprise Manager. Then click on the Human task under the Component Metrics tab.image
You’ll then see the internal address and port that cannot be resolved from your web browser.image
Replace these with the external address as well as port. (Most probably the one used when accessing the Worklist app url) Click “Apply”image
 image
Your Worklist app should now load.
image
Credit: Thanks to my colleague Ben Taljaard for helping to solve this issue.

Tuesday, December 23, 2014

Direct Binding Adapter between Oracle Fusion Middleware 11g and 12c

From Oracle documentation we know the following:
“A SOA composite can invoke any Service Bus SB WSDL-based proxy service. To invoke an SB proxy service, the SOA service component must use a direct binding reference of Target Type "Oracle Service Bus."

However can this we done between FMW11g and FMW12c? The answer is in fact YES, and this can help in a strategy to run 11g and 12c in parallel without compromising performance.
clip_image002[4]
Steps on how to achieve this:
Open your 11g Service Bus Console.
clip_image004[4]
Go to your http OSB proxy service, and edit the Transport Configuration.
clip_image006[4]
Switch the protocol from http to sb.
 clip_image008[4]
Click Last. Click Save. Click Activate. Click Submit.
 clip_image010[4]
Export the WSDL of the proxy to be used later in JDeveloper. (It will export as a .jar file that you can extract)
clip_image012[4]
You have now changed the protocol of the proxy from HTTP to SB. Thus this proxy cannot be invoked over the HTTP protocol anymore. Alternatively you can create a clone of the proxy service and have a HTTP and SB version available.
Now launch JDeveloper for 12.
clip_image014[4]
Create a new BPEL process in the same way as normally done.
clip_image016[4]
Now drag in the Direct Binding from the BPEL Services tab under the Components tab.
clip_image018[4]
Supply a name and change the Reference Target to Oracle Service Bus. Then browse for the WSDL file you downloaded earlier. Note that the Provider URL is t3 protocol.
Click OK.
clip_image020[4]
Create an Invoke step, and assign the input and output of the call like you would normally do.
 clip_image022[4]
Deploy the SCA to your 12c environment and log into Enterprise Manager 12c.
 clip_image024[4]
You can now test the Service.
 clip_image026[4]
You can also launch the flow trace to inspect the flow. Note the Direct Binding icon on the flow.
 clip_image028[4]
You have now successfully connected OSB11g and BPEL12c without the overhead of HTTP calls!