OSB - initiaing with OSB

Hello all,
My company decided to migrate all our web services to the new OSB and guess how they chose to get this up and running... It means I will be around bothering you guys for while... =D
Well, I'm building a prove of concept using a simple receiving, validating and queuing case...
1- Receive a request
2- Validate the request against the WSDL
2.1- Return error if request is not valid
3- validate the fields
3.1- Return error if one or many field(s) is/are not valid
3.2- Do a transformation of the fields in a xml
4- Insert in a queue.
So, what I've done so far was
- I've created a WSDL with three fields, firstName, surname and dateOfBirth
- I've created a Proxy service
- created a pipeline pair and inside my pipeline
- created a stage to validate the request. [validateRequest stage]
And here is my first question.
How would be a "best practice" to do this validation??
So far, I'm using a message processing > validate action and doing something like this:
Validate ./chec:person in variable person against CheckPersonWSDL ( Element = "person" ).
and
Raise Error on validation failure
Also, inside my validateRequest stage, I've added an error stage raising a error like this:
Raise Error using error code CheckPerson-001
with error Message
Request is not valid. Resubmit it with valid values.
Then, following my plan...
-I've added another stage into my pipeline pair to validate the fields received from the request. [validateFields stage]
Inside validateFields stage, I put a classical if/else cascade, validating each field in an if condition and inside each if block I inserted:
- a Message processing > assign action to...
assign fn:concat($body/chec:person/firstName, " is not a valid name.") to variable firstNameValidation
- a Message processing > assign action to do this:
assign fn:true() to variable isFirstNameValid.
So, after my cascade of ifs, I can check the second assigned variable and build a string with the invalid fields.
And here is my second question.
How could I use the variable previously defined by the assign actions??
e.g isFirstNameValid to check if it's true or not.
Well, basically, this is it... initially... =D
Thank you guys...

Ok...
Now I have my Proxy Service almost there...
I'm receiveing my request, validating what I want and sending to an iteration.
My request contains a list of people with the usual fields, first name, last name, date of birth and gender.
I want iterate this list, validate the person against a schema and for the valid ones, insert in a JMS Queue, and for the invalid ones, insert in my response to be resubmited.
So far, I've done something like this...
Added a stage... Validate People stage.
inside my Validate People stage, I've inserted a For each action to iterate my list.
for each person in my list, I validate against my schema and store the boolean result in a variable...
after I check using an if else action whether my person is valid or not...
For a valid person, I want to get that block of xml and insert in a JMS queue
The invalid person, I need to transform that block of xml to another xml and insert into the response.
now the questions... lots... =D
JMS queue...
How should I created it???
In my Weblogic??
Define a JNDI name and access it using a Business Service???
currently, I defined a business service as a message service with request message type xml pointing to my element inside my schema and no response and using JMS as my protocol and pointing to a random endpoint URI.
I know I'll have to change my endpoint URI to my real JMS queue but I need it first... =D
After that, I'm using a publish action pointing to my business service and my business service has a insert action.
My insert action contains the person variable defined as my for each variable of my for each action.
this leads me to my next question...
How to get the block of xml and insert into this JMS queue??
After that, I will have my if statement done... I hope _+
thank you guys for your help.

