Skip to main content

Posts

Send/Receive task vs Throw/Catch Message events in Oracle BPM

In Oracle BPM "Service task" is used for invoking Synchronous web-service calls. It wont be useful for Asynchronous service calls. To deal with  Asynchronous service calls,  Send/Receive or Throw/Catch events need to be used. There are few differences and similarities between Send/Receive and Throw/Catch Message events. Please have a look at them below. Send/Receive Task Throw/Catch Message Events Can it be used to initiate task? Yes Yes Can it be used to call/invoke Synchronous services/processes? No No Can it be used to call/invoke Asynchronous services/processes? Yes Yes Does correlation/conversation need to be set to deal with Asynchronous tasks? Yes Yes Can it have boundary events associated to it? Yes No Can these pair be used to create synchronous process /service? Yes Yes Can these pair be used to create Asynchronous process /service? Yes Yes Send and Receive task example with boundary events attached to it can be fou
Recent posts

Send and Receive Task example in Oracle BPM

This post talks about Oracle BPM process communication with Asynchronous service. When we talk about BPM process communication with other processes or services, Those processes or services can be synchronous or asynchronous. Synchronous process/service can be invoked with Service Call flow object in Oracle BPM. It will be a straight forward approach,just by adding WebService adapter at external references and using service task to invoke the service. In case of Asynchronous process /service,we must use send /receive task or throw/catch message events when designing flows in BPM. Summary : Asynchronous process wont wait for response to be returned immediately. As soon as its been invoked ,the process will be running in the background.Its the responsibility of calling process  to make sure to look for callback response from asynchronous process for the sent request. In order to identify the correlation between request and response , the design has to be made in such a way to use

ApplicationContext creation/usage among XSLs in BPEL(Oracle SOA) process.

In these posts post1 , post2 , I have explained how to create custom XSL functions using Java in both BPEL(Oracle SOA)/BPM(Oracle BPM) processes. This post describes about ,how to create ApplicationContext and how to use it among XSLs across Oracle SOA process. Below example explains on how to calculate  age of persons by taking array of DateOfBirth  inputs. I know it can be done with simple XSL transformation by calling custom XSL function.  But, the main intention is to explain the ApplicationContext creation and usage of it over multiple XSLs used in the course of BPELprocess. ApplicationContext meaning here is : Create a Java Context(with inspiration of ThreadLocal class)  object which gets initialized at start of the BPEL process with necessary data either in the form of Collections or POJO, And hold these initialized definitions throughout the lifecycle of BPEL Process token(instance) ,which can be read or modified as and when needed. Note/Warning : It can be

Write Java Code inside XSL of Oracle BPM

This post talks about writing custom xsl functions using Java in Oracle BPM process. Please check my previous post on creating custom XSL functions in Oracle SOA/BPEL process. Below example explains about creating XSL function for finding age of person based on Date Of Birth input. Step1 : Create a BPM Synchronous process inside Jdeveloper BPM studio.Something like shown in below. I took very basic example,since the main aim is to create Custom XSL function based on Java code.    i) XSD created to handle input and output of BPM process is :   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?xml version="1.0" encoding="windows-1252" ?> <xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:tns= "http://ande.prabhas.org/xsd/v1" targetNamespace= "http://ande.prabhas.org/xsd/v1" elementFormDefault= "qualified" &g

How to control CUDA Devices to be used in Windows 10 for Keras/Theano/TensorFlow training

I've two 1080ti GPUs , I would like to use only one of the device for DeepLearning Training purpose,Most of the google suggestions advising to use CUDA_VISIBLE_DEVICES environment variable.Setting CUDA_VISIBLE_DEVICES either in windows environment variables are as programmatic way dint help much. But below approach helped to control the GPU usage for CUDA operations. Open NVIDIA Control Panel" by right clicking on the desktop screen. And select CUDA-GPUs to the desired gpu you want to use for DL training, In my case: I chose 2nd GPU Peace!!

How to create custom XSL functions using Java code, BPEL - Oracle SOA, XSLT 1.0

This post talks about how to create customized XSL functions with Java code inside BPEL Process(Oracle SOA 11g). Refer below steps to follow the approach. Using this approach there is no need of placing jar file into oracle commons directory as suggested by oracle documentation. With this approach , if any changes made in java source, composite deployment is needed. With the Oracle preferred approach(deploying jar in commons directory),deployment of composite is not needed only if  sourcecode in java class doesn't have any changes its method signature. However,Server restart is must when updated jar being placed in oracle commons directory. Its up-to the necessity and approach as per organizational/architectural standards. Even though its not recommend to use Java classes inside XSL transformations, few specific scenarios XSL can't handle. For example, finding difference in the dates is a difficult approach in XSLT 1.0 ,since it does nt have supporting functions. Below

Cant Login into Oracle BPM Workspace

There might be different types of issues with Oracle SOA/BPM setup in your local/development environment. The below solution might help you in solving the issue with login into OracleBPMWorkspace with weblogic / basic user. Get the hostname from command prompt . Then open the windows explorer and navigate to the bin folder of WLS bpm domain. For ex : C:\Oracle\WLSOAMware11117\user_projects\domains\bpm_domain\bin\ Edit startManagedWebLogic.cmd and replace 127.0.0.1/localhost with the hostname which you got from above command. For example it would be looking as below: Before : http://localhost:7001 or http://127.0.0.1:7001 After : http://<<hostname>>:7001 Login into weblogic console - http://localhost:7001/console. Click on domain under DomainStructure and select 'Control' tab. Then select AdminServer,and change ListenAddress from localhost to <<hostname>> and click on save to save changes. Similarly, change the ListenAddress