What is the difference between stop and abort





stop:____ ___If the session u want to stop is a part of batch you must stop the batch,
if the batch is part of nested batch, Stop the outer most bacth
Abort:----
You can issue the abort command , it is similar to stop command except it has 60 second time out .
If the server cannot finish processing and commiting data with in 60 sec
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:Itappearsas 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 transactionconsistency in the source database. (ie: join of hugetables, 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.

No comments:

Post a Comment