Friday 30 September 2016

Error in listing files in the remote directory. Unable to list file in remote directory. ; nested exception is: BINDING.JCA-11430

Many times when you are working with mft transfers  might see below mentioned error :


operation 'FileListing' failed due to: Error in listing files in the remote directory. Error in listing files in the remote directory. Unable to list file in remote directory. ; nested exception is: BINDING.JCA-11430 Error in listing files in the remote directory. Error in listing files in the remote directory. Unable to list file in remote directory. Please make sure that the ftp server settings are correct. ]





Resolution to this problem is very simple.It occurs when your sftp remote path is incorrect in mft,it might happen you  have added extra '/' or need to remove some '/' .Best is to touch base with your target partner functional/technical team and understand how is their file system.


For mine i was putting like : /x/y/z and was throwing above error.

But it works like this : x/y/z.


Hope it helps.




Sunday 25 September 2016

Oracle 12c New Features

Oracle has released SOA Suite 12c and lots of new features are introduced in this release. Below is list of some of the new features.

Single Installer: Oracle Suite 12c comes as single installer for developers that means you only need to install only one setup (SOA Suite 12c), DB/Weblogic/SOA will get installed, you need to install it separately. Oracle SOA 12c use Java Derby database, which is file based and that makes it really fast.


Single IDE: In Oracle SOA 12c Jdeveloper is used as IDE for all designs. For OSB development we need not to use different IDE (Eclipse) anymore, we can develop OSB application in Jdeveloper itself.

Debugger: This is new feature in Oracle SOA 12c, debugger is introduced to debug SOA and OSB applications. With the help of debugger we can debug our code before deploying it; this saves lot of development efforts. We can also change message text while debugging it.

Graphical MDS: In Oracle SOA 12c graphical tool is provided to publish, search and consume filed from MDS and OER.

SOA Templates: With the introduction of templates sharing of code between teams become earlier and development efforts reduced. There are three types of templates introduced.
  • Project Template
  • Component Template
  • Custom Activity Template

BPEL Sub-process: Sub-process is introduced in this launch which helps to reduce redundancy. Suppose we need to update database table 3 times in one flow so instead of add 3 different invoke to same BPEL, create sub-process which update the database table and use that sub-process 3 times in that BPEL. There are two types of sub-processes.
  • Standalone sub-process
  • Inline sub-process

Re-sequencing in OSB: In 11g this feature was available in Mediator, in Oracle SOA 12c this features added to service bus also, with the help of this feature we able to process the request message in proper sequence.


Adapter: Coherence, LDAP and cloud adapter are introduced in this release.


Xquery Mapper: In this release Xquery mapper is introduced which provide XQuery support.

Enterprise Service Scheduler: ESS is out of box scheduler. By using this we can schedule the services.

Translate Activity Translate activity is also introduced which is used for Native to XML and XML to Native transformation.

MDS support for OSB: In 11g version MDS support was not there for OSB but in 12c MDS support is provided for OSB.







Saturday 4 June 2016

Installation Steps(Oracle API Gateway)-OAG Policy Studio Installation


1)       Download the OAG installable for windows.
Version : 11.1.2.4.0



2.       Once downloaded, run the installable file and below popup will come and in that core server wil be selected by default and u need to select the policy studio also.




































3.       Mention the installable directory




















4.       Mention the username and password of your choice and select "no" as shown below

















5.Select "no " and click next











6) Again select no and wait for installation to get completed




7)Wait for the node manager to get installed


8)Once installed you can see  below page and start using OAG









Oracle Api Gateway

Oracle API Gateway : accelerates ,governs,secures,web api and SOA based systems.
 
Serves rest API and Soap Web services to client.

  1. Converts REST to Soap
  2. Converts XML to Jason
  3. Supports other protocols also - FTP,SFTP,FTPS,TIBCO Rendezvous and EMS,JMS.
  4. Caching and traffic management
  5. Monitoring of API and service usage.
  6. Content filtering.
  7. Authentication : O auth,certificate auth,HTTP auth,WS Security.



      Basic Architecture (Image 1) :
   
 





      Basic Architecture (Image 2) :
















What It Does?

a) OAG is installed in the RED Zone.t’s a software appliance that can provide application-level routing (base on source, on destination, sender’s identity and XML content); it can do XML conversion and XML Validation or scan incoming message for any known threats, provide XML acceleration to save on performance on processing heavy payload. It provides decent level of monitoring and altering feature to its administrator.


