-
1. Re: JBoss 7, subsystem for Quartz
sfcoy Jun 5, 2013 5:38 AM (in response to patriarch24)This is fun stuff.
What is the deployment processor deploying?
-
2. Re: JBoss 7, subsystem for Quartz
patriarch24 Jun 5, 2013 7:37 AM (in response to patriarch24)I'm looking into the mail subsystem, which contains everything I need (JNDI binding, similar configuration model). At this time, I'm trying to transform it to my needs, I will let you know.
The deployment processor won't deploy nothing, as it is not made for that. In fact, the add handler creates the service which is responsible for the scheduler creation.
-
3. Re: JBoss 7, subsystem for Quartz
patriarch24 Jun 6, 2013 3:31 AM (in response to patriarch24)Finally, I've managed to create a subsystem with Quartz.
But I have a big problem: I use the BinderService to bind the Quartz scheduler to JNDI. When done, I have many errors such as
INFO: JBAS014774: Service status report JBAS014775: New missing/unsatisfied dependencies: service jboss.naming.context.java.jboss (missing) dependents: [service jboss.naming.context.java.jboss.quartz.Scheduler]
When I install the subsystem on my JBoss 7.1.1 installation, I have the following problems :
16:58:03,209 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report JBAS014775: New missing/unsatisfied dependencies: service jboss.binding.http (missing) dependents: [service jboss.web.connector.http] service jboss.binding.management-http (missing) dependents: [service jboss.serverManagement.controller.management.http] service jboss.binding.management-native (missing) dependents: [service jboss.remoting.server.management] service jboss.binding.osgi-http (missing) dependents: [service jboss.osgi.as.framework.bootstrap] service jboss.binding.remoting (missing) dependents: [service jboss.remoting.server.remoting-connector] service jboss.binding.txn-recovery-environment (missing) dependents: [service jboss.txn.ArjunaRecoveryManager] service jboss.binding.txn-status-manager (missing) dependents: [service jboss.txn.ArjunaRecoveryManager] service jboss.outbound-socket-binding.mail-smtp (missing) dependents: [service jboss.mail-session.java:jboss/mail/Default] service jboss.socket-binding-manager (missing) dependents: [service jboss.serverManagement.controller.management.http, service jboss.remoting.server.management, service jboss.remoting.server.remoting-connector] 16:58:03,234 INFO [org.jboss.as] (Controller Boot Thread) JBAS015954: Admin console is not enabled 16:58:03,235 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 4377ms - Started 108 of 166 services (27 services failed or missing dependencies, 30 services are passive or on-demand)
This is the code I use to bind the scheduler :
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> controllers) throws OperationFailedException { final ServiceTarget serviceTarget = context.getServiceTarget(); ModelNode fullTree = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); final SchedulerConfig config = from(context, fullTree); final QuartzService service = new QuartzService(config); // creates the scheduler internally final String jndiName = getJndiName(operation, service); final ServiceName serviceName = SERVICE_NAME_BASE.append(jndiName); final ServiceBuilder<?> schedulerBuilder = serviceTarget.addService(serviceName, service) .setInitialMode(ServiceController.Mode.ACTIVE) .addListener(verificationHandler); ManagedReferenceFactory valueManagedReferenceFactory = new ValueManagedReferenceFactory(new ImmediateValue<Object>(service.getValue())); // service.getValue() returns the scheduler final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(jndiName); final BinderService binderService = new BinderService(bindInfo.getBindName()); final ServiceBuilder<?> binderBuilder = serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addInjection(binderService.getManagedObjectInjector(), valueManagedReferenceFactory) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .setInitialMode(ServiceController.Mode.ACTIVE) .addListener(verificationHandler); controllers.add(schedulerBuilder.install()); controllers.add(binderBuilder.install()); }
I have no errors without the Quartz subsystem. I guess I have a problem registering the services (in SchedulerAdd.java), but I don't see where is the problem.
Maybe should I use the naming subsystem to bind the schedulers?
Thanks for any help!
Edit on 06/06
-
4. Re: JBoss 7, subsystem for Quartz
ctomc Jun 7, 2013 10:57 PM (in response to patriarch24)hi,
first error is related to some probably mistake in socket binding config.
does server boot without any problems if you dont enable your subsystem?
-
5. Re: JBoss 7, subsystem for Quartz
patriarch24 Jul 23, 2015 11:22 AM (in response to ctomc)Yes. If I disable the subsystem, no error occurs. When I add it, it fails everytime.
I added my source code in attachment. Maybe it will help you help me. I use a fresh install of JBoss 7.1.1.Final (download, unzip and run). I added quartz 2.1.7 as a module (org.quartz).
Thank you very much for your help!
Edit: added standalone.xml.
-
6. Re: JBoss 7, subsystem for Quartz
sfcoy Jun 10, 2013 8:10 PM (in response to patriarch24)What happens if you try binding to java:jboss/QuartzScheduler instead?
The java:global JNDI namespace is part of the container ENC namespace and I'm not sure it's legitimate for you to try and bind anything there.
-
7. Re: JBoss 7, subsystem for Quartz
patriarch24 Jun 11, 2013 2:38 AM (in response to sfcoy)The same problem occurs with java:jboss instead of java:global; in fact, I tried with java:jboss first.
-
8. Re: JBoss 7, subsystem for Quartz
sfcoy Jun 13, 2013 7:53 AM (in response to patriarch24)Hi Cyril,
I think that instead of performing the JNDI binding in
{code:xml}<subsystem xmlns="urn:jboss:domain:naming:1.1">
<bindings>
<object-factory name="java:global/quartz/Scheduler"
module="com.lectra.fip.jboss.quartz" class="com.lectra.fip.jboss.extension.SchedulerObjectFactory" />
</bindings>
</subsystem>{code}
you should be binding programmatically in the same way that the mail subsystem does it, using APIs that are available in the JBossAS naming subsystem.
-
9. Re: JBoss 7, subsystem for Quartz
patriarch24 Jun 13, 2013 8:42 AM (in response to sfcoy)In fact, I'm already binding the scheduler the same way the mail subsystem does, as I just reused this code as-is, renaming the classes to my purpose. In the last version of my standalone.xml file, I don't use the naming subsystem to perform that.
You can reproduce the problem using the config I attached in my previous post https://community.jboss.org/message/822209#822209.
-
10. Re: JBoss 7, subsystem for Quartz
ctomc Jun 13, 2013 8:44 AM (in response to patriarch24)I think this should be working version of scheduler subsystem:
https://github.com/ctomc/quartz-subsystem
didn't test it as part of AS but it should work.
when you are done with it, i can remove that code from github given that it is yours and not mine.
also as Stephen said, no need to include anything in naming subsystem configuration...
--
tomaz
-
11. Re: JBoss 7, subsystem for Quartz
patriarch24 Jun 14, 2013 8:28 AM (in response to ctomc)First, thank you for your help.
I just tried to deploy the subsystem, and it doesn't work:
D:\Apps\Red Hat\jboss-as-7.1.1.Final>bin\standalone.bat Calling "D:\Apps\Red Hat\jboss-as-7.1.1.Final\bin\standalone.conf.bat" =============================================================================== JBoss Bootstrap Environment JBOSS_HOME: D:\Apps\Red Hat\jboss-as-7.1.1.Final JAVA: D:\Apps\Java\jdk-1.6.0_24\bin\java JAVA_OPTS: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml =============================================================================== 14:13:08,855 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA 14:13:08,969 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 14:13:09,000 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting 14:13:09,495 INFO [org.xnio] XNIO Version 3.0.3.GA 14:13:09,495 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) 14:13:09,502 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA 14:13:09,509 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers 14:13:09,509 INFO [org.jboss.remoting] JBoss Remoting version 3.2.3.GA 14:13:09,516 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 39) JBAS011800: Activating Naming Subsystem 14:13:09,518 INFO [org.jboss.as.osgi] (ServerService Thread Pool -- 40) JBAS011940: Activating OSGi Subsystem 14:13:09,522 INFO [org.jboss.as.security] (ServerService Thread Pool -- 45) JBAS013101: Activating Security Subsystem 14:13:09,523 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 49) JBAS015537: Activating WebServices Extension 14:13:09,525 INFO [org.jboss.as.configadmin] (ServerService Thread Pool -- 27) JBAS016200: Activating ConfigAdmin Subsystem 14:13:09,525 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem. 14:13:09,533 INFO [org.jboss.as.security] (MSC service thread 1-1) JBAS013100: Current PicketBox version=4.0.7.Final 14:13:09,537 INFO [com.lectra.fip.jboss.extension.QuartzService] (ServerService Thread Pool -- 51) Using configuration file D:\Apps\Red Hat\jboss-as-7.1.1.Final\standalone\configuration/quartz.properties 14:13:09,565 INFO [org.jboss.as.naming] (MSC service thread 1-7) JBAS011802: Starting Naming Service 14:13:09,576 INFO [org.jboss.as.mail.extension] (MSC service thread 1-12) JBAS015400: Bound mail session [java:jboss/mail/Default] 14:13:09,576 INFO [org.jboss.as.connector] (MSC service thread 1-14) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final) 14:13:09,600 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3) 14:13:09,610 INFO [org.quartz.impl.StdSchedulerFactory] (ServerService Thread Pool -- 51) Using default implementation for ThreadExecutor 14:13:09,633 INFO [org.quartz.core.SchedulerSignalerImpl] (ServerService Thread Pool -- 51) Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 14:13:09,635 INFO [org.quartz.core.QuartzScheduler] (ServerService Thread Pool -- 51) Quartz Scheduler v.2.1.7 created. 14:13:09,637 INFO [org.quartz.simpl.RAMJobStore] (ServerService Thread Pool -- 51) RAMJobStore initialized. 14:13:09,646 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-8) JBoss Web Services - Stack CXF Server 4.0.2.GA 14:13:09,647 INFO [org.quartz.core.QuartzScheduler] (ServerService Thread Pool -- 51) Scheduler meta-data: Quartz Scheduler (v2.1.7) 'JBossQuartzScheduler' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 5 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. 14:13:09,657 INFO [org.quartz.impl.StdSchedulerFactory] (ServerService Thread Pool -- 51) Quartz scheduler 'JBossQuartzScheduler' initialized from the specified file : 'D:\Apps\Red Hat\jboss-as-7.1.1.Final\standalone\configuration/quartz.properties' 14:13:09,659 INFO [org.quartz.impl.StdSchedulerFactory] (ServerService Thread Pool -- 51) Quartz scheduler version: 2.1.7 14:13:09,662 INFO [com.lectra.fip.jboss.extension.QuartzService] (MSC service thread 1-2) Starting the scheduler JBossQuartzScheduler 14:13:09,663 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-2) Scheduler JBossQuartzScheduler_$_NON_CLUSTERED started. 14:13:09,665 INFO [com.lectra.fip.jboss.extension.SchedulerAdd] (MSC service thread 1-10) Bound scheduler to: java:jboss/QuartzScheduler 14:13:09,929 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-4) JBAS015012: Started FileSystemDeploymentService for directory D:\Apps\Red Hat\jboss-as-7.1.1.Final\standalone\deployments 14:13:12,947 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report JBAS014775: New missing/unsatisfied dependencies: service jboss.binding.http (missing) dependents: [service jboss.web.connector.http] service jboss.binding.management-http (missing) dependents: [service jboss.serverManagement.controller.management.http] service jboss.binding.management-native (missing) dependents: [service jboss.remoting.server.management] service jboss.binding.osgi-http (missing) dependents: [service jboss.osgi.as.framework.bootstrap] service jboss.binding.remoting (missing) dependents: [service jboss.remoting.server.remoting-connector] service jboss.binding.txn-recovery-environment (missing) dependents: [service jboss.txn.ArjunaRecoveryManager] service jboss.binding.txn-status-manager (missing) dependents: [service jboss.txn.ArjunaRecoveryManager] service jboss.outbound-socket-binding.mail-smtp (missing) dependents: [service jboss.mail-session.java:jboss/mail/Default] service jboss.socket-binding-manager (missing) dependents: [service jboss.serverManagement.controller.management.http, service jboss.remoting.server.management, service jboss.remoting.server.remoting-connector] 14:13:12,980 INFO [org.jboss.as] (Controller Boot Thread) JBAS015954: Admin console is not enabled 14:13:12,981 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 4279ms - Started 108 of 166 services (27 services failed or missing dependencies, 30 services are passive or on-demand)
As you can see, the Quartz scheduler is started (the same) then bound to JNDI (thank you !), but in the end, the same problem occurs. That's really strange, I cannot see why.
Note that when I stop the server, I get this log:
14:25:00,867 INFO [org.jboss.as.logging] JBAS011503: Restored bootstrap log handlers 14:25:00,868 INFO [com.lectra.fip.jboss.extension.SchedulerAdd] Removed scheduler: java:jboss/QuartzScheduler 14:25:00,874 INFO [org.jboss.as.controller] JBAS014774: Service status report JBAS014776: Newly corrected services: service jboss.binding.http (new available) service jboss.binding.management-http (new available) service jboss.binding.management-native (new available) service jboss.binding.osgi-http (new available) service jboss.binding.remoting (new available) service jboss.binding.txn-recovery-environment (new available) service jboss.binding.txn-status-manager (new available) service jboss.outbound-socket-binding.mail-smtp (new available) service jboss.socket-binding-manager (new available) 14:25:00,875 INFO [org.jboss.as] JBAS015950: JBoss AS 7.1.1.Final "Brontes" stopped in 11ms
I've been on this code for a long time, maybe there is something I miss. Any suggestions?
Once more, thank you for your help!
-
12. Re: JBoss 7, subsystem for Quartz
nlsurfman Sep 19, 2013 8:01 AM (in response to patriarch24)Sorry to wake up a relatively old thread, but did you manage to get the subsystem running? I am migrating from JBoss 4.2.2 GA (I know, don't ask...) to Wildfly 8 and I really would like to see this subsystem nicely integrated. Kudos for your effort so far!