Monday, September 29, 2014

Migrating J2EE Applications from OC4J to Weblogic Part -4


After taking a break from the weblogic upgrade I am continuing the series. You can view the 

BPEL Upgrade

The following section will describe the various process we used for upgrading BPEL.

Abstract WSDL Issue

When a source project in your application depends on Oracle Application Server 10g Release 3 (10.1.3) Oracle BPEL Process Manager, then as a pre-cursor to migration, the Oracle JDeveloper Migration Wizard creates local copies of their abstract WSDLs.

The abstract WSDLs, by definition, lack service and port endpoint information. During upgrade, when the Migration Wizard creates external composite references for the service dependencies, the references are created as abstract references with no binding information.

These abstract references are flagged with WARNING messages in the upgrade log. After upgrade, when you attempt to compile the projects, Oracle JDeveloper will generate compilation errors alerting you to the presence of abstract references in the composite.

To correct binding errors due to the abstract references, right-click on the reference node in the Oracle JDeveloper 11g composite editor and choose the correct concrete WSDL. If you want to continue using a 10g Release 3 (10.1.3) dependency service, you can do so. Some of the dependency service endpoint URLs that are captured in the upgrade log can be used for this step. You can find more information here.

Partner Link Information Issue

When any partner link is opened it does not allow to save and a message is shown saying partner link is not correct.

All partner links need to be verified after migration. After removing the partner role, composite.xml needs to be corrected.

Some of the partner links have the same PartnerRole and MyRole. This is not valid for synchronous invocation. Only Partner role should be provided.
Also callback for the partner links are created for synchronous web services. These also need to be deleted.

Once this is corrected in the BPEL, the wire element from composite.xml is removed. The wire element needs to be added again in composite.xml

JMS Adapter Issue

After deployment the JMS adapter does not work.

The adapter configuration for JMS adapter has changed from 10g to 11g. The configuration of queues and their reference in adapter has changed.
The queue names provided in 10g were physical queue names with the resource providers.
But in 11g the remote queue needs to be configured in the application server and needs to be used in BPEL adapter

JMS adapters need to be reconfigured in BPEL by executing the wizard. All used JMS adapters need to be reconfigured. Similar steps are required for AQ adapter also. 
You can find more information here.

DB adapter Issue

The DB adapter configurations were not properly migrated when we ran the migration utility. So what we did was to delete the db adapter  and re-create it.

BPEL Process hanging while migrating

When we are migrating the BPEL projects using JDeveloper the screen hangs for a long time. This was because In some projects both WSDL location and WSDL runtime location was specified. JDeveloper due to some reason was unable to access the deployed application.If the Runtime WSDL’s are used for partner link invocation in 10g,make sure all the partner link URL’s(host name and port) in bpel.xml are reachable, else change with reachable endpoints by using ant script or manually.

This was fixed by removing the wsdlRuntime location in bpel.xml . The composite was modified to add location manually for the partner links

Business Exception Fault Issue

While executing the BPEL process instance if any partner link is throws a business fault, the composite does not propagate the exception to the process rather it retries it from the location provided in the WSDL. This causes the business fault not to be propagated to the BPEL flow. Also this can be very risky since the URIs in WSDL can point to different environment.

This is the default behavior of Oracle SOA engine and this cant be altered. The only resolution is to remove the endpoint location attribute from our deployment guide and composite.xml. The location attribute is only provided in the wsdl files like http://serverName:serverPort/webService
In the deployment guide  we replace serverName and serverPort with actual details for every environment.

Build and Deployment Changes

The deployment approach of generated ant scripts has changed for 11g.
In 10g SOA suite build.xml was generated in every project. 11g does not have any such file since the deployment approach of generated ant scripts has changed for 11g.
11g has provided some scripts which can be used to write the build scripts to deploy the complete project.Ant scripts available in the Middleware_Home\SOA_Suite_Home\bin which can be used.

We have used this reference as well that this  link from oracle  to create the scripts.

XSD Validtaion Problem 

If XML validation is turned on, an error is received if a nillable attribute is specified as below in request as shown below.

<ns2:FreightCurrencyCode xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>  

But if the xml is similar to the one show below then no error is specified.

<ns2:FreightCurrencyCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>  