b) OAG’s main purpose is to provide the “First Line Of Defense” by filtering out malformed message, xml bombs, XML Denial of service (XML DoS), SQL injection, XPATH Injection from the external consumer. Once the message is filtered , the message is then forwarded to the GREEN Zone which is the last security. After entering the GREEN Zone the message is Authenticated, Authorized and Audited by OWSM before it’s delivered to the backend web service for processing.


c) OAG can virtualize a web services location, thereby hiding its real location and implementation details from its external consumers keeping it safe from attacks. OAG provide various inbuilt Out-of-the-Box filters that can be implemented in message circuit to filter external messages from threats. It can throttle the inbound message flow.





Oracle API Gateway Installation :


Oracle API Gateway has three distinct components :


a)Oracle API gateway:

 It is a standalone software platform that does not run on WebLogic and should be deployed in your DMZ to guard against external threats such as Denial of Service (DOS) attacks, injection and malicious  code (like SQL or XPath injection), confidentiality integrity (like sniffing and parameter tampering), reconnaissance attacks (like directory reversal) and privilege escalation attacks (like race conditions and buffer overflow).



 























b)Oracle API gateway Studio:

 Along with the API Gateway Manager  this is perhaps the most important tool that Oracle API Gateway provides.  It is a graphical tool used to virtualize APIs and develop policies in a flow-chart style with a drag and drop UI that should be familiar to anyone who has worked with Service Bus or SOA Suite.




 













c)Oracle API gateway Analytics:
 
   This web-based console provides the ability to monitor and report on all API Gateways in the domain over an extended time period.  It can help administrators to analyze what APIs are used, how often APIs are used, when APIs are used, and who is using APIs.  It can also schedule reports in PDF format to be emailed to specific users.




















Saturday 30 April 2016

How To Import SOA Composite Into JDEV



Open Jdev, File --> Import --> SOA Archive into SOA Project
























Provide an appropriate project name




















Import the jar file and finish





















This will import all the project resources from the jar file into your current project





What Is adf-config.xml file In SOA

The common adf-config.xml file can be used to deploy all the composites instead of using the adf-config file from the individual composite applications.


The adf-config file configurations can be changed at runtime through ant script to deploy the composites to different environments.


By this approach, we can reduce the maintenance of individual adf-config files also by using the same adf-config file the composites can be deployed to different environments.


How To Get ADf.Config.xml file :


1) Go to any bel project,referred from mds.

2) Navigate to --> projectname -->sca_inf--> classes-->meta-inf--> adf-config(xml file)



3)Typical Adf-Config.xml file :



<?xml version='1.0' encoding='windows-1252'?>
<adf-config xmlns="http://xmlns.oracle.com/adf/config" xmlns:config="http://xmlns.oracle.com/bc4j/configuration" xmlns:adf="http://xmlns.oracle.com/adf/config/properties" xmlns:sec="http://xmlns.oracle.com/adf/security/config">
   <adf-adfm-config xmlns="http://xmlns.oracle.com/adfm/config">
      <defaults useBindVarsForViewCriteriaLiterals="true" useBindValuesInFindByKey="true" executeEmptyOnException="true"/>
      <startup>
         <amconfig-overrides>
            <config:Database jbo.locking.mode="optimistic"/>
         </amconfig-overrides>
      </startup>
   </adf-adfm-config>
   <adf:adf-properties-child xmlns="http://xmlns.oracle.com/adf/config/properties">
         </adf:adf-properties-child>
   <sec:adf-security-child xmlns="http://xmlns.oracle.com/adf/security/config">
      <CredentialStoreContext credentialStoreClass="oracle.adf.share.security.providers.jps.CSFCredentialStore" />
   </sec:adf-security-child>
   <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
      <mds-config xmlns="http://xmlns.oracle.com/mds/config">
         <persistence-config>
            <metadata-namespaces>
               <namespace path="/apps/abcd" metadata-store-usage="mstore"/>
            </metadata-namespaces>
            <metadata-store-usages>
               <metadata-store-usage id="mstore-usage_2">
                  <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
                     <property name="jdbc-userid" value="@username"/>
                     <property name="jdbc-url" value="@dburl"/>
                     <property name="partition-name" value="@soapartition"/>
                  </metadata-store>
               </metadata-store-usage>
            </metadata-store-usages>
         </persistence-config>
      </mds-config>
   </adf-mds-config>
</adf-config>



4)Create a Build.properties file for each environment and specify the MDS details as mentioned below.
Build.properties


oa.partition=soa-infra
db.user=SOA_MDS
db.password=xxxx



5)

Replace the tokens with the environment actual value during deployment in adf-config.xml file. 
The below Ant script can be used to replace the tokens.

