IBM Sterling Transformation Extender

Sterling Transformation Extender

Come for answers, stay for best practices. All we're missing is you.


#Sterling
#Supplychain
 View Only
  • 1.  RUN function, how does it work ?

    Posted 08/17/07 10:39 AM

    Originally posted by: Kepa_Screen


    Hi:

    We are having some trouble with the RUN command.

    We have the source for our unique map at one system, listening to an OracleAQ. ( queue ).

    This unique map ( called Director Map ), takes ONE record from the Input OracleAQ. Then determines what interface is asked for execution...And calls another map, a concrete map for the concrete input, using a RUN command.

    The map puts this output into another OracleAQ, output one.

    And then, the cycle begins again, one input record, director determines what "child" map to execute for that record, and calls this map with a RUN command, passing the input to it. The child map, puts it's output to another Queue.

    We do this in this manner, because we need to ensure that secuentiality is respected.

    But we are having some cases in which, the input record arrives, the director map calls the child map, but at the output queue, the secuentiality is not respected. If a second record arrives, and the child map executed for that map, has a lower actions to do, the second map finishes before than the first execution of the child map that was executed first.

    So we think that the problem is that RUN command is not synchronized...It executes the child map, but does not wait until the child map finishes...The director map executes the run command, and loose "the hand", so we cannot ensure the secuentiality of the queue.

    Could anybody confirm if this theory is correct, and, in that case, how to say to the run command to wait for the finish of the child executed map, before getting a new record at the input ? ( director map has source rule set to BURST with fetch unit = 1 )

    Thanks in advance.
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender
    #DataExchange


  • 2.  Re: RUN function, how does it work ?

    Posted 08/17/07 11:00 AM

    Originally posted by: LaurentB


    As much as I understand RUN, your statement looks wrong. RUN waits for the result of the execution before giving control back to the caller.

    How is your "main" map triggered ? If you're using the Launcher, then I'd suspect the main map is running multi threaded.
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender


  • 3.  Re: RUN function, how does it work ?

    Posted 08/17/07 11:02 AM

    Originally posted by: john.gibby


    Unless something has changed in 8.x that I am unaware of, the RUN command blocks execution until the map it is calling is finished. Our entire architecture is built on this premise and we have yet to see what you are seeing.

    I suspect it is latency in the OracleAQ that makes it not sequential.
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender
    #DataExchange


  • 4.  Re: RUN function, how does it work ?

    Posted 08/17/07 11:20 AM
      |   view attached

    Originally posted by: Kepa_Screen


    Thank you to both for the answers.

    We are sure that the Director map is not running multithread. There is only this map in a system and Max Concurrent Maps are set to 1.

    Sorry i forget to explain that we are using Mercator 6.7.1. , waiting to migrate to 8.0.1, because we have some other trouble with Oracle, that is patched at Oracle 10g. We work at this moment with Oracle 9.2i, but testing 10g in our development environment, in order to migrate from DSTX 6.7.1 to 8.0.1.

    Could be is caused by some trouble with OracleAQ ?
    Thanks again

    PD: I attach source files for Director Map...is someone wants to see it.
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender

    Attachment(s)



  • 5.  Re: RUN function, how does it work ?

    Posted 08/17/07 11:22 AM
      |   view attached

    Originally posted by: Kepa_Screen


    I include here the msd file
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender

    Attachment(s)



  • 6.  Re: RUN function, how does it work ?

    Posted 08/17/07 11:07 AM

    Originally posted by: john.gibby


    > But we are having some cases in which, the input
    > record arrives, the director map calls the child map,
    > but at the output queue, the secuentiality is not
    > respected. If a second record arrives, and the child
    > map executed for that map, has a lower actions to do,
    > the second map finishes before than the first
    > execution of the child map that was executed first.

    This might be where the problem lies. I didn't see it until I posted my first reply. I think you need to set the Max Concurrent Map Instances setting for the Director map to 1. If the Director map is the "trigger" map that watches for input, then yes, two closely arriving input records could finish out of order. Set the Max Concourrent Map Instances to 1 and it should work.

    John
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender