Older Releases

Stable 1.5.0

Maturity:
Stable
Released on:
Tuesday, 25 March 2014 15:37
Description

QuartzDesk v1.5.0 Artifacts

Tomcat Users!

If you are upgrading the QuartzDesk Web Application from 1.4.x or an older release, you will need to update the QuartzDesk Web Application data-source JNDI name in your ${TOMCAT_HOME}/conf/server.xml file before deploying this release.

Old:
<jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<jdbc/QuartzDeskDS" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>

You will also need to update the QuartzDesk data-source JNDI name in the QuartzDesk Web Application deployment descriptor cached by Tomcat in ${TOMCAT_HOME}/conf/Catalina/[hostname]/quartzdesk.xml.

Old:
<jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

Please note that QuartzDesk Web Application Installation and Upgrade Guides have been updated to reflect this change.

 

This release brings the following major changes:

50%+ Improvement In GUI Load/Start Time

We have optimized the QuartzDesk Web Application to dramatically reduce its load/start time. This has been achieved primarily by merging and minifying all application JavaScript resources.

H2 Support

Starting with this release we have added support for the H2 database profile to support QuartzDesk JVM Agent and QuartzDesk Web Application deployments with H2 database. All H2 operating modes (mem, file, tcp) are fully supported.

All installation and upgrade guides have been updated to reflect this change.

Tooltips

All forms have been updated to use tooltips that are available for the majority of form fields. This is to further improve the usability of our product and to provide some guidance to users who are not necessarily Java Quartz scheduler experts.

New QuartzDesk GUI Tooltips

Data Maintenance Tasks

We have added three maintenance tasks that can be used to purge old, possibly unused, data collected for registered Quartz scheduler connections. QuartzDesk JVM Agents collect this data and store it in their databases. The new tasks are:

TaskDescription
AgentExecHistoryPurgingJobThis task periodically purges old execution history data.

We recommend purging the execution history data in order to keep the QuartzDesk JVM Agent database at a reasonable size. This is especially important for high-traffic systems with thousands of job executions every day.

This task is executed using a cron trigger whose configuration can be adjusted using the following quartzdesk.properties configuration parameter:

job.agentExecHistoryPurgingJob.cronExpression
AgentExecHistoryLogPurgingJobThis task periodically purges log data in execution history records.

We recommend purging the execution history log data in order to keep the QuartzDesk JVM Agent database at a reasonable size. This is especially important for systems that produce lengthy job execution logs.

This task is executed using a cron trigger whose configuration can be adjusted using the following quartzdesk.properties configuration parameter:

job.agentExecHistoryLogPurgingJob.cronExpression
AgentMessagePurgingJobThis task periodically purges sent and failed notification messages.

This task is executed using a cron trigger whose configuration can be adjusted using the following quartzdesk.properties configuration parameter:

job.agentMessagePurgingJob.cronExpression

The scheduler connection registration dialog has been reworked to allow users to enable/disable these tasks for individual scheduler connections. By default, all these tasks are disabled for all existing and new scheduler connections. When users enable a particular task for a specific scheduler connection, they can also adjust various task-specific parameters, such as the number of days to keep the execution history data etc.

The following figure shows the new Maintenance Tasks options in the scheduler connection registration dialog:

New Maintenance Tasks

JMXMP Connector

The QuartzDesk JVM Agent can optionally start a JMXMP protocol connector. The JMXMP connector is an alternative JMX connector to the commonly used JMX/RMI connector that is typically enabled by setting com.sun.management.jmxremote.* JVM system properties. 

As opposed to the JMX/RMI protocol, the JMXMP protocol is firewall-friendly because it uses only a single static TCP port. The JMX/RMI protocol, on the other hand, uses two ports - the RMI registry port and the RMI server port. While the RMI registry port is static, the RMI server port is typically allocated dynamically for each JMX/RMI connection.

To configure the JMXMP connector, please use the following new quartzdesk-agent.properties options:

jmxConnector.jmxmp.enabled
jmxConnector.jmxmp.bindAddress
jmxConnector.jmxmp.port

