Showing posts with label HowTos. Show all posts
Showing posts with label HowTos. Show all posts

Wednesday, 22 June 2016

Oracle SOA DB Poller Error Caused by BINDING.JCA-11608

Hi All,

Just wanted to highlight a common mistake most developer and most testing teams do. When a need arises to change any setting including connection factory or connection pool setting in Oracle Weblogic Server

The Mistake:
  1. Make changes to the weblogic server data source / Connection factory.
  2. Which leads to a DB adaptor redeploy.
  3. Once the DB adaptor is redeployed all the pollers using that DB adaptor incidences will fail with the following error:
Query name: [xxxxxxxxxxxxxx], Descriptor name: [xxxxxxxxxxxxx.xxxxxxx]. Polling the database for events failed on this iteration.
Caused by BINDING.JCA-11608
Connection Already Closed Exception.
This [javax.resource.cci.Connection] is already closed.
This should not happen when running within a packaged application like BPEL or ESB but may occur when the adapter is used standalone.
..
.
  This exception is considered not retriable, likely due to a modelling mistake.  This polling process will shut down, unless the fault is related to processing a particular row, in which case polling will continue but the row will be rejected (faulted).

       at oracle.tip.adapter.db.exceptions.DBResourceException.createNonRetriableException(DBResourceException.java:690)
       at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:656)
       at oracle.tip.adapter.db.exceptions.DBResourceException.inboundReadException(DBResourceException.java:491)
       at oracle.tip.adapter.db.InboundWork.handleException(InboundWork.java:1001)
       at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:896)
       at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:627)
       at oracle.tip.adapter.db.inbound.InboundWorkWrapper.run(InboundWorkWrapper.java:43)
       at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:184)
       at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
       at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: BINDING.JCA-11608
Connection Already Closed Exception.
This [javax.resource.cci.Connection] is already closed.


Note: When the above error occurs, the Poller state is still active, which deadly in a production environment. 

The Corrective Measure:
  1. Retire all DB Pollers which have encountered this error.
  2. Activate all DB  Pollers.
  3. The issue will be fixed.

The Best Practice:
  1. Retire all DB Pollers. (No Polling will happen during this time).
  2. Make changes to the weblogic server data source / Connection factory.
  3. Which leads to a DB adaptor redeploy / Restart.
  4. Once the DB adaptor is redeployed / Restarted.
  5. Activate all DB Pollers.



Wednesday, 4 May 2016

SOA SUITE 12c Data Base Schema Dehydration Store States

Hi All,

As me, you might be stumbling to find out what, similar to List of all states from COMPOSITE_INSTANCE, CUBE_INSTANCE, DLV_MESSAGE  in 11g, the important tables would be for SOA Suite 12c and relevant states.

Basically this is described very well in the Oracle Support Document 2065869.1: 12c SOA composite <schema> States

For the benefit of every one, I have also copy pasted the content from the obove Oracle Note to here (copy right of the below details are with Oracle Support):

==========================================================================

Details

Based on 11g:
Tables COMPOSITE_INSTANCE and MEDIATOR_INSTANCE does not apply to 12c.
Tables CUBE_INSTANCE, DLV_MESSAGE and DLV_TYPE did not have any change.
The FLOW_INSTANCE is available only in 12c.

CUBE_INSTANCE States

StateDescription
0 STATE_INITIATED
1 STATE_OPEN_RUNNING
2 STATE_OPEN_SUSPENDED
3 STATE_OPEN_FAULTED
4 STATE_CLOSED_PENDING_CANCEL
5 STATE_CLOSED_COMPLETED
6 STATE_CLOSED_FAULTED
7 STATE_CLOSED_CANCELLED
8 STATE_CLOSED_ABORTED
9 STATE_CLOSED_STALE
10 STATE_CLOSED_ROLLED_BACK


DLV_MESSAGE States

StateDescription
0 STATE_UNRESOLVED
1 STATE_RESOLVED
2 STATE_HANDLED
3 STATE_CANCELLED
4 STATE_MAX_RECOVERED


DLV_TYPE States

StateDescription
1 Invoke Message
2 DLV Message
MEDIATOR States

Mediator state is now derived from SCA_ASYNC_CPNT_STATE table. The state column can take one of the following values:
StateDescription
1 RUNNING
2 COMPLETED
3 FAULTED
4 ABORTED
5 STALE


