Disclosed is a system and method for enabling dynamic class reloading in
the application server environment. Users may specify class versionability
by specifying a list of explicitly versionable classes; and the
application server(s) may execute a background task which operates
periodically to check modified versionable classes, and cause the classes
to be reloaded.
Administrators may specify a set of class files to be treated as a
"bundle". When the bundle is deployed, a deployer manager may obtain a
lock, e.g. a semaphore, referred to as the "dirtyClassListLock". Once this
lock is obtained, the deployer manager may copy all the class files in the
bundle from a deployment environment to their appropriate runtime
locations. After the runtime locations have been updated, the deployer
manager may release the dirtyClassListLock. According to this method, the
background task that checks for and reloads modified classes may also have
to obtain the dirtyClassListLock in order to run. Thus, the background
task will discover and reload class files in the bundle atomically.
Révélé est un système et une méthode pour permettre la classe dynamique rechargeant dans l'environnement de serveur d'application. Les utilisateurs peuvent indiquer le versionability de classe en indiquant une liste de classes explicitement versionable ; et le server(s) d'application peut exécuter un fond chargent qui fonctionne périodiquement pour vérifier les classes versionable modifiées, et causent les classes d'être rechargées. Les administrateurs peuvent indiquer un ensemble de dossiers de classe à traiter comme "paquet". Quand le paquet est déployé, un directeur de deployer peut obtenir une serrure, par exemple une sémaphore, désignée sous le nom du "dirtyClassListLock". Une fois que cette serrure est obtenue, le directeur de deployer peut copier tous les dossiers de classe dans le paquet d'un environnement d'déploiement à leurs endroits d'exécution appropriés. Après temps d'exécution les endroits ont été mis à jour, le directeur de deployer peuvent libérer le dirtyClassListLock. Selon cette méthode, le fond chargent que les contrôles pour et les classes modifiées par recharges peuvent également devoir obtenir le dirtyClassListLock afin de fonctionner. Ainsi, le fond chargent découvrira et rechargera des dossiers de classe dans le paquet atomique.