Solution to merge incoming asynchronous messages inside OSB ?

Hello,
What is the good practice to merge (aggregate) two or more asynchronous messages reading from JMS queues ?
I have to collect responses from a single request and merge them into a single message, so I have to identifie the responses in order to merge them with others responses from the same request.
Does a solution based on the SplitJoin can address this issue ?
Or do I have to store in a temporary buffer and call a Java Callout to read responses, identifie them and then remove them when all the responses have been received ?
Or is there another better solution ?
Thanks for your help.
Best regards

I am also interested in the answer to this question.
In my requirement I may have a large number of provider services so I don't want to hard code each one in BPEL. I also need to allow for timeouts, the main service should wait for 1 min and then send back all the results it has received.
I have gone down the line of combining the Scatter-Gather and Publish/Subscribe design patterns. The only problem is that the JMS adapter cannot synchronously read messages from a queue so I have built a POJO webservice to do this.

Similar Messages

  • How to do service callout with the incoming JMS message in OSB 11g

    Hello All,
    I have a specific requirement for which I am creating a kind of POC where I need some help in OSB, however am new to OSB.
    My Environment:
    1> I have a request queue (deployed on a WLS domain) - WFReq_WS
    2> I have a response queue (deployed on a WLS domain) - WFRes_WS
    3> I have created a ProxyService (request/response type) in OSB 11g which is simply mapping the incoming message in WFReq_WS to WFRes_WS
    4> I have a WebService (it is currently a simple hello WebService for testing) which takes a string and returns the same string with an added 'Hi' in front of it (e.g. If you send Jack, it will return 'Hi Jack')
    My Requirement:
    1> I have to do some mechanism in OSB, by which while mapping the message from WFReq_WS to WFRes_WS (through the proxy service I have), it will pick the JMS message (which will be a string/text) and will make a service callout to the Webservice I mentioned using the message as the input parameter of the WebService.
    2>Now when the response of the WebService will come, OSB should send this response as the message in the response queue (WFRes_WS) I mentioned above.
    To simplify the requirement using an example:
    A> I will send a text/String message (say Jack) to the request queue (WFReq_WS)
    B> OSB should pick the message (Jack) and make a service callout to the webservice
    C> webservice will return 'Hi Jack'
    D> OSB should send this to the response queue (WFRes_WS)
    I know the above might look very basic question to the PROs, but please elaborate (step by step) what need to be done, since I do not know OSB.
    Thanks a lot for your help !

    Your example points A and D are easily done by having a "Proxy Service" which has the following details:
    Service Type = Messaging Service
    Request and Response type = Text
    Protocol = jms
    Endpoint URI = your request queue (format like 'jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueJNDIName')
    Checkmark "response" so that the proxy service automatically delivers the response to another queue - your response queue
    Response URI = jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueResponse
    Now since your "Hello" webservice is (probably) a SOAP xml service you need to "convert" your text based JMS message to xml before sending it on to the "Hello" service.
    Your JMS proxy can do that by just doing a "Assign <whom>{$body/text()}</whom>" to a variable (lets call it 'reqHello')
    Now your JMS proxy should actually call the Hello service and since your JMS proxy is text and the Hello service is SOAP you cannot just "pass" on to the Hello service in a "Route to". Instead you can do a Service Callout where you can specify your "reqHello" variable as payload and a "respHello" as response variable.
    Now you have the "<whom>Hi jack</whom>" in the response variable and since the JMS response needs to be text format you can "extract" the text value into the body variable of the JMS proxy (use "replace /* in body with $respHello/text()" - replace node contents)
    The actual Hello service is a simple "SOAP" based Proxy Service. Add a pipeline and add a stage in the reponse pipeline. Do a ...
    Assign fn:concat("Hi ",$body/whom/text()) to $whomVar
    Replace whom in body with $whomVar (replace node contents)

  • Incoming Text Messages Allocated to Wrong Contact

    I recently recieved my Zed10 back from warranty repair for an out of the box malfunctioning headphone port and am now experiencing an issues a thousand times more frustrating.  The phone is now having issues when I recieved a text message in which it will assign it to the wrong contact.  I've checked the contact information, there's no duplicated numbers, the number the text is coming from is only assigned to one contact, yet thru one SMS conversation, it may appear that I am talking with 3 different individuals, which is very confusing.  Before I sent my Zed10 in I did a full backup, then security wipe.  I received my exact same device back from warranty, updated to the latest OS, did a restore of my backup, and now this.  I went thru and deleted all the SMS history, which seemed to resolve the problem, but after about an hour it has started again.  Some of the numbers it is now showing as incoming texts are not even numbers of my contacts, yet I can keep the conversation going by replying to the actual contact on my phone (if I reply to the number that it's telling me the text came from, the person on the other end has no information of any text).  Has anyone experienced this?  Since we don't really have contact backup options in Link like we did in DM my next "fix" attempt will be to move my contacts to my SIM card and wipe the device... again.  Very glad to have my BB10 back after 2 weeks on a Curve 9300, but this is VERY frustrating.
    If anyone has had anything like this happen, please help.  Thanks everyone.
    Solved!
    Go to Solution.

    Please read this:
    SMS messages appear to come from the wrong contact when received on the BlackBerry 10 smartphone   
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Websphere ,Problem in asynchronous messaging ,JMS

    I'm trying to implement a asynchronous messaging through point to point communication in my application, I was getting an error like "javax.jms.IllegalStateException: Method setMessageListener not permitted" this is implemented in WSAD5.1.1.In this application my message sender program is working fine , only the message receiver program is giving me the error, that too because of the message listener being implemented.Websphere is not allowing the listener class to execute.Can anyone tell me how to resolve this problem in websphere ,It would be grateful if any provide me the solution with examples.Advance thanks for the solution.

    Hi,
    I am not a Websphere user but I took a look on Google for you and found the following:
    http://www.tek-tips.com/gviewthread.cfm/lev2/3/lev3/13/pid/831/qid/588267
    Unfortunately it doesn't look promising...
    Cheers,
    Tom

  • Merge several support messages to one support message

    Hi everybody!
    We are facing a problem with the clarcity of support messages.
    Normally different problems (support messages) belong to the same topic (background), respectively can be solved with one answer. So, is it possible to merge several support messages to one support message to develop more clearness?
    Currently we are referencing the tickets via text (for example: see ticket 8000000976) and that is not very satisfying.
    Thanks for your answers!
    Regards
    Daniel Köß

    Yes. You can if you have executed ONLY the action "Confirm Message to SAP"(without message status "Confirmed").
    There are two ways to confirm the message to SAP.
    1. Option1:
        Choose the message status as "Confirmed" and execute the action "Confirm Message to SAP".
        This confirms the message to SAP as well as confirms to Solution Manager System also.
        So you cann't make any more changes or cann't execute no more actions.
    2. Option2:
        Just execute the action "Confirm Message to SAP" without choosing any status.
        This confirms the message to SAP but not on support desk system(solution manager system).
        So you can make changes or can execute any action including "Confirm Message to SAP"
        one more time.
    Let me know if you are still not clear.
    Regards,
    Sanjai

  • Splitting an incoming SOAP message

    Hi All,
    My Scenario is  FILE --> PI --> Webservice --> File (Synch with BPM Asyn Synch procedure).
    I am sending an XML request file with 2 fields and getting Reponse message from WebSerive . The response SOAP message is going to be huge amount of data with 200K Records (app 120 MB) .
    want to know about any option availble to split an incoming SOAP message into smaller messages and process through PI ?
    Thanks ans Regrads,
    Midhusha.

    >I am sending an XML request file with 2 fields and getting Reponse message from WebSerive . The response SOAP message is going to be huge amount of data with 200K Records (app 120 MB) .
    I am not sure if we can receive 120 MB message in one trasaction in synchronous fashion, until unless if you have a good network bandwidth.
    My suggestion would be, have this process in asynchronous fashion. Have two asynchronous webservices, one takes the requests formulates message and then triggers the second webservice in async fashion.
    since the message is huge you can trigger mulitple chunk calls.
    Regards,
    Praveen Gujjeti
    Edited by: Praveen Gujjeti on Nov 3, 2010 10:28 AM

  • How to catch error message inside a variable?

    Hi,
    I'm trying to catch the error message inside a variable using this this command below:-
    <%=odiRef.getPrevStepLog("MESSAGE")%>
    Could you please tell me what is the right approach to capture the error message inside a variable.
    Thanks
    Anindya

    Hi Bhabani,
    I have done this and select an oracle schema.But the variables only captures the (null).Please look into this.You must have one step prior to this refresh variable. Then only it can get the status as given below.
    Returns the one-letter code indicating the status with which the previous step terminated. The state R (Running) is never returned.
    D: Done (success)
    E: Error
    Q: Queued
    W: Waiting
    M: Warning
    If you want the complete error details then you will face issues in case of multi line message. For this best option would be jython variable.Could please provide me some idea how to use this jython variable.I will update you on this soon
    Thanks
    Anindya

  • How to set error message inside the loop...module pool

    Dear all,
         Am creating Table Control without wizard. In that i am looping the values, that is, Once if i entered 5 digit values means, 12345-08... the values should be stored in z-table like this 12345,12346,12347,12348 . That is 5-8 it as to update in z table. for this i createdloop at itab and inside that i written a code to count the value and all. and also its clearly updating the value in ztable too. now i want to know, if once again i entered the same value means, like 12345-08.. it as to show error messge.I dont know how to set the condition with error message inside the single loop .... Its all comes under module pool program.
    Thanks,
    Santhosh.R

    If i understood your doubt, here goes the answer.
    LOOP AT itab INTO wa_itab.  " This is your loop
      l_tabix = sy-tabix. "l_tabix receives the line of the loop
      READ TABLE itab WITH KEY itab = wa_itab.  "itab is the same tab of your loop
      IF sy-subrc EQ 0 AND l_tabix NE sy-tabix.    "Here the sy tabix have the value of the read table.
    *     Here you do your error treatment.
      ENDIF.
    ENDLOOP.
    Explanation: When you are looping your internal table, you use a READ TABLE to see the already recorded registers. If the read table finds one register (sy-subrc EQ 0) and the this register is not the one of the current line (l_tabix NE sy-tabix). It means you have a duplicated register.
    Maybe there is someway easier to do this, but this is what i thought now.
    I hope this was your doubt hehe.
    Thales Schmidt

  • What are the best ways (for best performance) in MII to process the incoming process messages from shop floor systems to SAP ECC 6.0 and vice versa?

    Hi All,
    Can you please suggest to choose the best ways (for best performance) in MII (12.2 on NW 7.3), to process the incoming process messages from shop floor systems to SAP ECC 6.0 and vice versa?
    Thanks

    Hi Surya,
    Best practices for flow of data from ECC --> SAP MII --> Shop floor & Vice verse:
    1. Send ECC data through IDOC's/RFC's as messages to SAP MII message listener and BSL transaction process data and update directly on shop floor database as if you configured in Data services or later send those data by web service to shop floor system (i.e. depends on Shop floor machines).
    From Shop floor:
    shop floor --> SAP MII --> ECC
    1. Use either Web service or fetch data from DB and pass data to BAPI's  for sending to ECC through BLS transaction.
    Regards,
    Praveen Reddy

  • Flex with JMS Topic/Queue for Asynchronous messaging

    I have been working on Flex and JMS integration using Data
    Services for Asynchronous messaging. I am able to do this
    successfuly. Now I am in need to do the same without using the Data
    Services piece.
    For doing this I have done the following ......
    I have created a JMS Webservice in the Oracle JDeveloper 10G
    along with Webservice Client.I am able to Listen to JMS Topic/Queue
    ( this has been created in the Oracle AS ) using this Webservice
    and receive the messages from this JMS Topic/Queue
    Asynchronously.....
    But If I need to use the Flex Client , I am not able to
    Communicate with this Webservice to listen to the JMS Topic/Queue.
    Did any one in this forum tried to communicate with JMS
    Topic/Queue without using Flex Data Service.If so please share your
    inputs.

    Here is my confusion (I'm using J2EESDK1.3).
    On a local server I did the following
    j2eeadmin -addJmsFactory jms/RemoteTCF topic -props url=corbaname:iiop:mars#mars
    In the app client running on the local server I had the code
    ic = new InitialContext();
    // JNDI lookup. The resource factory ref points to the
    // Remote Connection Factory I registered
    tcf = (TopicConnectionFactory)ic.lookup("java:comp/env/jms/TopicConnectionFactory");
    // The env ref points to jms/Topic of the local server
    pTopic = (Topic)ic.lookup("java:comp/env/jms/PTopic");
    So I'm assuming that I'm using a connection factory that connect to mars and a Topic on the local box.
    On remote server mars, I deployed a MDB which use
    jms/TopicConnectionFactory and jms/Topic. But I'm thinking this jms/Topic and the one I used on the local box are not the same one. Right? Then how could the app client and the MDB share messages?
    Some of my explanation I don't if it makes sense or not.
    ConnectionFactory is a way to tell what kind of connection it could generate (Queue, Topic, Durable etc) and Where the connection would go to (local or remote).'
    As for as destination, I'm not sure. How could two server share one Topic?

  • Abstract asynchronous message interface for fault (exception) messages

    Hi,
    Has anyone yet discovered how to create an abstract asynchronous message interface for a fault message so that said message can be referenced in an Integration Process? I am currently at a loss as to how to reference the exception message returned by a synchronous RFC call, and how to return the fault message of a synchronous MI from a BPM.
    Thanks for any help you can provide on this issue - please do not refer me to existing blogs or forum messages if they do not specifically answer this question in a positive manner. I have just been through the SAP Notes and the SDN forum and Google and while I have seen many questions about this topic I have not seen any answers. 
    Stephen

    hi stephen,
    never worked on this but out ofcuriosity after seeing ur question i tried to  create one:
    but i found these:
    fault message types will only be used in case of synchronous messages.....if it is asynchronous the fault message type radio button it self will not seen while creating message interface..just check.
    you need to create a Fault message type to use it in an interface...u can add your own fields also if u want.
    in your present case you mentioned you are using synchronous RFC...try creating a synchronous abstract interface there you can give fault message type also...just check by creating one...
    correct me if i am wrong...
    regards.

  • Maximum Message size OSB can handle

    Hi,
    I am trying to find out the maximum message size OSB can handle without any problems.
    I know this may be dependant on JVM settings etc,but what is a safe limit.Can the payload size be of 1 GB etc , say for a WSDL based proxy service.
    Any formal documentation on the size of messages?
    Thanks.

    Hi ,
    Please check the following links
    https://kr.forums.oracle.com/forums/thread.jspa?threadID=2125210
    https://kr.forums.oracle.com/forums/thread.jspa?threadID=2167494

  • How do I get CC & BCC to appear in incoming mail messages?

    Since upgrading to Lion I can't get the CC & BCC to show in incoming mail messages.
    Also have we lost the alphabetical index down the side of the address book?

    In the very top right of incoming mails, there's a "show more info"-button. This should show any CC and BCCs.
    In address book, letters now appear before names with that letter. Unless I misunderstood you, this is what you are looking for.
    Cheers

  • Hello to everyone out there: o) I have itunes 11 .. installed 1 day before, now my playlists do not agree in the presentation! itues keeps crashing! "Solution is sought. Receive message when you found solution. Itunes connect"?? Windows 7

    Hello to everyone out there: o)
    I have itunes 11 .. installed 1 day before, now my playlists do not agree in the presentation!
    itues keeps crashing! "Solution is sought.
    Receive message when you found solution. Itunes connect"??
    There do not appear in itunes all devices
    Windows 7
    sorry for my english!

    Hey, I have had my intunes soley shut down my computer numerous times, for the past month or so. I realize now it is only within my itunes, but it may not only be itunes. My desktop and a lot of cashed info have been cleared now, as a result of a ton of restarts by completely shutting the power most likely.
    I have been too lazy to back up my music because it messes stuff up, and goes so slow it crashes. it will probably work better if I dont even touch itunes and just transfer small parts of my library at a time, not all 120+ gb!
    I think a my computer is
               a fried
               b my files are terribly corrupted
               c or my itunes is compromised
    either way, i will back up my music, but what do you think the chances are my music is the culprate, and by backing it up I will have the same problem in the future?
    i've been thinking re-installing itunes would be best
    let me know....thanks

  • Erase asynchronous message

    Hi Gurus!
    i´already schuedule the job in sxmb_adm the deletion jobs
                  -DEFINE INTERFACES FOR ARCHIVING AND RETENTION PERIODS
           -SCHEDULE DELTES JOBS
    But I can´t find yet, some way to erase asynchronous message, any idea?

    Hi. Raul:
    When you "DEFINE INTERFACES FOR ARCHIVING AND RETENTION PERIODS", haven't you seen there is a option to specify "Retention Period for Asynchronous XML Messages in the Database"
    Under it, you can put the number of days for "XML Messages Without Errors Awaiting Deletion"
    That is the place to specify how long you want Asynchronous Message Persisted in database, once the specified days reached, the message should be deleted by your scheduled job: SAP_BC_XMB_DELETE_<Client>
    Regards !
    Liang