This is bug in 11g. Sine our BPEL webservices are used by our external clients we could not affort a change in XSD. So we used the transform activity of BPEL to accomplish this, so that the client does not face an issue if either of the xml is sent to us.

 Configuring Fault Handling

Fault handling framework implementation changed in 11g and so we had to change our implementation as well.

In 11g the fault policy and fault binding can only be provided inside the SOA project or in the MDS. The decision of which binding will use which fault policy can only be provided in the binding file. In 10g the common files could be put in the domain folder (a location was provided for these files) and these could be directly referenced in the BPEL projects. Also the fault policy which should be  invoked was  provided in bpel.xml that means that fault-binding could be common.

This issue was solved by deploying the common files in MDS and the process which require specific fault handling it was provided in the SOA project.
The below code snippet needed to be added in the composite.xml.

<property name="oracle.composite.faultPolicyFile">oramds:/apps/FaultPolicy/fault-policies.xml</property>  <property name="oracle.composite.faultBindingFile">oramds:/apps/FaultPolicy/afault-bindings.xml</property>  







Saturday, September 20, 2014

Solution Architecture Reference Model Example - Logical Reference Model


I will continue to expand from the Previous Post of Solution Architecture reference models. This post I will cover the second but the major architectural view logical reference model.
The logical reference model  details the concept of the conceptual reference model which is explained in the  Previous Post.  The logical reference model identifies the building blocks of each of the concept that are identified at the conceptual reference model.

Logical Reference Model Depiction

The below diagram shows the depiction of a Logical Reference model.



Logical Reference Model



  Presentation Layer

In this section all the logical components which are part of this layer will be identified and explained.

Graphic Interface

A graphical user interface (GUI) (sometimes pronounced gooey) is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices. A GUI offers graphical icons, and visual indicators, as opposed to text-based interfaces, typed command labels or text navigation to fully represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.

Internationalization

Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering(Source codes) changes. Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

Personalization

Personalization involves using technology to accommodate the differences between individuals. Web pages are personalized based on the characteristics (interests, social category, context, etc) of an individual

Printing

Printing is a capability for reproducing text and image using a printer. It could be on pre-formatted paper or exact reproduction of UI.

Portal

It is a capability which allows to presents information from diverse sources in a unified way. Portals provide a way for enterprises to provide a consistent look and feel with access control and procedures for multiple applications and databases, which otherwise would have been different entities altogether.

Domain Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Domain Logic

Business logic, or domain logic, is a capability that is generally used to describe the functional algorithms that handle information exchange between a database and a user interface. 

Business Rules

Business rule is a statement that defines or constrains some aspect of the business. It is intended to assert business structure or to control or influence the behavior of the business. The capabilities of the Business Rules component includes but not limited to 

  • Rule Versioining
  • Rule Auditing
  • Rule Approval
  • Rule Deployment

Event Processing

Capability to produce, detect, consume , and react to events generated because of a business or system significant change in system state. This capability is used to help deliver a decoupled or loosely coupled solution which allow for flexible and adaptive solutions.

Reporting

Reporting capability provides ability to query data sources with different logical models to produce a human readable report. Reporting can be mostly divided to three categories

Operational Reporting

Operational reports directly support the ongoing operation of a system. They collect transactional data in order to enhance operational efficiencies. These reports are used by people with responsibility for improving operations. They provide task-oriented line-item information on individual transactions at the very granular level of detail required for operational management.

Tactical Reporting

Tactical reports are intended for monitoring and responding quickly to a variety of short-term situations Such reports may need to combine data from multiple operational systems or store attributes that are not resident in the operational system because they are not required for operational processing.

Strategic Reporting

Strategic reports may measure the same entities as tactical reports; but they may also deal with more strategic financial, sales and productivity data and stretch the analysis over longer periods of time. This report is required by the Senior Management and executives have a business need to obtain the reporting figures at an overview level as opposed to an analyst in a department who needs reporting data at a finer level of detail.

Job Scheduler

A job scheduler is a capability that is in charge of unattended background executions, commonly known for historical reasons as batch processing. Job schedulers may also provide a graphical user interface and a single point of control for definition and monitoring of background executions in a distributed network of computers.


Workflow

