Acheving Message Correlation In OSB

Hi People,
Just Trying to Implement Message Correlation In OSB.
Limitations : The DownLine System for us is not expected to send back the JMS Message ID while sending the response message. DownLine system Just sends only the payload. This stands as agreement between us.
Below is the Scenario.
I am just trying to replicate the DownLine Flow by using a proxy service and JMS Queues.
1, Setting a value say "ABCD" to JMS Message ID while routing tthe message to BS from Proxy Service 1.
2. The business service "IS Response Requred" is enabled and response Queue is configured as XYZ.
3. Proxy Service 2 Picks Up the message and stubs the response and publishes to JMS Queue Q3.
4. From JMS Q3 proxy service 3 reads it and sends back to the response Queue (XYZ) configured in the BS.
5. Also the proxy service 3 sets the JMS Correlation ID as "ABCD" and routes to the response Queue in the BS.
While sending the messages i can see that the JMS Message ID is getting over writen by a weblogic value, hence correlation is not acheived. Results in time out.

You are in wrong forum.  Please close the thread and ask the question in SOA Suite forum.
https://forums.oracle.com/community/developer/english/fusion_middleware/soa_%26_process_management/soa_suite_3/content?filterID=contentstatus[published]~objecttype~objecttype[thread]

Similar Messages

  • Message Correlation for EDIFACT in Oracle B2B

    How do we setup message correlation in Oracle B2B for EDIFACT?

    Please post your question in the B2B forum for guicker resolutions. The link is provided below
    Integration - B2B

  • How to do message correlation without using BPEL?

    Can message correlation be accomplished in a JCD? I know how to do this in BPEL.
    Regards.

    Not unless you write your own correlation processor (which eInsight gives you as part of the deal).
    Think about what it is you need to accomplish and work out what Java code would be necessary to accomplish it.
    Do share. I, for one, am curious :-)

  • Message Correlation - Content Based - xCBL documents

    Hello B2B Gurus
    We have xCBL documents being exchanged between trading partners, How do you correlate messages?
    1. I have also refered to the following tutorials which refers to "Message Correlation End to End"
    http://www.oracle.com/technetwork/testcontent/b2b-tu-001-b2b-bpel-133467.pdf
    2. technical note on "IP_MESSAGE_TYPE"
    http://www.oracle.com/technetwork/testcontent/b2b-tn-008-ip-message-type-129343.pdf
    Can you please explain for a Purchase Order scenario how does Content Based message correlation occur?
    Thanks

    You need to provide appropriate Xpath's in Correlation tab of Document Definition. Stay tuned and soon I should post more details here.
    Regards,
    Anuj

  • Synchronous message handling between OSB and MQ

    Hi,
    I have a requirement to have a PS in OSB that gets some XML data from another application.
    The PS implementation has to be synchronous.
    The interface is like
    External Application<->OSB PS<->MQ<->OSB <-> External Application
    Can anyone help me with the request-reply implementation(i.e. synchronous call handling) between OSB and MQ.
    Required functionality :
    OSB will get XML data from the external application,will do the data transformation to make it compatible with MQ interface and will then send data to MQ and will wait for the reply from MQ that it then sends back to the external application after transformation.
    Queries:
    How to correlate two messages i.e. request msg to mq and reply msg from mq in OSB?
    What kind of Proxy Service implementation is required to have such functionality?
    If someone can help me with similar kind of implementation,it will be of great help to me.
    Thanks in advance

    OSB support this pattern out of the box . You can implement the MessageID pattern as specified in this link:
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/MsgIDPatternforJMS.html
    When you configure the business service to use MessageID as the correlation pattern, the following happens under the hood:
    1. Business service sends request to the MQ request queue. The MQ JMS provider sets the message ID on the message and this is returned to the bs. The business service also sets the reply queue details in the JMSReplyTo Header in the request.
    2. The business service then waits for a response message which has a correlationID equal to the messageID in the request message.
    3. The system which processes the request from the MQ should set the correlation ID of the response to the same value as the Message ID in the request.
    4. The business service process the reply if it is received before the timeout interval. No need to purge the queues for message arriving out after timeout since OSB does this automatically for you.
    A point to note here is that if you deploy this in a cluster , you need to create 'N' local MQ queues for reply, where N is same as the number of managed servers in the cluster. Else you could lose replies in a scenario where the reply for a request sent by man server 'X" is processed by man server "Y". The request-response correlation tables are maintained internally on man server memory. Since Y had no clue of the requests sent in X it would just discard the reply received.
    So create dedicate queues for each man server and specify them in the business service definition.
    Another key thing for this to work would be to get right the MQ setup between the queue manager in OSB domain and the remote system which process the MQ requests. A simple setup would be for you to create all reply queues as local queues under your OSB queue manager and create only a transmission queue with the same name as your OSB queue manager in the remote system. You need to ask the remote system to do the MQOpen with the ReplyToQueue and ReplyToQM names for queue and queue manager names. This will put the replies to the transmission queue to your QM and through it can reach the right reply queue.
    Edited by: atheek1 on Mar 29, 2010 7:50 AM

  • Expiration of messages in Queue + OSB

    I am working on a prototype and I have the following scenario :
    I have on ALSB (OSB) a JMS based Proxy Service that uses a queue in order to get the messages.
    On the queue are put SOAP messages that are secured on message level.
    There is a digest expiration on Domain Level that is set to 300 ms by default.
    This means that the message once is created and reach the proxy it has to be in this 300 ms time frame.
    ==> Queue ==>Security Check on JMS Proxy Service ==> Message Flow
    Problem nr 1)
    In peak time i estimate that since on the queue to have maybe more then 1000 messages and 300 ms would not be enough.
    If i modify this digest expiration on Domain Level i affect the other applications that are deployed also on ALSB (OSB) and i expose them to security breach.
    Is there a way of solving this ? 300 ms is too small for such thing....
    Problem nr 2)
    The message pass the proxy (the security on message level) but in the message flow due to some exception (various reasons that are not important now) the transaction is rolled back and the message "is put back on the queue".
    Now is the funny part: BEcause of the Digest Expiration Time which is very short the message for sure will expire until the redelivery (ususaly minutes) will be done.
    So why a messages that already passed security is checked again on retry ? Can't this be avoided somehow ?
    Thank you.

    Problem nr 1)
    In peak time i estimate that since on the queue to have maybe more then 1000 messages and 300 ms would not >be enough.
    If i modify this digest expiration on Domain Level i affect the other applications that are deployed also on ALSB >(OSB) and i expose them to security breach.
    Is there a way of solving this ? 300 ms is too small for such thing....I think message expiration can be setup on a proxy level by setting up a WS Security policy on the WSDL rather than at the domain level.
    <wsp:Policy wsu:Id="MessageAge" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401->wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    ><wssp:MessageAge Age="300" xmlns:wssp="http://www.bea.com/wls90/security/policy"/>
    ></wsp:Policy>
    Problem nr 2)
    The message pass the proxy (the security on message level) but in the message flow due to some exception >(various reasons that are not important now) the transaction is rolled back and the message "is put back on the >queue".
    Now is the funny part: BEcause of the Digest Expiration Time which is very short the message for sure will >expire until the redelivery (ususaly minutes) will be doneSimple solution would be to configure the JMS Proxy where you have the WS-Security check to be a pass through and pass the message to another jms queue which can be listened to by JMS proxy which does validation and remaining processing.

  • Expiration of messages in Queue  + OSB (part 2)

    I am working on a prototype and I have the following scenario :
    I have on ALSB (OSB) a JMS based Proxy Service that uses a queue in order to get the messages.
    On the queue are put SOAP messages that are secured on message level.
    There is a digest expiration on Domain Level that is set to 300 ms by default.
    This means that the message once is created and reach the proxy it has to be in this 300 ms time frame.
    ==> Queue ==>Security Check on JMS Proxy Service ==> Message Flow
    Problem nr 1)
    In peak time i estimate that since on the queue to have maybe more then 1000 messages and 300 ms would not be enough.
    If i modify this digest expiration on Domain Level i affect the other applications that are deployed also on ALSB (OSB) and i expose them to security breach.
    Is there a way of solving this ? 300 ms is too small for such thing....
    Problem nr 2)
    The message pass the proxy (the security on message level) but in the message flow due to some exception (various reasons that are not important now) the transaction is rolled back and the message "is put back on the queue".
    Now is the funny part: BEcause of the Digest Expiration Time which is very short the message for sure will expire until the redelivery (ususaly minutes) will be done.
    So why a messages that already passed security is checked again on retry ? Can't this be avoided somehow ?
    Thank you.

    These question look like they are very specific to OSB, rather than basic JMS -- which has no concept of message level encryption -- I suggest reposting to the OSB newsgroup instead.

  • Rejected Message Handlers in OSB

    The official documentation of Oracle JCA adapters
    http://docs.oracle.com/cd/E12839_01/integration.1111/e10231/life_cycle.htm#BABBHJEA
    says that one can have a Web Service invoked whenever the JCA File Adapter rejects a message,
    and this invokation would include the error details.
    However, I have found examples only for a BPEL Error Handler, and not a WebService Error Handler.
    I have tried providing a dynamic JCA activation property "rejectedMessageHandlers=wsif:// http:// pierrepc:7001/ errorhandler/ rejectionMessagePS? WSDL | handleRejection | message" , where myhandler is the URL of a Proxy Service based on a WSDL, but I keep getting the error
    "Error while trying to hand off bad message to Rejection handler wsif : // http: // pierrepc:7001/ errorhandler / rejectionMessagePS?WSDL | handleRejection | message due to: Unable to find an available port"
    The WSDL is:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <definitions name="RejectionMessage"
    targetNamespace="http://xmlns.oracle.com/pcbpel/rejectionHandler"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/rejectionHandler"
    xmlns:err="http://xmlns.oracle.com/pcbpel/errorHandling"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <!-- Message Type for JCA Adapter Framework onReject() callback -->
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/errorHandling"
    schemaLocation="JCAErrorHandling.xsd"/>
    </schema>
    </types>
    <message name="RejectionMessage">
    <part name="message" element="err:RejectedMessage"/>
    </message>
    <portType name="RejectionHandlerPortType">
    <operation name="handleRejection">
    <input message="tns:RejectionMessage"/>
    </operation>
    </portType>
    <binding name="rejectedmessageSOAP" type="tns:RejectionHandlerPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="handleRejection">
    <soap:operation soapAction="http://www.example.org/rejectedmessage/handleRejection"/>
    <input>
    <soap:body use="literal"/>
    </input>
    </operation>
    </binding>
    <service name="rejectedmessage">
    <port binding="tns:rejectedmessageSOAP" name="rejectedmessageSOAP">
    <soap:address location="http://www.example.org/"/>
    </port>
    </service>
    </definitions>
    and the XSD is
    <?xml version="1.0" encoding="UTF-8"?>
    <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/pcbpel/errorHandling" xmlns:tns="http://xmlns.oracle.com/pcbpel/errorHandling" xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="FatalErrorMessage" type="tns:FatalErrorMessageType"/>
    <complexType name="FatalErrorMessageType">
    <sequence>
    <element name="Originator" type="string"/>
    <element name="Reason" type="string"/>
    <element name="Exception" type="string"/>
    <element name="StackTrace" type="string"/>
    </sequence>
    </complexType>
    <element name="RejectedMessage" type="tns:RejectedMessageType"/>
    <complexType name="RejectedMessageType">
    <sequence>
    <element name="MessageHeader" type="base64Binary"/>
    <element name="MessagePayload" type="base64Binary"/>
    <element name="RejectionReason" type="string"/>
    <element name="AdditionalProperties" type="tns:AdditionalPropsType"/>
    </sequence>
    <attribute name="RejectionId" type="string"/>
    <attribute name="BatchId" type="string"/>
    <attribute name="BatchInfo" type="string"/>
    <attribute name="PrimaryKey" type="string"/>
    <attribute name="MessageOriginReference" type="string"/>
    </complexType>
    <complexType name="AdditionalPropsType">
    <sequence>
    <element name="RejectionProp" type="tns:RejectionPropType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    <complexType name="RejectionPropType">
    <simpleContent>
    <extension base="string">
    <attribute name="name" type="ID" use="required"/>
    <attribute name="value" type="string" use="required"/>
    </extension>
    </simpleContent>
    </complexType>
    </schema>
    Any clue?
    I have invoked successfully the Proxy Service with the original WSIF libraries from Apache http://ws.apache.org/wsif/wsif_samples/index.html .... I don't see why the collaxa-third party library in the Oracle Adapter refuse to parse the WSDL...
    thanks!
    Edited by: Pierluigi Vernetto on 27-Jan-2012 04:22

    Maybe this can help - http://www.javamonamour.org/2011/11/osb-and-rejectedmessagehandlers-in-jca.html

  • Is Message debatching in OSB using JMS transport possible

    hi
    I have message on JMS queue with multiple message(s) in it.
    Now my requirement is to read this JMS message as multiple internal message(s) from queue using OSB JMS transport.
    Is this possible from OSB JMS transport?
    Thanks in advance.
    -Ramakrishna Gilla

    No.. JMS transport wont automatically do it for you .. You will have to write a jms proxy service and have your logic to do the debatching.. alternatively you can use jms proxy as a pass thru service writing to the file system and then have the JCA file adapter to do the debatching..

  • 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.

  • Message correlation in BPMN processes

    Hi all,
    I need to implement a BPMN process (using Oracle BPM Suite 11.1.1.3) which has to wait for an intermediate message event. There is no previouly started conversation between a process and external client just an interface (e.g SOAP or JMS) available for a client to interact with a process for instance to send an additional information any time a client wants. Obviously a message must be correlated with a process instance. In BPEL we have a correlation set mechanism for this. But what should we do in case of BPMN processes?
    Regards,
    Ivan

    Hi,
    I have the same problem. Have you found a solution ?
    Thank You

  • ALSB(OSB) - Message loss in OSB

    Hi,
    I am facing the below issue in OSB,
    * I receiving request and able to successfully process it.
    * But while receiving response, if the source sends 10 messages, OSB is processing only 7 messages. Other 3 messages got lost somewhere. I brought down my parent proxy, but in queue also i was able to see only 7 messages but the source system confirms that it is putting 10 messages. I am not sure about the messages
    that went missing.
    Is there any bug in OSB product or is it related to MQ?
    Thanks.

    * But while receiving response, if the source sends 10 messages, OSB is processing only 7 messages. Other 3 messages got lost somewhere. I brought down my parent proxy, but in queue also i was able to see only 7 messages but the source system confirms that it is putting 10 messages. I am not sure about the messages
    that went missing. Given that the proxy service was taken down and still you were able to see only 7 messages,I think before checking for issues in MQ, I would get the statement but the source system confirms that it is putting 10 messages. validated.
    Does your provider log the MQRC codes for every message put in the queue. May be you can request for the logs and validate their statement.
    Also, you can turn on logging on the MQServer to see where the issue is. Can you also check the MQ error logs when this scenario is occurring and share your observations?
    Thanks,
    Patrick

  • Custom jms headers are removed when a message pass through OSB's proxyservi

    Hi,
    I am using OSB 10.3. Trying to build the application withe the following flow.
    proxyservice(jms integration)-->businessservice(jms integration)-->MDB
    When a jms message with some custom headers are posted to a proxyservice, the custom headers are getting strippped off and only the plain jms message is received in the MDB and not the custom jms headers. I have enabled "Get all headers" option to "Yes" on the proxyservice. Do I need to do anything special to get those jms properties on to a MDB?
    Regards,
    Baskaran

    Did you try passing headers with "Set Transport Headers for[ Outbound Request ] " with option      Pass all Headers through Pipeline checked?
    Thanks
    Manoj

  • WS reliable messaging implementation in OSB

    Hi All,
    I have to implement relaible messaging through OSB service. I want to know
    1. how reliable messaging can be implemented in OSB with proxy and bussiness service and how it can be tested?
    2. The advantages of using WS transport to implement reliable messaging over JMS queues ?
    3. How WS transport ensures guaranteed delivery?
    please post your valuable ideas.
    Thanks
    Harini

    WSRM is not fully supported in ALSB.

  • Implement message sequencing in OSB Weblogic 11g version 11.1.1.5.0

    Hi All,
    We have implemented a distributed jms queue from where a jms proxy service picks messages and delivers to the target system . We want to deliver messages in order i.e. FIFO way
    Auto Generate Unit of Order is enabled for this distributed queue .
    But the messages are getting delivered out of order to destination . Like if there are 5 messages received at 5 different timings in my queue and the delivery of messages to destination is completely unordered first message delivered at 3rd number , last at 1st number etc. .
    I want it to be First in First out way (FIFO) .
    Please help .
    Regards,
    Neeraj

    Hi All ,
    Our environment is a clustered one where all OSB proxy services are deployed .
    Regards,
    Neeraj