FLOW_INSTANCE States
StateDescription
-1 NOT_SET
1 SUSPENDED
2 TERMINATED
3 STALE
  
The Flow State is derived from the Flow Instance table using the following columns:
  • Active_Component_Instances
  • Unhandled_Faults
  • Recoverable_Faults
  • Admin_State
Completed Flow  
0 Active_Component_Instances

Completed Faulted Flow
0 Active_Component_Instances
1 or more Unhandled_Faults

Recoverable Flows
1 or more Active_Component_Instances
1 or more Recoverable_Faults

Completed Successfully
0 Active_Component_Instances
0 Unhandled_Faults
0 Recoverable_Faults
  
======================================================================

Further to the above Info, I also found a very useful blog that provides more knowledge / usage to the above table. 


Hope this was helpful to you.
 

Thursday, 3 July 2014

Setting Persistence or other Transport Headers for MQ Transport in OSB (Oracle Service Bus)

Setting Persistence For MQ Transport in OSB



This blog applies to Oracle Service Bus only.

Have you been trying to make your MQ messages persist on the MQ server. Than you have landed in the right blog. Follow the steps below to set up MQ Transport to persist the MQ messages on the MQ server.

If you were familiar with weblogic JMS messaging, it is very easy to make a JMS message persist on the weblogic JMS server using OSB as the producer. You can do this by checking the Persistence check box in the business service. But it is not the case if you would want to perform the same  for an MQ message on MQ server using OSB MQ transport.

Steps to make your MQ message persist on MQ server using OSB MQ transport:

Assumption: 
a. You are using publish action to publish your MQ messages.
b. The below steps are performed on the OSB console.

1. Open your Proxy or Local Proxy Service
2. Navigate and Edit the Stage where Publish action exist.


3. Navigate to the Request action of Publish
4. Right Click --> Add an Action --> Communication -->  Transport Headers.


5.  Set "SET TRANSPORT HEADERS for" to "Outbound Request" and Click "Add Header"

6. Click drop down for "SOAPAction" and select Persistence.

7. Click Expression and set the value to be set.  

Note: you can repeat steps 5 to 7 to set various other MQ transport headers values. For the entire list of MQ transport headers and their description please visit the blow mentioned Oracle Document:

Document: Oracle® Fusion Middleware Developer's Guide for Oracle Service Bus
11g Release 1 (11.1.1.4.0)

Sunday, 16 June 2013

How to Create XSD and WSDL from Scratch using Jdeveloper.

I wanted to find out if there was already documentation on "How to Create XSD and WSDL from Scratch using Jdeveloper".

And guess what, found one at FUSION Blog : Creating a WSDL File From XSD File

Great Article and the author has illustrated the steps clearly and Thoroughly.

Thanks to the Author.

Happy Coding. :)

Thursday, 9 May 2013

How To secure your OSB services (Propagate SAML Token)

To day I would like to share my knowledge, Reading and Finding about

How To Secure a OSB service using SAML Token or What are the Steps to Secure a OSB service using a SAML Token (Also the below steps can be used for SAML token Propagation) :

Now in order to find how to secure OSB  there is a sites / videos that can help us:



  • Watch this video for easy understand of how to secure OSB service. This an oracle produced Video. The link provided here is only part 1 out of 3 Parts. As always, youtube provides the links to the relevant videos once you watch the first part. 
  • The same can be found in this slide pack.


Before reading this blog further please view / review the above reference artefacts so that you have the basic Knowledge / context.

In order to achieve our goal there are few bits missing in the above referenced artefacts.

In order to secure a OSB service, you will need two product / parts:

1. OWSM  policies. -- this is clearly articulated in the referenced artefacts above.
2. Configuration of the Weblogic Server (For the identity Provider) - This is missed out in the above reference artefact.

Note: This blog is not to pinpoint any documentation defects in the reference artefacts, please consider this blog as an additional reference material.

In order to configure the security provider or authentication provider in weblogic server, please follow this documentation:


Document: Oracle® Fusion Middleware Securing Oracle WebLogic Server 11g Release 1 (10.3.6)
Section Relevant to us would be: Configuring LDAP Authentication Providers

And one last thing that would vary for us from the reference artefacts is that the following OWSM policies need to be used instead of the policies stated in the above referenced artefacts:


oracle/wss10_saml_token_service_policy – Proxy Service
oracle/wss10_saml_token_client_policy – Business Service.

Hope all the above references were of help. Please feel free to leave you comments.




Thursday, 13 December 2012

