Création de services personnalisés
Vous pouvez créer un ou plusieurs services personnalisés pour un serveur d'applications. Chaque service personnalisé définit une classe qui est chargée et initialisée dès que le serveur démarre et s'arrête. Chacune de ces classes doit implémenter l'interface com.ibm.websphere.runtime.CustomService. Une fois que vous aurez créé un service personnalisé, utilisez la console pour le configurer pour votre serveur d'applications.
Pourquoi et quand exécuter cette tâche
Les services
personnalisés s'exécutent dans des objets servants, et pas dans des contrôleurs. Par exemple, étant donné que plusieurs objets servants peuvent être démarrés pendant la durée de vie d'un serveur et que ces objets servants peuvent être démarrés longtemps après le lancement du serveur (contrôleur), en fonction des besoins de WLM, un service personnalisé est exécuté au démarrage de chaque objet servant.
Si vous devez définir un point d'ancrage qui s'exécute quand un serveur démarre ou s'arrête, créez une classe de service personnalisé puis utilisez la console pour configurer une instance de service personnalisé. Lorsque le
serveur d'applications démarre, le service personnalisé se lance et s'initialise.
Pour définir une routine qui s'exécute dès qu'un serveur ou un noeud démarre ou s'arrête, développez une classe de service personnalisé puis configurez une instance de service personnalisé. Lorsque le
serveur d'applications ou l'agent de noeud démarre, le service personnalisé se lance et s'initialise.
- Les méthodes d'initialisation et de fermeture doivent rendre le contrôle à l'environnement d'exécution.
- Aucun travail n'est réparti sur l'instance du serveur tant que toutes les méthodes d'initialisation des services personnalisés n'ont pas renvoyé leur contrôle.
- Les méthodes d'initialisation et de fermeture sont appelées une seule fois sur chaque service, et une fois pour chaque processus de système d'exploitation composant l'instance du serveur.
- L'initialisation des données statiques au niveau du processus, sans avoir à quitter le processus, est prise en charge.
- Seules les opérations RMLT (transaction locale du gestionnaire de ressources) de JDBC sont prises en charge. Chaque unité de travail doit être terminée avant le retour des méthodes.
- La création des unités d'exécution n'est pas prise en charge.
- La création de sockets et d'E/S autre que le fichier d'E/S n'est pas prise en charge.
- L'exécution de code Java EE (Java™ Platform, Enterprise Edition) standard, tel que le code client, des servlets et des bean enterprise, n'est pas pris en charge.
- L'interface JTA (Java Transaction API) n'est pas disponible.
- Cette fonction n'est disponible que dans les processus de serveurs Java EE et les processus de serveurs génériques répartis.
- Il n'est pas garanti, lorsque l'exécution appelle la méthode de fermeture, que cette dernière sera appelée avant la fin du processus.
- Les opérations JNDI demandant des ressources ne sont pas prises en charge.
Procédure
Résultats
Le service personnalisé se charge et s'initialise dès que le serveur ou l'agent de noeud démarre ou s'arrête.
Le service personnalisé se charge et s'initialise dès que le serveur démarre ou s'arrête.
Exemple
public class ServerInit implements com.ibm.websphere.runtime.CustomService
{
/**
* The initialize method is called by the application server runtime when the
* server starts. The Properties object that the application server passes
* to this method must contain all of the configuration information that this
* service needs to initialize properly.
*
* @param configProperties java.util.Properties
*/
static final java.lang.String externalConfigURLKey =
"com.ibm.websphere.runtime.CustomService.externalConfigURLKey";
static String ConfigFileName="";
public void initialize(java.util.Properties configProperties) throws Exception
{
if (configProperties.getProperty(externalConfigURLKey) != null)
{
ConfigFileName = configProperties.getProperty(externalConfigURLKey);
}
// Implement rest of initialize method
}
/**
* The shutdown method is called by the application server runtime when the
* server begins its shutdown processing.
*
public void shutdown() throws Exception
{
// Implement shutdown method
}
Que faire ensuite
Vérifiez le serveur d'applications ou l'agent de noeud et assurez-vous que les méthodes d'initialisation et de fermeture du service personnalisé sont exécutées comme prévu.
Vérifiez le serveur d'applications et assurez-vous que les méthodes d'initialisation et de fermeture du service personnalisé sont exécutées comme prévu.