Maybe you are looking for

  • 5 months after the exchange upgrade.....

    Evening, how normal is this.....got the email from BT at the end of March indicating that my exchange had been upgraded etc etc etc. However, for some reason I am still connecting at ADSL1 (my router doesnt actually display the modulation mode but si

  • Discoverer Viewer/Plus 10g after a migration from Discoverer 4i

    Hi, I upgrated Discoverer4i to Discoverer 10g with Ebusiness Suite 11i ( 11.5.9) without installin AS 10g I followed the note: http://oracle-magic.blogspot.com/2006/11/upgrading-discoverer-4i-to-10g-on-apps.html If I use Discoverer Administrator and

  • Access restriciton times do not work

    I want to set up internet access restrcitions for all computers in my house from 12:00am to 5:00am.  I set up a policy for computers with a range of IP addresses from 0-254 and it seems to work if I test the time range to something like 9:00pm to mid

  • Updating ps 5.1 (wi 7-64 w/camera raw 6.4.1 failed. Error U44M2P7

    i follow the thread but not seems applicable. All ideas welcome Tx. Alan

  • "could not load movie" effing error...

    So im tired with this error message . I tried a soft reset but problem still the same .( btw when i do a soft reset i do not see the apple logo appears like some say... Is it normal ? I just obtain a dark screen and the device shut down thats all..)