A workflow is a  depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms.

Transaction Processing

Transaction processing is designed to maintain an application/database integrity a known, consistent state, by ensuring that any operations carried out on the system that are interdependent are either all completed successfully or all canceled successfully.

Data Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Data Persistence

Persistent data is data which always preserves the previous version of itself when it is modified; such data are effectively immutable, as their operations do not (visibly) update the in-place, but instead always yield a new updated copy.

Analytics

The study of business data using statistical analysis in order to discover and understand historical patterns with an eye to predicting and improving business performance in the future.

Replication

Replication  process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility

Query

Information Query allows users to interactively interrogate databases, analyze its data and update it according to the users privileges on data.

Data-Warehousing

Data-warehouse is a repository of data which is created by integrating data from multiple disparate transaction processing systems. 

Data Archival

Data Archival  refers to the capability of long-term storage and preservation of information for recovery, legal, audit and compliance reasons.  

Data Summarization

Data Summarization summarizes data included both in primitive and derived data, in order to create a derived shortened data that is general in nature. Data summarization provides the capacity to give data consumers generalize view of disparate bulks of data.

Data Extraction 

Data extraction is the act or process of retrieving data out of disparate data sources for further data processing or data storage or data migration. An intrinsic part of the extraction involves the parsing of extracted data, resulting in a check if the data meets an expected pattern or structure. If not, the data may be rejected entirely or in part


Infrastructure Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Network

Network services provide addressing and packet delivery for the provider’s physical infrastructure and the consumer’s VMs. Network capability includes physical and virtual network switches, routers, firewalls, and Virtual Local Area Network (VLAN).
It facilitates communication between people, software or server to share hardware, information and software.

Storage

It is a device for recording (storing) information (data). A storage device may hold information, process information, or both. A device that only holds information is a recording medium. Devices that process information (data storage equipment) may either access a separate portable (removable) recording medium or a permanent component to store and retrieve information.

Compute

Compute services supply the physical resources such as CPU, Random Access Memory (RAM), NIC, Video, and Storage used by the provider to deliver VMs to consumers. It contains the physical server hardware and parent OS.

Hypervisor

The hyper-visor provides VM (Virtual Machine) services by partitioning and presenting compute, network, and storage services.

Integration Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Mediation

Mediation can be defined at the following  levels. 
  • Protocol Mediation - Communication protocol (SOAP, JMS, FTP, HTTP, SMTP etc.) mediation
  • Data Mediation - Data transformation, adapter to enterprise systems.
  • Partner Mediation - Fan-in and Fan-out of messages to multiple producer/consumer

Messaging

It is defined as the capability to transfer packets of data frequently, immediately, reliably, and asynchronously, using customizable formats.

Discovery

Provides services/capabilities which allows participating application to inquire and discover the metadata associated with interfaces. This is useful for dynamic discovery and binding to appropriate interfaces. Following capabilities are examples of the same

  • Service Registry
  • End point discovery and Binding
  • End-point Virtualization

Collaboration

It is defined as the  capability to provide interaction between participating business and/or system entities using communication channels as defined below.
  • Email
  • SMS
  • Fax
  • Web 2.0
  • File Transfer

Security Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Non-Repudiation

Non-repudiation is the ability to prove that a specific user and only that specific user sent a message and that it hasn't been modified.

Authentication

Authentication as a capability is the process of confirming the correctness of the claimed identity.

Authorization

Authorization as a capability is the approval, permission, or empowerment for someone or something to execute an action.

Encryption

The capability of transforming information (referred to as plaintext) using an algorithm (called cipher) to make it unreadable to anyone(system or human) except those possessing special knowledge in the form of keys, symmetric or asymmetric. In the current context this capability is used to protect data in transit.

Identity Management

Identity management is the capability of a system that maintain and also verifying the identity of a user, process, or device, usually as a prerequisite for granting access to resources in an IT system.

Common Services Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Logging

Logging refers to the recording of activity. Logging is a common issue for development teams. Designing a good logging and instrumentation strategy is important for the security and reliability of any application. Failure to do so can make the application vulnerable to repudiation threats, where users deny their actions, and log files may be required for legal proceedings to prove wrongdoing. There should be audit and log activity across each of the  layers.  Auditing is usually considered most authoritative if the audits are generated at the precise time of resource access, and by the same routines that access the resource. Instrumentation can be implemented by using performance counters and events to give administrators information about the state, performance, and health of an application.

