Flow service execution issue in trace mode it works

Hi All,
I am facing a wierd problem with a flow service that essentially does the following:

  1. send a MQ message (JMS Adapter)
  2. Create a JMS criteria to receive a message
  3. Sleep for 10 sec
  4. Recieve a message based on the criteria

The code when executed leads to a null message received in step 4. When I execute the same code in trace mode it executes fine.

Initially I thought that it may be happeining because of the long running nature of the transaction so I increased the sleep time to a big number. Even that didnt work.

This is wierd - any help will be appreciated

thank you
Rajeev

Ok the issue is resolved.

The issue was with the configuration of JMS Adapter. It was set for LOCAL_TRANSACTION - what that means is that after every send & receive the caller has to commit (for request-response model). So when the service was executed the request message never went out. I have set it to NO_TRANSACTION now which is equivalent to autoCommit.

Now the big question is : why did it work in TRACE mode? In my opinion its a bug in webMethods - its commiting after the send/receive in the trace mode or in other words although the configuration is LOCAL_TRANSACTION its behaving as if its a NO_TRANSACTION.

I am not sure whether webMethods consider it as a BUG or FEATURE - but it wasted a lot of my time.

In trace mode or step mode the individual flow steps are executed by a round trip to the Integration Server. This means that essentially the service “ends” every flow step.
So the IS is adhering to the LOCAL_TRANSACTION upon the roundtrip finishing, which in the case of trace is the single flow operation…

If it’s any consolation I’ve had a similar strangeness, although actually a bug where in step mode a list mapped to a single element for a service input disappeared, but a “run” worked fine…
Another time it was SAP not having enough time to return a result for part of an RFC call when run, though trace/step gave it enough time to return ok…

One of those things like you said: a bug or a feature… Ideally the step/trace will behave exactly the same as run, but under the covers it’s all done via service calls that the developer makes…

regards,
Nathan Lee
http://www.customware.net/wmunit - WmUnit The webMethods testing framework