Moving Oracle BPM Human Workflow Data from One Environment to Another

I was hunting to find out how to migrate runtim rules and routing policies from one Oracle BPM work flow environment to Another for example from Test to Dev and found this document from Oracle web site.

<Snapshot from the document>
You can migrate Human Workflow user metadata, such as views, mapped attribute (previously known as flex field) mappings, and vacation rules, from a test environment to a production environment using the Human Workflow User Config Data Migrator. The Data Migrator is available as an ant target that can be executed at the command line.

To know more read from the document itself:

Oracle® Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite
11g Release 1 (11.1.1.5.0)


Section: 21.6 Moving Human Workflow Data from a Test to a Production Environment

Hope fully it was worth a read.

Tuesday, 3 May 2011

How to configure SQL IDentity Provider for ORACLE BPEL or Worklist application in 11g SOA (Troubleshooting)

If you are looking to setup SQL IDentity Provider  for ORACLE BPEL or Worklist application in 11g SOA then you are in the right place.

The solution is basically provided by an Oracle Sample.

You can download the Oracle Sample here: workflow-120-SQLIdentityProvider.zip

Please follow the steps in the sample provided. Also you can double check the steps with this blog: SQLAuthenticator and Human Worklist Application

Credits to: .

By now you have setup the SQL Identiy provider for BPEL and worklist app.

Troubleshooting: (WorklistApp only)

When you have setup the SQL Identiy Provider, there is a very much likely chance that you might face an issue with the user name case sensitivity.

For example if you had a user in mixed case such as  UserName. Then when you try to log in to worklist app, it will complain that the user does not exist, despite that you witness the UserName exist in the database. This will not work for the following reasons.

Human workflow system (Worklist app) appears to be case insensitive for user names login. By default  all user names are stored in lowercase (Not using SQL identity, as this is a different case). As is the case we need to change a property to notify worklist app. 

Solution:

User name case insensitivity property should be changed in Oracle Enterprise Manager Fusion Middleware Control.

Please follow the steps provided in the
Document:  Oracle® Fusion Middleware Developer's Guide for Oracle SOA Suite 11g Release 1 (11.1.1)
Following the steps mentioned in the document and set the value to "true".

This will resolve the issue.

Tuesday, 26 April 2011

How To Generate Encrypted Password For admin.encrypted.password Property In ant-orabpel.properties File

This blog post will provide steps to generate an encrypted password for admin.encrypted.password property in <Oracle Home>/bpel/utilities/ant-orabpel.properties file.

In order to encrypt the password for admin.encrypted.password property in
ant-orabpel.properties file please do the following:

For example your password is "welcome1"

Make sure you are in <Oracle Home>/bpel/bin

Issue the following commands:

[SOA:~/product/10.1.3.1/OracleAS_1/bpel/bin]$ . ./devprompt.sh
[SOA:~/product/10.1.3.1/OracleAS_1/bpel/bin]$ java com.collaxa.cube.util.EncryptPassword welcome1

This will generate the password encrypted like:
AK6qvYcrlNMqnYt1uPZFjw==

Tuesday, 19 April 2011

How to Enable Oracle BPEL Debugger in Oracle SOA 10.1.3.5 MRL#1

In this section I will provide you with steps to enable BPEL Debugger in Oracle SOA suite 10.1.3.5 MRL#1.

If you read this document: Oracle® Application Server Release Notes and New Features
10g Release 3 (10.1.3.5.1) Part Number E15342-03

Section:

5.8.4 Debugging BPEL Processes and Instances from Oracle BPEL Control

Note: This feature is only available 10.1.3.5 MLR#1 onwords 


It tells you about how you can debug BPEL processes and instances from Oracle BPEL Control with the BPEL debugger.

But before you can start working on or using this feature, you need enable the debugging feature.

Follow the below steps to enable debugging in Oracle BPEL PM:

1. Edit File <SOA_HOME>\bpel\domains\default\config\domain.xml.

2. Add or make changes to domain.xml as below:

<property id="enableDebugger">
<name>enableDebugger</name>
<value>true</value>
<comment>
<![CDATA[debugger<p/>]]>;</comment>
</property>

3. A table is required for debugger that is not created by default in the ORABPEL schema.

   To create the table.

   Execute this script by logging into database with orabpel as user.

    $SOA_HOME\bpel\system\database\script\debugger_oracle.ddl

4. Restart the BPEL server. 

hope this helps.