Monday, January 28, 2013

Failed to bind - Apache Tomcat startup error

By default tomcat runs on port 8080. But if any other application is using this port, tomcat wont start properly unless we change the binding port.

To change the port do the following

Goto Tomcat installation/unzipped folder



Goto the conf folder and open the server.xml file


Change the default port to the available port


Save the file

Goto the bin folder and make a copy of startup.bat as startup-always.bat



Edit the startup-always bat file

Instead of call

"%EXECUTABLE%" start %CMD_LINE_ARGS%

change to in the startup-always.bat

call "%EXECUTABLE%" run %CMD_LINE_ARGS%



Now run the new batch file startup-always.bat

It will start Tomcat and now the welcome page will appear as



Tuesday, January 15, 2013

Customizing BPM process using BPM Composer

Business needs to be agile!  Which means business has to respond to the customer needs very quickly. Technology should support business in achieving this agility.

In BPM it is possible to customize the business process by the business analysts. To customize an existing process it is not required to have the deep technical knowledge. Business can change the implementation of a  process using the BPM composer.

The approach is to make the project as a template by the developer and publish to MDS.

The business analyst can create an customized version of the process from this template project using BPM Composer

I am using the same process used in my previous blog for this example.

The first step is to convert the BPM project to template as follows


Create a MDS Database connection from JDev


Create an IDE connection using the above MDS connection


Identify the activities which can be customized by business people from the BPM Composer.

Here lets take ApproveRequest task as the customizable activity. Ensure the permissions given is "Must Implement"


Now the ApproveRequest task will have an identification as it is customizable


Save the changes and publish the project to MDS as shown below


Create a new folder under the location as shown below and click OK


This will publish the project as a template to MDS

Now logon to BPM Composer



Click on the "New Project" icon



Give appropriate name for the process and select the template as "ReservationProject"


Click on next and Finish


The new process will appear in the next screen. Click on the highlighted link to customize it


The activity which has to be implemented will be highlighted as below



On the right hand side menu, choose the Human Task section under Business Catalog.
Drag and drop the ApproveRequest Task to the highlighted activity




The various activity parameters can be changed as per the new business requirement

 Here I have changed the description of the activity and the Action values


Validate the project and Save



Now go to the project menu and select the deployment option



 Give the necessary info for deployment and deploy the customized version of processs

Calling Async BPEL process from BPM

BPM can call Async BPEL processes. To achieve this feature BPM uses the send and receive activities

Here is a sample BPM process which calls an Async BPEL Process

The BPM process does hotel room reservation. It has three roles.
1) The assistant who is making a request for room reservation
2) The manager who approves assistant's request
3) The receptionist who finally confirms the reservation

Please refer my previous blog on how to create a sample BPM processs


Here is the sample BPM process which does the reservation job



Now lets create a Async BPEL Process which takes a string value as input and sends the string "VERIFIED" as output


 Deploy this BPEL process

Now add the send and receive activity to the flow in the manager's swim line as shown below


 We can see the warning signs on the Send and Receive activities now. To remove the warnings we need to configure the parameters for these activities.

Go to the composite.xml of the BPM project and add a webservice resource using the wsdl of the deployed Async BPEL process


 Now click on the Send Activity and configure the service details as follows

Similarly configure the call back operation for the receive activity


Now the warnings on the Send and Receive activity will be disappeared

Now deploy the BPM Project and logon to the BPM workspace.

The deployed process will be visible in the application list


Click on the link , and initiate the process by submitting a booking request


Now open the em console and we can see an instance of the BPEL process got created for the VerificationAsync Process

 After some delay now the Approval Request will appear in the task list. The call to BPEL for verification is completed before the approval task is created.


Now Approve the request and the flow will move to confirm reservation, which will be done by the receptionist

Sunday, January 6, 2013

Creating your first BPM process

Implementing a BPM process involves many concepts. Here I am posting a step by step approach to create a simple BPM Process

As the first step create a BPM Application





Under the application create a BPM Project





In the next window choose the process type as Manual

The BPM project has two views. One is the regular project view and the second is the BPM view


Create two roles "creator" and "approver" which is required to perform human tasks


Using the Identify look up window associate the users to the above roles




Open the process and right click on the role and change the role to Creator



Below the first role, right click and add another role as shown below


Now the window will look like

Now drag the stop activity to the Approver line and add another human task from the  Component Palete


In the BPM view , right click on the business object and create a module called Order Module



Now create a business object under this module


Select the module we created in the above step and click OK



In the business object window add three attributes as shown below






Now select the process again and go to the structure window


Right click on the ProcessData Object and create a new process data object of the type defined in the business object which we created in the above step


Now right click on the CreateOrder activity and goto the implementation tab.

Create a new human task as shown below

In the parameter section click on the + button and drag and drop the process data object we created in the above step. Make the parameter editable

Say OK and in the Data association add the data mapping as shown below


Similarly for the ApproveOrder Activity add human task 

Now the process appears without any warning


For the two human task we created in the above step generate a UI using the CrateForm Option



Give the UI suffix for the project name

This will create a form as shown below. This form creation process will take few minutes to complete


Similary for the approve task as well create a UI



Now the project is ready to deploy. Goto Project view and deploy

Select the UI projects in the subsequent screen

Complete the deployment

Once deployment is completed log on to the bpm workspace as the Creator role. Here weblogic user having the creator role



The process will be displaced in the Applications list


Click on the process link and it will prompt with an order creation UI. The Creator can click on the submit button which will create the instance of the order and that will be assigned to the Approver to approve or reject




Now logout and login as Approver. Here admin user has Approver Role



Once logged in the Approver can see the pending task to approve or reject the order



Once the order is approved or rejected that item will get removed from the approver's task list

This completes the BPM sample execution