Exception and Error Handling

Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional 
situations requiring special processing – often changing the normal flow of program execution.  Designing a good exception management strategy is important for the security and reliability of your application. Failure to do so can make it very difficult to diagnose and solve problems with in an  application. It leaves the  application vulnerable to Denial of Service (DoS) attacks, and it may reveal sensitive and critical information. Raising and handling exceptions is very important process in any application development.

Notification

Notification  provides a means of delivering a message to a set of recipients. The key capabilities  should include
  
  • The data contained within the notification system should help the recipient to take some informed decisions.
  • There should be capability for real time bi-directional interaction with the notification system so as to take appropriate actions.
  • The criticality of the event needs to be prioritized and adequate escalation mechanism needs to be implemented.
  • There should be scheduling capabilities to identify what are the appropriate time when a recipient needs notification.

Monitoring


Monitoring  applications to detect and respond to problems - before an end user is even aware that a problem exists - is a common systems requirement, especially for revenue-generating production environments. Most administrators understand the need for application monitoring. Infrastructure teams, in fact, typically monitor the basic health of application servers by keeping an eye on CPU utilization, throughput, memory usage and the like. There are many parts to an application server environment, and understanding which metrics to monitor for each of these pieces differentiates those environments that can effectively anticipate production problems from those that might get overwhelmed by them.

Caching

Caching is a technique which actually stores the data  that have been computed earlier or duplicates of original values that are stored elsewhere.   If requested data is contained in the cache this request can be served by simply reading the cache, which is comparatively faster.   Otherwise the data has to be recomputed or fetched from its original storage location, which is comparatively slower.  Hence, the greater the number of requests that can be served from the cache, the faster the overall system performance becomes.





Monday, September 15, 2014

Solution Architecture Reference Model - Example

I will take a break from weblogic migration and will talk about Solution Architecture Reference Model. This entry is purely based on my understanding of  a solution architecture reference model.

Introduction

Architecture Reference models are abstract framework or ontology which comprises an interlinked set of clearly defined concepts. They help in understanding the solution  architecture of the enterprise from distinct viewpoints. This  reference models assists in clearly communicating the ideas of the  various components  and  solution building blocks used across the solution architecture landscape. The solution architecture reference model is clearly divided into three views namely Conceptual Reference Model, Logical Reference model and Physical reference model. I will describe the Conceptual Reference Model in this post.

Conceptual Reference Model

The CRM (Conceptual Reference Model) would capture the essential concepts (entities) and also represent the high level components of the solution architecture reference model. The conceptual reference model will layout the foundation of the architecture reference model from which the logical reference model and the physical reference model will be developed. 


The following diagram illustrates the Conceptual Reference Model.

CDM Reference Model


The conceptual  Reference model is structure into four distinct vertical layers and three horizontal layers which are cross-cutting across all the functional vertical layers. The following section defines each of the layers in details.


 Presentation Layer.

The presentation layer contains the components that implement and display the user interface and manage user interaction. This layer includes controls for user input and display, in addition to components that organize user interaction.

Domain Layer

The domain layer is responsible for representing concepts of the business, information about the business situation, and business rules. Business State management is  controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the critical section of the  business software.

 Data Layer

The data layer provides  the capability  to create, format, and manage application data.

Infrastructure Layer

The Infrastructure Layer provides hypervisor services (VM resources) to the Platform and Software Layers. It defines the capabilities necessary for these VMs to execute; it includes hypervisor, physical servers, network devices, storage systems, and facilities (which include space, power, cooling, and physical interconnects).

Integration Layer

The Integration Layer is a key enabler for any architecture model  as it provides the capability to mediate which includes collaboration, transformation, routing, and protocol conversion . A service consumer interacts with the service provider via the Integration Layer. It also provides capabilities to enable B2B and System to System access of application and infrastructure capabilities


Security Layer

The security layer provides capabilities such as authentication, authorization encryption, non-repudiation to name a few  to secure all the vertical functional  layers.


Common Services  Layer

