Reuse message flow

I have a proxy A (listening on Queue A) that has a message flow with a number of actions (Message Flow C) and a business service X.
I need to create a second proxy B (listening on Queue B) that has an identical message flow as 'C' and business service X.
Is it possible to reuse a message flow in OSB ?
If not should I forward messages from Queue B to Queue A. Would there be an performance implications.
Any ideas would be appreciated. Thx.

easiest way would be to create a local proxy (local transport) which has Message Flow C defined. Create two JMS proxies to pick messages from queue A and B and from their message flow directly call the local proxy created in first step. So message flow would be something like -
Queue (A/B) --> Main Proxy (JMS) --> local proxy (having message flow c) .....
Regards,
Anuj

Similar Messages

  • Message Flow Control

    Hello,
              as I read, WLS provides the possibility to slow down message producers when certain paging thresholds are exceeded. I'm not quite sure, if the slow down of a producer is tied to it's session lifecycle, i.e. if the producer is slowed down only within its current session - or are producers, which are created from a new session, also slowed down right from the start.
              It would be great if someone could answer that. Unfortunately I have found nothing about that in the documentation.
              Regards,
              Dirk

    Hello Tom.
              First of all, thank you for your quick response. This forum is really working!
              I searched for this topic in the documentation, but didn't find anything appropriate explaining the in-depth details of the JMS flow control mechanism. Therefore, I wrote a simple test case (implementation and server configuration is attached at the end of this message) to check the flow control handling for certain conditions. Since there is no API to access the flow control properties of a message producer, I measured the JMS throughput within the test case and tried to derive some conclusions.
              Regarding the server configuration:
              - I configured one JMS Server (Test_JMSServer) with one Queue (TestQueue). I enabled the message paging at server level, starting at 1000 messages (i.e. message threshold high). The lower message threshold was set to 100 messages. As a paging store a file store (TestPagingStore) was used.
              - Message thresholds at destination level was disabled.
              - I further configured a connection factory (TestConnectionFactory) for which I enabled the flow control with a max. throughput of 50 msg/sec and a min. throughput of 1 msg/sec. The flow interval was set to 60 seconds, the number of steps was set to 6.
              Regarding the test case:
              There are 3 scenarios within the test case. Within each scenario
              - first all messages are consumed from the queue,
              - then 1000 messages are send to the queue in a row, thereby measuring the throughput,
              - finally again 1000 messages are send to the queue in a row, thereby measuring the throughput.
              The scenarios differ in how the bulk-send operation is performed.
              - The first scenario (test_noReuse) creates a new connection for each message to be send.
              - The second scenario (test_sessionReuse) creates a new session at the start and reuses that session for sending the messages. A new sender is created of each message.
              - The third scenario (test_senderReuse) creates a new sender at the start and reuses that sender for sending the messages.
              Here are the results of the test:
              ==[test_noReuse]=======================
              Cleaned up <2000> messages.
              Throughput (messages/second): 51 [startMillis=1161249409788;endMillis=1161249429210;messagesSend=1000]
              Throughput (messages/second): 62 [startMillis=1161249429210;endMillis=1161249445304;messagesSend=1000]
              ==[test_sessionReuse]=======================
              Cleaned up <2000> messages.
              Throughput (messages/second): 231 [startMillis=1161249452773;endMillis=1161249457101;messagesSend=1000]
              Throughput (messages/second): 245 [startMillis=1161249457101;endMillis=1161249461179;messagesSend=1000]
              ==[test_senderReuse]=======================
              Cleaned up <2000> messages.
              Throughput (messages/second): 790 [startMillis=1161249467351;endMillis=1161249468616;messagesSend=1000]
              Throughput (messages/second): 1 [startMillis=1161249468616;endMillis=1161249999226;messagesSend=1000]
              To me it seems, that reusing a session has no effect on the message flow control if a new sender is created for sending a message. The only scenario where a throttling occurs (at least it seems to be that way) is the last scenario, where the sender is reused for all messages.
              So my conclusion is, that message control flow is superfluous to configure, as long as
              - you don't have a small amount of (batch) message producers, each of which reusing a single sender for each message,
              - or you have some cache of senders (or a single sender) in your application and reuse the cached senders for sending messages.
              The latter is, of course, strongly discouraged, since neither JMS sessions, nor senders are thread-safe. So you need to implement some thread-safe cache and also have to deal with re-creating stalled JMS resources within that cache -- a really non-trivial implementation. Further, if many different threads produce messages, the flow control has no (or at least few) effect on the message load in the server.
              I just ask myself, what the flow control was designed for, since the cases where it really applies are rather rare, IMHO. Or have I made some error in the test or in the server configuration?
              Best regards,
              Dirk
              The test class:
              <pre>
              import java.util.Hashtable;
              import javax.jms.BytesMessage;
              import javax.jms.JMSException;
              import javax.jms.Message;
              import javax.jms.Queue;
              import javax.jms.QueueConnection;
              import javax.jms.QueueConnectionFactory;
              import javax.jms.QueueReceiver;
              import javax.jms.QueueSender;
              import javax.jms.QueueSession;
              import javax.jms.Session;
              import javax.naming.InitialContext;
              import junit.framework.TestCase;
              public class JMSFlowControlTest extends TestCase {
              private int messagesThresholdHigh = 1000;
              private QueueConnectionFactory conFactory;
              private Queue queue = null;
              protected void setUp() throws Exception {
              super.setUp();
              InitialContext ctx = null;
              Hashtable ctxEnv = null;
              ctxEnv = new Hashtable();
              ctxEnv.put(
              InitialContext.INITIAL_CONTEXT_FACTORY,
              "weblogic.jndi.WLInitialContextFactory");
              ctxEnv.put(
              InitialContext.PROVIDER_URL,
              "t3://localhost:7001");
              ctx = new InitialContext(ctxEnv);
              this.queue = (Queue) ctx.lookup("jms/queue/TestQueue");
              this.conFactory = (QueueConnectionFactory)
              ctx.lookup("jms/factory/TestConnectionFactory");
              public void test_noReuse() throws Exception {
              System.out.println();
              System.out.println("==[" + this.getName() + "]=======================");
              this.cleanupQueue();
              System.out.println(
              this.bulkSendMessage(
              this.messagesThresholdHigh,
              1024));
              System.out.println(
              this.bulkSendMessage(
              this.messagesThresholdHigh,
              1024));
              public void test_sessionReuse() throws Exception {
              QueueConnection con = null;
              QueueSession session = null;
              System.out.println();
              System.out.println("==[" + this.getName() + "]=======================");
              try {
              con = this.conFactory.createQueueConnection();
              session =
              con.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
              this.cleanupQueue();
              System.out.println(
              this.bulkSendMessage(
              session,
              this.messagesThresholdHigh,
              1024));
              System.out.println(
              this.bulkSendMessage(
              session,
              this.messagesThresholdHigh,
              1024));
              } finally {
              if (con != null) {
              try {
              con.close();
              } catch (JMSException e) {}
              public void test_senderReuse() throws Exception {
              QueueConnection con = null;
              QueueSession session = null;
              QueueSender sender = null;
              System.out.println();
              System.out.println("==[" + this.getName() + "]=======================");
              try {
              con = this.conFactory.createQueueConnection();
              session =
              con.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
              sender = session.createSender(this.queue);
              this.cleanupQueue();
              System.out.println(
              this.bulkSendMessage(
              session,
              sender,
              this.messagesThresholdHigh,
              1024));
              System.out.println(
              this.bulkSendMessage(
              session,
              sender,
              this.messagesThresholdHigh,
              1024));
              } finally {
              if (con != null) {
              try {
              con.close();
              } catch (JMSException e) {}
              private Throughput
              bulkSendMessage(
              int messagesToSend,
              int messageSizeBytes)
              throws Exception {
              int messagesSend = 0;
              long startMillis = 0L;
              long endMillis = 0L;
              QueueConnection con = null;
              QueueSession session = null;
              QueueSender sender = null;
              startMillis = System.currentTimeMillis();
              for (int i = 0; i < messagesToSend; i++) {
              try {
              con = this.conFactory.createQueueConnection();
              session =
              con.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
              sender = session.createSender(this.queue);
              sender.send(this.createMessage(session, messageSizeBytes));
              messagesSend++;
              } finally {
              if (con != null) {
              try {
              con.close();
              } catch (JMSException e) {}
              endMillis = System.currentTimeMillis();
              return new Throughput(startMillis, endMillis, messagesSend);
              private Throughput
              bulkSendMessage(
              QueueSession session,
              int messagesToSend,
              int messageSizeBytes)
              throws Exception {
              int messagesSend = 0;
              long startMillis = 0L;
              long endMillis = 0L;
              QueueSender sender = null;
              startMillis = System.currentTimeMillis();
              for (int i = 0; i < messagesToSend; i++) {
              sender = session.createSender(this.queue);
              sender.send(this.createMessage(session, messageSizeBytes));
              messagesSend++;
              endMillis = System.currentTimeMillis();
              return new Throughput(startMillis, endMillis, messagesSend);
              private Throughput
              bulkSendMessage(
              QueueSession session,
              QueueSender sender,
              int messagesToSend,
              int messageSizeBytes)
              throws Exception {
              int messagesSend = 0;
              long startMillis = 0L;
              long endMillis = 0L;
              startMillis = System.currentTimeMillis();
              for (int i = 0; i < messagesToSend; i++) {
              sender.send(this.createMessage(session, messageSizeBytes));
              messagesSend++;
              endMillis = System.currentTimeMillis();
              return new Throughput(startMillis, endMillis, messagesSend);
              private Message
              createMessage(
              Session session,
              int messageSizeBytes)
              throws Exception {
              BytesMessage message = null;
              message = session.createBytesMessage();
              message.writeBytes(new byte[messageSizeBytes]);
              return message;
              private void cleanupQueue() throws Exception {
              QueueConnection con = null;
              QueueSession session = null;
              QueueReceiver receiver = null;
              Message message = null;
              int messageCount = 0;
              try {
              con = this.conFactory.createQueueConnection();
              session =
              con.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
              receiver = session.createReceiver(this.queue);
              con.start();
              do {
              message = null;
              message = receiver.receiveNoWait();
              if (message != null) {
              messageCount++;
              } while (message != null);
              } finally {
              if (con != null) {
              try {
              con.close();
              } catch (JMSException e) {}
              System.out.println("Cleaned up <" + messageCount + "> messages.");
              private static final class Throughput {
              private final long startMillis;
              private final long endMillis;
              private final int messagesSend;
              public Throughput(long startMillis, long endMillis, int messagesSend) {
              this.startMillis = startMillis;
              this.endMillis = endMillis;
              this.messagesSend = messagesSend;
              public int value() {
              long timeElapsedMillis = 0L;
              int timeElapsedSeconds = 0;
              int value = 0;
              timeElapsedMillis = this.endMillis - this.startMillis;
              if (timeElapsedMillis == 0) {
              timeElapsedMillis = 1;
              value = (int) ((this.messagesSend * 1000L) / timeElapsedMillis);
              return value;
              public String toString() {
              StringBuffer buffer = new StringBuffer();
              buffer
              .append("Throughput (messages/second): ").append(this.value())
              .append(" [startMillis=").append(this.startMillis)
              .append(";endMillis=").append(this.endMillis)
              .append(";messagesSend=").append(this.messagesSend)
              .append("]");
              return buffer.toString();
              </pre>
              The (partial) server configuration:
              <pre>
              <JMSConnectionFactory
              DefaultDeliveryMode="Non-Persistent"
              FlowMaximum="50"
              FlowMinimum="1"
              FlowSteps="6"
              JNDIName="jms/factory/TestConnectionFactory"
              Name="TestConnection Factory"
              Targets="SchufaDev"
              XAConnectionFactoryEnabled="true"/>
              <JMSFileStore Directory="filestore/paging" Name="TestPagingStore"/>
              <JMSServer
              MessagesPagingEnabled="true"
              MessagesThresholdHigh="1000"
              MessagesThresholdLow="100"
              Name="Test_JMSServer"
              PagingStore="TestPagingStore"
              Targets="SchufaDev">
              <JMSQueue
              CreationTime="1151395702234"
              JNDIName="jms/queue/TestQueue"
              JNDINameReplicated="false"
              Name="TestQueue"
              RedeliveryDelayOverride="5000"
              RedeliveryLimit="5"
              StoreEnabled="false"/>
              </JMSServer>
              </pre>

  • BDOC message flow and its architecture

    Hi Expert,
    It can be a simple question but i have a doubt regarding the flow of messages using SAP CRM middleware.
    The scenario is like:
    1. Message flows from ECC to CRM through a BDoc. (It can be opposite way also)
    2. The BDoc fails in CRM due to some data issue.
    3. A BDoc message id is generated.
    4.Now the data is corrected in ECC and initial load was triggered.
    5.The messages are flowing correctly.
    So my doubt is:
    1.What will happen to the old BDoc?
    2. Do the initial or delta load processes the messages with new BDoc ID or through the old BDoc ID?
    3. If the messages are processed through new BDoc id, can the old BDocs be deleted?
    Please help me understand this concepts of BDocs and please provide me to some study material to get more undertsanding of the BDOC message flow architecture.
    thanks,
    Vicky

    Hello Vicky,
    i think I understand exactly what your confusion is all about.
    1.What will happen to the old BDoc?
    The old Bdoc will remain in error state until it is archived or set to processed state.
    2. Do the initial or delta load processes the messages with new BDoc ID or through the old BDoc ID?
    It will be a separate BDoc with a new BDocId. If you get an Error in SMW01 this is beyond the queueing, so later Messages will not get queued behind your faulty bdoc. They will also not "update" your BDoc in any way. Later BDocs will Bypass a bdoc in error state and update your object in CRM if the error in data has been solved in ERP before. If the data error is not corrected, you will get a second failed bdoc.
    3. If the messages are processed through new BDoc id, can the old BDocs be deleted?
    Best practise for the Bdoc with error would be to set it to processed state. That way there is no way that Bdoc can be processed afterwards. The BDoc will then be archived with the next run.
    Best regards,
    Lutz

  • Goods Receipt in PO AND Message Flow Update in Inb. Delivery using WMMBXY

    Dear All
    This question is related to a previous one posted in:
    Post Goods Receipt for Inbound Delivery using WHSCON IDoc
    We have a stock transport order (PO) for which we create an inbound delivery. The despatch advice (EANCOM D96A DESADV) is sent to our logistics partner who returns the same EDI message with the received quantities (goods receipt).
    Using the inbound IDoc WMMBID02.WMMBXY I have successfully posted the goods receipt for the original PO. However, the message flow in the delivery is not updated. When we post the goods receipt (transaction MIGO) in dialog for the delivery we see the GR in the message flow.
    I have used the following values with the segments of WMMBID02.WMMBXY (SAP release = 4.6c):
    E1MBXYH:
    Reference = <number of delivery>
    Transaction code = 'MIGO'
    E1MBXYI:
    Movement type = '101'
    Purchasing doc. = <number of PO>
    Item = <Item no. in PO>
    Movement ind. = 'B'
    I am not sure about the correct movement indicator but failed when using a value different from 'B':
    The movement indicator is derived from the transaction code.
    Permitted values:
    '' Goods movement w/o reference
    'B' Goods movement for purchase order
    'F' Goods movement for production order
    'L' Goods movement for delivery note
    'K' Goods movement for kanban requirement (WM - internal only)
    'O' Subsequent adjustment of "material-provided" consumption
    'W' Subsequent adjustment of proportion/product unit material
    QUESTION: Does anybody know if and how inbound WMMBID02.WMMBXY can be used for both the goods receipt in the purchase order AND the message flow in the inbound delivery?
    Regards
       Uwe

    Hello Everybody
    My initial mapping of the WMMBXY IDoc proved to be correct.
    For more details please refer to:
    [Note 833603 - EDI: Goods receipt for stock transport order|https://service.sap.com/sap/support/notes/833603]
    Regards
      Uwe

  • ON PREM Outbound emails showing in dummy non-configured office 365 account message flow trace

    Dear Community,
    We have an on-prem exchange 2013 server and an office 365 account which is completly standalone.
    Whilst the office 365 account is standalone, it does feature the email address we use for on-prem (Ie. the domain name in office 365 account is not active for any office 365 services however has passed ownership verification thus it's just sitting there)
    We DON'T use EOP nor do we have any connector rules on our on-prem system that go to office 365 however when I randomly went into the 'Message Flow Trace' section in our office 365 account, there is recorded outbound mail which was sent from our On-prem
    server.
    The ONLY mail that was recorded in the message Trace in Office 365 was emails we had sent from On-prem to other office 365 accounts (For example btconnect.com, and some of our clients whom also use office 365) .
    How is office 365 picking up mail we've sent from our On-Prem server? Is there integration out of the box in exchange 2013 which auto interfaces with office 365? What on earth has happened here?
    I'm really confused.
    -------- For troubleshooting purposes...
    Headers in the email which arrived in my personal office 365 account from the ON-PREM SERVER
    Received: from AMSPR05MB065.eurprd05.prod.outlook.com (10.242.89.142) by
    DBXPR05MB079.eurprd05.prod.outlook.com (10.242.138.22) with Microsoft SMTP
    Server (TLS) id 15.1.93.16 via Mailbox Transport; Thu, 5 Mar 2015 16:16:31
    +0000
    Received: from DBXPR05CA0014.eurprd05.prod.outlook.com (10.255.178.14) by
    AMSPR05MB065.eurprd05.prod.outlook.com (10.242.89.142) with Microsoft SMTP
    Server (TLS) id 15.1.99.14; Thu, 5 Mar 2015 16:16:30 +0000
    Received: from DB3FFO11FD028.protection.gbl (2a01:111:f400:7e04::145) by
    DBXPR05CA0014.outlook.office365.com (2a01:111:e400:9434::14) with Microsoft
    SMTP Server (TLS) id 15.1.106.15 via Frontend Transport; Thu, 5 Mar 2015
    16:16:29 +0000
    Received: from emea01-am1-obe.outbound.protection.outlook.com (157.56.112.128)
    by DB3FFO11FD028.mail.protection.outlook.com (10.47.217.59) with Microsoft
    SMTP Server (TLS) id 15.1.99.6 via Frontend Transport; Thu, 5 Mar 2015
    16:16:28 +0000
    Received: from DB4PR04CA0010.eurprd04.prod.outlook.com (25.160.41.20) by
    DB3PR04MB236.eurprd04.prod.outlook.com (10.242.130.24) with Microsoft SMTP
    Server (TLS) id 15.1.99.14; Thu, 5 Mar 2015 16:16:26 +0000
    Received: from DB3FFO11FD040.protection.gbl (2a01:111:f400:7e04::184) by
    DB4PR04CA0010.outlook.office365.com (2a01:111:e400:9852::20) with Microsoft
    SMTP Server (TLS) id 15.1.106.15 via Frontend Transport; Thu, 5 Mar 2015
    16:16:26 +0000
    Received: from mail.localdomainhere (<IP OF OUR ON-PREM SERVER GOES HERE>) by
    DB3FFO11FD040.mail.protection.outlook.com (10.47.217.71) with Microsoft SMTP
    Server (TLS) id 15.1.99.6 via Frontend Transport; Thu, 5 Mar 2015 16:16:25
    +0000
    Received: from INT-EX-01.localdomainhere (192.168.142.20) by
    INT-EX-01.localdomainhere (192.168.142.20) with Microsoft SMTP Server (TLS) id
    15.0.913.22; Thu, 5 Mar 2015 16:15:55 +0000
    Received: from INT-EX-01.localdomainhere ([fe80::aca4:88cf:3eaf:57dc]) by
    INT-EX-01.localdomainhere ([fe80::aca4:88cf:3eaf:57dc%12]) with mapi id
    15.00.0913.011; Thu, 5 Mar 2015 16:15:55 +0000
    From: Jake Ives <[email protected]>
    To: Jake Ives <[email protected]>
    Subject: Test01
    Thread-Topic: Test01
    Thread-Index: AdBXX6dyI5u99OGoSKmXroKKyMA3Tg==
    Date: Thu, 5 Mar 2015 16:15:54 +0000
    Message-ID: <[email protected]>
    Accept-Language: en-US, en-GB
    Content-Language: en-US
    X-MS-Has-Attach: yes
    X-MS-TNEF-Correlator:
    x-originating-ip: [192.168.142.73]
    Content-Type: multipart/related;
                boundary="_004_081f834d85b7436193fa887613b9dac7INTEX01localdomainhere_";
                type="multipart/alternative"
    MIME-Version: 1.0
    Return-Path:
    [email protected]
    X-EOPAttributedMessage: 1
    Received-SPF: Pass (protection.outlook.com: domain of domain.com
    designates <IP OF ONPREM SERVER HERE> as permitted sender)
    receiver=protection.outlook.com; client-ip=<IP OF OUR ON-PREM SERVER GOES HERE;
    helo=mail.domain.co.uk;
    Authentication-Results: spf=pass (sender IP is <IP OF OUR ON-PREM SERVER GOES HERE>)
    [email protected]; ives.gb.net; dkim=none (message not
    signed) header.d=none;ives.gb.net; dkim=none (message not signed)
    header.d=none;ives.gb.net; dmarc=none action=none header.from=domain.com;
    X-Forefront-Antispam-Report-Untrusted: CIP:<IP OF ON PREM SERVER HERE>;CTRY:GB;IPV:NLI;EFV:NLI;BMV:0;SFV:NSPM;SFS:(10019020)(438002)(189002)(199003)(71364002)(87936001)(2656002)(98436002)(92726002)(102836002)(108616004)(19625215002)(19618635001)(512954002)(92566002)(229853001)(107886001)(66926002)(18206015028)(84326002)(16796002)(19300405004)(450100001)(19580395003)(2900100001)(77156002)(15974865002)(62966003)(5250100002)(5310100001)(99936001)(15395725005)(16236675004)(110136001)(17760045003)(67866002)(86362001)(19617315012)(19627595001)(15975445007)(19580405001)(54356999)(22756005)(50986999)(6806004)(46102003)(74482002)(106466001)(33646002)(7099025)(24736002)(15669805003);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR04MB236;H:mail.domain.co.uk;FPR:;SPF:Pass;MLV:ovrnspm;MX:1;A:1;PTR:mail.domain.co.uk;LANG:en;
    X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR04MB236;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AMSPR05MB065;
    X-Microsoft-Antispam-PRVS: <[email protected]outlook.com>
    X-Exchange-Antispam-Report-Test: UriScan:;UriScan:;
    X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5001007)(5005006);SRVR:DB3PR04MB236;BCL:0;PCL:0;RULEID:;SRVR:DB3PR04MB236;BCL:0;PCL:0;RULEID:(601004);SRVR:AMSPR05MB065;BCL:0;PCL:0;RULEID:;SRVR:AMSPR05MB065;
    X-Forefront-PRVS: 05066DEDBB
    X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR04MB236
    X-MS-Exchange-Organization-MessageDirectionality: Incoming
    Received-SPF: Fail (protection.outlook.com: domain of domain.com does not
    designate 157.56.112.128 as permitted sender)
    receiver=protection.outlook.com; client-ip=157.56.112.128;
    helo=emea01-am1-obe.outbound.protection.outlook.com;
    Authentication-Results: spf=fail (sender IP is 157.56.112.128)
    [email protected];
    X-Forefront-Antispam-Report: CIP:157.56.112.128;CTRY:US;IPV:NLI;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(339900001)(489007)(189002)(71364002)(199003)(102836002)(92726002)(15975445007)(92566002)(17760045003)(62966003)(106466001)(15395725005)(16236675004)(77156002)(110136001)(107886001)(450100001)(5310100001)(229853001)(22756005)(98436002)(2900100001)(5250100002)(19625215002)(66926002)(99936001)(33646002)(15974865002)(19617315012)(19627595001)(67866002)(54356999)(108616004)(19300405004)(19618635001)(87836001)(2656002)(18206015028)(85426001)(512954002)(86362001)(6806004)(46102003)(74482002)(84326002)(19580395003)(50986999)(19580405001)(7099025)(24736002)(15669805003);DIR:INB;SFP:;SCL:1;SRVR:AMSPR05MB065;H:emea01-am1-obe.outbound.protection.outlook.com;FPR:;SPF:Fail;MLV:ovrnspm;MX:1;A:1;PTR:mail-am1on0128.outbound.protection.outlook.com;LANG:en;
    X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB3FFO11FD028.protection.gbl
    X-MS-Exchange-Transport-CrossTenantHeadersPromoted: DB3FFO11FD028.protection.gbl
    X-MS-Exchange-Organization-Network-Message-Id: 927151e3-02c4-4c46-5539-08d22576df82
    X-MS-Exchange-Organization-AVStamp-Service: 1.0
    X-MS-Exchange-Organization-SCL: 1
    X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2015 16:16:28.9728
    (UTC)
    X-MS-Exchange-CrossTenant-Id: cd52bfe2-da2e-446d-b8f1-e78db861d489
    X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bfa61dad-1543-4f3b-8075-03498e9f4fcb;Ip=[IP OF ON PREM SERVER HERE]
    X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
    X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR05MB065
    X-MS-Exchange-Organization-AuthSource: DB3FFO11FD028.protection.gbl
    X-MS-Exchange-Organization-AuthAs: Anonymous
    X-MS-Exchange-Transport-EndToEndLatency: 00:00:03.5565465

    MX records are not set to office 365, the MX is pointing directly to the on-prem exchange server. 
    The problem is; Office 365 Mail Delivery Trace is displaying mail we've sent via our On-Prem server - We are having trouble understanding why this is happening.
    To clarify, the message tracer in Office 365 is displaying outbound mail (Which for example, a user has sent out from their outlook) BUT only outbound mail which is being sent to other office 365 users.
    We do not have mail on office 365, only on-premise hence the reason why we are flabbergasted to why the mail we are sending out would be displaying on the office 365 message tracer.
    To further clarify, we are only seeing addresses in the office 365 message trace which belong to recipients whom use office 365 for their mail.
    Hope this makes sense.
    getting messy O365 users to another O365 you mean?
    You mentioned if they send email using their MS Outlook Client.
    I'd suggest you to send another email to the same recipient but using OWA
    There may have been an office 365 connector in Outlook.
    Where Technology Meets Talent

  • Xslt in message flow

    hello,
    i have an XSLT document and i want to use it to make a transformation in the response message flow of my proxy service.
    i call a webservice through business service but i dont know which action,in the "response actions", corresponds to making an XSL transformation.
    I tried "replace" without success, the others actions seem not to be for transformation.
    in the xquery expression editor, i put my XSLT resource to execute.
    in "2. bind input", i dont know exactly what to put, there isn't any explication for "2. bind input" in the edocs.
    and for "3. bind variables", i have nothing (no variables have been found)
    could someone indicate me how to configure and use the result of my xslt in a message flow ?
    thank you very much.

    We built a custom service and invoked it asynchronously (non-blocking) using the Publish Action (with QoS as BestEffort) in the different places wherever we needed the audit functionality.
    And this service would do its work on the background as a part of a separate thread, thereby not impacting the actual service that was implementing the business logic.
    This is not optimal because there is still some time consumed for the publish action (though it is less) in the actual service with the business logic. But atleast this did allow us to overcome the limitation of the handlers to some extent.
    I generally do not prefer to use java callouts as the prerequisite is that the methods exposed need to be static, which might create some contention when many threads try to invoke the same java callout methods at the same time.
    Thanks,
    Patrick

  • Replacing default namespace in OSB message flow

    I'm in the process of setting up a simple OSB proxy and could use some help figuring out how to change a default namespace in the response from the business service.
    The proxy and business service use different namespaces which we'll call "http://foo.com/namespace/proxy" and "http://foo.com/namespace/business". In my routing request message flow, the contents of $body look like this and I'm able to use a Rename action with XQuery expression "./sof:*" to change "http://foo.com/namespace/proxy" to "http://foo.com/namespace/business":
    <sof:Execute xmlns:sof="http://foo.com/namespace/proxy">
    <sof:adminName>MyAdaptor</sof:adminName>
    <sof:request>
    [escaped payload omitted]
    </sof:request>
    </sof:Execute>
    This works fine, but in the response message flow, I need to revert the namespace and am having difficulty because the response uses a default namespace instead of using a prefix:
    <ExecuteResponse xmlns="http://foo.com/namespace/business">
    <ExecuteResult>
    [escaped payload omitted]
    </ExecuteResult>
    </ExecuteResponse>
    If I define a prefix P2L in the expression editor to correspond to "http://foo.com/namespace/business", I'm able to reference the ExecuteResponse element as "./P2L:ExecuteResponse", but then I get stuck.
    If I try use a Rename action to change the namespace for "./P2L:*", only the ExecuteResponse element is renamed to <sof:ExecutResponse xmlns:sof="http://foo.com/namespace/proxy">. Upstream in the calling application, there's an XML stream reader exception because (I assume) ExecuteResult is not found and parsed.
    I also tried using a Replace action against "./P2L:ExecuteResponse/@xmlns" to replace its contents with "http://foo.com/namespace/proxy". I also tried "./P2L:ExecuteResponse/@P2L:xmlns". Neither worked.
    Can anyone tell me what I'm doing wrong, or suggest a different approach? Assume that changing the calling application or business service is not an option.
    Thanks!

    >
    If I define a prefix P2L in the expression editor to correspond to "http://foo.com/namespace/business", I'm able to reference the ExecuteResponse element as "./P2L:ExecuteResponse", but then I get stuck.
    If I try use a Rename action to change the namespace for "./P2L:*", only the ExecuteResponse element is renamed to <sof:ExecutResponse xmlns:sof="http://foo.com/namespace/proxy">. Upstream in the calling application, there's an XML stream reader exception because (I assume) ExecuteResult is not found and parsed.
    >
    You pattern "./P2L:\*" matches just one element so it's ok that the payload's namespace wasn't touched. If you want to rename namespace for all elements try "//P2L:*". However, I'm not sure whether this is what you want. Try do describe what you do, what you want and what you get instead.
    >
    I also tried using a Replace action against "./P2L:ExecuteResponse/@xmlns" to replace its contents with "http://foo.com/namespace/proxy". I also tried "./P2L:ExecuteResponse/@P2L:xmlns". Neither worked.
    >
    I think it's not a good approach to replace content of xmlns as this attribute is not a common xml attribute.

  • BPM Message Flow

    Hello,
            I am aware that we use concept of Message Flows for communication between activities in two different pools.
    Now let me say i have 5 activities and Pool A and 5 in Pool B. Now message flow is generic in between pools. How do i define that one message flow is for one specific activity.
    I am new to BPM and may sound stupid too. But how does the above thing work? Guys help me out.

    Hi Yogesh,
    In SAP NetWeaver BPM on CE 7.11 only one so called active pool is supported. Other pools are for documentation purposes (in ordeer to outline the context the process is running in).
    In case the other 4 activities should also particiapte in the process it would be necessary to split the pools into several lanes in order to define different responsibilities.
    Hope that helps,
    Martin

  • Loop in message flow found

    Hi all
    I created a idoc to abap proxy for the xi adapter i used http destination with my destination defined in sm59.
    In sxbm_moni i get the error:
    LOOP_IN_MESSAGE_ROUTING
    Loop in message flow found: system is.00.metsapxd, pipeline CENTRAL with inbound adapter XI already processed
    Anyone know how to fix the error?
    Thx

    Hi,
      I think your end business system i.e. where proxy exists -- this application system is configured as "integration engine/HUB". Try to keep it as (SXMB_ADM -> Integration engine configuration) type of business system as "applicaiton system" instead of integration engine/server.
    Regards,
    Rao.Mallikarjuna

  • How to return "HTTP/1.0 401 Authorization Required" from OSB's Message Flow

    How can I return "HTTP/1.0 401 Authorization Required" header from OSB's Message Flow?
    Using of "HTTP Transport -> Authentification" is not possible, because I need flow condition. Transports Headers activity from design palette doesn't allow to send such headers.
    Practical usage: request for kerberos ticket by sending two headers: 401 and WWW-Authenticate: Negotiate...

    Can you briefly expand the use case for better understanding?
    HTTP Client---> Hand Shakes or what ever ----> HTTP Proxy (OSB )---> Pipeline----
    Philosophy behind pipeline is that it is designed to work on the request. Correct me if I'm wrong.
    What you are asking is ability to control the hand shake either in Pipeline or some way during proxy configuration. Unfortunately there is no configuration that is exposed for HTTP proxies in OSB to control that behavior.
    Manoj

  • Where to find detail message flow in scenario of AQ to DB adapter?

    I have installed hub, aq and DB adapter. The repository, adapters seem to be run fine. I put some messages in AQ and found out that there were no messages appeared in DB. The messages could be found in AQ_OUTBOUND_QUEUE. Sine there is no error message in adapter log files(trace is turned on), I am not sure it's the hub problem or adapter problems. Where should i check the message flow so to decide the problem?
    Any constructive advice is welcome.

    Hi Johnson,
    Have you set the queue to the event in the deploy tab of AQ application in iStudio? If not then please set your OUTBOUND_QUEUE to the corresponding event and then do push metadata after starting the adapter. You can have a look at "Appendix A -> Deployment -> Setting Queues" of Interconnect User guide for this.
    regards,
    Sandeep

  • Need help for  the message flow in sap xi system?

    Hello All,
    My requirement is some wat different............in the existing production system the message flow is 3500 per hour......... now we want to develop new scenario and the message flow will be 8500 message per hour.
    Client is not giving me the system details ...like network details and i need to say that can we send 8500 messages in the existing system with out changing the process speed or data base.
    also please advice the best ways to increase the performance in the sap xi system when the message flow is huge.
    thanks in advace.
    Thanks and Regards,
    chinna

    >
    chinnasapxi wrote:
    > Hello All,
    >
    > My requirement is some wat different............in the existing production system the message flow is 3500 per hour......... now we want to develop new scenario and the message flow will be 8500 message per hour.
    > chinna
    3500 to 8500 is not a message count tht needs to be worried about
    but to be on the safer side what is the average size of a single message?
    if the size is not a significant one u can go ahead

  • How to stop/start SAP XI Message flow in controlled way?

    Hi All,
    I am facing a scenario where for maintenance activity I need to stop all message flow in XI, system should be up and running but no message should processed by XI. I also don't want to shut down system.
    Is there any way by which I can stop message coming to XI?
    I don't want to deactivate communication channel..
    Regards,
    Gourav

    Hi,
    maybe (just an idea) you can try to deregister all queues?
    raport : RSXMB_REGISTER_QUEUES
    then all the queues should stop but I haven't checked it
    so you'd have to do some tests and find out if this
    does not have any other negative impact of some other
    XI processes
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a>

  • Regarding Message Flow in XI

    Hi Experts,
    I was go through the Blog given by Siva Maranani
    /people/siva.maranani/blog/2005/05/25/understanding-message-flow-in-xi
    But in this After sending the Xi Message from send Queue to Integration Engine...
    What wi be the process inside this IE.
    Please let me know
    Regards
    Khanna

    <i>But as per my knowledge in the IS the Pipeline services wil be done( Includes Receiver det, Interface Det, Mapping, Logical rout, Tech. routing, Call Adapter, Message Split )
    It means there is no further process inside the IE??????????</i>
    Messages received at the Integration Server are processed through a defined series of steps called Pipeline Services. These pipeline services are part of Integration Engine which in turn is a part of Integration Server
    <i>Only the XI Adapter wil pick the Xi msg from Send Queue to IE.......Thats it?????/</i>
    Yes. Thats the main task of XI Adapter. It also does the SLD lookup.
    <i>
    then this IE wil pass this XI Msg to the IS ..... Right????????</i>
    As mentioned, IE is part of IS
    Regards,
    Prateek

  • Understanding message flow in XI

    Hi,
    In Understanding message flow in XI  /people/siva.maranani/blog/2005/05/25/understanding-message-flow-in-xi
    1. What is API and SPI.
    2. In return diagram What is the functionality of "servlet"

    Hello Anil,
    <b>An application programming interface (API)</b> is a source code interface that a computer system or program library provides to support requests for services to be made of it by a computer program. An API differs from an application binary interface in that it is specified in terms of a programming language that can be compiled when an application is built, rather than an explicit low level description of how data is laid out in memory.
    The software that provides the functionality described by an API is said to be an implementation of the API. The API itself is abstract, in that it specifies an interface and does not get involved with implementation details.
    Two well known APIs are the Single UNIX Specification and the Microsoft Windows API.
    An API is often a part of a software development kit (SDK).
    The term API is used in two related senses:
    A coherent interface consisting of several classes or several sets of related functions or procedures.
    A single entry point such as a method, function or procedure.
    <b>SPI  : Security Parameters Index</b>

Maybe you are looking for