Similar Messages

  • Java client for OSB proxy with JMS Transport

    Hi,
    I am trying to call OSB proxy with JMS Transport. I am generating the client through ant task clientgen and following this article
    http://www.oracle.com/technetwork/articles/murphy-soa-jms-092653.html
    The osb proxy is req-response and is simply routing to BS which return a string value.
    When I run my client, it get stuck and does not return at all. Has any one trying java client in such scenario?
    What I may be missing?
    Below is snipped of client code:
    String url = "http://localhost:7021/sbresource?PROXY/MySample/MyJMSProxyService";
    CreditLoanApprovalServiceSoapBindingQSService service = new CreditLoanApprovalServiceSoapBindingQSService_Impl(url);
    MyPortType port = service.getCreditLoanApprovalServiceSoapBindingQSPort();
    LoanStruct in = new LoanStruct(); //populated the data structure
    String loanResult = port.processLoanApp(in); // Stuck here without any error
    System.out.println("LoanResult--> " + loanResult);
    Thx
    /Ashwani

    http://localhost:7021/sbresource?PROXY/MySample/MyJMSProxyService is the WSDL URL of the proxy.
    Transport is is picked by the client from wsdl.
    As far as the documentation of client generation is there, there is no change.
    But meanwhile I have started working on sending the message directly to queue. JMSProxy is getting called. May be I will first run the proxy this way and then try troubleshooting the java client.
    Regards
    Ashwani

  • Can I use a tape autoloader device with OSB Express?

    Hi,
    The Express version of OSB allows me to backup one server to one attached tape drive.
    The DataSheet also mentions that OSB XE supports a maximum of one tape drive within a robotic library.
    Does this allow me to use a tape autoloader (namely the SL24 LTO4) with OSB Express? The device is listed in the tape device compatibility matrix, but does not say of restrictions between the fully licensed and the Express version.
    Thank you,
    Adrian

    Yes, OSB-XE could be used with the tape autoloader listed on the device...as long as it has only one tape drive.
    Donna

  • Integrating BAM with OSB in Oracle 11g

    Hi,
    Can any one provide me the examples or any helpfull links to integrate BAM with OSb ?
    Thanks in advance.

    Check
    http://www.oracle.com/technetwork/middleware/bam/osb-bam.pdf
    and
    Integration of OSB 11g and BAM
    hth,
    Peter Paul

  • How to undo activated OSB session with WLST?

    Does anybody know if there´s a chance to undo an activated OSB session with WLST?
    There´s a way to undo an UNactivated session but not an activated one (like the undo session in /sbconsole).
    Thanks in advance.
    Edited by: 956378 on 31-ago-2012 12:48

    "zone copy active-zoneset full-zoneset vsan 2" is the correct command.  It will overwrite the full zoneset (identical) and ready to edit.

  • Guarranteed Message Delivery with OSB 11g

    Hi,
    I'm currently working on a scenario with OSB that requires me to set up guaranteed message delivery. The business scenario is that on one end I have a flat file polling service and I have to transform this data into XML and store it to DB. Concisely, this is the scenario: Flat File -> Proxy -> Business -> JMS Queue -> Proxy -> Business -> DB. The entire process works fine till the time I turn the DB off. In that case, I get a load of erro in the log, and the message in the Queue sits there indefinitely, Even after the DB has been restarted. The only way the message gets stored into DB is by performing a complete server restart, which, needless to say is not acceptable. Stopping and starting the proxy and business services do not work, either.
    I'm using an XA data source for the DB connection pool and the default XA Connection Factory for OSB JMS transport. After delivery failure the message sits in the queue with "receiving transaction" state string. On inspection of the server logs I found that WebLogic can't connect with the datasource even when the database is completely restarted. It requires a server restart for the connection pool to work properly again.
    Could anybody please provide some insight as to what I'm doing wrong?

    Jms:///CF/QName works when we OSB clusterOSB JMS transport is implemented as Weblogic MDB's under the hood. From weblogic 9x onwards , mdbs bind to co-hosted destinations by default.
    So if you have a distributed destination and mdb's are deployed to the same cluster ( happens when jms proxy service is deployed to the cluster) , then it is guaranteed behaviour that the mdb on ms1 binds to dd member on ms1 and mdb on ms2 binds to dd member on ms2. So you will end up seeing 16 consumers ( by default, if you have not configured any work manager to restrict concurrent threads) on each of the dd member.
    we have both BPEL and OSB cluster so when BPEL posting a message how to avoid the racing condition in OSB . as both will look for same QUEUE..Make sure the connection factory used by bpel has load balancing turned on and server affinity turned off. This will ensure a pretty load balanced distribution of the messages to the dd members in the cluster which will be then processed by the proxy service hosted on the same managed server instance.

  • Create Customization File in OSB 10g with WLST script

    Is it possible to create a customization file the same as created from the OSB console with a WLST script?
    Can someone show me the syntax to do this? I need to turn this request around quickly and don't have time for a lot of trial and error.
    Edited by: DoubleT on Sep 29, 2009 6:44 PM

    I resolved my problem. The solution is follow (Java language):
    Set<Ref> domainRefs = alsbConfMB.getRefs(businessServiceQuery);
         EnvValueQuery evquery = new EnvValueQuery(null, // search across all
                   // resource types
                   envValueTypesToSearch, domainRefs, // search only in found refs.
                   false, // Search all resources
                   null, // the string we want to replace
                   false // not a complete match of URI.
    Collection<QualifiedEnvValue> founds = alsbConfMB.findEnvValues(evquery);
         List<QualifiedEnvValue> qualifiedEnvValueList = new ArrayList<QualifiedEnvValue>();
         for (QualifiedEnvValue qev : founds) {
              if (qev.getEnvValueType().equals(EnvValueTypes.SERVICE_URI)) {
                   qualifiedEnvValueList.add(qev);
         EnvValueCustomization projectEnvValsCustomization = new EnvValueCustomization("Customizations File for businss services ", qualifiedEnvValueList);
         List<Customization> customizationList = new ArrayList<Customization>();
         customizationList.add(projectEnvValsCustomization);
         OutputStream fileOutputStream = new FileOutputStream("testCustomization.xml");
         Customization.toXML(customizationList, fileOutputStream);
         fileOutputStream.close();

  • Can I configure WS-Sec authentication via Active Directory with OSB or OWSM

    Hi
    I'm planning a project where I need to add security to a group of proxy services in OSB. I need to authenticate them via WS-Security using Active Directory. Is this possible with OSB or adding OWSM?
    Regards,
    Néstor Boscán

    Hi.
    OSB http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/model.htm#i1088877
    OWSM
    http://docs.oracle.com/cd/E17904_01/doc.1111/e15866/owsm.htm
    and
    http://docs.oracle.com/cd/E21764_01/web.1111/e13713/owsm_appendix.htm
    hope this helps
    best
    rolando

  • Need architecture guide to deploy OSB & OBPM with SOA?

    Hi ,
    Is there architecture guide available for OSB + OBMP with SOA?
    Thanks & Regards,
    Noman

    Hi:
    The one I know is http://download.oracle.com/docs/cd/E14571_01/core.1111/e12036/overview.htm#sthref10
    Now in 11.1.1.3 u can have SOA, BPM and OSB within the same Weblogic Domain, so the diagrams that u will find in the link can be extended with one additional Managed Server depicting OSB.
    BPM is on top of the SOA Infra, so u already have it there,
    hope that helps
    best

  • JCA Adapter Postprocessing with OSB

    Hi,
    I am using JCA file adapter with OSB to generate flatfile output from xml (nxsd). I would like to know if it is possible to use JCA adapter post processing with OSB. (JCA pipeline and valves). Please let me know if you have tried this.
    Thank you
    Matt

    Pre and post processing is not supporting in JCA Adapter for File/FTP certified on OSB. Check section 25.2.2.3 Oracle JCA Adapters for Files/FTP Limitations in below link.
    http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/jca.htm#OSBDV910
    However, according to below link it does work nonetheless. I havnt tried it, may be you can try it out as given in the link below and let us know.
    Jca adapter Valves in OSB
    Edited by: AbhishekJ on Feb 26, 2013 10:26 PM

  • Integration Oracle Advance Queue with OSB

    We are doing integration for Oracle Advance Queue with OSB.
    I created an AQ adapter in Jdev and generate the WSDL and XSD.
    I imported both WSDL and XSD in OSB Project.
    When i am configuring the business service and selecting the WSDl i am not able to select Binding and ports, is it due to any issue in WSDL?
    Please help.
    Thanks,
    Mihir Panda

    Hi again,
    I made some adjustments to your wsdl. I added the binding part and its reference to the appropriate port.
    Now I reckon, you should be able to do your thing:
    <wsdl:definitions
    name="enq"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Applicatio90/Project4/enq"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Applicatio90/Project4/enq"
    xmlns:opaque="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
    xmlns:obj1="http://xmlns.oracle.com/xdb/APPS"
    xmlns:ph="http://xmlns.oracle.com/pcbpel/adapter/aq/headers/payloadheaders/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <plt:partnerLinkType name="Enqueue_plt" >
    <plt:role name="Enqueue_role" >
    <plt:portType name="tns:Enqueue_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    <wsdl:types>
    <!-- Define AQ Headers = Payload Headers -->
    <schema attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/headers/payloadheaders/"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:obj1="http://xmlns.oracle.com/xdb/APPS" >
    <import namespace="http://xmlns.oracle.com/xdb/APPS" schemaLocation="xsd/APPS_WF_EVENT_T.xsd"/>
    <complexType name="enqHeaderCType" >
    <sequence>
    <!-- payload header -->
    <element name="PayloadHeader" type="xs:string" />
    </sequence>
    </complexType>
    <element name="enqHeader" type="ph:enqHeaderCType" />
    </schema>
    <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
    xmlns="http://www.w3.org/2001/XMLSchema" >
    <element name="opaqueElement" type="base64Binary" />
    </schema>
    </wsdl:types>
    <wsdl:message name="Enqueue_msg">
    <wsdl:part name="opaque" element="opaque:opaqueElement"/>
    </wsdl:message>
    <wsdl:message name="Header_msg">
    <wsdl:part name="Header" element="ph:enqHeader"/>
    </wsdl:message>
    <wsdl:portType name="Enqueue_ptt">
    <wsdl:operation name="Enqueue">
    <wsdl:input message="tns:Enqueue_msg"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="Enqueue_Binding" type="tns:Enqueue_ptt">
         <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="Enqueue">
                   <soap:operation soapAction="put_your_own_URI_here"/>
                   <wsdl:input>
                        <soap:body use="literal"/>
                   </wsdl:input>
              </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="EnqueueService">
         <wsdl:port name="Enqueue_ptt" binding="tns:Enqueue_Binding">
              <soap:address location="No Target Adress"/>
         </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    Good luck.
    Regards,
    Ronald

  • Cannot integrate BPM Standalone 10g with OSB 10g

    I integrate the BPM 10g with OSB 10g following the steps of integrating BPM and ALSB - BPM 10.3 Configuration Guide(http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/config_guide/index.html)
    I can create Process Registration Configuration and Management Host.
    I select the item name created by me in the dropdownlist of Registration Configuration.
    However, when I click the button of Register, it shows error: You must select at least one item from the list.
    But in the OSB, I can find the folders which are created with the managment host.
    Where is the list?

    Hi Daniel Atwood:
    I use BPM standalone 10g and BPM studio 10g. I also extend the weblogic domain to include the OSB, ADF, and workshop lib.
    I check all projects in BPM standalone and they are completely deployed. I set the steps are publishing projects after it is deployed. I redeploy and republish projects which are created in BPM studio. But the Service registration status table is still blank.
    In BPM studio 10g, I create the osb management host, osb process registration, and osb proxy server configurations under the external resources. The osb struct (project, wsdl, xsd, business service) can be created in studio.
    Then, I click the icon of OSB registration. In the dialogue, after I click the button of register or update, it shows that: Operation ignored since no services have been selected
    What server should I create ? Should I create a proxy server in OSB first?
    Thanks
    Edited by: YE on Apr 13, 2009 3:15 PM
    Edited by: YE on Apr 13, 2009 4:48 PM

  • JMS messaging with OSB

    Hi Forum, So far I have not been able to find any useful information hence the question:
    1. Is OSB an implementation of JMS?
    2. To use JMS with OSB do I need to install separate JMS? If not does JMS install by itself when installing OSB?
    Thanks!

    JMS (Java Messaging Service) is a transport protocol (like File, FTP, email, HTTP etc.) which is supported by OSB (Oracle Service Bus - which is a service bus product used for transport protocol mediation).
    Once you have installed OSB, you may use it to configure services which use JMS transport. Please refer to know more -
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/jms.htm#i1051082
    http://en.wikipedia.org/wiki/Java_Message_Service
    Regards,
    Anuj

  • DVM with OSB

    Hi All,
    Wanted to implement DVM with OSB.
    Follwed the below URL and tried to implement as is.
    https://blogs.oracle.com/christomkins/entry/domain_value_maps_in_oracle_se
    Created project, created XQuery with DVM information, created XQuery to get those values from DVM.
    But when i run iam getting the following error message
    Error Message:
    <error>Error occurred while executing XQuery: line 10, column 9: {err}FORG0005: expected exactly one item, got 0 items. Either the XQuery is invalid or it contains custom XQuery functions. Try using the web test console to test this XQuery (Right click on the XQuery file and select Run As ->Run On Server) </error>
    The below line is creating problem:
    *$dvm/ns0:rows/ns0:row[ns0:cell[1]=$airportName]/ns0:cell[2]* - This xpath is throwing the exception.
    Thanks,
    Vijay

    Thanks Vlad for your response, I have pasted below the DVM file.
    +<dvm name="airportCodes" xmlns="http://xmlns.oracle.com/dvm">+
    +<description>This is description</description>+
    +<columns>+
    +<column name="Airport Name"/>+
    +<column name="Airport Code"/>+
    +</columns>+
    +<rows>+
    +<row>+
    +<cell>London Heathrow</cell>+
    +<cell>LHR</cell>+
    +</row>+
    +<row>+
    +<cell>Dublin</cell>+
    +<cell>DUB</cell>+
    +</row>+
    +<row>+
    +<cell>Liverpool</cell>+
    +<cell>LIV</cell>+
    +</row>+
    +</rows>+
    +</dvm>+
    and i have the standard dvm.xsd file as schema file.
    This below Xquery is used, to get the value from above DVM file.
    +(:: pragma bea:global-element-parameter parameter="$dvm" element="ns0:dvm" location="dvm.xsd" ::)+
    declare namespace ns2 = "";
    declare namespace ns0 = "http://xmlns.oracle.com/dvm";
    declare namespace xf = "http://tempuri.org/SimpleOSBv1/SimpleDVM/";
    declare function xf:SimpleDVM($dvm as element(ns0:dvm),
    +$airportName as xs:string)+
    +as xs:string {+
    +$dvm/ns0:rows/ns0:row/ns0:cell[1]+
    +};+
    declare variable $dvm as element(ns0:dvm) external;
    declare variable $airportName as xs:string external;
    xf:SimpleDVM($dvm,
    +$airportName)+
    Thanks,
    Vijay

  • Fault reporting with OSB

    Hi All,
    I have a SOA composite service which receives feed from external party using one-way with fault messaging pattern. It works as expected, sends fault back to client on its own. However, I now abstract the service with OSB for SLA alert purpose. On doing that I find the faults are no longer sent back to the client. How to make OSB send back faults to client in one-way messaging with fault pattern. Any working example will be really good.
    Thanks
    Edited by: user5108636 on Sep 26, 2012 6:57 PM

    Hi Eric,
    For more about the messaging pattern. I have SOA Suite Composite service receiving messages using one-way returns faults communication pattern. It works fine. However, introducing OSB to abstract this service creates issues with this pattern and the client no longer seems to receive the faults back. How do I workaround this.
    This mediator pattern does not work with OSB. Refer 23.1.1 for details of the mediator pattern. Please suggest.
    Thanks

Maybe you are looking for

  • How do i select a portion of a document to print

    how do i print only a portion of a document that I have highlighted?

  • Package javax.microedition.media does not exist

    package javax.microedition.media does not exist import javax.microedition.media.*; Please tell me why this error occurs.Is it due to midlet version?

  • SMC(Solaris Management Console) problem

    Hi I am trying to start SMC for managing the users and groups.But i am getting the following errors. bash-3.00# smc com.sun.management.viper.CriticalStopException: javax/help/JHelp at com.sun.management.viperimpl.console.gui.SMCConsole.start(SMCConso

  • Error : passing parameters from method to FM is empty ?

    Hello, import parameters are not being passed to the end ??? i have a workflow with a task, this task is calling a method called METHOD1 and this method is linked to a function module FM1. The workflow is triggered by an even, so i did binding betwee

  • Any more suggestions for spotty Flash in Firefox?

    Have tried all the combinations, but there are some videos that are black screen and will not load, while others are fine. It is frustrating, to say the least. Is there anything new on the front besides updating or downgrading the various programs, s