-
1. Re: API to hot deploy scheduled service...?
marc.fleury Jul 4, 2002 3:05 PM (in response to fredericagneray)Yeah,
package your service as a SAR and drop it in the deploy directory that will deploy it dynamically (without the restart) then you can safely remove it by removing the file. Or you can call the MainDeployer (available through JMX) to dynamically deploy an URL you feed it.
Basically the deploy directory scanner is a wrapper around that JMX internal API deployment,
Dig around in the base distribution and you will figure it out,
good luck -
2. Re: API to hot deploy scheduled service...?
fredericagneray Jul 5, 2002 5:13 AM (in response to fredericagneray)Ok, I'll look in this direction.
But one of the main requirement is to enable this deployment to be used by the end user, and I'm not expecting them to drop a jar in the deploy directory.
The idea was to have this API used by the web developer to build a GUI around it, so the end user could change the time or create a service via few clicks...
I'll have a close look at deploying a service via a URL.
Thanks. -
3. Re: API to hot deploy scheduled service...?
davidjencks Jul 5, 2002 9:15 AM (in response to fredericagneray)If the new services need new classes then you need to investigate the MainDeployer.deploy or the deployment scanner. If all the classes are already present and you just need to set up running something periodically I think the Scheduler mbean may do what you want. Look in varia/output/lib/ for scheduler-plugin
-
4. Re: API to hot deploy scheduled service...?
fredericagneray Jul 5, 2002 9:47 AM (in response to fredericagneray)I thought of a new MBean for each new task, and add a Notification to the Timer MBean to the newly created MBean.
Then at notification the new MBean will call the service and perform the required task.
Like that the agent would remain fairly simple.
If the classes are not present than I'll use the MainDeployer, but as a first instance I'll suppose all the classes are present.
we also need at startup to load all the task from the database, and save the task as well. So I'll start implementing something like that.
If someone got any comment or is interrested by this service... -
5. Re: API to hot deploy scheduled service...?
fredericagneray Jul 23, 2002 8:44 AM (in response to fredericagneray)I wrote an API to allow people to create new scheduled tasks. The differences with what Andreas Schaefer wrote are:
1/ The task parameter are loaded from a database (as opposed to jboss.jcml), and started when the server start.
2/ When a task is created it is saved into the DB, therefore it will be restarted when the server start again
3/ If you stop a task it will be deleted from the DB
This scheduler is more dynamic than the previous one, and enable developer to write an interface so the end-user can stop or start a task.
the Database looks like:
CREATE TABLE [creditderivative].[scheduledTasks] (
[name] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[start] [datetime] NULL ,
[howOften] [bigint] NULL ,
[state] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[notificationId] [int] NULL ,
[taskClass] [varchar] (200) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
GO
the code needs to be compiled with:
jboss-j2ee.jar
jboss.jar
jdbc.jar
jmxri.jar
log4j.jar
need to add:
to jboss.jcml
if anybody is interrested I will make something more user friendly and working closer to the JBoss infrastructure.
Cheers. -
6. Re: API to hot deploy scheduled service...?
fredericagneray Jul 23, 2002 8:59 AM (in response to fredericagneray)I wrote an API to allow people to create a new scheduled task. The differences with what Andreas Schaefer wrote are:
1/ The task parameter are loaded from a database (as opposed to jboss.jcml), and started when the server start.
2/ When a task is created it is saved into the DB, therefore it will be restarted when the server start again
3/ If you stop a task it will be deleted from the DB
This scheduler is more dynamic than the previous one, and enable developer to write an interface so the end-user can stop or start a task.
YOu can find the code into the Test Forum section of this site. (dunno why but i couldn't post anything in this section, probably because the answer URL made by the server was too long...)
the Database looks like:
CREATE TABLE [creditderivative].[scheduledTasks] (
[name] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[start] [datetime] NULL ,
[howOften] [bigint] NULL ,
[state] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[notificationId] [int] NULL ,
[taskClass] [varchar] (200) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
GO
the code needs to be compiled with:
jboss-j2ee.jar
jboss.jar
jdbc.jar
jmxri.jar
log4j.jar
need to add:
to jboss.jcml
if anybody is interrested I will make something more user friendly and working closer to the JBoss infrastructure.
Cheers.