This topic applies only to the IBM Business Process Manager Advanced configuration.

Archivage des instances de processus BPEL et de tâche terminées

Le script administratif archive.py déplace les instances de tâches manuelles et les instances de processus BPEL de niveau supérieur terminées (y compris les données associées) d'une base de données Business Process Choreographer à une base de données d'archive.

Emplacement

Le script archive.py se trouve dans le répertoire admin de Business Process Choreographer :

Exécution du script

L'exécution du script de configuration s'effectue à l'aide de l'outil wsadmin.
  • Le script doit être exécuté en mode connecté avec votre configuration Business Process Choreographer. Les clusters source et cible et le gestionnaire de déploiement doivent être actifs.
  • Incluez les options wsadmin -user et -password pour indiquer un ID utilisateur possédant des droits d'administrateur système WebSphere.
  • Si vous n'utilisez pas le profil par défaut, utilisez l'option wsadmin -profileName profil pour l'indiquer.
  • Si le script est déjà en cours d'exécution, les appels ultérieurs seront sérialisés.
For Linux operating systemFor UNIX operating systemEntrez la commande suivante :
racine_installation/bin/wsadmin.sh –f archive.py paramètres
For Windows operating systemEntrez la commande suivante :
racine_installation\bin\wsadmin –f archive.py paramètres

Paramètres

Vous pouvez fournir les paramètres suivants :
-fromCluster fromClusterName
-toCluster   toClusterName
(-tasks | -processes)
(-all | [-finished] | [-terminated] | [-failed] | [-expired])
[(-templateName nom_modèle [-nameSpace espace_nom] [ -validFromUTC horodatage ])]
[-kind ( todo | invocation | collaboration ) ]
[-completedAfterUTC  horodatage | -completedAfterLocal  horodatage ]
[ -completedBeforeUTC horodatage | -completedBeforeLocal horodatage ]
[-startedBy ID_utilisateur | -createdBy ID_utilisateur]
[ -slice nombre_entités]
[ -limit nombre_entités]
-fromCluster nom_cluster_source
Le nom du cluster sur lequel Business Process Choreographer est configuré identifie la base de données source.
-toCluster nom_cluster_cible
Nom du cluster sur lequel Business Process Archive Manager est configuré. Identifie la base d'archives de destination.
-tasks | -processes
Incluez l'une de ces options pour indiquer si les tâches ou les processus doivent être transférés vers l'archive. Si les tâches et les processus sont spécifiés, une erreur est générée. Les sous-processus sont archivés avec les instances de processus associées auxquelles ils appartiennent. Les modèles de processus et les modèles de tâches sont copiés avec l'instance correspondante dépendant d'eux.
-all | [-finished] [-terminated] [-failed] [-expired]
Indique quelles instances de processus doivent être transférées d'après leur état. L'option -all signifie tous les états de fin ; fini, clos, échec et expiré. Si vous n'indiquez pas -all, vous devez spécifier un ou plusieurs états de fin. L'option -expired n'est valide que pour l'option -tasks.

L'ensemble des instances à archiver peut être restreint davantage en spécifiant des paramètres supplémentaires.