adfconfigbasedir should be changed to the parent folder where the .adf folder is copied.
<loadproperties srcFile="build.properties"/>
<replace dir="${ adfconfigbasedir }/ .adf/ META-INF" token="@db.user@" value="${db.user}">
<include name="adf-config.xml"/>
</replace> 
<replace dir="${ adfconfigbasedir }/ .adf/META-INF" token="@db.password@" value="${db.password}">
<include name="adf-config.xml"/>
</replace> 
<replace dir="${ adfconfigbasedir }/ .adf/META-INF" token="@db.url@" value="${db.url}">
<include name="adf-config.xml"/>
</replace> 
<replace dir="${adfconfigbasedir}/ .adf/META-INF" token="@partition@" value="${soa. partition }">
<include name="adf-config.xml"/>
</replace>






    

Friday 29 April 2016

oracle.webservices Authentication

HTTP basic authentication can have two types of authentication handshake methods, one is Reactive another one is Preemptive,



Reactive:
  • The client makes a request for a resource which needs authentication;
  • The server returns an HTTP 401 Authorization required response (indicating the authentication scheme and realm) with WWW-Authenticate header.
  • The client re-submits the request with an Authentication header;
  • The server verifies client credentials and returns the resource if authenticated successfully..

Preemptive:

The client can preemptively pass the credentials on the first request. The server returns immediately the resource if authenticated successfully.

Not all the authentication server accepts the Preemptive authentication mode, The NTLM authentication will not support the Preemptive handshake method it should be Reactive.

In Oracle SOA 11g the parnerlink binding property oracle.webservices.preemptiveBasicAuth will help us to set the handshake method accordingly.
  • oracle.webservices.preemptiveBasicAuth=false - Reactive mode
  • oracle.webservices.preemptiveBasicAuth=true - Preemptive mode

Sunday 24 April 2016

Oracle OSB New And Changed Features

Below are the list of changes along with new entry in osb 12 version :



1)Support for cross-reference tables and domain value maps, both features from
Oracle SOA Suite.

2) Pipelines are now a separate component from proxy services, and can be created
and configured separately.


3) Resequencing messages using the same resequencer engine as Oracle Mediator.


4) Sharing variables among all pipelines in a chain, which allows them to read and
modify the same variable.


5)Creating pipeline templates on which to base new pipelines, allowing you to reuse
your already developed message processing logic.



6)Enabling and disabling a stage, which effectively allows you to skip certain
actions.


7)Split-joins are a separate component, and can be created and configured separately.


8) Support for cross-reference tables and domain value maps, both features from
Oracle SOA Suite.


9)Importing and exporting resources and configurations from both JDeveloper and
the Oracle Service Bus Console to either a configuration JAR file or to a WebLogic
Server.


10) The ability to log malformed XML payloads in the $fault variable through a new
PayloadDetail element.


oracle.fabric.common.FabricInvocationException: Unable to find the WSDL service defined for service name

I was working on an integration with siebel system .When I am trying to invoke their service,

it used throw the below mentioned error :

 <fault>
<bpelFault>
<faultType>0</faultType>
<remoteFault>
<part  name="summary">
<summary>oracle.fabric.common.FabricInvocationException: Unable to find the WSDL service defined for service name {http://abcd.com/}CC_spcDC_spcNotifications. Please make sure that the port attribute for the binding defined in the composite file is correct by checking the namespace and service name in the #wsdl.endpoint element. In addition, check that the WSDL associated with the binding namespace is imported and currently reachable (check the import nodes at the top of the composite file). Finally, validate any HTTP proxy settings for the server.</summary>
</part>
<part  name="detail">
<detail>Unable to find the WSDL service defined for service name {http://abcd.com}CC_spcDC_spcNotifications. Please make sure that the port attribute for the binding defined in the composite file is correct by checking the namespace and service name in the #wsdl.endpoint element. In addition, check that the WSDL associated with the binding namespace is imported and currently reachable (check the import nodes at the top of the composite file). Finally, validate any HTTP proxy settings for the server.</detail>
</part>
<part  name="code">
<code>null</code>
</part>
</remoteFault>
</bpelFault>
</fault>


How To Tackle This Problem :


1) First take out the wsdl file and put in xml spy  or any online validator to check whether structure is of correct format.


2) The wsdl file should have a structure called "service" at bottom like mentioned below.If its missing it throws out  mentioned error intermittently(ideally it should not) :


<service name="Notifications">
      <port binding="tns:spcNotifications" name="C_spcNotifications">
         <soap:address location="http://abcd.com"/>
      </port>
   </service

