what is the difference between stop and abort?
Answer Posted / vijay
Do not use abort unless absolutely necessary. It is messy.
Using stop is a cleaner way, and because it is cleaner, it
often takes more time.
Here's the difference:
ABORT is equivalent to:
1. Kill -9 on Unix (NOT kill -7) but YES, Kill -9
2. SIGTERM ABEND (Force ABEND) on Mainframe
3. Windows FORCE QUIT on application.
What does this do?
Each session uses SHARED/LOCKED (semaphores) memory blocks.
The ABORT function kills JUST THE CODE threads, leaving the
memory LOCKED and SHARED and allocated. The good news: It
appears as if AIX Operating system cleans up these lost
memory blocks. The bad news? Most other operating systems
DO NOT CLEAR THE MEMORY, leaving the memory "taken" from
the system. The only way to clear this memory is to warm-
boot/cold-boot (restart) the informatica SERVER machine,
yes, the entire box must be re-started to get the memory
back.
If you find your box running slower and slower over time,
or not having enough memory to allocate new sessions, then
I suggest that ABORT not be used.
So then the question is: When I ask for a STOP, it takes
forever. How do I get the session to stop fast?
well, first things first. STOP is a REQUEST to stop. It
fires a request (equivalent to a control-c in SQL*PLUS) to
the source database, waits for the source database to clean
up. The bigger the data in the source query, the more time
it takes to "roll-back" the source query, to maintain
transaction consistency in the source database. (ie: join
of huge tables, big group by, big order by).
It then cleans up the buffers in memory by releasing the
data (without writing to the target) but it WILL run the
data all the way through to the target buffers, never
sending it to the target DB. The bigger the session memory
allocations, the longer it takes to clean up
.
Then it fires a request to stop against the target DB, and
waits for the target to roll-back. The higher the commit
point, the more data the target DB has to "roll-back".
FINALLY, it shuts the session down.
WHAT IF I NEED THE SESSION STOPPED NOW?
Pick up the phone and call the source system DBA, have them
KILL the source query IN THE DATABASE. This will send an
EOF (end of file) downstream to Informatica, and Infa will
take less time to stop the session.
If you use abort, be aware, you are choosing to "LOSE"
memory on the server in which Informatica is running
(except AIX).
If you use ABORT and you then re-start the session, chances
are, not only have you lost memory - but now you have TWO
competing queries on the source system after the same data,
and you've locked out any hope of performance in the source
database. You're competing for resources with a defunct
query that's STILL rolling back.
| Is This Answer Correct ? | 14 Yes | 0 No |
Post New Answer View All Answers
What is workflow? What are the components of the workflow manager?
What the difference is between a database, a data warehouse and a data mart?
TELL ME ONE COMPLEX MAPPING IN UR PROJECT? chandumba2005@gmai.com
What is the difference between router and filter?
Mention some types of transformation?
What is a transaction control transformation?
Explain the shared cache and re-cache?
What is expression transformation?
What all join we can perform in LOOKUP transformation?
What is fact table? Explain the different kinds of facts.
How you know when to use a static cache and dynamic cache in lookup transformation?
What are the new features of informatica 9.x developer?
How to differentiate between the active and passive transformations?
what is Active lock explain
What is a predefined event?