Comment charger une Batterie de serveurs SharePoint pour exécuter un Travail de Minuteur sur un serveur spécifique?
Nous avons un SP du travail du minuteur qui a été en cours d'exécution fine pour un bon moment. Récemment, les admins s'enrôle un autre serveur dans la batterie de serveurs, et, par conséquent, SharePoint décidé de commencer l'exécution de ce travail de minuteur sur cet autre serveur. Le problème est que le serveur n'a pas toutes les dépendances installées (c'est à dire, Oracle) et de sorte que le travail est un échec. Je suis à la recherche pour le chemin de moindre résistance ici. Ma question est-il un moyen de forcer un travail de minuteur pour s'exécuter sur le serveur que vous voulez?
[Modifier]
Si je peux le faire par le biais de code qui fonctionne pour moi. J'ai juste besoin de savoir ce que l'API est à faire si l'on n'existe pas.
Vous devez vous connecter pour publier un commentaire.
Je m'excuse si je pousse à l'évidence; je n'en ai pas vu quelqu'un descendre sur elle encore.
Contraindre un personnalisé du travail du minuteur (qui est, votre propre travail du minuteur de classe qui dérive de SPJobDefinition) se fait par le contrôle des paramètres du constructeur.
Les travaux du minuteur généralement exécuté sur le serveur où ils sont soumis (comme indiqué par vinny) en supposant qu'aucun serveur cible est spécifié lors de la création du travail du minuteur. Les deux constructeurs surchargés pour la SPJobDefinition type, bien que, pour accepter un SPServer et un SPJobLockType que les troisième et quatrième paramètres, respectivement. À l'aide de ces deux paramètres correctement vous permettra de dicter où votre tâche en cours d'exécution.
En spécifiant votre serveur cible comme le SPServer et un SPJobLockType de "Travail", vous pouvez limiter la minuterie instance de travail que vous créez pour s'exécuter sur le serveur de votre choix.
Pour de la documentation sur ce que j'ai décrit, consultez le site web MSDN: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spjobdefinition.spjobdefinition.aspx.
Je ne sais rien à propos du code, vous êtes en cours d'exécution, mais des travaux du minuteur personnalisés sont généralement le programme d'installation lors de l'activation de la Fonctionnalité. J'ai eu le sentiment que votre base de code pourrait ne pas être votre propre (?); si oui, vous voudrez peut-être regarder pour un ou plusieurs types/classes qui dérivent de SPFeatureReceiver. Dans le FeatureActivated méthode de telles classes est l'endroit où vous pourriez trouver le code qui mènent réellement le travail du minuteur de l'instanciation.
Bien sûr, vous aurez également besoin de regarder la coutume du travail du minuteur de la classe (ou des classes) eux-mêmes pour voir comment ils sont instanciés. Parfois, les développeurs vont construire l'instanciation de la classe dans la classe elle-même (via la Méthode de Fabrique de modèle, par exemple). Entre le travail du minuteur de classe et SPFeatureReceiver implémentations, cependant, vous devriez être sur le chemin vers la recherche de ce qui doit changer.
J'espère que ça aide!
Serveurs dans une batterie de serveurs doivent être identiques.
S'il vous arrive d'utiliser les ordinateurs virtuels pour votre site web avant la fin, vous pouvez prendre un serveur et la fourniture de copies de sorte que vous savez qu'ils sont tous identiques.
Les travaux du minuteur par définition s'exécuter sur tous les serveurs web frontaux.
Si vous avez besoin de logique programmée pour s'exécuter sur un serveur spécifique, vous devez soit spécifiquement code présent dans le travail de minuteur, ou l'utilisation d'un "standard" NT Service à la place.
Je pense que l'un des effets secondaires de réglage SPJobLockType de 'Travail' est que ça va s'exécuter sur le serveur où le travail est soumis.
Vous pouvez implémenter un Service Web avec l'entreprise logig et de déployer ce Service Web à une seule machine. Ensuite, votre Travail de Minuteur pourrait déclencher votre service web régulièrement.
La il faudrait être pas si important que cela a été votre travail de minuteur est en cours d'exécution. SharePoint décide lui-même pour exécuter le travail du minuteur.