3) Check with target partner system whether their service is up or running.


4) Most Imp:


This  can be resolved temporarily by bouncing the SOA Server.Issue might come up again if same wsdl is uploaded again.



I have spent nights in resolving this issue....happy programming!! :) 



ESS Job Request from BPEL in SOA 12c


Introduction

SOA Suite 12c added a new component: Oracle Enterprise Scheduler Service (ESS). ESS provides the ability to run different job types distributed across the nodes in an Oracle WebLogic Server cluster. Oracle Enterprise Scheduler runs these jobs securely, with high availability and scalability, with load balancing and provides monitoring and management through Fusion Middleware Control. ESS was available as part of the Fusion Applications product offering. Now it is available in SOA Suite 12c. In this blog, I will demonstrate how to use a new Oracle extension, “Schedule Job”, in JDeveloper 12c to submit an ESS job request from a BPEL process.

Set up a scheduled job in Enterprise Scheduler Service

1. Create a SOA composite with a simple synchronous BPEL process, HelloWorld.
2. Deploy HelloWorld to Weblogic.
3. Logon to Fusion Middleware Enterprise Manager.
4. Go to Scheduling Services -> ESSAPP -> Job Metadata -> Job Definitions. This takes you to the Job Definitions page.
2

5. Click the “Create” button, this takes you to Create Job Definition page. Enter:
Name: HelloWorldJob
Display Name: Hello World Job
Description: Hello World Job
Job Type: SyncWebserviceJobType
Then click “Select Web Service…”. It pops up a window for the web service.
39
6. On the “Select Web Service” page, select Web Service Type, Port Type, Operation, and Payload. Click “Ok” to finish creating job definition.
8

Secure the Oracle Enterprise Scheduler Web Service

The ESS job cannot be run as an anonymous user, you need to attach a WSM security policy to the ESS Web Service:
1. In Fusion Middleware Enterprise Manager, go to Scheduling Services -> ESSAPP, right click, select “Web Services”.
3
2. In Web Service Details, click on the link “ScheduleServiceImplPort”.
4
3. Open tab “WSM Policies” and click on “Attach/Detach”.
5
4. In “Available Policies”, select “oracle/wss_username_token_service_policy”, click “Attach” button to attach the policy and then click on “Ok” to finish the policy attachment.
6
5. You should see the policy attached and enabled.
7

Create a SOA Composite to Submit a HelloWorldJob

1. Create a new SOA Application/Project with an asynchronous BPEL (2.0) process, InvokeEssJobDemo, in JDeveloper 12c.
2. Create a SOA_MDS connection.
14
3. Enter SOA MDS database connection and test connection successfully.
15
4. Add a Schedule Job from Oracle Extensions to InvokeEssJobDemo BPEL process.
16
5. Double click the newly added Schedule Job activity. This brings up the Edit Schedule Job window.
6. Enter Name “ScheduleJobHelloWorld”, then click “Select Job” button.
17
7. This brings up the Enterprise Scheduler Browser. Select the MDS Connection and navigate down the ESS Metadata to find and select “HelloWorldJob”.
18
8. To keep it simple, we did not create a job schedule. So there is no job schedule to choose. If you have job schedules defined and would like to use them, you can choose a Schedule from the MDS connections.
9. Set Start Time as current date time, and click OK.
19
10. You may see this pop up message.
20
11. Click “Yes” to continue. In the next several steps we will replace WSDL URL with concrete binding on the reference binding later to fix this.
12. In EM, go to Scheduling Services -> Web Services.
21
13. Click on link “SchedulerServiceImplPort”
22
14. Click on link “WSDL Document SchedulerServiceImplPort”.
23
15. It launches a new browser window displaying the ESSWebService wsdl. WSDL URL is in the browser address.
24
16. Update EssService WSDL URL.
25
17. You need to attach WSM security policy to EssService request.
26
18. Add Security Policy: oracle/wss_username_token_client_policy.
27
19. Setting up the credential store for policy framework is beyond the scope of this blog. We will use a short cut, the default weblogic user and password, as Binding Properties on the EssService reference binding to which the security policy is attached.
40

20. Build and deploy InvokeEssJobDemo.
21. Test InvokeEssJobDemo web service.
29
22. It should show that the web service invocation was successful.
34
23. Launch flow trace. We can see that Job 601 was successfully submitted.
32
24. Go ESSAPP -> Job Requests -> Search Job Requests. Find Job 601. Job was executed successfully.


35
 Actual document URL:

http://www.ateam-oracle.com/submitting-ess-job-from-bpel-in-soa-12c/