-templateName nom_modèle
Indique, facultativement, le nom du modèle de tâche ou de processus dont les instances seront transférées. Si plusieurs modèles partagent le même nom mais avec des dates validFrom différentes, les instances de tous les modèles de ce nom sont transférées sauf si vous utilisez le paramètre -validFromUTC pour indiquer un modèle particulier. Si vous utilisez l'option -tasks, vous pouvez restreindre davantage la sélection des instances en spécifiant les paramètres -nameSpace et/ou -kind.
-nameSpace espace_nom
Indique, facultativement, l'espace de nom du modèle de tâche dont les instances seront transférées.
-kind ( todo | invocation | collaboration )
Restreint, facultativement l'archivage à un type de tâche spécifique.
-validFromUTC horodatage
Date de début de validité du modèle en temps universel coordonné (UTC). Cette option ne peut être utilisée qu'avec l'option templateName. Le format de la chaîne horodatage est le suivant : 'aaaa-MM-jjThh:mm:ss' (année, mois, jour, T, heures, minutes, secondes). Par exemple 2009-11-20T12:00:00.
-startedBy ID_utilisateur|-createdBy ID_utilisateur
Transfère, facultativement, uniquement les instances de tâche terminées qui ont été créées par un utilisateur spécifié ou les instances de processus démarrées par un ID utilisateur spécifié.
-completedAfterLocal horodatage
Indique, facultativement, que seules les instances achevées après l'heure locale prévue sont archivées. Le format de la chaîne horodatage est le suivant : 'aaaa-MM-jjThh:mm:ss' (année, mois, jour, T, heures, minutes, secondes). Par exemple 2009-11-20T12:00:00. Si vous indiquez uniquement une date, l'heure sera par défaut l'heure locale des serveurs : 00:00:00.
-completedAfterUTC horodatage
Indique, facultativement, que seules les instances achevées après l'heure prévue dans le temps universel coordonné sont archivées. Le format de la chaîne horodatage est le suivant : 'aaaa-MM-jjThh:mm:ss' (année, mois, jour, T, heures, minutes, secondes). Par exemple 2009-11-20T12:00:00. Si vous indiquez uniquement une date, l'heure sera par défaut 00:00:00 (UTC).
-completedBeforeLocal horodatage
Indique, facultativement, que seules les instances achevées avant l'heure locale prévue sont archivées. Le format de la chaîne horodatage est le suivant : 'aaaa-MM-jjThh:mm:ss' (année, mois, jour, T, heures, minutes, secondes). Par exemple 2009-11-20T12:00:00. Si vous indiquez uniquement une date, l'heure sera par défaut l'heure locale des serveurs : 00:00:00.
-completedBeforeUTC horodatage
Indique, facultativement, que seules les instances achevées avant l'heure prévue dans le temps universel coordonné sont archivées. Le format de la chaîne horodatage est le suivant : 'aaaa-MM-jjThh:mm:ss' (année, mois, jour, T, heures, minutes, secondes). Par exemple 2009-11-20T12:00:00. Si vous indiquez uniquement une date, l'heure sera par défaut 00:00:00 (UTC).
-limit nombre_entités
Indique, facultativement, le nombre maximal d'instances de niveau supérieur qui seront archivées par l'appel de script actuel. La valeur par défaut est 1. Si vous appelez le script avec l'option -limit 0, aucune instance n'est archivée et seul le test de cohérence et d'autres actions de reprise nécessaires sont exécutées.
Important : Soyez prudent lorsque vous augmentez la valeur de la variable nombre_entités. Une fois que ce script a été démarré, il n'est pas possible de l'arrêter. Suivant votre environnement, la taille des processus BPEL et le nombre de sous-processus et de tâches manuelles, l'archivage de chaque instance de processus de niveau supérieur peut prendre un temps considérable.
-slice nombre_entités
Indique le nombre d'instances d'objet copiées ou supprimées dans chaque transaction de base de données. La valeur par défaut est 1. L'utilisation de tranches plus grandes peut améliorer les performances, mais nécessite davantage de ressources de base de données, telles que des verrous, pour l'opération d'archivage.
Restriction : Si vous utilisez une base de données Oracle, le fait d'indiquer une taille de tranche très élevée, par exemple, 1000, peut générer une erreur Oracle ORA-01795.

Résultats

Le script indique sur quel serveur il est exécuté :
The archive operation is running on server 'runtimeClusterMember1' 
on node 'runtimeNode01'. Check the log files of the server to get 
information about the progress and results of the archiving operation.
Une fois le script exécuté, il génère le message suivant :
archive.py finished.
Il indique également le nombre d'instances de niveau supérieur transférées vers l'archive ou affiche un avertissement si aucune instance n'a été archivée. Par exemple, l'un des messages suivants est généré :
Pour plus de détails, vérifiez le fichier SystemOut.log sur le membre de cluster où le gestionnaire de la charge de travail a exécuté le script.

Traitement des incidents et récupération

Le script d'archivage devant être exécuté alors qu'il est connecté à la configuration Business Process Choreographer à partir de laquelle les données seront archivées, c'est de là que les gestionnaires d'événements de l'API sont appelés et que les événements et entrées du journal d'audit sont générés.

Une fois que le script a été démarré, il ne peut pas être arrêté. En particulier, si vous spécifiez une valeur élevée pour le paramètre -limit, l'exécution du script peut prendre un temps considérable, ce qui peut générer les avertissements et erreurs suivants :
  • Si l'erreur java.net.SocketTimeoutException: Read timed out ou ADMC0009E: The system failed to make the SOAP RPC call: invoke s'affiche, il est probable qu'une connexion SOAP est arrivée à expiration avant la fin de l'archivage. Dans ce cas, l'archivage se poursuit et vous devez vérifier le fichier journal du membre du cluster dans lequel le gestionnaire charge de travail a exécuté le script, afin de voir si l'exécution s'est achevée correctement. Vous pouvez ignorer ces erreurs de délai d'attente mais pour les éviter, vous devez augmenter les valeurs de délai d'attente, comme décrit dans Délai d'attente de connexion lors de l'exécution d'un script wsadmin.
  • Si l'opération d'archivage dure longtemps, il est normal que des avertissements tels que ThreadMonitor W WSVR0605W: Thread "SoapConnectorThreadPool : 0" (00000032) has been active for 611322 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung. soit enregistrés dans le fichier journal SystemOut.log de la cible de déploiement d'exécution. Si l'opération d'archivage aboutit, un autre message, similaire au suivant, apparaît : ThreadMonitor W WSVR0606W: Thread "SoapConnectorThreadPool : 0" (0000002d) was previously reported to be hung but has completed. It was active for approximately 3958253 milliseconds. There is/are 0 thread(s) in total in the server that still may be hung.
  • Si vous obtenez une erreur CWWBB0665E : Erreur d'archivage avec une erreur Oracle ORA-01795, réduisez la taille du paramètre slice.

