Proxy to JMS szenario - two different receiver queues in production

Hi guys,
I've got the following async scenario: Proxy to JMS.
Now I want to solve the following requirement:
In production environment are 2 instances (hosts) with the jms queues, one as a "normal" and one for reliability in case of any network errors, as fail over. In fact: we've got two different receiver queues (on different hosts with different ports) in case of a host is not available.
Is there a way to handle the second queue in receiver JMS-adapter?
I thought about "replyTo destination" in ASMA with Dynamic Configuration:
-> getting the hostname in Dynamic Configuration and see if we are on production instance (for test and development that doesn't matter)
-> make a lookup in Dynamic Configuration to check the availability ot the default host
-> in case of non-availability: overwrite the default host and default queue entry with the available host and available queue
-> in ASMA: host & queue-entry in "additional properties"
Any other suggestions are welcome
If you have ideas far out from my thoughts feel free to tell
Thanks a lot,
Stefan

I have already provided the details.
And you need to have only one channel which can connect to both server.
You don't need to create two different channel with two different host name.
One channel with
two host name ( Original server + Fail over server ) , paramter JMS.QueueConnectionFactoryImpl.constructor
One queue name , parameter JMS.QueueImpl.constructor:
What you need to do is, please create the SAME JMS queue in both servers and configure the fail over server as i mentioned earlier.
Please configure the query string parameters in the receiver JSM channel ( Advanced-->Additional paramters )
JMS.QueueConnectionFactoryImpl.classname:
JMS.QueueConnectionFactoryImpl.constructor: As i mentioned in the earlier post
JMS.QueueImpl.classname:
JMS.QueueImpl.constructor: <<queue name>>
Edited by: Rajesh on Aug 29, 2011 11:31 AM

Similar Messages

  • How to forward message to two different queue using jms proxy service

    Hi all,
    In my project I need to listen to one jms queue then forward the messages to two different queue.
    Now I already made one proxy for listening to the queue then pass it to another queue using business service, It works.
    But how to forward the messages to two different queue in same flow process using one proxy and bs??
    or any other way?
    Really thanks in advance.
    Regards,
    Kahlil

    Hi,
    I have a MQ queue and i created a Proxy to listen to the queue , but i dont see any activity in OSB logs ..how do i knw if OSB proxy is polling that MQ ( mq is the transport protocol that i am using ) .
    Thanks
    Prarthana.

  • Proxy to JMS and JMS to Proxy - Szenario

    Hi @all,
    i've implemented an async scenario:
    Proxy to JMS (away, request)
    JMS to Proxy (way back, response)
    Backend is ECC 6.0 and Middleware is PI 7.1.
    Business Case: Run a request with a number, get an answer back with an entry. The number is an individual criteria which is not included in the answer. So I decided to write the number in JMSCorrelationID, therefore I've written an UDF in Message Mapping.
    I've checked the JMS Correlation ID in additional properties and also added this into the list of additional properties:
    key.0 -> read xxxx DCJMSCorreleationID
    value.0 -> DCJMSCorrelationID.
    First question: is there something what I should account for in JMS receiver channel?
    At the way back I've implemented another UDF for writing the JMSCorrelationID back to payload in message mapping.
    But I'm not sure that works. The coding looks like:
    try
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey KEY_JMSCorrID = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSCorrelationID");
    String a = conf.get(KEY_JMSCorrID);
    catch(Exception e){}
    return a; //a is an input field for the payload back to SAP backend.
    Second question: is there something what I should accound for JMS sender channel? Do I need to add the DCJMSCorreleationID to the list of additional properties (JMS Correlation is checked)?
    Thanks in Advance,
    Stefan

    Hi,
    thank you for your answer.
    The Proxy to JMS scenario works well and overwrites the JMSCorrelationID given by a number from message payload.
    Could you please take a look at the given udf-coding that belongs to JMS to Proxy Scenario?
    Is it possible to get the JMSCorrelation at this way?
    I also put in JMS-Sender-Channel the JMSCorrelationID into the additional JMS-Message properties and checked "correlation-id from jms message" in adapter specific message attributes.
    In Module-Tab of JMS-Sender-Channel i put the module-configuration in a way like this:
    -> key.0 insert http://sap.com/xi/XI/System/JMS DCJMSCorreleationID
    -> value.0 DCJMSCorreleationID
    Do you think that works?
    I could not verify this configuration until I get an entry in outbound queue so I can't make tests to that.
    In Message Mapping - Test a Null Pointer Exception Occurs, according to the UDF, because I'm reading the DCJMSCorreleationID which is not present at mapping ad hoc test - I think that is ok.
    Thank you in Advance,
    Stefan

  • How to connect ABAP proxy to two different XIs

    Hi, everyone. 
    I want to know there is a way to connect ECC to two different XIs using ABAP proxy.
    As I know, it is much easier to make scenario with RFC or IDoc sender
    but in our case we have to use ABAP proxy and must send to two XIs
    So, according to the plant type in the record, data should be splitted to each XIs.  
    And I wonder I should use logical port for each XI.
    Does anyone have a experience to implement this kind of scenario?
    Then Pls show me the guide how to implement.
    Very Urgent.
    Thanks.

    Hi,
    You cannot connect one ABAP proxy to two different XI systems at the same time.
    The configuration held in transaction SLDAPICUST holds the XI system that is connected (as well as the SM59 details held will only point to one XI system at any one time)
    Why would you want to send a message dependant on content to different XI systems ? Surely you would use conditional receiver determination in XI to route the message correctly.
    Cheers
    Colin.

  • I attempted to perform the itunes update on two different PCs and itunes will no longer open and I received a message to reinstall itunes. The reinstall did not work and I now receive a Runtime error message (R6034) re: library loading incorrectly. Help?

    I attempted to perform the itunes update on two different PCs. Itunes will no longer open and prompted me to reinstall itunes.  The reinstall did not work after several attempts and I received an error: "Runtime error R6034. An application has made an attempt to load the C Runtime library incorrectly. Please contact the application's support team for more information."  Has anyone else had this issue? How can I resolve it?

    I've been having the same exact problem this morning, and from the looks of it a lot of other people are posting about this issue, so I don't know if it's maybe something wrong with the download but I'm just relieved that it seems to be that instead of a corruption issue with my windows installation.  I'm just wondering how long this will take to be resolved.

  • Can Same IDOC be sent to same Receiver with two different Message Mappings

    Hello Experts,
    Wierd doubt but want to confirm from you people.
    Scenario:
    One R/3 Sender
    SAP XI :
    One external Receiver :
    IDOC is sent from R/3 to external receiver via SAP XI.
    One interface has already been developed for the above scenario.
    Now client wants another interface to be developed for the same IDOC. Might be the values would be different for some specific fields.
    Doubt:
    Is it possible to send one similar IDOC to one target system with two different Message Interfaces?
    Ex: Created Message Interface 'A'  and correspoding Message Mapping with an IDOC
          Created Message Interface 'B' and correspoding Message Mappingwith an IDOC
    Values would be different in the IDOC and would be triggered from SAP R/3. Basing on the specific value of a field in the IDOC , can we trigger a different Message mapping for the same receiver?
    I donot see any reason in developing a new interface for the same IDOC but as per the situation mentioned above, can it be done?
    Thank you
    Alex.

    Create two interfaces for target side.
    If you want only one target interface should get data.
    You can use simple interface determination. Use the condition tab and specify the field there but the value should be constant. e.g. if field has value EN it should go to First interface and if Field has value != EN it should go to second interface.
    If you want to divide your message in to both target interfaces.
    Multimapping also can help but only if both of your target interface need idoc data.
    You can use ifexist standard node functions from UDF to choose between the field.
    For multimapping you can go to messages tab in the message mapping and can add interfaces using + sign.
    then when you see the design part you will see two messages.
    Now Start with receiver determination in ID and create one receiver determination for the sender and receiver, this shows you have only one receiver.
    In interface determination you have to choose extended and choose your mapping designed.
    then both your interfaces automatically would appear.
    Create two receiver agreements and one sender agreement.
    thanks
    hemant
    Edited by: Hemant on Aug 28, 2008 12:29 AM

  • I have an IPad2.  I've received two different ideas on charging the battery.  One person indicates I should let the battery run almost down before recharging; another person indicated I should keep it charged closer to 100% .  What is the best process?

    I have an IPad2.  I've received two different ideas on charging the battery.  One person indicates I should let the battery run almost down before recharging; another person indicated I should keep it charged closer to 100% .  What is the best process for the best battery life over time?

    I do exactly as Thomas Reed does. Always have from day one. Going on 15 months now and I get at least 10 hours of use out the battery every day. No matter how much juice is left on the device when I go to bed - I put the iPad on the charger - doesn't matter what the battery gauge says - I plug it in and let it charge all night.

  • How to receive mail on iPad from two different addresses

    how to receive e mail on iPad from two different addresses and using these same two addresses receive e mail on computer

    Go to mail in settings and add the new account
    User guides
    http://manuals.info.apple.com/MANUALS/1000/MA1595/en_US/ipad_user_guide.pdf

  • Why will my iPad 2 not recognize any iPod cables? I have tried two different cables in both the wall and in my laptop, but it will not register that it is receiving power, nor will the laptop recognize that they are connected.

    Why will my iPad 2 not recognize any iPod cables? I have tried two different cables in both the wall and in my laptop, but it will not register that it is receiving power, nor will the laptop recognize that they are connected.

    Crizzo is right, the best way to charge is with the included power block. That said, the USB cords are interchangable as far as an of us know. (just not power bricks, iPhone and iPod bricks put out 5W of power, the iPad wants 10W and will always say 'not charging' if plugged into less power than it requires even though it will charge, just very slowly)
    If you have tried to charge your iPad - with the iPad charger - with multiple cables and multiple computers and get no joy then it's time to head to the apple store and have them check it out. The 30 pin USB port can go bad - mine did - and it's a manufacturer's defect (unless there's any sort of obvious damage) and should be covered under the warranty;

  • Can I configure my network settings to use two different proxy configurations?

    At work, I have a proxy server, but away I do not.  I would like the correct proxy settings to load in each case.  Currently, I use two different locations.  This works acceptably, but I have to open my network settings and manually switch locations when my location changes.  I have experimented with creating multiple ethernet ports.  I can create a location with two ethernet ports, but I can't find a way to cause the correct one to activate.  The first port in the search order is loaded even if the proxy is not found.
    Please let me know if you can help with this.  Thank you.

    I'm not sure of another way to do what you want, but there should be a Location menu in the Apple menu. You don't need to open the network prefs to change locations.

  • How to send a JMS message to a remote Queue?

    Hi,
    I know how to create a JMS message and send it to an MDB that listens to a topic in the same container in which the JMS is created.
    In other words, if I have the following MDB:
    @MessageDriven(mappedName = "jms/MyQueue", ...)
    public class MyMDB implements MessageListener {
    Elsewhere in my JEE app I can create a Queue like this:
    @Resource(mappedName = "jms/MyQueue")
    Queue queue;
    and use it to send a message to the MDB.
    But How can I send a message to an MDB that's deployed in another app server on another machine in the network? Both of the app servers are Glassfish.
    Thanks in advance.
    Edited by: EJP on 9/08/2011 21:49: fixed your meaningless title

    Hi,
    The first thing I would like to suggest is, we never/can't send message directly to MDB. We always send/receive message(s) to/from the destination. In case of MDB, the application server register the MDB as message listener against particular destination, and invoked the onMessage() method when message arrives on particular destination.
    If I am not wrong, what you want to achieve is asynchronous communication between two applications deployed in two different machine. In your case, you want your one application works as message producer and other act as an message consumer, and both are deployed in different machine.
    In this situations, you only need to configure the JMS administration object, connection factories and destinations, on one Application server and configure other application server to use those configuration using JMS resource adapter. you can well achieve this by configuring the JMS Resource Adapter. you need to check the Glassfish documentation.
    If you don't want to break the JMS specification, always communicate with Messaging Provider through Resource Adapter.
    I hope this helps.

  • One instance for two different application

    Hello,
    I have to solve following problem..
    need have one instance of object for two different application..fist is standard SE application and second is EE (web)..
    SE application is a server..listen on and accepting connection from mobile phone..and EE application need to show list of connected devices and should say to SE application that new device was connected..
    I would like to do this without database..only server and web app..
    I have thought about RMI..but hope there is more simple solution..
    Thanks a lot for your ideas.
    Dmitrij

    I would like to do this without database..only server and web app..You have your reasons for wanting this to be the case. If you are sure you don't want a DB, then pass the state of the object between the two ends using XML as the transport form. As someone said, you can use JMS or you can write an HTTP POST or probably other transport mechanisms other people will suggest to actually get it over the wire from one side to the other.
    As to your question of how to sync state, just make the object you're sharing final after it's been created (on the side that creates it) and make the reference that receives it and holds it final also, after you've reconstructed it from the XML you received.

  • JMS Messages getting stuck in queues

    Hi,
    I am facing this peculiar issue with queue messages not getting picked up.
    Application Architecture: There is 1 JMS queue ( which resides in WLDomain1 with in a Unix Box) and there are 2 windows boxes having 2 weblogic domains each with 3 instances of MDB deployed on each of the domains. So total of 12 consumers (2 Box * 2 Domain * 3 Instances of MDB) listens to the JMS queue.
    Issue: After bringing everything up I am able to see 12 consumer count listening to the queue. But when I run the application which writes total of 13 messages in the queue only 7 of them are getting processed and 6 messages are always getting stuck in the queues. Interestingly this 7 messages are mostly getting processed by consumers with in the same windows box. And the selection of windows box is completely random. To confirm whether both the windows boxes are configured fine I tried to test them individually and it works fine individually, the problem happens only if I bring up both the boxes together.
    Another observation is, if I bring down the non working domains, the pending messages start getting processed by the working domains. It gives an impression that the non working domains seem to lock the messages for processing but doesn't actually process it. Only when I bring down the domains it releases this lock.
    Below is the JMS Life cycle events I captured from log files :
    1. Start domain1 in WIN Box1
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040304> <783400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040309> <239900> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040313> <2100> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <> <>
    2. Start domain2 in WIN Box 1
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095403> <38600> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095407> <335400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095410> <997700> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <> <>
    3. Start domain1 in WIN Box 2
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172061> <316500> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172066> <324300> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172072> <757000> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    4. Start domain2 in WIN Box 2
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214000> <142800> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214005> <38200> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214009> <22400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    At this point console shows 12 consumers listening the queue which is absolutely fine.
    5. Run application
    --Message Production
    This produces 13 messages ( I have not pasted the complete log)
    -- Message Consumption ( Only 7 messages are consumed)
    ####<Nov 24, 2009 8:00:05 PM CST> <> <> <1259114405953> <576400> <ID:<1047832.1259114392542.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114392542&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410091> <310100> <ID:<1047832.1259114393181.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393181&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410130> <364600> <ID:<1047832.1259114400626.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400626&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410134> <540700> <ID:<1047832.1259114393125.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393125&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410137> <632400> <ID:<1047832.1259114393128.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393128&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:12 PM CST> <> <> <1259114412026> <984200> <ID:<1047832.1259114393123.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393123&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:16 PM CST> <> <> <1259114416045> <41800> <ID:<1047832.1259114400005.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400005&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    6. At this point Admin Consol shows 6 messages pending in the queue
    and From consumer numbers it is evident that consumers in WIN Box2 domains have not processed any messages
    Now if I stop server in WIN Box2 Domain1, WIN Box1 picks up the messages instantely
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202343> <897600> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202346> <421900> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202379> <582300> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    ####<Nov 24, 2009 8:13:24 PM CST> <> <> <1259115204888> <4600> <ID:<1047832.1259114400029.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400029&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:32 PM CST> <> <> <1259115212820> <256700> <ID:<1047832.1259114400258.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400258&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:43 PM CST> <> <> <1259115223579> <280600> <ID:<1047832.1259114400032.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400032&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    7. At this poing Admin Consol shows 3 messages pending in the queue
    Now if I stop server in WIN Box2 Domain2, the remaining 3 gets processed
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115368998> <193400> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115369000> <885500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 8:16:09 PM CST> <> <> <1259115369002> <902500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    ####<Nov 24, 2009 8:16:25 PM CST> <> <> <1259115385151> <123700> <ID:<1047832.1259114400324.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400324&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:29 PM CST> <> <> <1259115389660> <836600> <ID:<1047832.1259114400535.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400535&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:37 PM CST> <> <> <1259115397823> <610200> <ID:<1047832.1259114400432.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400432&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    Kindly throw some light on this issue. Also do let me know if you need any more specific details about this.
    Thanks,
    Abhijeet
    Edited by: user5240164 on Nov 25, 2009 11:35 AM
    Edited by: user5240164 on Nov 28, 2009 1:21 PM

    Hi,
    The problem may be conflicting names in your configuration. To ensure proper operation of WL Security, JMS, JTA, and JDBC, make sure that (A) each domain has a unique name, and (B) no two WebLogic servers have the same name (even if in two different domains).
    To ensure a more even distribution of messages, either simply send more than a token amount messages (eg, a hundred or so, rather than just 12), or configure a custom connection factory on the domain that hosts the queue, reduce MessagesMaximum on the connection factory to 1, and then modify each MDB to refer to the custom connection factory. The MessagesMaximum setting controls the number of messages that can be pre-pushed (pipelined) to a single asynchronous consumer.
    For more information see "Best Practices for JMS Beginners and Advanced Users" in the latest versions of the JMS admin guide, and "JMS Performance & Tuning Check List" in the WebLogic Performance and Tuning guide.
    Tom

  • Proxy to JMS Scenario: switch from sync to async proxy,does it makes sense?

    Hi @all,
    i've implemented a sync proxy to JMS scenario that works well. Backend is ECC 6.0 and Middleware is PI 7.1.
    Business Case: Run a request with a number and get a response back with a corresponding entry for the number. That means, there is always a response expected.
    Now the following thing appears: the receiver system could not handle many calls at one time (200 calls are planned at each run), the calls reduces the performance. Now gys at receiver system likes to develope a buffer of 10 seconds between the requests to handle some kind of load balancing with that. That means for the request that it the response takes +10 seconds back to backend. It is also possible to handle that in SAP backend with a waiting-statement in coding, so there is no need to go from sync to async - but the customer requested us to implement this scenario in async.
    JMS is always async, I know. But the Service Interfaces for Inbound and Outbound are of mode sync - so I can call my outbound Interface class in backend with Importing Output and Exporting Input.
    My question is: makes it sense to go from sync to an async scenario?
    And how looks the coding in backend for the response? I guess that it only makes sense to switch to async when no response entry is needed (example: for write operations).
    Thanks in Advance,
    Stefan

    > But in case of switching, what is the best way?
    > Should I implement 2 senarios? Or is it ok to switch the Inbound and Outbound Service Interface from sync to async?
    I don't think you need 2 scenarios for this. Just one is enough with different RDs.
    Over all in this case you have to re-create/modify the service interfaces and also you have to create 2 interface mappings. You have to also create the new inbound and outbound proxies since service interface mode will be changed. For outbound proxy the code can be reused and for inbound proxy also logic and code can be taken from your old code.

  • How to re-use one SOAP Sender Channel for two different messages?

    Hi!
    I have an XI Proxy to SOAP Sync Scenario. 5 messages uses only 2 channels - cc_XI_Sender and cc_SOAP_Receiver. All messages comes from one Sender Channel and goes to one Receiver channel, and it works fine.
    When I make the same for SOAP to XI Proxy Sync Scenario, I've got a problem. For example I have 2 different messages (mi_so_MSG_ONE and mi_so_MSG_TWO), so it works, if I had a two different sender channels (cc_SOAP_R1 and cc_SOAP_R2).
    If I set the same Sender Channel in both Sender Agreements (cc_SOAP_R1), only one message (mi_so_MSG_ONE) goes without errors. When I send a second message (mi_so_MSG_TWO), in SXMB_MONI this message comes from Business System (BS_TEST) as message type one (mi_so_MSG_ONE), and then in stage of transformation in Interface Determination goes to message mapping program for other kind of messages (MM_MSG_ONE_to_XI_PROXY). And then - error in message mapping.
    I try many URLs for both messages:
    1) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=&Interface=
    2) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=*
    3) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=...MyNameSpace...mi_so_MSG_TWO
    Message in payload:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Inbound Message   -->
    <MSG_TWO xmlns="urn:xxx:yyy:MyNameSpace" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">... some fields... </MSG_TWO>
    But in SOAP Header I see that is NOT second message!
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    < !--  Inbound Message   -->
    <SAP:Main>
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>93233F70-3E2F-11DF-8CD3-00237D301CD6</SAP:MessageId>
      <SAP:TimeSent>2010-04-02T08:13:09Z</SAP:TimeSent>
      <SAP:Sender>
        <SAP:Service>BS_TEST</SAP:Service>
        <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Sender>
      <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Main>
    Is it correct that many kinds of messages cannot goes through one Sender Channel ? If not... How can I reuse one SOAP Sender Channel for both this messages?
    Thanks for helping.

    Thanks for answers!
    It means a webservice application will be deployed and exposed in PI using the associated Message Interface and its namespace information in the SOAP Sender channel.
    It means only one Sender Channel per one pair of names (name of Message Interface and name of namespace). And it will fail if I change something. And question is: why URL for sending SOAP message contains parameter "Interface"?
    "backward compatibility" or "for future use only"?
    Nothing happens when I change this parameter, seems that name of Interface comes from first of founded Sender Agreements.
    If the structures are the same
    No. Structures are different.
    Making one structure per all SOAP incoming messages looks workable, but... looks strange (in fact I have a lot of SOAP messages, more than 100 Sender channels).
    I found an information, that I can use one Sender channel per many messages with different structures only if I make this messages like different Operations in one Service Interface (in PI 7.1).
    But in this case in list of messages in SXMB_MONI I will see only a one name of Service Interface for all my messages and it's not so comfortably for supporting: to take a name of operation that fails I need to goes inside.
    In older version of XI (prior 7.1) using one sender channel per many messages allowed without any hints.

Maybe you are looking for