For the description of individual JMXMP connection options, please refer to sample quartzdesk-agent.properties configuration file provided in the extra/work directory inside the quartzdesk-agent JAR.

Agent Initializer API

This API makes it easy for developers to embed and distribute the QuartzDesk JVM Agent as an integral part of their standalone Quartz scheduler enabled applications and custom application containers. Developers can use the API to initialize the agent programatically without the need to set up the agent work directory. Developers can register a logging interceptor to make the agent redirect its log messages to the application/container log or elsewhere.

Additionally, if the standalone application runs on a Sun/Oracle JVM 6 or newer, it can now use the Attach API to dynamically load the agent into the running JVM during its startup. Once the application uses the Attach API, there is no need to specify the -javaagent JVM argument which is normally required to use the agent.

We are going to document this new API soon on our website. In the meantime, if you are interested in details, please send your enquiry to This email address is being protected from spambots. You need JavaScript enabled to view it. - we will be happy to provide further information and support on this topic.

 

Please refer to the Release notes for the complete list of all new features, fixes and other changes in this release.

Release notes

1.5.0

New features:

o AGENT: The agent can automatically start a JMXMP connector. Therefore users are no longer required to specify the JMX/RMI related Java system properties to start the JMX/RMI connector and they can safely switch to using the JMXMP connector. The JMXMP protocol is a firewall-friendly alternative to the commonly used JMX/RMI protocol. 

o AGENT: The agent can now be also loaded dynamically into the JVM by using the Sun/Oracle Attach API, or an alternative (proprietary) API. This is suitable for cases where users wish to bundle the agent with their application (typically a standalone Java application) and/or do not want to start the JVM with the javaagent JVM argument and the quartzdesk-agent.work.dir JVM property. 

o AGENT: Added new AgentInitializer API and initializerClass agent option. The value of this option is expected to be a FQCN of a class name implementing the com.quartzdesk.agent.api.IAgentInitializer interface. This option makes it possible to programmatically initialize and register the agent with the JVM that supports the Attach API. This new API and agent option is suitable for standalone applications that wish to have full control over agent initialization. 

o AGENT: Added support for H2 database profile. All H2 operating modes (in-memory, file and tcp) are supported. H2 support in the agent is intended primarily for development and experimental purposes. All QuartzDesk JVM Agent Installation and Upgrade Guides updated accordingly. 

o WEB: Added a new job AgentExecHistoryPurgingJob that purges old execution history records in QuartzDesk JVM Agent databases used by managed schedulers. This job purges execution history records that are older than the specified number of days (default is 400 days). Purging of old execution history records is disabled by default and it can be enabled in scheduler Settings. 

o WEB: Added a new job AgentExecHistoryLogPurgingJob that purges collected job execution log data in QuartzDesk JVM Agent databases used by managed schedulers. This job purges logs of execution history records that are older than the specified number of days (default is 30 days). Purging of execution history logs is disabled by default and it can be enabled in scheduler Settings. 

o WEB: Added a new job AgentMessagePurgingJob that purges old processed and permanently failed messages in QuartzDesk JVM Agent databases used by managed schedulers. The job purges messages that are older than the specified number of days (default is 30 days for processed messages and 60 days for permanently failed messages). Purging of old processed and permanently failed messages is disabled by default and it can be enabled in scheduler Settings.

o WEB: Extended support for H2 database profile. All H2 operating modes (in-memory, file and tcp) are supported. Previously the H2 database profile was only supported for the one-step installation mode. H2 support in the web application intended primarily for development and experimental purposes. All QuartzDesk Web Application Installation and Upgrade Guides updated accordingly.

o WEB: Added resizable splitters to the Jobs and Triggers tabs.

o WEB: Added tooltips to all forms. For example, all Edit Trigger forms have useful tooltips describing the trigger as well as individual trigger attributes.

Fixed Bugs:

