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 :

racine_installation/ProcessChoreographer/admin
racine_installation\ProcessChoreographer\admin
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.


Entrez la commande suivante :
racine_installation/bin/wsadmin.sh –f archive.py paramètres

Entrez 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.


Entrez 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

Entrez 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