Si l'archivage échoue pour un motif quelconque (par exemple, car le serveur est redémarré lors de l'archivage), toute opération d'archivage non terminée ne l'est pas automatiquement. Vous devez appeler à nouveau le script.

Le script fonctionnant en deux phases (copie des instances sélectionnées dans la base de données d'archivage cible, puis suppression des instances de la base de données source), s'il échoue au cours de l'archivage, il se peut que la copie ou la suppression ne se soit pas terminée. Cela peut signifier que les mêmes instances existent et sont visibles dans les deux bases de données.

Les instances en double ne doivent pas poser de problèmes et sont corrigées à la prochaine exécution du script. Une fois que vous avez corrigé le problème à l'origine de l'incident, appelez à nouveau le script archive.py en utilisant les mêmes paramètres d'appel. Si vous appelez le script à l'aide de l'option -limit 0, aucune instance n'est archivée et seuls le test de cohérence et les actions de récupération nécessaires seront effectuées.
  • Si la phase de copie ne s'est pas terminée, le script supprime les instances en double de la base de données d'archivage de destination.
  • Si la phase de copie s'est terminée, mais que la phase de suppression ne s'est pas terminée, le script continue de supprimer les instances en double de la base de données source.
Restriction : Les restrictions suivantes s'appliquent :
  • Vous ne pouvez pas retransférer des objets d'une base de données d'archivage vers une base de données Business Process Choreographer ou vers une autre archive.
  • La première fois que vous archivez des instances dans une nouvelle base de données d'archive, l'identité de la configuration Business Process Choreographer est écrite dans la base de données et, par la suite, seules les instances de cette configuration peuvent être archivées dans cette base de données d'archive.
  • Lorsque les instances sont correctement transférées vers l'archive, elles sont supprimées de la base de données Business Process Choreographer, qui génère un événement de suppression pour l'infrastructure d'événement commune(CEI) et le journal d'audit. Toutefois, il n'est pas possible de déterminer que l'événement de suppression a été généré par une action d'archivage et non par une autre action de suppression, telle qu'un service de nettoyage, une action de suppression lancée par l'utilisateur, un script de suppression ou une suppression automatique une fois l'opération terminée.
  • Vous ne pouvez pas archiver simultanément sur des archives différentes. Les appels parallèles du script archive.py sont sérialisés.
  • Vous ne pouvez pas archiver une instance de processus qui possède le même nom de processus qu'une autre instance de processus dans la base de données d'archivage.
  • Vous ne pouvez pas archiver une instance de processus qui possède les mêmes valeur d'ensemble de corrélations qu'une autre instance de processus dans la base de données d'archivage.
  • Si vous archivez des instances d'un modèle de processus, puis que vous annulez le déploiement de ce modèle avant de redéployer le même modèle de processus avec la date de début valide inchangée, vous ne pouvez pas archiver de nouvelles instances de ce modèle de processus dans la même base de données d'archivage. Cela ne pose pas de problème pour la gestion normale des versions de modèle de processus, où une date de début valide différente est utilisée.
Toutefois, même si l'une des restriction vous empêche d'archiver certaines instances de processus dans une base de données d'archivage, vous pouvez archiver ces instances de processus dans une autre base de données d'archivage, pour laquelle les conditions de restriction ne sont pas vérifiées.

Appel d'exemples

Pour transférer jusqu'à 500 instances de processus BPEL terminées et arrêtées de la base de données de la configuration Business Process Choreographer sur le cluster "ProcessCluster" terminé avant 2010 vers la base de données d'archivage du système Business Process Archive Manager configuré sur le cluster "SupportCluster", effectuez les opérations ci-après.

For Linux operating systemFor UNIX operating systemEntrez la commande suivante :
racine_installation/bin/wsadmin.sh 
    –f racine_installation/ProcessChoreographer/admin/archive.py 
    -fromCluster ProcessCluster -toCluster SupportCluster 
    -completedBeforeLocal 2010-01-01T00:00:00
    -processes
    -finished -terminated -limit 500
For Windows operating systemEntrez la commande suivante :
racine_installation\bin\wsadmin 
    –f racine_installation\ProcessChoreographer\admin\archive.py 
    -fromCluster ProcessCluster -toCluster SupportCluster 
    -completedBeforeLocal 2010-01-01T00:00:00
    -processes
    -finished -terminated -limit 500