o AGENT: Fixed a logback initialization issue (ext.ch.qos.logback.core.util.IncompatibleClassException) when the agent finds a logback.groovy, logback-test.xml, or logback.xml Logback configuration file on its classpath, or when the Logback configuration file is specified using the logback.configurationFile JVM system property. 

o AGENT, WEB: Fixed "org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'type'. One of '{issue-date}' is expected." thrown during agent/web-app startup on WebLogic 12c. 

o API: Fixed NPE in com.quartzdesk.api.agent.log.jul.JulInterceptionHandler thrown by the configured handler when the Agent is not installed. 

o WEB: Added a context menu (with a single menu item "Delete") to all job data map grids. 

o WEB: 'Max fetch date' and 'Max fetch size' tool bar option in Execution History grids are re-enabled after a data load error occurred. Previously these options were re-enabled only after a successful data load. 

o WEB: Fixed a bug with the Send Test Message button not working when editing a new message channel profile. 

o WEB: Excluded org.slf4j and org.slf4j.impl JBoss modules in jboss-deployment-structure.xml to make QuartzDesk log through the appenders configured in the logback.xml file located in the QuartzDesk work directory. 

Updates:

o AGENT: Users have 4 options to specify the agent work directory location: (1) Use the standard quartzdesk-agent.work.dir JVM property, or (2) use the new workDir Java agent option (-javaagent:=workDir=), (3) let the agent use the directory the agent JAR file is located in, or (4) use the new AgentInitializer API to programmatically initialize the agent.

o WEB: Significant (50%+) improvement in the application load/startup time. 

o WEB: All QuartzDesk internal Quartz jobs are now interruptible. Therefore you can interrupt these jobs using either the QuartzDesk web application GUI, or the QuartzAnywhere web-service API. 

o WEB: GlassFish deployment descriptor (glassfish-web.xml) now enforces parent-last class-loading order.

o WEB: QuartzDesk Web application data source name changed to jdbc/QuartzDeskDS.

o WEB: Added new settings (Maintenance Tasks configuration values) to the Edit Scheduler Connection dialog. 

o WEB: Added support for auto-disabling dialog form fields based on the installed QuartzDesk edition. This affects the Application Settings and the updated Edit Scheduler Connection dialogs. 

o WEB: Tooltips are no longer automatically dismissed after 5 seconds. They stay visible until the user hovers the mouse outside of the tooltip-enabled element. 

quartzdesk-agent-1.5.0.jar

File size:
3.22 Mb
MD5 Signature:
3238e05f10aa89f924d528f37ae206b9
SHA1 Signature:
ef152e759bd797fa5dcbb65b9a3016d1c2126f47

QuartzDesk JVM Agent Library

Required by: QuartzDesk Standard and Enterprise edition
Please refer to the QuartzDesk JVM Agent Installation and Upgrade Guide for installation / upgrade instructions.

quartzdesk-api-1.5.0.jar

File size:
747.52 Kb
MD5 Signature:
39a84a8402a1aca76321bec5e882b71c
SHA1 Signature:
efc8c950206bd17be52c825633f035c419a968a5

QuartzDesk Public API Library

Required by: QuartzDesk Standard and Enterprise edition
Please refer to the QuartzDesk JVM Agent Installation and Upgrade Guide for installation / upgrade instructions.

Apache Maven Users
The QuartzDesk Public API library is also available in the Maven Central repository. To add the library as a dependency to your Maven project, please add the following dependency element to your project's POM:

<dependency>
  <groupId>com.quartzdesk</groupId>
  <artifactId>quartzdesk-api</artifactId>
  <version>1.5.0</version>
  <scope>runtime</scope>
</dependency>

quartzdesk-web-1.5.0.war

File size:
35.88 Mb
MD5 Signature:
c7d5d9404b3c41a1e6c698fed0850410
SHA1 Signature:
86820fc3b84f8d8a86216a10bb495ca4a68232a6

QuartzDesk Web Application

Required by: All QuartzDesk editions
Please refer to the QuartzDesk Web Application Installation and Upgrade Guide for installation / upgrade instructions.