No response available

Hi,
this may seem like an obvious question but... here it goes anyway. PI is used to call receiver (web service) at an external company through soap channel.
Sometimes, not often, I receive errors such as
  <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--  Message entrant
  -->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
  <SAP:Category>XIAdapterFramework</SAP:Category>
  <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
  <SAP:P1 />
  <SAP:P2 />
  <SAP:P3 />
  <SAP:P4 />
  <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available.</SAP:AdditionalText>
  <SAP:Stack />
  <SAP:Retry>M</SAP:Retry>
  </SAP:Error>
This seems like an error at the provider...
How can I prove it to the provider ? They say the response may be lost on our side.
Thanks.

Hi Thierry Dagnino,
   I am also getting this error. But in my case it is SOAP to RFC synchronous scenario.
  BizTalk calls XI web service to send data. XI then sends the data to ECC system by calling a RFC enabled function module.
  What was the cause of your error? How did you resolve it?
  I will be grateful to you if you can tell me the possible root cause of this error?
Thanks & Regards
Gopal

Similar Messages

  • JDBC receiver error No response available

    Hi All,
    I am getting below error in Proxy to JDBC synchronous scenario. This interface is to select the records based on between two dates. when number of records comes above 20000, it is failing with below error in sxmb_moni. i am getting this error in QA system.
    With same number of records, it works fine in Development system.
    please share your thoughts to overcome this issue.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Inbound Message
    -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SAP:Category>XIAdapterFramework</SAP:Category>
    <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
    <SAP:P1 />
    <SAP:P2 />
    <SAP:P3 />
    <SAP:P4 />
    <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available.</SAP:AdditionalText>
    <SAP:Stack />
    <SAP:Retry>M</SAP:Retry>
    </SAP:Error>
    Regards,
    Muni

    Hi Inaki,
    i check the channel logs. getting below error.
    Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Sync application request expired.. Setting message to status failed
    I tried using syncTimeout in the channel. set the value 300000. no luck.
    PI dev and QA systems are connected to QA DB.
    in the development it takes less than 3 mins to fetch the records. that is why it is successful.
    But in the QA , it is taking more than 3 mins. so getting error-ed out. Not sure why syncTimeout  setting is not having any impact.
    Regards,
    Muni.

  • MessagingException: No response available

    Hi Experts,
    I am facing a problem in Production server (PI 7.1).
    I have synchronous interfaces between SOAP to RFC and RFC to RFC via PI.
    Some time, the interfaces are failing with the error u201Ccom.sap.engine.interfaces.messaging.api.exception.MessagingException: No response availableu201D
    Functional consultant has kept the trace in ECC system (for the RFC calls), we donu2019t find any call/trace for the one which fails with the error u201CNo response availableu201D.
    I have checked the auidit log the, the log says as below.
    011-06-09 04:40:44 Information RfcAdapter received sRFC for RFC#####  from SID/client. Trying to send message synchronously.
    2011-06-09 04:40:44 Information MP: entering1
    2011-06-09 04:40:44 Information MP: processing local module localejbs/RfcAFBean
    2011-06-09 04:40:44 Information The application tries to send an XI message synchronously using connection RFC_http://sap.com/xi/XI/System.
    2011-06-09 04:40:44 Information Trying to put the message into the call queue.
    2011-06-09 04:40:44 Information Message successfully put into the queue.
    2011-06-09 04:40:44 Information The message was successfully retrieved from the call queue.
    2011-06-09 04:40:44 Information The message status was set to DLNG.
    2011-06-09 04:43:44 Error Received XI System Error. ErrorCode: GENERAL ErrorText: com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available. ErrorStack: null
    2011-06-09 04:43:44 Error Transmitting the message using connection RFC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIAdapterFramework:GENERAL:com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available..
    2011-06-09 04:43:44 Error The message status was set to FAIL.
    2011-06-09 04:43:44 Error Returning to application. Exception: com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIAdapterFramework:GENERAL:com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available.
    2011-06-09 04:43:44 Error MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIAdapterFramework:GENERAL:com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available.
    I am trying to find out the problem.
    I think, message is getting failed in AFW and it is not reaching the reciver communication channel.
    Do you think, the cache refresh will solve the problem.
    As this is critical issue,I need your suggestions. Please let me know, what could be the problem.
    Thanks & Regards,
    Venu V

    Hi,
    Thanks for reply.
    We had kept the trace in ECC for the calls from SOAP to RFC via PI.
    We did not get any trace in ECC for the call which failed.
    Trace is there for successful calls.
    Still not sure where the problem is?
    Thanks & Regards,
    Venu V

  • Sorry, No Valid Responsibility Available

    Dear All,
    We have defined the users and Responsibilities. But whenever i am logging into the user, system is showing the two responsibilities but when i clicking any one of the responsibility, Its showing an error as "Sorry, No Valid Responsibility Available.
    *Note : We have done Function and Menu Exclusion as per User Responsibility Matrix.*
    Please suggest me what could be the reason.
    Thanks & Regards,
    Aditya

    Check this forum, same kind of discussion before.
    Function not available to this responsibility. -- Error
    Re: No functions available for User Management Responsibility
    Responsibility not shown

  • On the Apple Watch, has anyone figured out a way (if possible) to remove some of the redundant auto responses available when using Messages?

    There are some responses that always show which I would never use, such as BRB, that I'd like to completely remove. There are other responses that are excessively redundant. I don't need Thx, Thanks, Thank you. and Thanks! as separate available auto responses every single time. Anyone else had better luck figuring that out?
    Overall I'm really liking the Watch so far. The only thing bringing it down is sone of those small details.

    Visit the Apple Watch app, then go to My Watch > Messages > Default Replies.
    You can add your own but there will still be Apple auto default replies too.
    Kinda lame.  Hope there's a new option to get rid of those in the future. I'd rather ALWAYS dictate and not have those 'smart responses' there at all.

  • Passing parameter to response pipeline

    Hi,
    I'm trying to do the following:
    - PS1 calls a BS1 that inserts some stuff to a database. This BS1 doesn't return anything (I'm using some database exposed through JCA adapters).
    - I need to know the specific messageID that reached that BS1 (and was inserted), on the response pipeline in order to block the pipeline until I got some response available for that messageID.
    I know that:
    - when you call a routenode your soap body is removed. so if your BS doesn't return anything you are stuck with a null body on your response pipeline.
    My question is: how can I pass a messageID (that was previously defined on SOAP body on request pipeline) to response pipeline on that same PS1?
    My guess is: using some transport header that isn't overwrited during runtime!! but which one? I'm using http transport.
    thanks for all your help! :)
    Edited by: enok on 18-May-2010 10:14

    I'm trying to do the following:
    - PS1 calls a BS1 that inserts some stuff to a database. This BS1 doesn't return anything (I'm using some database exposed through JCA adapters).
    - I need to know the specific messageID that reached that BS1 (and was inserted), on the response pipeline in order to block the pipeline until I got some response available for that messageID.
    As you have indicated that JCA BS is a request only (no response). So what is that you are expecting as response "block the pipeline until I got some response"?
    Can you please explain?I know that:
    - when you call a routenode your soap body is removed. so if your BS doesn't return anything you are stuck with a null body on your response pipeline.
    My question is: how can I pass a messageID (that was previously defined on SOAP body on request pipeline) to response pipeline on that same PS1?
    Easy. Store the messageID (that was previously defined on SOAP body on request pipeline) in a xml variable in request pipeline before the route node. Use the same varaible to populate the response payload in response pipelineMy guess is: using some transport header that isn't overwrited during runtime!! but which one? I'm using http transport.
    Don't go with above approach even though it solves your use-case. storing in varaible is lot elegant and easy to implement/maintain.Manoj

  • How to simulate user response in Objective C

    How can a program simulate a user response such as picking a menu choice?
    For example, in a game design where the player takes turns with the device, the player shuffles the cards and gets various animations dependent upon the choice from a shuffle menu. Now it is the computer's turn to shuffle (make menu selections). The program can decide which buttons to press, but how can I make the program PRESS the buttons?
    iOS 5.1 etc.
    I think I am simply looking for a hook in the run-loop at user response time that checks to see if there is a program response available, that interpretes the request or tickles the first responder, or the responder chain. I have trouble believing that this has not come up already, Maybe it is just the way I am looking at the problem. Thank you in advance.

    Use "performClick"

  • Receiver RFC adapter issue! Please help!

    Hi Experts,
       I have 4 XI interfaces. All of these are Webservice to RFC scenarios. Moreover all of them are synchronous.
      Request message: Webservice (SOAP Adapter) ---> XI -
    > RFc Adapter ---> ECC Function modules
      Response message: Webservice (SOAP Adapter) <- XI < RFc Adapter <- ECC Function modules
    As you can see above, external system calls XI web service via SOAP Adapter. The input data is then sent from SOAP Adapter to RFC adapter to call RFC function module in the receiving side.  The receiving system is SAP ECC system.
    The receiver ECC system has two instances. For example SP0 ad SP1. 
    In the receiver determination step we have maintained a rule such that if the Plant value in the input message is XYZ then send data to SP0. But if the plant value in ABC then send data to SP1.
    This Conditional rule is working fine.
    However we are getting couple of issues with only one instance of ECC (SP0).
    1. com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Message badfa070-b163-11de-a4c1-001cc495e48a(INBOUND) expired
    2. NO_MAPPINGPROGRAM_FOUND. Mapping program is not available in runtime cache: Object ID C2B41FFDFD4635BAB1E41AE53C0D10CE Software Component 5394F420463611DAC1CFFBBC0A01BC16
    3. com.sap.engine.interfaces.messaging.api.exception.MessagingException: No response available
    The above listed errors are generated occasionally. Sometimes no errors are generated even when the same input data is sent again and message is successfully processed.
    I have verified the input data and everything is OK with that.
    Mapping object is available in XI and cache was also refreshed. I additionally reactivated the objects in XI as well.
    So what could be the real root cause of this? Please help!
    Thanks
    Gopal

    1. com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Message badfa070-b163-11de-a4c1-
    001cc495e48a(INBOUND) expired
    Check the Timeout parameter of your adapter.....for requests which expire with this error confirm from the SAP end that the message processing is done well within the Timeout period of the adapter.
    Refer this note for more info on the above occuring error and the possible way to avoid it: https://service.sap.com/sap/support/notes/791379
    Update:
    Even problem 3 seems to be occuring due to insufficient Timeout specified for the adapter.....if possible try increasing the Timeout in VA
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Oct 6, 2009 1:42 PM

  • Error in scenario HTTP - XI - RFC SYN

    In the monitor this registering the following error
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: No response available.</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    So that this can happen
    Thank's

    Hi,
    1. Look into the Receiver RFC adapter and check its status.
    2. Check the RFC request Message. Is it valid? Try to execute the RFC with the same data and check if it works fine.
    Also refer into this blog and cross check the steps,
    /people/community.user/blog/2006/12/12/http-to-rfc--a-starter-kit
    Regards
    Bhavesh

  • Returning content type of application/RFC822

    I have a servlet which needs to return a data stream that the browser
              shoule save as a file on the users local hard drive.
              My servlet seems to work just fine with Netscape 4.7 but IE always saves
              the original HTML Form page that called the Servlet.
              Is there a bug in WL/IE or am I doing something stupid
              here's my code - the method doing returning the data is the last one in
              this code - getResponseFromDispatch()
              Thanks
              Tom
              package com.nexterna.optiform.server.b2b;
              import javax.servlet.*;
              import javax.servlet.http.*;
              import java.io.*;
              import java.util.*;
              import javax.naming.*;
              import org.apache.log4j.Category;
              import org.apache.log4j.PropertyConfigurator;
              import org.w3c.tools.codec.Base64Encoder;
              import com.nexterna.optiform.server.ejb.dispatcher.*;
              import com.nexterna.optiform.common.*;
              import com.nexterna.ejb.usermanager.*;
              import com.nexterna.common.security.*;
              * Title: B2BInterfaces
              * Description:
              * Copyright: Copyright (c) 2001
              * Company:
              * @author
              * @version 1.0
              public class ExportResponseAsXML extends HttpServlet {
              private static final String CONTENT_TYPE = "text/html";
              /**Initialize global variables*/
              private Context jndiContext = null;
              private String poolName = "";
              private String providerURL = "";
              private String icf = "";
              private String command = null;
              private DispatcherServices dispatcher = null;
              private UserManager usermgr = null;
              private String ccode = "b2b.9284s3a41";
              private static Category cat =
              Category.getInstance(ExportResponseAsXML.class.getName());
              public void init(ServletConfig config) throws ServletException {
              super.init(config);
              try {
              InitialContext ic = new InitialContext();
              Context environment = (Context) ic.lookup("java:comp/env");
              PropertyConfigurator.configure(
              config.getInitParameter("LOG4J"));
              poolName =
              config.getInitParameter("POOLNAME");
              providerURL = config.getInitParameter("PROVIDER_URL");
              icf = config.getInitParameter("INITIAL_CONTEXT_FACTORY");
              catch (NamingException e) {
              cat.error("Exception in EJBCreate trying to lookup
              initializations");
              cat.error("Servlet Failed Initialization " + poolName + ":"
              + providerURL + ":" + icf);
              cat.error(e);
              getDispatchServices();
              getUserManager();
              if (cat.isDebugEnabled()) {
              cat.debug("Servlet Initialized " + poolName + ":" +
              providerURL + ":" + icf);
              /**Process the HTTP Get request*/
              public void doGet(HttpServletRequest request, HttpServletResponse
              response) throws ServletException, IOException {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>The servlet has received a GET. This is the
              reply.</p>");
              out.println("</body></html>");
              /**Process the HTTP Post request*/
              public void doPost(HttpServletRequest request, HttpServletResponse
              response)
              throws ServletException, IOException {
              // first we need to get the user-id/password and create a user profile
              Base64Encoder b = new Base64Encoder(request.getParameter("passwd"));
              String pass = b.processString();
              if (usermgr == null)
              log("User manager is null!");
              UserProfile up = usermgr.getUserProfile(
              request.getParameter("userid").toUpperCase(), pass);
              if ((up == null) ||
              (!ccode.startsWith(request.getParameter("controlcode")))) {
              response.setContentType("text/html");
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponse</title></head>");
              out.println("<body>");
              out.println("<p>Incorrect parameters");
              out.println("</body></html>");
              cat.error("incorrect parameters: " + up + " : " +
              request.getParameter("controlcode"));
              else {
              // there are 3 ways to export responses
              // 1. via the dispath id
              // 2. via the response id
              // 3. vis the form name and last retrieved date
              // the third one allows you to get all new responses for a form
              type
              // and for a time period.
              String rid = request.getParameter("rid");
              String did = request.getParameter("did");
              String formname = request.getParameter("formname");
              String date = request.getParameter("datefrom");
              boolean failed = false;
              if (cat.isDebugEnabled()) {
              cat.debug("rid " + rid);
              cat.debug("did " + did);
              cat.debug("formname " + formname);
              cat.debug("datefrom " + date);
              if (did != null)
              failed = getResponseFromDispatch(response, did);
              else if (rid != null)
              //failed = getResponse(response, rid);
              System.out.println("temp");
              else if (formname != null && date != null)
              //failed = getAllResponses(response, formname, date);
              System.out.println("temp");
              else {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>No Responses available.</p>");
              out.println("</body></html>");
              if (failed) {
              response.setContentType(CONTENT_TYPE);
              PrintWriter out = response.getWriter();
              out.println("<html>");
              out.println("<head><title>ExportResponseAsXML</title></head>");
              out.println("<body>");
              out.println("<p>No Responses available due to error.</p>");
              out.println("</body></html>");
              /**Clean up resources*/
              public void destroy() {
              protected static Context getInitialContext(String purl, String picf)
              throws javax.naming.NamingException{
              cat.debug("URL: " + purl);
              cat.debug("Initial_context_factory: " + picf);
              Properties p = new Properties();
              // ... Specify the JNDI properties specific to the vendor.
              p.put(Context.INITIAL_CONTEXT_FACTORY, picf);
              p.put(Context.PROVIDER_URL, purl);
              return new javax.naming.InitialContext(p);
              protected void getDispatchServices() {
              DispatcherServicesHome home = null;
              try {
              //if (jndiContext == null)
              cat.debug("trying to get jndi - dispatcher");
              jndiContext = getInitialContext(providerURL, icf);
              cat.debug("doing lookup - dispatcher");
              Object obj = jndiContext.lookup("nexterna.DispatcherServices");
              cat.debug("getting home ref - dispatcher");
              home = (DispatcherServicesHome)
              javax.rmi.PortableRemoteObject.narrow(
              obj, DispatcherServicesHome.class);
              catch (javax.naming.NamingException ne)
              cat.error(ne);
              catch (Exception e)
              cat.error(e);
              try {
              cat.debug("home.create - dispatcher");
              dispatcher = home.create();
              catch (javax.ejb.CreateException ce)
              cat.error(ce);
              catch (java.rmi.RemoteException re)
              cat.error(re);
              catch (Exception e)
              cat.error(e);
              protected void getUserManager() {
              UserManagerHome home = null;
              try {
              if (jndiContext == null)
              cat.debug("trying to get jndi - usermanager");
              jndiContext = getInitialContext(providerURL, icf);
              cat.debug("doing lookup - usermanager");
              Object obj = jndiContext.lookup("nexterna.UserManager");
              cat.debug("getting home ref - usermanager");
              home = (UserManagerHome) javax.rmi.PortableRemoteObject.narrow(
              obj, UserManagerHome.class);
              catch (javax.naming.NamingException ne)
              cat.error(ne);
              catch (Exception e)
              cat.error(e);
              try {
              cat.debug("home.create - usermanager");
              usermgr = home.create();
              catch (javax.ejb.CreateException ce)
              cat.error(ce);
              catch (java.rmi.RemoteException re)
              cat.error(re);
              catch (Exception e)
              cat.error(e);
              protected boolean getResponseFromDispatch(HttpServletResponse resp,
              String id) {
              String s = null;
              try {
              //before we will export responses to a dispatch, the dispatch
              must be complete
              s = dispatcher.getDispatchStatusString(id);
              catch (java.rmi.RemoteException e)
              cat.error(e);
              return true;
              if (s.compareToIgnoreCase("Completed") != 0) {
              cat.debug("Dispatch status is not COMPLETED. Cannot export
              responses");
              return true;
              resp.setContentType("application/RFC822");
              resp.setHeader("Content-Type", "application/RFC822"); // set both
              ways to be safe
              resp.setHeader("Content-disposition",
              "attachment; filename=\"" + id + ".txt\"");
              cat.debug("Setting headers");
              cat.debug("Content-disposition",
              "attachment; filename=\"" + id + ".txt\"");
              HashMap responses = null;
              try {
              responses = dispatcher.getResponses(id,
              DispatcherServices.DISPATCH_ID);
              catch (java.rmi.RemoteException e)
              cat.error(e);
              return true;
              try {
              ServletOutputStream os = resp.getOutputStream();
              Iterator i = responses.values().iterator();
              while (i.hasNext()) {
              Object o = i.next();
              os.print(o.toString());
              cat.debug("Writing XML");
              cat.debug(o.toString());
              os.flush();
              os.close();
              catch (Exception e)
              cat.error(e);
              return true;
              return false;
              

              There is also a bug in IE5.5 SP0 and 1 where saving a document using the file download
              dialogue can indeed result in the HTML of the active frame being saved instead
              of the document.
              You can get IE 5.5 SP2 fix here:
              http://www.microsoft.com/windows/ie/download/ie55sp2.htm
              "Cameron Purdy" <[email protected]> wrote:
              >Hi Tom,
              >
              >I looked over the code. I think the problem is caused by the fact that
              >you
              >are doing a POST instead of a GET. IE doesn't GET anything back (OK,
              >I'm
              >totally technically wrong, but read the early HTTP specs and you'll see
              >the
              >"intent" of what I'm saying) so it just saves the current document. That's
              >my guess. Change to GET and it should work, since IE will know to save
              >the
              >incoming document.
              >
              >FWIW - You will often get more performance using a buffer of some sort
              >between your looping/writing and the response's stream.
              >
              >Peace,
              >
              >--
              >Cameron Purdy
              >Tangosol Inc.
              ><< Tangosol Server: How Weblogic applications are customized >>
              ><< Download now from http://www.tangosol.com/download.jsp >>
              >
              >
              >"Tom Gerber" <[email protected]> wrote in message
              >news:[email protected]...
              >> I have a servlet which needs to return a data stream that the browser
              >> shoule save as a file on the users local hard drive.
              >>
              >> My servlet seems to work just fine with Netscape 4.7 but IE always
              >saves
              >> the original HTML Form page that called the Servlet.
              >>
              >> Is there a bug in WL/IE or am I doing something stupid
              >>
              >> here's my code - the method doing returning the data is the last one
              >in
              >> this code - getResponseFromDispatch()
              >>
              >> Thanks
              >>
              >> Tom
              >>
              >> package com.nexterna.optiform.server.b2b;
              >>
              >> import javax.servlet.*;
              >> import javax.servlet.http.*;
              >> import java.io.*;
              >> import java.util.*;
              >> import javax.naming.*;
              >>
              >> import org.apache.log4j.Category;
              >> import org.apache.log4j.PropertyConfigurator;
              >> import org.w3c.tools.codec.Base64Encoder;
              >>
              >> import com.nexterna.optiform.server.ejb.dispatcher.*;
              >> import com.nexterna.optiform.common.*;
              >> import com.nexterna.ejb.usermanager.*;
              >> import com.nexterna.common.security.*;
              >> /**
              >> * Title: B2BInterfaces
              >> * Description:
              >> * Copyright: Copyright (c) 2001
              >> * Company:
              >> * @author
              >> * @version 1.0
              >> */
              >>
              >> public class ExportResponseAsXML extends HttpServlet {
              >> private static final String CONTENT_TYPE = "text/html";
              >> /**Initialize global variables*/
              >> private Context jndiContext = null;
              >> private String poolName = "";
              >> private String providerURL = "";
              >> private String icf = "";
              >> private String command = null;
              >> private DispatcherServices dispatcher = null;
              >> private UserManager usermgr = null;
              >> private String ccode = "b2b.9284s3a41";
              >>
              >> private static Category cat =
              >> Category.getInstance(ExportResponseAsXML.class.getName());
              >>
              >> public void init(ServletConfig config) throws ServletException {
              >> super.init(config);
              >>
              >> try {
              >> InitialContext ic = new InitialContext();
              >> Context environment = (Context) ic.lookup("java:comp/env");
              >>
              >> PropertyConfigurator.configure(
              >> config.getInitParameter("LOG4J"));
              >> poolName =
              >> config.getInitParameter("POOLNAME");
              >> providerURL = config.getInitParameter("PROVIDER_URL");
              >> icf = config.getInitParameter("INITIAL_CONTEXT_FACTORY");
              >> }
              >> catch (NamingException e) {
              >> cat.error("Exception in EJBCreate trying to lookup
              >> initializations");
              >> cat.error("Servlet Failed Initialization " + poolName +
              >":"
              >> + providerURL + ":" + icf);
              >> cat.error(e);
              >> }
              >>
              >> getDispatchServices();
              >> getUserManager();
              >>
              >> if (cat.isDebugEnabled()) {
              >> cat.debug("Servlet Initialized " + poolName + ":" +
              >> providerURL + ":" + icf);
              >> }
              >>
              >> }
              >> /**Process the HTTP Get request*/
              >> public void doGet(HttpServletRequest request, HttpServletResponse
              >> response) throws ServletException, IOException {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>The servlet has received a GET. This is the
              >> reply.</p>");
              >> out.println("</body></html>");
              >> }
              >> /**Process the HTTP Post request*/
              >> public void doPost(HttpServletRequest request, HttpServletResponse
              >> response)
              >> throws ServletException, IOException {
              >>
              >> // first we need to get the user-id/password and create a user
              >profile
              >> Base64Encoder b = new
              >Base64Encoder(request.getParameter("passwd"));
              >> String pass = b.processString();
              >>
              >> if (usermgr == null)
              >> log("User manager is null!");
              >>
              >> UserProfile up = usermgr.getUserProfile(
              >> request.getParameter("userid").toUpperCase(), pass);
              >>
              >> if ((up == null) ||
              >> (!ccode.startsWith(request.getParameter("controlcode"))))
              >{
              >> response.setContentType("text/html");
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponse</title></head>");
              >> out.println("<body>");
              >> out.println("<p>Incorrect parameters");
              >> out.println("</body></html>");
              >> cat.error("incorrect parameters: " + up + " : " +
              >> request.getParameter("controlcode"));
              >> }
              >> else {
              >>
              >> // there are 3 ways to export responses
              >> // 1. via the dispath id
              >> // 2. via the response id
              >> // 3. vis the form name and last retrieved date
              >> // the third one allows you to get all new responses for a
              >form
              >> type
              >> // and for a time period.
              >> String rid = request.getParameter("rid");
              >> String did = request.getParameter("did");
              >> String formname = request.getParameter("formname");
              >> String date = request.getParameter("datefrom");
              >> boolean failed = false;
              >> if (cat.isDebugEnabled()) {
              >> cat.debug("rid " + rid);
              >> cat.debug("did " + did);
              >> cat.debug("formname " + formname);
              >> cat.debug("datefrom " + date);
              >> }
              >> if (did != null)
              >> failed = getResponseFromDispatch(response, did);
              >>
              >> else if (rid != null)
              >> //failed = getResponse(response, rid);
              >> System.out.println("temp");
              >>
              >> else if (formname != null && date != null)
              >> //failed = getAllResponses(response, formname, date);
              >> System.out.println("temp");
              >>
              >> else {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>No Responses available.</p>");
              >> out.println("</body></html>");
              >> }
              >>
              >> if (failed) {
              >> response.setContentType(CONTENT_TYPE);
              >> PrintWriter out = response.getWriter();
              >> out.println("<html>");
              >> out.println("<head><title>ExportResponseAsXML</title></head>");
              >> out.println("<body>");
              >> out.println("<p>No Responses available due to error.</p>");
              >> out.println("</body></html>");
              >> }
              >>
              >> }
              >> }
              >> /**Clean up resources*/
              >> public void destroy() {
              >> }
              >>
              >> protected static Context getInitialContext(String purl, String picf)
              >> throws javax.naming.NamingException{
              >>
              >> cat.debug("URL: " + purl);
              >> cat.debug("Initial_context_factory: " + picf);
              >> Properties p = new Properties();
              >> // ... Specify the JNDI properties specific to the vendor.
              >> p.put(Context.INITIAL_CONTEXT_FACTORY, picf);
              >> p.put(Context.PROVIDER_URL, purl);
              >> return new javax.naming.InitialContext(p);
              >> }
              >>
              >>
              >> protected void getDispatchServices() {
              >> DispatcherServicesHome home = null;
              >> try {
              >>
              >> //if (jndiContext == null)
              >> //{
              >> cat.debug("trying to get jndi - dispatcher");
              >> jndiContext = getInitialContext(providerURL, icf);
              >> //}
              >>
              >> cat.debug("doing lookup - dispatcher");
              >> Object obj = jndiContext.lookup("nexterna.DispatcherServices");
              >> cat.debug("getting home ref - dispatcher");
              >> home = (DispatcherServicesHome)
              >> javax.rmi.PortableRemoteObject.narrow(
              >> obj, DispatcherServicesHome.class);
              >> }
              >> catch (javax.naming.NamingException ne)
              >> {
              >> cat.error(ne);
              >> }
              >>
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >>
              >> try {
              >> cat.debug("home.create - dispatcher");
              >> dispatcher = home.create();
              >> }
              >> catch (javax.ejb.CreateException ce)
              >> {
              >> cat.error(ce);
              >> }
              >> catch (java.rmi.RemoteException re)
              >> {
              >> cat.error(re);
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >> }
              >>
              >> protected void getUserManager() {
              >> UserManagerHome home = null;
              >> try {
              >>
              >> if (jndiContext == null)
              >> {
              >> cat.debug("trying to get jndi - usermanager");
              >> jndiContext = getInitialContext(providerURL, icf);
              >> }
              >>
              >> cat.debug("doing lookup - usermanager");
              >> Object obj = jndiContext.lookup("nexterna.UserManager");
              >> cat.debug("getting home ref - usermanager");
              >> home = (UserManagerHome) javax.rmi.PortableRemoteObject.narrow(
              >> obj, UserManagerHome.class);
              >> }
              >> catch (javax.naming.NamingException ne)
              >> {
              >> cat.error(ne);
              >> }
              >>
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >>
              >> try {
              >> cat.debug("home.create - usermanager");
              >> usermgr = home.create();
              >> }
              >> catch (javax.ejb.CreateException ce)
              >> {
              >> cat.error(ce);
              >> }
              >> catch (java.rmi.RemoteException re)
              >> {
              >> cat.error(re);
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> };
              >> }
              >>
              >> protected boolean getResponseFromDispatch(HttpServletResponse resp,
              >> String id) {
              >>
              >> String s = null;
              >> try {
              >> //before we will export responses to a dispatch, the dispatch
              >> must be complete
              >> s = dispatcher.getDispatchStatusString(id);
              >> }
              >> catch (java.rmi.RemoteException e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> if (s.compareToIgnoreCase("Completed") != 0) {
              >> cat.debug("Dispatch status is not COMPLETED. Cannot export
              >> responses");
              >> return true;
              >> }
              >>
              >> resp.setContentType("application/RFC822");
              >> resp.setHeader("Content-Type", "application/RFC822"); // set
              >both
              >> ways to be safe
              >> resp.setHeader("Content-disposition",
              >> "attachment; filename=\"" + id + ".txt\"");
              >> cat.debug("Setting headers");
              >> cat.debug("Content-disposition",
              >> "attachment; filename=\"" + id + ".txt\"");
              >>
              >> HashMap responses = null;
              >> try {
              >> responses = dispatcher.getResponses(id,
              >> DispatcherServices.DISPATCH_ID);
              >> }
              >> catch (java.rmi.RemoteException e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> try {
              >> ServletOutputStream os = resp.getOutputStream();
              >> Iterator i = responses.values().iterator();
              >> while (i.hasNext()) {
              >> Object o = i.next();
              >> os.print(o.toString());
              >> cat.debug("Writing XML");
              >> cat.debug(o.toString());
              >> }
              >> os.flush();
              >> os.close();
              >> }
              >> catch (Exception e)
              >> {
              >> cat.error(e);
              >> return true;
              >> }
              >>
              >> return false;
              >> }
              >>
              >
              >
              

  • SOAP Adapter at XI 3.0 Central Adapter Engine

    Hello,
    I'm trying to use the SOAP Adapter with the Central Adapter Engine. It works with the J2SE-Adapter Engine, but not with the Central Adapter Engine.
    I Get the Error: No response Available.
    Perhaps someone can help me.

    The J2SE adapter is a relict from XI 2.0
    You may still use it, especially for migration from XI 2.0 to XI 3.0, but it is recommended to use the J2EE adapter engine.
    Regards
    Stefan

  • MII Implementation Architecture

    Hi,
    Due to service maintenance costs for each server deployed, I've been asked to try limit the number of servers used for a multi-site MII roll out.  The MII system requirements are for Operator/Management Production Reports with a view for system integration at a later stage.  The current architecture options on the table are:
    1. Local - one instance per production site (Typical and my usual approach)
    2. Regional - one instance serving four or five Production Sites within close proximity (50 kms)
    3. Central - one instance serving all Production Sites Globally.
    While I've successfully been able to convince the necessary parties that option 3 is not an option, I'm finding it difficult to build up a convincing case for option 1 over option 2 (other than this is the official/preferred way - money talks I'm afraid ).
    My immediate reluctance for the regional approach is because:
    1. Increased communication overhead will impact on performance (esp. if interactive screen)
    2. Increased risk of communication failure to source production systems (located on each site).
    Point 1 is easy to test and measure, but Point 2 is what I'm having difficulty quanitifying for this evaluation.  This will be a 12.x installation, so the Query Data Buffering will be available (Tag and SQL), but I haven't used it within a production environment extensively so I'm not too sure if it's a recommended route to rely on.  I'm also of the thought that it's better to avoid the problem than "fix" it.  Also, while the buffering is great for an integration/transactional environment, it doesn't help much with regards to an operator screen/report - from the perspective of the operator waiting for data.
    Does anyone have any experience/views on the Regional Approach, in particular my concerns on the communication failure, or am I being over paranoid?
    Thanks.

    Hi, Lawrence.  Here's my view, for what it's worth...
    Since you're paying a license for each site anyway, it isn't a "license-based" cost decision - it's largely a question of the cost of administering multiple MII instances/servers and related hardware.  In the 11.X era, this cost was reasonably low.  With 12.X, it has increased a bit with the more frequent need for NW patches and management (or so I've been told by a few customers who I trust greatly).
    A few key considerations are performance/responsiveness, availability, and overall application manageability.  As I recall, the networking infrastructure in S.A. can be a challenge in some remote locations, with limited bandwidth ISDN or DSL connections.  If there will be a lot of "trending" views by the users, mostly against data local to their site, you'll be wasting an enormous amount of network bandwidth (and response time) shipping data up to the regional or central server and then all the way back to the user.  Also, there is always the question of availability, and the likelihood of a local server on a local network being down versus a central/regional server with intermittent outages is important to consider.
    One of the "hidden features" of MII that offers a good compromise solution is the "Virtual Server" (a special type of connector, not something like VMware).  This approach allows you to have MII systems at each site handling communications to historians/databases, but also regional or central servers that can utilize these data connections remotely.  Customers have benchmarked performance and generally found that accessing a historian from a regional server, for example, is far more efficient and faster if you use a Virtual Server connection to the historian than versus connecting to it directly from the regional server.  The reason is often due to the binary protocol that MII uses being more efficient/lean than the vendors underlying protocols.  Of course, you may find different results, but it is something to consider.
    Similarly, you might want to consider application segmentation/partitioning, whereby you could create very ad-hoc "engineering" applications on the local MII server at each site, and do the more "corporate oriented" dashboards, reports, and ERP integration activities on the regional or central servers.  This way you can get the best of both worlds.

  • How to implement resend mechanism in BPM in order?

    I have a requirement to implement a synchronous scenario in BPM,which doe sthe following steps
    1)Recieves a transformed idoc message
    2)Sends the message to a webservice synchronously
    3)Waits for the response for a duration of 1 min
    4)Resends it again if no response.
    Could you please suggest a way to implement this processing in order in such a way that,if the idocs are sent in queued manner to the BPM,the second idoc is only sent after the complete processing of the first one is over,ie after the resend of the first idoc is completed?

    Hi,
    Does anyone have any suggestion regarding this.
    For better clarity i will tell my requirement once gain.
    I am implementing an idoc to synchronous web service scenario using BPM in between.The BPM have to recieve the idocs in order.This has been implemented successfully.
    Now the BPM should accept each idoc,sent it to the synchronous web service,wait for the response and if no response available ,it should resend.If resend also not successful, then the other suceeding idocs should not be sent and should be stuck in queue,until we resolve the issue.Once the issue is solved,we should be able to resend the messages in the queue in the same order.
    So al together,the entire processing should take place in Exactly Once in Order and the unprocessed idocs should be stuck in queue,if there is any sending or recieving issues.
    I have currently implemented the BPM in such a way that i have a recieve step in loop with correltion as IDOC TYP so that it recievs all idocs to the same process instance.The same loop contains a transformation and also a  sync send step with no exception handler defined  to catch system sending errors.Hence the BPM will go into error status and the rest of the idocs will be stuck in the queue.And the BPM can be restarted after solving the communication issues. And all the messages will be resend.
    If no sending errors,also,I suppose the synch send step willitself go into error state after it waits for the response for some seconds.Am i correct in this approach??
    I would like to know your suggestions whether it will wrk fine or not.
    Edited by: janice ann george on Jan 14, 2009 11:35 AM

  • Synch send from BPM

    Hi all,
    I have a synchronous send step to a webservice from my BPM.
    I am getting the error com.sap.aii.af.ra.ms.api.DeliveryException: No response available. after 3 mins the call is made.
    My webservice would take some time to response hence i would like to increase the timeout threshold. Any idea how how can i achieve this?
    I have set the variable XMBWS.Timeout in Soap Adapter Module to be 10 mins however i am still getting that error in moni.
    Appreciate any help.

    Hi
    After increasing the time out this should be solved. IF not then the problem is target system downtime or network and that you cannot control. At max you can schedule automated restart of failed messages
    1. IS_ENTRY - change the number of retries  TUNING IS_RETRY_LIMIT
    2. A mass restart by scheduling RSXMB_RESTART_MESSAGES
    Thanks
    Gaurav

  • Exception when calling ABAP Proxy modelled in SAP PI: CL_SOAP_RUNTIME_ROOT

    Hi,
    We have a scenario where we:
    1. Modell an interface in SAP PI
       This interface contains a complex type from a different namespace
    2. Use it to create an ABAP proxy in backend system
    3. Configure it with SOAManager
    4. Call the ABAP proxy ws directly from a third-party system (biztalk)
    We're currently testing calling the ABAP proxy from soapUI, but get a strange exception thrown by the SOAP framework in ABAP backend.
    The test in soapUI is setup by importing the WSDL acquired from SOAMANAGER.
    The error message we in the SOAP response is:
    CX_SY_REF_IS_INITIAL:Exception CX_SOAP_ROOT occurred
    (program: CL_SOAP_RUNTIME_ROOT==========CP, include: CL_SOAP_RUNTIME_ROOT==========CM004, line: 130)..
    An exception with the type CX_SY_REF_IS_INITIAL occurred, but was neither handled locally,
    nor declared in a RAISING clause.Dereferencing of the NULL reference
    It is a very low level error from the CL_SOAP_RUNTIME_ROOT program and not a descriptive error message at all.
    We've checked the user and the authorizations it has, we've redone the SOAManager config but the problem persists.
    We find no dumps in the ABAP proxy since the request never reaches it.
    For a limited time I'll make WSDL and SOAP response available
    WSDL (some values anonymized) available at http://dl.dropbox.com/u/4379928/SOAP/project.wsdl
    Complete SOAP response is available at http://dl.dropbox.com/u/4379928/SOAP/soap_data.xml
    Any ideas on where to look?

    Hi,
    We've now managed to implement a workaround.
    The workaround was to create the endpoint in PI as well.
    So that the traffic goes from third-party solution->PI-> WS-enabled ABAP Proxy
    When we did this initially, we got some errors related to the asynch method of this call, but this was resolved by changing the channel from "best effort" to "Guaranteed delivery". 
    Still we don't know what the root cause of the initial problem was, but we assume it is related to the asynch nature of the service (though we have other asynch proxies that work without problems).
    Regards
    Dagfinn

Maybe you are looking for

  • How do I delete a lot of old photos from my iPad at the same time?

    I have a 64Gb iPad and I have filled it with photos from past holidays.  I want to delete them so that I can store photos from this holiday.  I import photos from my digital camera to inspect, edit & share while I am away, but load them in a separate

  • Mini Bridge does not open in InDesign after installing 8.0.2 upgrade

    This question was previously posted in the InDesign forum (http://forums.adobe.com/message/5833991#5833991), but it was suggested that I should cross post it here. I installed InDesign CS6 upgrade 8.0.2.  Now I cannot open Mini Bridge. If Bridge is n

  • No Video on AirPlay since updating iOS?

    I have just updated my AppleTV to the latest version of iOS and am not getting any video from the Videos app on my iPad when using AirPlay (just sound). This happened before and there was a fix but can not remember what it was! Can anyone help....

  • Sharing with copyright_watermark

    We have a nice new feature: sharing pictures on the internet! Would be great to present Portraits to my customers. What I miss is the oppertunity to place the copyright watermark. Oh... and another thing... please remove that website counting of pict

  • Deadlock when updating different rows on a single table with one clustered index

    Deadlock when updating different rows on a single table with one clustered index. Can anyone explain why? <event name="xml_deadlock_report" package="sqlserver" timestamp="2014-07-30T06:12:17.839Z">   <data name="xml_report">     <value>       <deadlo