This layer consists of the common functionality that spans across the layers. 

In the Next Article i will cover the Logical Reference Model





Migrating J2EE Applications from OC4J to Weblogic Part -3


Migrating J2EE Applications from OC4J to Weblogic  Part -3



Please refer to Previous post  for the earlier steps. Lets move on with the migration.

JAX-RPC Web-services upgrade

  1. Regenerate the webservice from WSDL in a new JDeveloper Project.
  2. Copy the weblogic-webservices.xml to the WEB-INF.
  3. Remove oracle-webservices.xml from the project.
  4. Regenerate the webservice client proxy in JDeveloper and replace the existing one.

JSP Related Issues

Error Directive Issue

All the error pages had issues when any run-time exception were happening. Instead of the proper messages a blank page was displayed.

Root Cause

The existing Error page jsp includes a  import of  tag-libs-defs.jsp that has an attribute 
errorPage="/WEB-INF/jsp/common/Error.jsp" defined in the page directive. This seems to be incompatible in Weblogic but worked fine in OC4J

Existing Error.jsp code Snippet

<%@ page isErrorPage="true" import="org.apache.commons.logging.*"%>  
 <%@ include file="/WEB-INF/jsp/common/tag-libs-defs.jsp"%> 

Existing tag-libs-defs.jsp code snippet

<%@ page language="java" contentType="text/html; charset=UTF-8"  
 pageEncoding="UTF-8" errorPage="/WEB-INF/jsp/common/Error.jsp"%>  

Solution

A new jsp similar to tag-libs-defs.jsp was created but with the difference that the errorPage attribute was not defined in the page directive of this jsp. This new JSP was then included in the Error.jsp.
The new JSP Code snippet

<%@ page language="java" contentType="text/html; charset=UTF-8"  
 pageEncoding="UTF-8" %>

Stored Procedure Calls

All the stored procedure calls which return Oracle Array Type had issues.  We are using oracle.sql.ARRAY type in all our DAO methods. This was giving ClassCastException in the Oracle.sql.ARRAY's constructor.

Root Cause

After probing further we identified that, the ARRAY class internally trying to explicitly cast a Connection  to oracle.jdbc.Connection. But  this Connection is the weblogic wrapper on the the underlying  oracle.jdbc.Connection.

This is the exception log

java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_weblogic_jdbc_oracle_OracleConnection to oracle.jdbc.OracleConnection”

This error can be resolved by adding ojdbc6.jar dependency and removing the ojdbc14.jar.
The pooled connection instance returned from the datasource is an instance of type weblogic.jdbc.extensions.WLConnection, which wraps the Oracle thin driver connection of type oracle.jdbc.OracleConnection. This wrapped connection can be retrieved using weblogic.jdbc.extensions.WLConnection.getVendorConnection(). The following code should be used to retrieve OracleConnection needed by the ARRAY class.

Find the code snippet

oracle.sql.ARRAY: oracle.jdbc.OracleConnection connection = (oracle.jdbc.OracleConnection) ((WLConnection) conn).getVendorConnection(); 

ARRAY oracleArray = new ARRAY(ArrayDescriptor.createDescriptor( TYP_NUMBER, connection), connection, statusArr);


This resolution is Weblogic specific and non-portable to any other application server environment. 







Wednesday, September 3, 2014

Migration J2EE Applications from OC4J to Weblogic Part -2


In continuation of the  Previous- part lets move ahead with the migration to weblogic. 


Microsoft-SQL database JTDS driver.

To use JTDS driver set the driver Jar in weblogic classpath, update %WLS_HOME%\wlserver_10.3\common\bin\commEnv.cmd. Append the value "%WL_HOME%\server\lib\jtds-1.2.4.jar" to the line starts with
set WEBLOGIC_CLASSPATH

JMS-JNDI Locations

Use the name defined in the remote JNDI field in the definition of the queue and queue connection factory; the remote JNDI doesn't accept colon like Java:Comp
Example: Change java:comp/resource/TEST_AQ/Queues/TESTQUEUE to Queues/TESTQUEUE, which is the defined remote JNDI URL of the queue in weblogic JMS configuration.

Stax library LinkageError Exception

