Configuration du planificateur pour l'exécution d'un travail sur une instance ou un membre de cluster
Vous pouvez configurer le planificateur de HCL Commerce afin d'exécuter un travail sur une instance ou un membre de cluster spécifique de HCL Commerce. Cela peut s'avérer utile si vous souhaitez consacrer un seul serveur à des travaux planifiés.
Pourquoi et quand exécuter cette tâche
- Modifiez les serveurs d'applications exécutant l'instance HCL Commerce afin d'affecter au planificateur un identificateur unique.
- Créez ou mettez à jour un travail planifié afin qu'il s'exécute sur une instance HCL Commerce unique.
Pour identifier de façon unique chaque processus serveur exécutant HCL Commerce, le paramètre JVM suivant est nécessaire : com.ibm.commerce.scheduler.SchedulerHostName
La valeur doit être unique parmi tous les serveurs exécutant votre instance HCL Commerce. Vous pourrez ainsi créer un travail planifié s'exécutant sur un serveur particulier de votre cluster. Voici un exemple de valeur recommandée : node name. server name. Il sera unique dans votre cible.
Vous pouvez spécifier cette valeur à l'aide de la WebSphere Application Server Administrative Console et en indiquant cette propriété système dans le jeu de paramètres JVM de l'application HCL Commerce :
Pour créer un travail devant s'exécuter sur un hôte donné, lors de l'appel de l'instruction AddJob pour créer le travail planifié, indiquez le paramètre d'hôte et utilisez la valeur identifiant de manière unique le processus de planificateur devant exécuter le travail planifié.
Pour modifier manuellement un travail existant, mettez à jour la colonne SCCHOST dans la table SCHCONFIG pour le travail que vous souhaitez exécuter sur une instance donnée. Lorsque vous modifiez la colonne SCCHOST, veillez à indiquer une valeur en minuscules. Pour des raisons de performances, le planificateur considère que le paramètre d'hôte est indiqué en minuscules. L'instruction AddJob met automatiquement la valeur d'hôte en minuscules, mais rien n'est prévu au niveau de la base de données pour respecter cette restriction.
Procédure
-
Dans un environnement de développement ou de test, pour configurer le planificateur de sorte qu'il exécute un travail sur un seul hôte, effectuez les étapes suivantes pour chaque nœud du cluster :
- Ouvrez le WebSphere Application Server Administrative Console.
- Sélectionnez .
- Sélectionnez le nom du Transaction server. Par exemple, server1.
- Dans le panneau Serveurs d'applications, sous l'en-tête Infrastructure du serveur, sélectionnez .
- Dans le panneau Définition des processus, sous l'en-tête Propriétés supplémentaires, sélectionnez Machine virtuelle Java.
- Dans la fenêtre du milieu, dans la partie droite sous l'en-tête Propriétés supplémentaires, sélectionnez Propriétés personnalisées.
- Cliquez sur Nouveau. Une nouvelle page apparaît dans laquelle vous pouvez ajouter des propriétés JVM.
- Dans la zone Nom, entrez com.ibm.commerce.scheduler.SchedulerHostName.
- Dans la zone Valeur, entrez l'identificateur unique de l'instance de planificateur sur ce processus Java.
- Dans la zone Description, entrez le paramètre de nom d'hôte que doit utiliser l'instance de planificateur.
- Pour les environnements de production, afin de configurer le planificateur de sorte qu'il exécute un travail sur un seul hôte, procédez comme suit pour chaque nœud du cluster :Ajoutez une variable d'environnement au conteneur Docker du nœud. Le nom de la variable est SCHEDULER_ID et sa valeur est l'identificateur unique de l'instance du planificateur. Par exemple, voici comment déclarer la variable dans Docker Composer :
version: "2" services: app: image: ts-app:latest environment: - SCHEDULER_ID=host1 -
Pour un déploiement Kubernetes, des étapes supplémentaires sont requises pour définir des valeurs SCHEDULER_ID uniques pour différentes instances Transaction server.
- Obtenez le groupement Git HCL Commerce ou modifiez votre source existante.
Pour plus d'informations sur l'obtention des derniers fichiers HCL Commerce, voir HCL Commerce eAssemblies.
- Ouvrez le répertoire hcl-commerce-helmchart\stable\hcl-commerce\templates\ et recherchez le fichier ts-app.yaml.
- Créez une copie du fichier. Par exemple, ts-app-scheduler1.yaml.
- Ouvrez le fichier pour l'éditer.
- Ajoutez la variable d'environnement SCHEDULER_ID et affectez une valeur unique pour chaque pod.
env: - name: "SCHEDULER_ID" value: "SCHEDULER_1" - Modifiez la ligne suivante.
name: {{ $.Values.common.tenant }}{{ $.Values.common.environmentName}}{{ $envType }}$.Values.tsApp.nameA :name: {{ $.Values.common.tenant }}{{ $.Values.common.environmentName}}{{ $envType }}$.Values.tsApp.name-scheduler
- Ajoutez la variable d'environnement SCHEDULER_ID et affectez une valeur unique pour chaque pod.
- Enregistrez et fermez le fichier.
- Répétez ce processus pour chaque pod du planificateur.
- Déployez ou redéployez la charte Helm HCL Commerce avec ces modifications.
Avec cette modification, les pods supplémentaires du planificateur, avec des ID de planificateur uniques, sont déployés. Vous pouvez ensuite planifier des travaux sur un nœud particulier en faisant référence au SCHEDULER_ID.
- Obtenez le groupement Git HCL Commerce ou modifiez votre source existante.