Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
23Activity
0 of .
Results for:
No results containing your search query
P. 1
Recovering Workflows

Recovering Workflows

Ratings: (0)|Views: 1,048 |Likes:
Published by ypraju

More info:

Published by: ypraju on Dec 22, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

04/10/2013

pdf

text

original

 
Recovering Workflows
By PenchalaRaju.Yanamala
Recovering Workflows Overview
Workflow recovery allows you to continue processing the workflow and workflowtasks from the point of interruption. You can recover a workflow if the IntegrationService can access the workflow state of operation. The workflow state of operation includes the status of tasks in the workflow and workflow variablevalues. The Integration Service stores the state in memory or on disk, based onhow you configure the workflow:
Enable recovery.
When you enable a workflow for recovery, the IntegrationService saves the workflow state of operation in a shared location. You canrecover the workflow if it terminates, stops, or aborts. The workflow does nothave to be running.
Suspend.
When you configure a workflow to suspend on error, the IntegrationService stores the workflow state of operation in memory. You can recover thesuspended workflow if a task fails. You can fix the task error and recover theworkflow.The Integration Service recovers tasks in the workflow based on the recoverystrategy of the task. By default, the recovery strategy for Session and Commandtasks is to fail the task and continue running the workflow. You can configure therecovery strategy for Session and Command tasks. The strategy for all other tasks is to restart the task.When you have high availability, PowerCenter recovers a workflow automaticallyif a service process that is running the workflow fails over to a different node. Youcan configure a running workflow to recover a task automatically when the taskterminates. PowerCenter also recovers a session and workflow after a databaseconnection interruption.When the Integration Service runs in safe mode, it stores the state of operationfor workflows configured for recovery. If the workflow fails the Integration Servicefails over to a backup node, the Integration Service does not automaticallyrecover the workflow. You can manually recover the workflow if you have theappropriate privileges on the Integration Service.
State of Operation
 
When you recover a workflow or session, the Integration Service restores theworkflow or session state of operation to determine where to begin recoveryprocessing. The Integration Service stores the workflow state of operation inmemory or on disk based on the way you configure the workflow. The IntegrationService stores the session state of operation based on the way you configure thesession.
Workflow State of Operation
The Integration Service stores the workflow state of operation when you enablethe workflow for recovery or for suspension. When the workflow is suspended,the state of operation is in memory.When you enable a workflow for recovery, the Integration Service stores theworkflow state of operation in the shared location, $PMStorageDir. TheIntegration Service can restore the state of operation to recover a stopped,aborted, or terminated workflow. When it performs recovery, it restores the stateof operation to recover the workflow from the point of interruption. When theworkflow completes, the Integration Service removes the workflow state of operation from the shared folder.The workflow state of operation includes the following information:Active service requestsCompleted and running task statusWorkflow variable valuesWhen you run concurrent workflows, the Integration Service appends theinstance name or the workflow run ID to the workflow recovery storage file in$PMStorageDir.When you enable a workflow for recovery the Integration Service does not storethe session state of operation by default. You can configure the session recoverystrategy to save the session state of operation.
Session State of Operation
When you configure the session recovery strategy to resume from the lastcheckpoint, the Integration Service stores the session state of operation in theshared location, $PMStorageDir. The Integration Service also saves relationaltarget recovery information in target database tables. When the IntegrationService performs recovery, it restores the state of operation to recover thesession from the point of interruption. It uses the target recovery data todetermine how to recover the target tables.You can configure the session to save the session state of operation even if youdo not save the workflow state of operation. You can recover the session, or youcan recover the workflow from the session.The session state of operation includes the following information:
Source
. If the output from a source is not deterministic and repeatable, theIntegration Service saves the result from the SQL query to a shared storage file
 
in $PMStorageDir. The Integration Service saves the result from the SQL queryto a shared storage file in $PMStorageDir.
Transformation.
The Integration Service creates checkpoints in $PMStorageDir to determine where to start processing the pipeline when it runs a recoverysession.When you run a session with an incremental Aggregator transformation, theIntegration Service creates a backup of the Aggregator cache files in$PMCacheDir at the beginning of a session run. The Integration Servicepromotes the backup cache to the initial cache at the beginning of a sessionrecovery run.
Relational target recovery data
. The Integration Service writes recoveryinformation to recovery tables in the target database to determine the last rowcommitted to the target when the session was interrupted.Related Topics:Working with Repeatable Data
Target Recovery Tables
When the Integration Service runs a session that has a resume recoverystrategy, it writes to recovery tables on the target database system. When theIntegration Service recovers the session, it uses information in the recoverytables to determine where to begin loading data to target tables.If you want the Integration Service to create the recovery tables, grant tablecreation privilege to the database user name configured in the target databaseconnection. If you do not want the Integration Service to create the recoverytables, create the recovery tables manually.The Integration Service creates the following recovery tables in the targetdatabase:
PM_RECOVERY.
Contains target load information for the session run. TheIntegration Service removes the information from this table after eachsuccessful session and initializes the information at the beginning of subsequentsessions.
PM_TGT_RUN_ID.
Contains information the Integration Service uses to identifyeach target on the database. The information remains in the table betweensession runs. If you manually create this table, you must create a row and enter a value other than zero for LAST_TGT_RUN_ID to ensure that the sessionrecovers successfully.
PM_REC_STATE.
Contains information the Integration Service uses todetermine if it needs to write messages to the target table during recovery for areal-time session.If you edit or drop the recovery tables before you recover a session, theIntegration Service cannot recover the session. If you disable recovery, theIntegration Service does not remove the recovery tables from the targetdatabase. You must manually remove the recovery tables.Table 13-1describes the format of PM_RECOVERY:
 
Table 13-1. PM_RECOVERY Table DefinitionColumn NameDatatype

Activity (23)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Amir Riaz liked this
Siddharth Rathi liked this
amitbbs liked this
kar_s2004 liked this
dreamsportsteam liked this
prakharattri liked this
Roberto Bubello liked this
sruti_2003 liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->