Maybe you are looking for

  • TS1398 trouble with connecting to wifi.

    Hi, I had troubling connecting the wifi from my iPhone 4s since last night. When i click Wifi menu it shows 'Choose a Network...' but never lists any. When i choose to connect via 'Other...' it tells me 'Could not scan for wireless networks.' I wonde

  • 400+ Gb aperture 3 library 200 (!) hours to transfer?

    Hi, I have a 400+GB aperture library on an USB2 external h-d. Have tried to move to another larger external h-d but the estimated time for transfer kept escalating. I gave up when the estimate got over 200 hours! Can I try breaking the library into s

  • External drive mounting in keyboard (USB 1) not in USB 2

    After some days crying and many hours searching I found lots of USB-related issues, different OS versions, machines and external peripherals. My problem was with a Iomega USB2 external disk and a "brand new" Mac Pro Intel Xeon 2.66GHz. Many times plu

  • Cannot see table

    Table TEST was created by user SYSTEM to USER1. Create Table USER1.TEST field1 VARCHAR2(10) Then user SYSTEM, created the public synonym: Create Public Synonym TEST for USER1.TEST; also. Grant Select on USER2.TEST for CONNECT; (USER2 has: CONNECT and

  • Como encuentro ficheros avi en console unix

    No consigo abrir el escritorio y antes de bloquearse me decia que tenia el disco lleno. He leido que ahora tengo que borrar desde la consola Unix, pero no encuentro los ficheros a borrar.