Topic
10 replies Latest Post - ‏2013-05-23T21:09:28Z by T736_Mayur_Garg
JoeMorganNTST
JoeMorganNTST
427 Posts
ACCEPTED ANSWER

Pinned topic Why does my service work *only* when the probe is on

‏2013-05-16T14:58:56Z |

XI52, 5.0.0.6

We have a peculiar situation where an XMLFW will only process when a probe is turned on.  When we turn the probe off, it is as if the service isn't there.

I came across some others having similar problems, but we're not doing a pass-through, not piping the processing through.

It is a JSON in / JSON out service with a static back end, and we allow processing with an empty message body.  There's really nothing super-fancy going on. 

There are 2 request rules and one response rule.  One request rule looks for a login request and applies a very basic transform on the message body.  All other requests go through a second rule that really does nothing.  The response rule also does no real processing on the message ( meaning I could have JSON/Passthrough, but I don't).

Any ideas??

 

 

  • JoeMorganNTST
    JoeMorganNTST
    427 Posts
    ACCEPTED ANSWER

    Re: Why does my service work *only* when the probe is on

    ‏2013-05-16T19:25:36Z  in response to JoeMorganNTST

    After considerable analysis....

    Evidently, the "Process Messages Whose Body Is Empty" isn't working on XMLFW UNLESS the probe is on. If I turn the probe off, and a REST request comes in with no message body, it fails.  If I turn the probe on and send the EXACT same message, it succeeds.

    Does anyone else have this problem???

    • msiebler
      msiebler
      140 Posts
      ACCEPTED ANSWER

      Re: Why does my service work *only* when the probe is on

      ‏2013-05-16T19:43:14Z  in response to JoeMorganNTST

      can you show us what your request looks like? can you copy & paste the cli from your xml fw? thanks

    • swlinn
      swlinn
      1344 Posts
      ACCEPTED ANSWER

      Re: Why does my service work *only* when the probe is on

      ‏2013-05-16T21:31:10Z  in response to JoeMorganNTST

      And what do your logs indicate?  And by failing, what are you getting in response? Connection refused? Soap fault?

      Another thought ... What type of HTTP method are you sending with no Body?  HTTP GET?  On the XML FW, kinda of double negative configuration property, but on the advanced tab, there is a property "Disallow GET (and HEAD)".  Is that disabled, that means that you will allow a HTTP GET or HEAD?  If it is enabled your service will disallow the HTTP GET (or HEAD) methods.  That doesn't answer why it is allowed if the probe is enabled, so understanding what method is failing would be useful.

      Regards,
      Steve

      • JoeMorganNTST
        JoeMorganNTST
        427 Posts
        ACCEPTED ANSWER

        Re: Why does my service work *only* when the probe is on

        ‏2013-05-16T22:23:44Z  in response to swlinn

        And what do your logs indicate?  And by failing, what are you getting in response? Connection refused? Soap fault?

        You may have missed my reply above....No connection refused.. only the DP soap fault on the missing input on action.

        The service receives both GET and POST.  After a long bit of analysis... .  GETs fail when the probe is OFF.  POSTs succeed when the probe is OFF, unless the POST response has an empty body, in which case the POST response fails.

         

        • swlinn
          swlinn
          1344 Posts
          ACCEPTED ANSWER

          Re: Why does my service work *only* when the probe is on

          ‏2013-05-17T13:45:52Z  in response to JoeMorganNTST

          Hi Joe,

          As msiebler indicated above, its hard to tell without your configuration.  I'd recommend you open a PMR and provide support your configuration so IBM support can assist you, especially on the GET.  As for your POST response with an empty body, that may be caused by your service response time attempting to parse the response as SOAP or XML, but without your configuration that is just speculation on my part.  The logs, part of the must gather info for the PMR, would shed some light there too

          Regards,

          Steve

          • JoeMorganNTST
            JoeMorganNTST
            427 Posts
            ACCEPTED ANSWER

            Re: Why does my service work *only* when the probe is on

            ‏2013-05-20T14:10:55Z  in response to swlinn

            So.... out of curiosity, I switched from using an XML FW to an MPG.  This is what I did:

            1. Changed the port on the XMLFW (so as not to have a conflict).
            2. Created an MPG with an HTTP FSH on the same IP/Port as was the XML FW.  Set the static back end to the exact same back end, except for the requirement of using the protocol in the MPG.  It also uses the exact same SSL Client Crypto Profile.
            3. Reused the exact same XMLFW Processing Policy in the MPG.  That is, I didn't recreate a new processing policy.  I just dropped down the "Multi-Protocol Gateway Policy" and selected the XMLFW policy.
            4. Saved.  Works exactly the same, but I don't need the probe on!

            There's definitely something wrong with that XMLFW.  Next, I'll drop the other XMLFW and rebuild it, swap the ports, and see if it works without the probe on.

             

            • Doyler86
              Doyler86
              91 Posts
              ACCEPTED ANSWER

              Re: Why does my service work *only* when the probe is on

              ‏2013-05-20T18:32:50Z  in response to JoeMorganNTST

              Hello Joe,

              Not sure if this is exactly the same issue that I experienced, but i will share it with you and you can try it and see.

              My Issue was that one of my developers were experiencing a similar Issue with a Json request.

              With Probe enabled, it would work, but as soon as we disabled it, it would fail.

              Behind the scenes, the probe converts all requests to XML, so that it can perform it job on the request, and this may explain why it is working.

              Workaround / Solution: add a convert query param to convert the request to xml at the front of the processing policy.

               

              This was on firmware version 3.8.2 though, and I am not sure this is the most efficient solution, but this is what IBM recommended for us in our particular circumstance...

               

              hope this proves to be beneficial somehow,

               

              thanks,

               

              Doyle

              • Rohit-Goyal
                Rohit-Goyal
                119 Posts
                ACCEPTED ANSWER

                Re: Why does my service work *only* when the probe is on

                ‏2013-05-21T10:54:51Z  in response to Doyler86

                Today we were dealing with similar problem but with GET requests.

                found this technote. We fixed the problem following an alternate method.

                http://www-01.ibm.com/support/docview.wss?uid=swg21566838

                 

                 

                • T736_Mayur_Garg
                  T736_Mayur_Garg
                  16 Posts
                  ACCEPTED ANSWER

                  Re: Why does my service work *only* when the probe is on

                  ‏2013-05-23T21:09:28Z  in response to Rohit-Goyal

                  This might look a lil stupid .. but it happened to me.

                  Check if any your action in processing rule is set to ASYNC ON by mistake. When PROBE is ON - Datapower ignore Async and might be working correctly but when you set PROBE to OFF, ASync will be taken into accont and might be causing a problem in the actual flow.