An existing library stax-api-1.0.1.jar included in the application’s WEB-INF/lib
contains a class javax.xml.namespace.QName that conflicts with an already
loaded class in the System class loader. The implementation of this class is
provided by SUN. This is the error message we may encounter.

Caused by: java.lang.LinkageError: loader constraint violation: when resolving field
"DATETIME" the class loader (instance of
weblogic/utils/classloaders/ChangeAwareClassLoader) of the resolved type,
javax/xml/namespace/QName, have different Class objects for that type


Issue is resolved by removing this library from the application. The maven pom file was
updated to remove/exclude the following dependencies:
  • stax:stax-api
  • javax.xml.stream:stax-api (This API is now part of Java 6)

JAX-RPC XSD Upgrade

In our project we had lot of JAX-RPC web-services but those were not upgraded to JAX-WS but were migrated as JAX-RPC it self, these were the issues which we ran into.
Defecto recommendation is to upgrade to JAX-WS, if there is absolutely no alternative then embark on upgrading JAX-RPX to weblogic.


Definition of Inline -XSD'S

Inline definition of complex types is not supported by weblogic, when the complex type contains other simple types.Due to this weblogic server throws binding error during deployment.
Once we change this then we need to regenerate the web-service in the JDeveloper project, the only difference is in the mapping file. The JAVA types are still the same, replace the mapping file in the project  with the new mapping file and off you go. Some time you may need to edit the mapping file to adjust the package names.


XSD Definition for Simple Types.

XSD simple type elements with max occurrence more than one is not supported by weblogic server, this element should be wrapped in another complex type,
check out this link. Not able to figure out a work-around for this. Proceed with the max-occurs attribute, while deployment weblogic throws an exception but the code works, so it may be ignored.


Web-service Fault Types and Operation Types

When WSDL Operation fault type is defined of the same complex type as of the Operation input or return, the following error is thrown in JDeveloper during webservice generation time

oracle.jdeveloper.webservices.model.WebServiceException: WSDLException: faultCode=INVALID_WSDL: Declared fault Type {http://impl.bpel.service.declaration.customs.pcfc.com/types/}UpdateIncidentExceptionType is already referenced as either input or return type at oracle.jdeveloper.webservices.model.java.JavaWebService.createPortTypes(JavaWebService.java:1635) at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2846) at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2611)

Please find an Example

 
<portType name="DeclarationUpdate">  
  <operation name="raiseUpdateIncidentException">  
  <input message="tns:DeclarationUpdate_raiseUpdateIncidentException"/>  
  <output message="tns:DeclarationUpdate_raiseUpdateIncidentExceptionResponse"/> 
  <fault name="UpdateIncidentExceptionType"          message="tns:UpdateIncidentExceptionType"/>  
  </operation>  
  </portType 


A new complex type: UpdateIncidentExceptionTypeRequest similar to UpdateIncidentExceptionType was created for the input parameter to the web service operation raiseUpdateIncidentException. This input parameter is no longer a wrapperof the fault type.
This allowed the web service method to have input and fault parameters of different types.

 <portType name="DeclarationUpdate">   
 <operation name="raiseUpdateIncidentException">   
 <input message="tns:DeclarationUpdate_raiseUpdateIncidentException"/>   
 <output message="tns:DeclarationUpdate_raiseUpdateIncidentExceptionResponse"/>    <fault name="UpdateIncidentExceptionType" message="tns:UpdateIncidentExceptionType"/>  
 </operation>  
 </portType>  


BPEL WSDL Proxy Cretion

While testing the generated BPEL Process’s Client Proxy, a Runtime exception was encountered, although we specified  the correct endpoint URL of the BPEL process deployed on the Server. This issue applies to all BPEL processes.

See the example below where in which BPEL process's WSDL contains the partner link element:

 <partnerLinkType>   
 <partnerLinkType name="ProcessBOE_BPEL">  
  <role name="ProcessBOE_BPELProvider">  
  <portType name="ProcessBOE_BPEL" />   
 </role> </partnerLinkType  

This partnerlink element should be removed from the WSDL at the Client Proxy’s end to successfully test and use the proxy. This means that the WSDL found only in the Client Proxy project should be updated with this change. The WSDL which is deployed on the Server with the BPEL Process should not be updated