top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Data Transformation Manager creates which different threads?

+1 vote
280 views
Data Transformation Manager creates which different threads?
posted Mar 30, 2015 by Sachin

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

Data Transformation Manager:

The DTM allocates process memory for the session and divide it into buffers. This is also known as buffer memory. It creates the main thread, which is called the master thread. The master thread creates and manages all other threads.

If we partition a session, the DTM creates a set of threads for each partition to allow concurrent processing.. When Informatica server writes messages to the session log it includes thread type and thread ID.

Following are the types of threads that DTM creates:

Master Thread - Main thread of the DTM process. Creates and manages all other threads.

Mapping Thread - One Thread to Each Session. Fetches Session and Mapping Information.

Pre and Post Session Thread - One Thread each to Perform Pre and Post Session Operations.

Reader Thread - One Thread for Each Partition for Each Source Pipeline.

Writer Thread - One Thread for Each Partition if target exist in the source pipeline write to the target.

Transformation Thread - One or More Transformation Thread For Each Partition.

answer Mar 30, 2015 by Manikandan J
Similar Questions
0 votes

When I look at many of the workflow last sessions runs in the workflow monitor I see the number of records that are picked by the transformation is different than the number of records that get updated or inserted in the target table.

For example my sql transformation picks 80,742 rows from the source table. but only 29,813 rows get loaded into the target table.

On further analyzing the workflow log file I can see it loaded both insertable records and updatable records:

WRT_8036 Target: W_SALES_ORDER_LINE_F (Instance Name: [W_SALES_ORDER_LINE_F]) WRT_8038 Inserted rows - Requested: 15284
 Applied: 15284 Rejected: 0 Affected: 15284 WRT_8041 Updated rows - Requested: 14529 Applied: 14529 Rejected: 0 Affected: 14529 

WRITER_1_*_1> WRT_8035 Load complete time: Wed Mar 19 04:41:24 2014

I am not able to figure out why would the workflows load lesser records than what source sql gives. and I would really appreciate some help in this matter.

Thanks

+2 votes

I am trying to handle a xsd:choice in the B2B transformation engine.

(xsd examples here)

That is I have a

enter image description here

And I am only intrested in getting the "one" part

And I only want extract the "one" element not caring from which underlying type it comes from, i.e. I want to put the result into "one" below regardless if it comes from the thingyone, thingytwo or thingythree.

enter image description here

In XSLT terms I would like to do:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.differentthingies.com/20111119/thingy" xsi:schemaLocation="http://xmlns.differentthingies.com/20111119/thingy differentthinggies.xsd">
    <differentthingies>
        <thingythree>
            <one>thisisthingythree1</one>
            <three2>thisisthingythree2</three2>
            <three3>thisisthingythree3</three3>
        </thingythree>
    </differentthingies>
</root>

Transformed by

<xsl:template match="/">
        <xsl:variable name="var1_root" select="ns0:root"/>
        <root xmlns="http://xmlns.differentthingies.com/20111119/anotherthingy">
            <xsl:attribute name="xsi:schemaLocation" namespace="http://www.w3.org/2001/XMLSchema-instance">http://xmlns.differentthingies.com/20111119/anotherthingy thingy.xsd</xsl:attribute>
            <thingyone>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingyone/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingythree/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingytwo/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
            </thingyone>
        </root>
    </xsl:template>

Would become

<root xmlns="http://xmlns.differentthingies.com/20111119/anotherthingy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.differentthingies.com/20111119/anotherthingy thingy.xsd">
    <thingyone>
        <one>thisisthingythree1</one>
    </thingyone>
</root>
...