Search FAQs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We launched QuartzDesk for public in May 2013. The development started about 2 years prior to the launch date. Yes, there is. To access the online demo all you need to do is fill in this form. After you submit the form, you will receive online demo access and usage instructions and you can have a play. The online demo showcases the QuartzDesk Enterprise edition. We provide three editions - one free edition (Lite) and two paid editions (Standard and Enterprise). For their differences, please refer to the Editions Comparison Matrix. No. QuartzDesk can only be used to manage and monitor Java Quartz schedulers. At this time, we do not have any plans to add support for Quartz.NET. If you are interested in using QuartzDesk with Quartz.NET schedulers, please let us know. If we see enough demand, we may reconsider and implement support for Quartz.NET. QuartzDesk supports all Quartz scheduler versions from 1.8.5 to 2.3.0. QuartzDesk platform runs on all modern Java application servers and databases. For a complete list of all supported platforms and details, please refer to our Supported Platforms list. It depends. We aim to release a new version every 30 days or sooner and we typically have one bigger release every 6 months. You can check our release history to see the actual release frequency etc. Yes, we do. If you follow us on social networks (Facebook, Google+, Twitter), then you will receive all important product related news, including notifications on new releases, bug fixes, etc. The social traffic that we generate is fairly low so you do not have to be worried about ours posts filling up your news feed. US ECCN: 5D992. EU ECCN: QuartzDesk is not subject to Wassenaar dual-use Control List and as such it does not have / need the EU ECCN. Absolutely, but read on. QuartzDesk is a generic Java Quartz scheduler management and monitoring platform that does not provide any scheduling capabilities by itself. It always relies on an external Java Quartz scheduler instance it connects to. In order to be able to schedule execution of shell command or scripts, you need to have a Java Quartz scheduler based application that provides Quartz job implementation classes that allow you to wrap execution of shell commands and scripts. We provide such an application, called QuartzDesk Executor (QE), free of charge and with complete source code. The application source code and binary releases can be obtained from our public GitHub repository: https://github.com/quartzdesk/quartzdesk-executor We and some of our customers use QE as a replacement for legacy Unix/Linux cron-based scheduling systems. For example, we use QE in our backend systems to schedule, manage and monitor the following types of jobs:
All Quartz job store types are supported by QuartzDesk. As a matter of fact, the Quartz job store type and configuration details are completely transparent from the QuartzDesk's perspective because QuartzDesk *NEVER* accesses the job store directly, for example through JDBC etc. QuartzDesk accesses the Quartz job store through higher-lever Quartz scheduler APIs that shield us from the underlying job store details. QuartzDesk can send notification messages through the following channels:
A custom MessageReceiverService JAX-WS web service implementation enables you to perform custom processing of received notification messages. For example, you can easily turn received notification messages into Atlasian Jira or Bugzilla tickets etc. This is because Tomcat 10.x is based on Jakarta EE rather than Java EE. In Jakarta EE, various javax.* packages have been migrated to new jakarta.* packages and this causes various java.lang.ClassNotFoundException errors when deploying applications that still use the "old" Java EE javax.* packages. Because QuartzDesk aims to support a wide range of modern application servers / containers most of which are still Java EE-based, it is currently impossible to migrate QuartzDesk to Jakarta EE. Fortunately, Tomcat 10.x provides an easy way to host "old" Java EE-based applications, QuartzDesk Web Application included. All you need to do is add the following line to the QuartzDesk Web Application's deployment descriptor typically located in ${TOMCAT_HOME}/conf/Catalina/localhost/quartzdesk.xml file. <Context path="/quartzdesk" docBase="..."> ... <Loader jakartaConverter="TOMCAT" /> ... </Context> No, it is not because none of the QuartzDesk components use Log4j2 logging framework for logging. All QuartzDesk components use Logback logging framework through Slf4j logging API. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We currently accept the following payment methods: Debit or Credit Cards: To pay with your credit or debit card, please choose the PayPal payment method in our eshop. We use PayPal to process all bank card transactions. Please note that you do not have to have a PayPal account to pay with your debit or credit card through PayPal. After you have been redirected to PayPal, select the Pay with a debit or credit card option, fill in your bank card details and click Pay. You can refer to the picture below. PayPal Balance: If you have a PayPal account, you can use this option to pay quickly and easily. Please choose the PayPal payment method in our online eshop and after being redirected to the PayPal checkout page, select the Pay with my PayPal account option, fill in your PayPal login credentials and log in. You can refer to the picture below. Wire Transfer: You can make a quick and safe bank wire transfer payment any time you need. Upon receiving your order, we will send you a pro-forma invoice with payment details (amount due, our bank account details) for you to realize your payment. Upon receiving your payment, we will send you the final invoice and license keys. No, we do not. However, we offer 30-day free and fully-functional trial licenses for all paid QuartzDesk editions. During the 30-day trial period we will provide you with unlimited technical support so that you can install and test the product as you wish. If you need more time to evaluate our product, please contact our Technical Support through our online chat or via email at support@quartzdesk.com, and request an extension of your trial. Starting with QuartzDesk release 1.6.0, the QuartzDesk Public API library (quartzdesk-api-x.y.z.jar) source code is freely available and can be redistributed without any restrictions. The source code can be downloaded from the Maven Central repository and it is not available for download on our website. The QuartzDesk Web Application (quartzdesk-web-x.y.z.war) and QuartzDesk JVM Agent (quartzdesk-agent-x.y.z.jar) source code is available only to selected OEM partners who wish to re-brand and re-distribute QuartzDesk as a part of their own product offering. If you wish to receive detailed information on our OEM partnership program, please send an inquiry to sales@quartzdesk.com. We provide three QuartzDesk editions - Lite, Standard and Enterprise. The Lite edition is free and the other two editions are paid. For details on features available in individual QuartzDesk editions, please refer to the Editions Comparison Matrix. For licensing and pricing details, please refer to Pricing & Licensing Terms. No, you can use the same license key that you use for the QuartzDesk Web Application installation. We offer discounts programs to the following subject categories. To apply we ask you to fill in and submit an application form with the relevant evidence.
After you submit the application form, we will review the submitted data and inform you whether the discount can be granted and the actual discount percentage applicable to your case. Besides the above mentioned discounts, we also offer quantity and promotional discounts. Please use our Live Chat or send us a message to find out about the applicable discounts. Yes, it is perfectly possible. The upgrade process is depicted in the following picture: To upgrade you will need to purchase a new replacement enterprise edition license for a discounted price. The discount is proportional to the length of unused SW Maintenance of your existing standard edition license. Please contact us prior to upgrading so that we can give you a special discount coupon code that you will redeem in our online eshop to receive the replacement enterprise edition license for a discounted price. The actual formula to calculate the upgrade price is: Enterprise Edition License Price - ( Standard Edition License Price / 365 ) * Number of Unused SW Maintenance Days of the Standard Edition License Please note that the SW Maintenance of the replacement enterprise edition license will start on the day on which you purchase the license and will end 12 months after that. Therefore, with the upgrade we automatically extend your original SW Maintenance - see the picture above. No, it is not possible. You will need to purchase a new standard edition license, e.g. after the SW Maintenance of your current enterprise edition license expires. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All non-free QuartzDesk edition licenses come automatically with 12 months of SW Maintenance that includes unlimited technical support and free product upgrades. Once the SW Maintenance period is over, your software remains fully functional, but you will not be able to upgrade it nor will you be eligible to receive any technical support. You can renew your SW Maintenance anytime for a highly discounted price. 30 days prior to your your SW Maintenance expiry, we will send an email notification message to the registered email address associated with your license key. For further details, please refer to our Pricing & Licensing Terms page. SW Maintenance entitles you to download and install all fixes, updates and new product versions and to receive technical support. SW Maintenance is available only for non-free QuartzDesk editions (i.e. the Standard and Enterprise edition). SW Maintenance has to be renewed every year and amounts to roughly 45% of the license cost. All new non-free QuartzDesk edition license purchases initially come with 12 months of SW Maintenance. After the SW Maintenance expires, you can decide to keep the currently installed version or to purchase another year of SW Maintenance. SW Maintenance for your license(s) can be renewed on this page. You will only need to enter serial numbers of licenses whose SW Maintenance you wish to renew and complete three simple steps. The license serial number uses the XXXX-XXXX-XXXX-XXXX format and it is available in your license.key file - see the value of the serial-number element. Alternatively, the serial number can be obtained from a running QuartzDesk Web Application - see Help > License > Serial Number. Please note that we will automatically notify you via email three times prior to the SW Maintenance expiry date. The notification message includes a unique link that you can use to renew the SW Maintenance. Upon completing of the renewal process, you will receive replacement license keys with extended SW Maintenance. You must not use the old (replaced) license keys as they will not allow you to apply product upgrades and we will not provide technical support for installations that use old license keys. You can renew your SW Maintenance anytime. The new SW Maintenance will start as follows: (1) If you renew after the expiry of your current SW Maintenance, then your new SW Maintenance will start on the expiry date of your current SW Maintenance and finish 12 months after the expiry date of your current SW Maintenance. (2) If you renew before the expiry of your current SW Maintenance, then your new SW Maintenance will start on the renewal date and finish 12 months after the expiry date of your current SW Maintenance.
We provide limited technical support with the product installation to QuartzDesk Lite (free) edition users. We provide unlimited technical support to QuartzDesk Standard and Enterprise edition users with active SW Maintenance - see our FAQs for a detailed explanation of what SW Maintenance is. Technical support is provided on the best-effort basis and there is no guaranteed response / resolution time unless agreed otherwise. We address all submitted support tickets and questions with the highest priority with an average response / resolution time of 1-2 hours during our regular office hours (Mon-Fri 9am-17pm CET). If you need instant help, you are welcome to use our Live Chat that is available during the above office hours. No, unless agreed otherwise (e.g. with our OEM partners), we generally do not do that. Instead we prepare a new release based on the latest released version. Let us say the latest released version is 2.4.1 (major.minor.maintenance). When we fix an issue and/or add some new functionality, we increment either the maintenance version number (2.4.1 -> 2.4.2), or the minor version number (2.4.1 -> 2.5.0) by 1. The maintenance version number is increased if the new version is backward compatible with the previous release(s) having the same major and minor version numbers. If the new version breaks the backward compatibility, we increase the minor version number. For further details, please refer to Versioning & Compatibility page. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Questions about the QuartzDesk JVM Agent component used in the Standard and Enterprise edition. The version number can be obtained from the QuartzDesk JVM Agent log file. ... [2018-01-28 10:13:41,912] I [main] [com.quartzdesk.agent.Agent:405] - Initializing JVM Agent: com.quartzdesk.agent.Agent@1f3785d3 [QuartzDesk JVM Agent v3.2.0] ... [2014-01-28 10:13:47,318] I [main] [com.quartzdesk.agent.Agent:277] - Successfully initialized JVM Agent: com.quartzdesk.agent.Agent@1f3785d3 [QuartzDesk JVM Agent v3.2.0], enabled: true ... Alternatively, the version number can be be obtained from the QuartzDesk JVM Agent distribution JAR file. Open the JAR file as a ZIP archive (you may need to temporarily rename the JAR file from quartzdesk-agent.jar to quartzdesk-agent.zip) and open the META-INF/MANIFEST.MF file. Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: Apache Maven 3.3.9
Implementation-Title: quartzdesk-agent
Build-Date: 2018-01-25
Build-Number: 3
Implementation-Version: 3.2.0
Built-By: honza
Agent-Class: com.quartzdesk.agent.Agent
Implementation-Vendor-Id: com.quartzdesk
Implementation-Vendor: QuartzDesk.com
Implementation-Vendor-URL: https://www.quartzdesk.com
Premain-Class: com.quartzdesk.agent.Agent
Build-Jdk: 1.8.0_152
This exception can occur when the agent attempts to store an execution history record in the quartzdesk_agent DB. It typically happens when the agent tries to store a record with a large (>500KB) job execution log. To fix this error, you will need to adjust the value of the max_allowed_packet variable in your MySQL server configuration. The max_allowed_packet is measured in bytes and its new value should be large enough to accomodate the largest of your job execution logs produced by your jobs. To determine the new max_allowed_packet value, you can extract the relevant error messages from your QuartzDesk JVM Agent log files using the following command: grep "max_allowed_packet" *.log In the output that contains a list of "Packet for query is too large (xxxx > yyyy)..." errors, search for the line with the biggest xxxx number. Set the max_allowed_packet variable to a number that is 10-20% bigger than the biggest found xxxx number. If you are getting the following or similar exception, then you are hitting a bug in the Oracle JDBC driver documented here (requires access to Oracle Metalink site): https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=BUG&p_id=7112447 [2015-12-21 17:35:14,984] E [QuartzScheduler_Worker-1] [com.quartzdesk.agent.scheduler.common.a:140] - Error processing job execution event: QuartzJobExecutionEvent[...] com.quartzdesk.agent.api.AgentException: Error creating instance of: class com.quartzdesk.agent.api.domain.model.scheduler.quartz.QuartzExecHistory ... To resolve this issue, you must upgrade the Oracle JDBC driver that is used by the agent. Oracle 11g and 12c JDBC drivers can be downloaded from here: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html First you may try increasing the JVM heap memory size by adjusting the values of the -Xmx and/or -XX:MaxPermSize JVM command line arguments to increase the maximum available JVM heap size and the JVM perm space respectively. Please refer to your JVM documentation for details on how to use these parameters. If the problem remains, you will need to obtain a heap dump from the JVM and analyze it using one of the available Java memory heap analysis tools. We recommend using the free Eclipse Memory Analyzer Tool. We strongly recommend adding the following JVM command line arguments that instruct the JVM to automatically produce a heap dump file when the OutOfMemoryError occurs. -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<heap dump output directory> Make sure there is enough free disk space in the specified heap dump output directory because the generated heap dump files can be very large. For example, for a JVM running with the maximum heap size of 1GB, the size of the generated heap dump file can be up to 1GB. The specified heap dump output directory must be writable by the user/group the JVM process is running under. Please note that -XX:+HeapDumpOnOutOfMemoryError and -XX:HeapDumpPath JVM arguments can be safely used in all production or production-like environments as they do not impact the JVM performance in any way. Yes, you can, but make sure all of the Quartz schedulers running on all JVMs with agents that use the same (shared) database, have unique object names. QuartzDesk platform uses Quartz scheduler object names as unique Quartz scheduler identifiers. Unless you explicitly tell the Quartz scheduler what object name to use (using the org.quartz.scheduler.jmx.objectName configuration property), Quartz scheduler uses the object name with the following format: quartz:type=QuartzScheduler,name=<scheduler_name>,instanceId=<scheduler_instance_id> Where:
In the QuartzDesk GUI you can see the Quartz scheduler object name either in the connection registration dialog: or in the Scheduler Info tab when you open the Quartz scheduler connection: Exception stack trace: java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager") at org.jboss.logmanager.Logger.getLogger(Logger.java:61) at org.jboss.as.server.Main.main(Main.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.modules.Module.run(Module.java:312) This exception is caused by a known bug in JDK that is documented here: https://access.redhat.com/solutions/3234671 https://access.redhat.com/solutions/3370101 To prevent the exception, please add the following JVM system property to the JBoss startup script: Windows (standalone.conf.bat or domain.conf.bat) set "JAVA_OPTS=%JAVA_OPTS% -Dsun.util.logging.disableCallerCheck=true" Unix/Linux (standalone.conf or domain.conf) JAVA_OPTS="${JAVA_OPTS} -Dsun.util.logging.disableCallerCheck=true" Starting with QuartzDesk release 4.0.9, it is possible to encrypt arbitrary configuration properties in quartzdesk-agent.properties file using any of the following supported symmetric ciphers:
To generate encryption keys and encrypt selected configuration parameter values, please run the following command from the command line: On Windows: JDK_HOME\bin\java.exe -cp quartzdesk-agent-x.y.z.jar com.quartzdesk.agent.tool.PasswordEncryptor
Enter 1 to choose the Generate secret key action. Enter the number that represents the cipher algorithm that you wish to use. A cipher key will be generated. Copy the secret key value and store it in quartzdesk-agent.ciphers file inside the configured QuartzDesk JVM Agent work directory. The format of this file is as follows: [CIPHER_ALGORITHM_NAME].key = [CIPHER_KEY] Where [CIPHER_ALGORITHM_NAME] is one of the supported cipher algorithm names:
[CIPHER_KEY] is the generated cipher key value. For example: AES_256.key = ClocqqsqYaPzTSvVwaSEOy6oqRsW7n15E0CDm/F55KY= Enter 2 to encrypt a config property value using the generated cipher key. Use the encrypted value in your quartzdesk-agent.properties like so: [CONFIG_PROPERTY_NAME] = [CIPHER_ALBORITHM_NAME]{[ENCRYPTED CONFIG PROPERTY VALUE]} For example: jdbc.password = AES_256{McnLcqGMlSiMBXBvcsb2sLiCpOIwA17xZf8HFucVT/k=} Note: You can extract sample quartzdesk-agent.ciphers and quartzdesk-agent.properties files from quartzdesk-agent-x.y.z.jar/extras/work directory. Copy these files to the configured QuartzDesk JVM Agent work directory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Questions about the QuartzDesk Web Application component providing the GUI for all product editions. Yes. The QuartzDesk Web Application has been designed to run on clusters. Please refer to the Cluster Deployment Notes chapter in the QuartzDesk Installation and Deployment Guide for cluster deployment details. Please that you only need a single license to deploy the QuartzDesk Web Application to a cluster regardless of the number of cluster members. The version number is displayed in the login dialog of a running QuartzDesk Web Application. The version number is also displayed in the About window. The About window can be accessed using the About link in the login dialog of a running QuartzDesk Web Application or from the main menu shown in the top-right corner after a user successfully logs in. Alternatively, the version number can be be obtained from the QuartzDesk Web Application distribution WAR file. Open the WAR file as a ZIP archive (you may need to temporarily rename the WAR file from quartzdesk-web.war to quartzdesk-web.zip) and open the META-INF/MANIFEST.MF file. Manifest-Version: 1.0
Implementation-Title: quartzdesk-web
Build-Date: 2018-01-25
Implementation-Version: 3.2.0
Built-By: honza
Implementation-Vendor-Id: com.quartzdesk
Class-Path: lib/quartzdesk-api-3.2.0.jar
...
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_152
Main-Class: Launcher
Implementation-Vendor: QuartzDesk.com
Implementation-Vendor-URL: https://www.quartzdesk.com
The installed edition is displayed in the login dialog of a running QuartzDesk Web Application. The installed edition is also displayed in the About window. The About window can be accessed using the About link in the login dialog of a running QuartzDesk Web Application or from the main menu shown in the top-right corner after a user successfully logs in. Alternatively, the installed edition can be obtained from the license key file used by the QuartzDesk Web Application. The license key file is located in the configured QuartzDesk Web Application work directory. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:license xmlns:ns2="http://license.quartzdesk.com/v1_0"> <serial-number>1</serial-number> <issue-date>2013-05-28+02:00</issue-date> <type>PERPETUAL</type> <licensee> <name>Test License</name> </licensee> <issuer> <name>CN=QuartzDesk.com CA2, O=QuartzDesk</name> <email>sales@quartzdesk.com</email> <web>www.quartzdesk.com</web> <certificate>-----BEGIN CERTIFICATE----- MIID9jCCAt6gAwIBAgIBAjANBgkqhkiG9w0BAQUFADAxMRMwEQYDVQQKEwpRdWFy ... 7cwIppIYwyMAmw== -----END CERTIFICATE----- </certificate> </issuer> <products> <product id="QuartzDesk"> <name>QuartzDesk Enterprise Edition</name> <edition>Enterprise</edition> <version> <major>1</major> </version> <feature-set id="Quartz"> ... </feature-set> </product> </products> <signature>...</signature> </ns2:license> The one-step installation mode allows you to get QuartzDesk Web application up and running within just a few minutes by following these five simple steps:
In the one-step installation mode QuartzDesk Web Application is started using an embedded Jetty servlet container / HTTP server and H2 database. The H2 database is automatically created and initialized in the QuartzDesk Web Application work directory upon application startup. You can tweak the application web context name (default is /quartzdesk) and port number (default is 8080) using the following parameters specified at the end of the command line used to start the application:
If you want to use an alternative database in the one-step installation mode, please apply the following extra configuration steps:
The one-step installation mode is meant to be used solely for experimental and evaluation purposes. We advise against using this mode for any other purpose, e.g. for production deployments.
When you see this warning it means the QuartzDesk JVM agent has not been installed on the JVM the Quartz scheduler connection points to. The QuartzDesk JVM Agent is required by some of the advanced QuartzDesk features. When the JVM agent is not available, these features cannot be used and are disabled in the QuartzDesk GUI. Steps to fix the problem:
When you see this warning it means the version of the installed QuartzDesk Web Application is not compatible with the version of the QuartzDesk JVM Agent installed on the JVM the Quartz scheduler connection points to. QuartzDesk platform requires the major and minor version numbers of all QuartzDesk components (QuartzDesk Web Application, QuartzDesk JVM Agent, QuartzDesk Public API Library) must match. For details, please refer to the Versioning & Compatibility page. Steps to fix the problem:
When you see this warning it means the license edition used for the QuartzDesk Web Application is not compatible with the license edition used by the QuartzDesk JVM Agent. QuartzDesk platform requires the license edition of the QuartzDesk JVM Agent to be the same or higher than the license edition of the QuartzDesk Web Application. For example, if you are running the QuartzDesk Web Application with the Standard edition license, then the QuartzDesk JVM Agent edition license must be either Standard, or Enterprise. Steps to fix the problem:
When you see this warning it means the QuartzDesk Public API Library JAR has not been installed on the Quartz scheduler's classpath as described in the QuartzDesk JVM Agent Installation and Upgrade Guide. The QuartzDesk Public API Library connects the Quartz scheduler with the QuartzDesk JVM Agent. Without this connection, some of the advanced QuartzDesk features cannot function properly and are disbaled in the QuartzDesk GUI. Steps to fix the problem:
When you see this warning it means the QuartzDesk Public API Library JAR is present on the Quartz scheduler's classpath, but it is not loaded by the same class loader that loads the Quartz scheduler API (quartz-x.y.z-jar). Steps to fix the problem:
When you see this warning it means the version of the QuartzDesk Public API Library installed on the Quartz scheduler's classpath is not compatible with the version of the QuartzDesk JVM Agent installed on the JVM the Quartz scheduler connection points to. Steps to fix the problem:
When you see this message, it means the statistics data has not been generated yet. It can be caused by either of the following reasons:
This happens in clustered Quartz scheduler deployments that are configured to use auto-generated Quartz scheduler instance IDs (org.quartz.scheduler.instanceId=AUTO) and either of the following two conditions holds true:
org.quartz.simpl.SimpleInstanceIdGenerator class produces random instance IDs upon every Quartz scheduler restart. Unless you have configured Quartz to use an explicit JMX export name for its MBean using the org.quartz.scheduler.jmx.objectName configuration property, Quartz embeds the generated instance ID into the JMX scheduler object name. QuartzDesk platform uses the JMX scheduler object name as a Quartz scheduler ID and requires this object name to be constant. Please avoid using the org.quartz.simpl.SimpleInstanceIdGenerator class and instead use one of the following implementations available in the Quartz scheduler distribution. The instance ID generator class to be used by Quartz can be set using the org.quartz.scheduler.instanceIdGenerator.class Quartz configuration property.
Absolutely. However you need to modify your job implementation class a bit so that QuartzDesk can associate the spawned worker threads with the correct job execution thread. If your Quartz job implementation class uses the Java Executor API and worker threads that do not produce Future results: public class MyJob implements Job { ... public void execute(JobExecutionContext context) throws JobExecutionException { ... Executor executor = ... // get a Java Executor executor.execute( new WorkerThreadRunnable( Thread.currentThread(), YourRunnableInstance ) ); ... } ... } If your Quartz job implementation class uses the Java ExecutorService API and worker threads that produce Future results: public class MyJob implements Job { ... public void execute(JobExecutionContext context) throws JobExecutionException { ... ExecutorService executorService = ... // get a Java ExecutorService Future result = executor.submit( new WorkerThreadCallable( Thread.currentThread(), YourCallableInstance ) ); ... } ... } As shown in the above examples, you need to wrap the worker thread's body in either a WorkerThreadRunnable, or WorkerThreadCallable instance. WorkerThreadRunnable and WorkerThreadCallable classes are provided by the QuartzDesk Public API Library (quartzdesk-api.jar) and in order to use these classes in your application, you must add the QuartzDesk Public API Library to your application as a compile-time dependency.If you application uses Maven, you need to add the following to your project POM's dependencies: <dependency> <groupId>com.quartzdesk</groupId> <artifactId>quartzdesk-api</artifactId> <version>x.y.z</version> <scope>compile</scope> </dependency> If you want to send QuartzDesk notification messages through GMail, you need to set up a message channel profile with the following parameters: Sender: GMail account email address In order to allow external applications, such as QuartzDesk, to send emails through GMail SMTP server, it is required to set up an App password in Google Account > Security > App passwords (https://myaccount.google.com). When creating a new password, enter the following values: Select app: Mail Click Generate and copy the generated password value and paste it in the Password field of your GMail message channel profile configuration in the QuartzDesk GUI. admin / admin123 A security realm is a "database" against which QuartzDesk Web Application users are authenticated. It is also the main source of basic user profile attributes, such as the first name, surname and email address. Security realms in QuartzDesk are pluggable and can be configured in quartzdesk-web.properties. Out-of-the-box, QuartzDesk Web Application provides the following security realm implementations:
If necessary, users can create and register their own security realm implementations. To implement a custom security realm, please refer to this FAQ item. QuartzDesk Web application comes with a ready-to-use and highly configurable JNDISecurityRealm implementation that allows you to authenticate users against a configured directory service. For an explanation of what QuartzDesk Web Application security realms are, please see here. To use JNDISecurityRealm, please add the following configuration properties to your quartzdesk-web.properties:
Short answer: yes. If none of the out-of-the-box provided security realm implementation does not suit your needs, you can use your own implementation. This custom implementation must implement the com.quartzdesk.core.security.realm.ISecurityRealm interface. When implementing a custom realm, it is often easier to extend one of the provided security realm implementations and just override the relevant method, or use the abstract security realm base class com.quartzdesk.core.security.realm.AbstractSecurityRealm. Once the custom security realm implementation class is ready, copy this class and all of its dependencies to quartzdesk-web.war/WEB-INF/classes (*.class files) and quartzdesk-web.war/WEB-INF/lib (JAR files). This is required because the security realm implementation class must be on the QuartzDesk Web Application's classpath. All of the afore-mentioned security APIs are available in quartzdesk-core.jar located in quartzdesk-web.war/WEB-INF/lib. If you need to compile your custom security realm implementation against these APIs, please extract quartzdesk-core.jar from the WAR file and upload it to your Maven repository. To make QuartzDesk Web Application use the custom security realm, you will need to add the following configuration property to your quartzdesk-web.properties: security.realm.implementation = <class_name> where <class_name> is the fully-qualified name of the custom security realm implementation class. If your custom security realm implementation requires some initialization parameters, please add these parameters to quartzdesk-web.properties like so: security.realm.param.<param_name> = <param_value> where <param_name> is the parameter name and <param_value> is the parameter value. Once a security realm instance has been created, the parameters are passed to it by invoking its setParameters( Map<String,String> parameters ) method. If you need any assistance, please do not hesitate and contact our Technical Support through our online chat or via email at support@quartzdesk.com. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||