Older Releases

Older Releases

Use the View Files link below to download individual QuartzDesk release artifacts.

Please note that QuartzDesk requires a license key. Unless you already have one, you can obtain a license key here: We offer 30-day trial license keys for the Standard and Enterprise edition.

 

By downloading the QuartzDesk software from this site, you agree to the terms and conditions laid out in the following License Agreement documents. Please review the document relevant to the QuartzDesk edition that you intend to install and use.

Licensee TypeLicense Agreement
Non-OEMQuartzDesk Lite Edition License Agreement
QuartzDesk Standard / Enterprise Edition License Agreement
OEMOEM Partner specific License Agreement

Stable 2.6.2

Maturity:
Stable
Released on:
Friday, 15 July 2016 11:08
Description

QuartzDesk v2.6.2 Artifacts

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

Release notes

2.6.2

Fixed Bugs:

o AGENT: Fixed "com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'sc'." exception thrown when the webapp syncs connections with the agent.

o WEB: Fixed issue in Lite edition that prevented users from opening scheduler connections in the GUI ( "Required config parameter missing: jvmAgentInfo" error message) and seeing connection names in the tree view.

 

2.6.1

New Features:

o AGENT, API, WEB: Added support for Quartz 2.2.3.

o AGENT, API, WEB: Added support for JBoss EAP 7.0.x.

o API: Added missing clients for the QuartzExecNotificationRuleService, QuartzJobChainService and ConnectionService v3.0 JAX-WS web-services.

o AGENT, API: Added support for auto-exporting Quartz scheduler MBean (automatic insertion of org.quartz.scheduler.jmx.export=true to Quartz config properties).

o AGENT, API: Added Quartz configuration check and warning for deployments using org.quartz.simpl.SimpleInstanceIdGenerator class. This (default) Quartz instance ID generator produces random instance IDs upon every Quartz scheduler restart which is undesirable in configurations where Quartz scheduler MBean object name is generated dynamically and contains the generated instance ID.

o AGENT, WEB: Exposed QuartzExecHistoryService API through QuartzExecHistoryService JavaScript object that can be used in JavaScript expressions in notification rules and job chains.

o AGENT, WEB: Exposed QuartzExecStatisticsService API through QuartzExecStatisticsService JavaScript object that can be used in JavaScript expressions in notification rules and job chains.

o AGENT, WEB: Added support for CSV exports of execution history data.

o WEB: Added QuartzExecHistoryService v2.0 JAX-WS web-service. Added QuartzExecHistoryServiceClient v2.0 JAX-WS client.

Changes:

o WEB: Added support for enabling/disabling individual QuartzDesk features depending on the availability and compatibility of the detected QuartzDesk JVM Agent and QuartzDesk Public API.

o AGENT, WEB: Scripting object 'log' that can be used in JavaScript expressions renamed to 'Log'.

o WEB: Reworked JS Scripting Objects window that now shows available JS scripting objects and data types in separate panels.

o WEB: Added info panels to the Scripting Objects and Macros windows.

o AGENT: Maximum length of JavaScript expression conditions in execution notification rules and job chains is now unlimited and no longer restricted to 1KB.

Fixed Bugs:

o WEB: Fixed issue that caused all Exec History tabs to be disabled in the Standard edition.

o AGENT: Fixed issue (java.io.IOException: no entry name specified) with determining the Quartz scheduler version in Spring Boot applications.

o AGENT: Fixed issue that occurred in Spring Boot applications where the Job Class combo in the Add/Edit Job dialog in the GUI was not populated with discovered Quartz job implementation class names.

 

2.5.0

New Features:

o WEB: Added support for starting/stopping/resuming multiple Quartz schedulers in a selected folder and its sub-folders.

o WEB: Fixed bug causing "Required config parameter missing: jobDataMap" error in the GUI when the user clicks on the Job Data Map icon in the Execution History grid and the job was executed with an empty job data map.

o WEB: Added check for the JDK java for when the web application is run in the one-step installation mode.

o AGENT, API, WEB: Added support for showing next fire times for individual triggers. This works for both existing and new (unsaved) triggers whose fire times can now be checked before the trigger is saved in the Quartz job store.

o WEB: Added new QuartzExecNotificationRuleService JAX-WS web-service.

o WEB: Added new QuartzJobChainService JAX-WS web-service.

o WEB: Added 2 new operations (getTriggerFireTimes and getPlannedJobExecutions) to QuartzService JAX-WS web-service.

o WEB: Added 3 new operations (startAllConnections, pauseAllConnections and stopAllConnections) to ConnectionService JAX-WS web-service (in the latest version 3.0).

o WEB: Added a link to the external Cron Maker service to the Cron Trigger editor to assist users with the preparation of their cron expressions.

o AGENT: Added QD_JOB_CHAIN_SRC_SCHEDULER_OBJECT_NAME param to the list of job data map parameters passed by job chains to target jobs. This allows the target job to identify the scheduler the source job was fired on and possibly invoke some actions on the scheduler (e.g. pausing the source job's trigger(s) in case the target job keeps failing).

o WEB: Added new Recipient(s) field to the Messages grid showing pending and sent notification messages.

o WEB: Added informative tooltips to all grid column headers.

o AGENT, WEB: Added support for Tomcat 9.x.

Changes:

o WEB: Added no-data and no-selection messages to all grids.

Fixed Bugs:

o AGENT: Fixed "No logging event store exists for thread: ..." error reported by the agent under heavy load.

o AGENT: Fixed issue with Tomcat 6 whose version was not recognized by the agent.

o AGENT: Fixed issue with JBoss 7.1 Community whose version was not recognized by the agent.

o WEB: Fixed issues with enabling and disabling job group and trigger group pause and resume buttons on the Jobs and Triggers grids.

o AGENT: Fixed issue with detecting the Quartz scheduler version in applications using quartz-all-x-y-z.jar rather than quartz-x-y-z.jar Quartz distribution file. As a result, some of the functionality in the GUI was disabled or did not work.

o WEB: Fixed issue with saving job execution log files in the GUI in case the tmp dir does not exist in the configured QuartzDesk webapp work directory (-Dquartzdesk.work.dir=...).

 

2.4.0

Changes:

o AGENT, API, WEB: Added support for JBoss EAP 6.4.0.

o API: Updated SecurityTokenUtils.decrypt to accept security tokens with empty principal name. This prevents the "Invalid number of components in the security token" security exception from being thrown in case the security has been deliberately disabled for the QuartzDesk webapp.

o WEB: Implemented a workaround for a bug in Tomcat that sometimes caused an empty principal name being passed in the security token to external applications integrated with QuartzDesk GUI through custom navigation menu links.

Fixed Bugs:

o WEB: Fixed an issue with monitoring URLs for jobs and triggers whose names contain spaces. These monitoring URLs returned invalid status codes (JOB_NOT_FOUND/TRIGGER_NOT_FOUND).

o AGENT: Fixed an SQL error "ORA-01439: column to be modified must be empty to change datatype" when upgrading Oracle schema from version < 2.1.0.

o WEB: Removed all but Second, Minute and Hour time interval unit values from the Repeat Interval Unit combo in the Daily Time Interval Trigger editor.

o WEB: Removed the Millisecond time interval unit value from the Repeat Interval Unit combo in the Calendar Interval Trigger editor.

o AGENT: Fixed a bug in the JBoss classpath scanner that did not find any available Quartz job implementation classes.

o AGENT, WEB: Fixed a bug with JBoss EAP releases not being recognized by the agent and the webapp ("" application server version showing up in logs).

o AGENT, WEB: Fixed a "java.net.MalformedURLException: Unsupported protocol: jmxmp" issue in WAS 8.5.x. This issue prevented all JMXMP Quartz scheduler connections from being established.

 

2.3.0

Changes:

o AGENT, API: Re-engaged Proguard plugin for the agent and relocated few classes in the agent API that are invoked from the QuartzDesk Public API.

 

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.6.1

Maturity:
Stable
Released on:
Monday, 11 July 2016 20:00
Description

QuartzDesk v2.6.1 Artifacts

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

Release notes

2.6.1

New Features:

o AGENT, API, WEB: Added support for Quartz 2.2.3.

o AGENT, API, WEB: Added support for JBoss EAP 7.0.x.

o API: Added missing clients for the QuartzExecNotificationRuleService, QuartzJobChainService and ConnectionService v3.0 JAX-WS web-services.

o AGENT, API: Added support for auto-exporting Quartz scheduler MBean (automatic insertion of org.quartz.scheduler.jmx.export=true to Quartz config properties).

o AGENT, API: Added Quartz configuration check and warning for deployments using org.quartz.simpl.SimpleInstanceIdGenerator class. This (default) Quartz instance ID generator produces random instance IDs upon every Quartz scheduler restart which is undesirable in configurations where Quartz scheduler MBean object name is generated dynamically and contains the generated instance ID.

o AGENT, WEB: Exposed QuartzExecHistoryService API through QuartzExecHistoryService JavaScript object that can be used in JavaScript expressions in notification rules and job chains.

o AGENT, WEB: Exposed QuartzExecStatisticsService API through QuartzExecStatisticsService JavaScript object that can be used in JavaScript expressions in notification rules and job chains.

o AGENT, WEB: Added support for CSV exports of execution history data.

o WEB: Added QuartzExecHistoryService v2.0 JAX-WS web-service. Added QuartzExecHistoryServiceClient v2.0 JAX-WS client.

Changes:

o WEB: Added support for enabling/disabling individual QuartzDesk features depending on the availability and compatibility of the detected QuartzDesk JVM Agent and QuartzDesk Public API.

o AGENT, WEB: Scripting object 'log' that can be used in JavaScript expressions renamed to 'Log'.

o WEB: Reworked JS Scripting Objects window that now shows available JS scripting objects and data types in separate panels.

o WEB: Added info panels to the Scripting Objects and Macros windows.

o AGENT: Maximum length of JavaScript expression conditions in execution notification rules and job chains is now unlimited and no longer restricted to 1KB.

Fixed Bugs:

o WEB: Fixed issue that caused all Exec History tabs to be disabled in the Standard edition.

o AGENT: Fixed issue (java.io.IOException: no entry name specified) with determining the Quartz scheduler version in Spring Boot applications.

o AGENT: Fixed issue that occurred in Spring Boot applications where the Job Class combo in the Add/Edit Job dialog in the GUI was not populated with discovered Quartz job implementation class names.

 

2.5.0

New Features:

o WEB: Added support for starting/stopping/resuming multiple Quartz schedulers in a selected folder and its sub-folders.

o WEB: Fixed bug causing "Required config parameter missing: jobDataMap" error in the GUI when the user clicks on the Job Data Map icon in the Execution History grid and the job was executed with an empty job data map.

o WEB: Added check for the JDK java for when the web application is run in the one-step installation mode.

o AGENT, API, WEB: Added support for showing next fire times for individual triggers. This works for both existing and new (unsaved) triggers whose fire times can now be checked before the trigger is saved in the Quartz job store.

o WEB: Added new QuartzExecNotificationRuleService JAX-WS web-service.

o WEB: Added new QuartzJobChainService JAX-WS web-service.

o WEB: Added 2 new operations (getTriggerFireTimes and getPlannedJobExecutions) to QuartzService JAX-WS web-service.

o WEB: Added 3 new operations (startAllConnections, pauseAllConnections and stopAllConnections) to ConnectionService JAX-WS web-service (in the latest version 3.0).

o WEB: Added a link to the external Cron Maker service to the Cron Trigger editor to assist users with the preparation of their cron expressions.

o AGENT: Added QD_JOB_CHAIN_SRC_SCHEDULER_OBJECT_NAME param to the list of job data map parameters passed by job chains to target jobs. This allows the target job to identify the scheduler the source job was fired on and possibly invoke some actions on the scheduler (e.g. pausing the source job's trigger(s) in case the target job keeps failing).

o WEB: Added new Recipient(s) field to the Messages grid showing pending and sent notification messages.

o WEB: Added informative tooltips to all grid column headers.

o AGENT, WEB: Added support for Tomcat 9.x.

Changes:

o WEB: Added no-data and no-selection messages to all grids.

Fixed Bugs:

o AGENT: Fixed "No logging event store exists for thread: ..." error reported by the agent under heavy load.

o AGENT: Fixed issue with Tomcat 6 whose version was not recognized by the agent.

o AGENT: Fixed issue with JBoss 7.1 Community whose version was not recognized by the agent.

o WEB: Fixed issues with enabling and disabling job group and trigger group pause and resume buttons on the Jobs and Triggers grids.

o AGENT: Fixed issue with detecting the Quartz scheduler version in applications using quartz-all-x-y-z.jar rather than quartz-x-y-z.jar Quartz distribution file. As a result, some of the functionality in the GUI was disabled or did not work.

o WEB: Fixed issue with saving job execution log files in the GUI in case the tmp dir does not exist in the configured QuartzDesk webapp work directory (-Dquartzdesk.work.dir=...).

 

2.4.0

Changes:

o AGENT, API, WEB: Added support for JBoss EAP 6.4.0.

o API: Updated SecurityTokenUtils.decrypt to accept security tokens with empty principal name. This prevents the "Invalid number of components in the security token" security exception from being thrown in case the security has been deliberately disabled for the QuartzDesk webapp.

o WEB: Implemented a workaround for a bug in Tomcat that sometimes caused an empty principal name being passed in the security token to external applications integrated with QuartzDesk GUI through custom navigation menu links.

Fixed Bugs:

o WEB: Fixed an issue with monitoring URLs for jobs and triggers whose names contain spaces. These monitoring URLs returned invalid status codes (JOB_NOT_FOUND/TRIGGER_NOT_FOUND).

o AGENT: Fixed an SQL error "ORA-01439: column to be modified must be empty to change datatype" when upgrading Oracle schema from version < 2.1.0.

o WEB: Removed all but Second, Minute and Hour time interval unit values from the Repeat Interval Unit combo in the Daily Time Interval Trigger editor.

o WEB: Removed the Millisecond time interval unit value from the Repeat Interval Unit combo in the Calendar Interval Trigger editor.

o AGENT: Fixed a bug in the JBoss classpath scanner that did not find any available Quartz job implementation classes.

o AGENT, WEB: Fixed a bug with JBoss EAP releases not being recognized by the agent and the webapp ("" application server version showing up in logs).

o AGENT, WEB: Fixed a "java.net.MalformedURLException: Unsupported protocol: jmxmp" issue in WAS 8.5.x. This issue prevented all JMXMP Quartz scheduler connections from being established.

 

2.3.0

Changes:

o AGENT, API: Re-engaged Proguard plugin for the agent and relocated few classes in the agent API that are invoked from the QuartzDesk Public API.

 

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.5.0

Maturity:
Stable
Released on:
Friday, 18 March 2016 22:48
Description

QuartzDesk v2.5.0 Artifacts

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

Release notes

2.5.0

New Features:

o WEB: Added support for starting/stopping/resuming multiple Quartz schedulers in a selected folder and its sub-folders.

o WEB: Fixed bug causing "Required config parameter missing: jobDataMap" error in the GUI when the user clicks on the Job Data Map icon in the Execution History grid and the job was executed with an empty job data map.

o WEB: Added check for the JDK java for when the web application is run in the one-step installation mode.

o AGENT, API, WEB: Added support for showing next fire times for individual triggers. This works for both existing and new (unsaved) triggers whose fire times can now be checked before the trigger is saved in the Quartz job store.

o WEB: Added new QuartzExecNotificationRuleService JAX-WS web-service.

o WEB: Added new QuartzJobChainService JAX-WS web-service.

o WEB: Added 2 new operations (getTriggerFireTimes and getPlannedJobExecutions) to QuartzService JAX-WS web-service.

o WEB: Added 3 new operations (startAllConnections, pauseAllConnections and stopAllConnections) to ConnectionService JAX-WS web-service (in the latest version 3.0).

o WEB: Added a link to the external Cron Maker service to the Cron Trigger editor to assist users with the preparation of their cron expressions.

o AGENT: Added QD_JOB_CHAIN_SRC_SCHEDULER_OBJECT_NAME param to the list of job data map parameters passed by job chains to target jobs. This allows the target job to identify the scheduler the source job was fired on and possibly invoke some actions on the scheduler (e.g. pausing the source job's trigger(s) in case the target job keeps failing).

o WEB: Added new Recipient(s) field to the Messages grid showing pending and sent notification messages.

o WEB: Added informative tooltips to all grid column headers.

o AGENT, WEB: Added support for Tomcat 9.x.

Changes:

o WEB: Added no-data and no-selection messages to all grids.

Fixed Bugs:

o AGENT: Fixed "No logging event store exists for thread: ..." error reported by the agent under heavy load.

o AGENT: Fixed issue with Tomcat 6 whose version was not recognized by the agent.

o AGENT: Fixed issue with JBoss 7.1 Community whose version was not recognized by the agent.

o WEB: Fixed issues with enabling and disabling job group and trigger group pause and resume buttons on the Jobs and Triggers grids.

o AGENT: Fixed issue with detecting the Quartz scheduler version in applications using quartz-all-x-y-z.jar rather than quartz-x-y-z.jar Quartz distribution file. As a result, some of the functionality in the GUI was disabled or did not work.

o WEB: Fixed issue with saving job execution log files in the GUI in case the tmp dir does not exist in the configured QuartzDesk webapp work directory (-Dquartzdesk.work.dir=...).

 

2.4.0

Changes:

o AGENT, API, WEB: Added support for JBoss EAP 6.4.0.

o API: Updated SecurityTokenUtils.decrypt to accept security tokens with empty principal name. This prevents the "Invalid number of components in the security token" security exception from being thrown in case the security has been deliberately disabled for the QuartzDesk webapp.

o WEB: Implemented a workaround for a bug in Tomcat that sometimes caused an empty principal name being passed in the security token to external applications integrated with QuartzDesk GUI through custom navigation menu links.

Fixed Bugs:

o WEB: Fixed an issue with monitoring URLs for jobs and triggers whose names contain spaces. These monitoring URLs returned invalid status codes (JOB_NOT_FOUND/TRIGGER_NOT_FOUND).

o AGENT: Fixed an SQL error "ORA-01439: column to be modified must be empty to change datatype" when upgrading Oracle schema from version < 2.1.0.

o WEB: Removed all but Second, Minute and Hour time interval unit values from the Repeat Interval Unit combo in the Daily Time Interval Trigger editor.

o WEB: Removed the Millisecond time interval unit value from the Repeat Interval Unit combo in the Calendar Interval Trigger editor.

o AGENT: Fixed a bug in the JBoss classpath scanner that did not find any available Quartz job implementation classes.

o AGENT, WEB: Fixed a bug with JBoss EAP releases not being recognized by the agent and the webapp ("" application server version showing up in logs).

o AGENT, WEB: Fixed a "java.net.MalformedURLException: Unsupported protocol: jmxmp" issue in WAS 8.5.x. This issue prevented all JMXMP Quartz scheduler connections from being established.

 

2.3.0

Changes:

o AGENT, API: Re-engaged Proguard plugin for the agent and relocated few classes in the agent API that are invoked from the QuartzDesk Public API.

 

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.4.0

Maturity:
Stable
Released on:
Friday, 15 January 2016 09:26
Description

QuartzDesk v2.4.0 Artifacts

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

Release notes

2.4.0

Changes:

o AGENT, API, WEB: Added support for JBoss EAP 6.4.0.

o API: Updated SecurityTokenUtils.decrypt to accept security tokens with empty principal name. This prevents the "Invalid number of components in the security token" security exception from being thrown in case the security has been deliberately disabled for the QuartzDesk webapp.

o WEB: Implemented a workaround for a bug in Tomcat that sometimes caused an empty principal name being passed in the security token to external applications integrated with QuartzDesk GUI through custom navigation menu links.

Fixed Bugs:

o WEB: Fixed an issue with monitoring URLs for jobs and triggers whose names contain spaces. These monitoring URLs returned invalid status codes (JOB_NOT_FOUND/TRIGGER_NOT_FOUND).

o AGENT: Fixed an SQL error "ORA-01439: column to be modified must be empty to change datatype" when upgrading Oracle schema from version < 2.1.0.

o WEB: Removed all but Second, Minute and Hour time interval unit values from the Repeat Interval Unit combo in the Daily Time Interval Trigger editor.

o WEB: Removed the Millisecond time interval unit value from the Repeat Interval Unit combo in the Calendar Interval Trigger editor.

o AGENT: Fixed a bug in the JBoss classpath scanner that did not find any available Quartz job implementation classes.

o AGENT, WEB: Fixed a bug with JBoss EAP releases not being recognized by the agent and the webapp ("" application server version showing up in logs).

o AGENT, WEB: Fixed a "java.net.MalformedURLException: Unsupported protocol: jmxmp" issue in WAS 8.5.x. This issue prevented all JMXMP Quartz scheduler connections from being established.

 

2.3.0

Changes:

o AGENT, API: Re-engaged Proguard plugin for the agent and relocated few classes in the agent API that are invoked from the QuartzDesk Public API.

 

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.3.0

Maturity:
Stable
Released on:
Wednesday, 16 December 2015 11:40
Description

QuartzDesk v2.3.0 Artifacts

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

Release notes

2.3.0

Changes:

o AGENT, API: Re-engaged Proguard plugin for the agent and relocated few classes in the agent API that are invoked from the QuartzDesk Public API.

 

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.2.0

Maturity:
Stable
Released on:
Tuesday, 15 December 2015 10:31
Description

QuartzDesk v2.2.0 Artifacts

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

Release notes

2.2.0

New Features:

o AGENT,WEB: When adding or editing a job in the GUI, users can now select from the list of available job implementation classes automatically discovered on the Quartz scheduler's classpath.

o API: Added new APIs (WorkerThreadLoggingInterceptorRegistry, WorkerThreadCallable, WorkerThreadRunnable) for the interception of log messages produced by worker threads spawned from the main job execution thread.

o AGENT,WEB: Added detection of WebLogic server version that is written to the log during agent and webapp startup.

o WEB: Added support for opening custom links in tabs inside the main application panel of the QuartzDesk GUI.

o AGENT: Fixed "[PWS0001] Function did not complete successfully." that occurred when accessing preceding exec history record using the JTOpen DB2 JDBC driver on AS/400 systems.

Changes:

o AGENT: Major rework of Quartz API version detection in deployed applications during their initialization.

Fixed Bugs:

o WEB: Fixed a NPE that occurred on WAS 8 and 8.5 when the user accessed the main (index) page.

o WEB: Fixed the "log4j:WARN No appenders could be found for logger (org.jboss.logging)." warning printed on the standard error output during the start of the application.

o AGENT,WEB: Fixed the "[com.quartzdesk.agent.DataSynchronizationMBeanImpl:128] - Error updating connections." error emitted by the AgentConnectionSyncJob logged in quartzdesk.log in case the agent used a MySQL database.

o WEB: Fixed 404 errors that occurred on WAS 8.0 and WAS 8.5. Added one extra installation step (removal of JTA API JAR from quartzdesk-web.war) for WAS 8.0 and 8.5 to the QuartzDesk Web Application and Upgrade Guide for WebSphere Application Server document.

 

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.1.3

Maturity:
Stable
Released on:
Tuesday, 03 November 2015 07:50
Description

QuartzDesk v2.1.3 Artifacts

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

Release notes

2.1.3

Fixed Bugs:

o WEB: Fixed issue with the QuartzDesk webapp loading the Google jsapi from a Google URL. This may prevent the QuartzDesk GUI from starting in environments where access to external URLs is denied (e.g. by firewalls on the local network, firewalls in China preventing people from accessing all Google URLs).

 

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.1.1

Maturity:
Stable
Released on:
Monday, 26 October 2015 16:18
Description

QuartzDesk v2.1.1 Artifacts

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

Release notes

2.1.1

Fixed Bugs:

o WEB: Fixed issue with trigger-related datetime values (Start Time, Previous Fire Time, Next Fire Time, etc.) not being displayed in the Triggers tab.

 

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.1.0

Maturity:
Stable
Released on:
Tuesday, 06 October 2015 15:56
Description

QuartzDesk v2.1.0 Artifacts

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

Release notes

2.1.0

New features:

o AGENT, WEB: Added two new columns to all job grids indicating if the job detail class has been annotated with the @ConcurrentExecutionDisallowed and @PersistJobDataAfterExecuting annotations.

o WEB: Added tooltips to all GUI tabs.

o AGENT, WEB: Added support for WildFly AS 8.x, 9.x and 10.x.

o AGENT, WEB: AGENT, WEB: Added support for Tomcat 8.x.

o WEB: Configurable timestamp formats (see Settings -> General).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

Changes:

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Increased the size of the msg_to_addr column in the qd_q_exec_notif_rule table from 64 chars to 256 to accommodate a longer list of an execution notification message recipients.

o AGENT: Changed log level of "Skipped processing of registration notification event for MBean..." messages from WARN to DEBUG so that they no longer fill the standard agent log on some platforms.

o WEB: Turned off logging of Hibernate statistical events that were filling up JBoss/WildFly app server logs.

Fixed Bugs:

o AGENT: Fixed ext.ch.qos.logback.core.util.IncompatibleClassException thrown during the initialization of the agent when there is a Logback configuration file picked up by the Logback auto-configuration API.

o AGENT: Fixed a bug that was causing "DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-270;42997;63" on DB2 when the agent attempted to mark a notification message as failed.

o WEB: Fixed a bug with the Ajax timeout (configurable under Application Settings > General in the GUI) not being honored after ExtJS framework upgrade in 2.0.0. As a result, the default 30-second timeout was always applied.

 

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.0.1

Maturity:
Stable
Released on:
Tuesday, 21 July 2015 15:55
Description

QuartzDesk v2.0.1 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 2.0.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

2.0.1

Fixed Bugs:

o WEB: Fixed a JavaScript error that occurred when the user attempted to add a trigger from the Triggers tab.

o WEB: Fixed the alignment of the Start Time of Day and End Time of Day fields in the the DailyTimeIntervalTrigger editor.

 

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 2.0.0

Maturity:
Stable
Released on:
Friday, 17 July 2015 20:40
Description

QuartzDesk v2.0.0 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 2.0.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

2.0.0

New features:

o AGENT,WEB: Implemented "Execution Health" indicators for jobs and triggers showing the status of the last N executions.

o WEB: Added missing tooltips in the Application Settings and Message Channel Profiles dialogs.

o WEB: Added support for adding custom tabs to the Navigation panel in the GUI. Custom tabs with embedded tree-like link hierarchies can be used to add links to external extensions to the QuartzDesk GUI.

o API: Added easy to use JAX-WS clients for all web-services provided by the QuartzDesk Web Application (ConnectionServiceClient, QuartzServiceClient, QuartzExecHistoryServiceClient).

o AGENT: Added support for tracking currently executing jobs and persisting their details in the agent DB (qda_q_exec_job table and quartz.executingJob.track agent config property).

o AGENT, WEB: Added support for storing intercepted logging events emitted by executed jobs in temporary files in the agent's work directory. It is also possible to trim the list of intercepted logging events and store only the last N records in the agent database (qd_q_exec_history table).

o AGENT, WEB: Added job chaining support.

Changes:

o AGENT, WEB: Upgraded to use the latest QuartzDesk license API (1.1.x).

o WEB: Upgraded from ExtJS 4 to ExtJS 5.1.1.

o WEB: Migrated charts from ext-charts to sencha-charts and added various usability improvements.

o WEB: New color picker in all forms.

o WEB: Chart "Save As PNG/JPG/SVG" buttons replaced by "Preview & Save" that allows the user to save the chart image using the "Save As..." option in the native (browser) context menu.

o WEB: Removed deprecated QuartzService (QuartzAnywhere) web-service endpoints v1.0 - v4.0.

o WEB: Removed deprecated MessageReceiverService web-service endpoints v1.0 - v4.0.

o WEB: Manual Quartz triggers created in the GUI when the user selects a job and triggers a job now use the QD_MANUAL trigger group name and PT_ trigger name.

o WEB: Added new QuartzExecHistoryService web-service that allows integrators to access job and trigger execution history records through a single endpoint SOAP-based interface. The web-service is accessible at /services/quartz_exec_history/v1_0/QuartzExecHistoryService.

o WEB: Security role checking performed by SOAP interceptors rather than by the container. Therefore users no longer see 403 error when accessing web-services with a principal that does not have the required security role and they get the SecurityFault declared in the WSDL.

o WEB: Deprecated web-service usage checks moved from web-service endpoint implementations to a SOAP interceptor that produces a warning message in quartzdesk.log in case the user accesses deprecated web-service endpoint.

Fixed Bugs:

o WEB: Removed extraneous scrollbars that were shown in the scheduler tab in some browsers.

 

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.8

Maturity:
Stable
Released on:
Friday, 10 July 2015 16:18
Description

QuartzDesk v1.7.8 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 1.7.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.8

Fixed Bugs:

o WEB: Fixed the "java.lang.NoClassDefFoundError: org.apache.commons.lang.DateUtils" error when starting old data purging maintenance tasks.

 

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.7

Maturity:
Stable
Released on:
Monday, 29 June 2015 18:38
Description

QuartzDesk v1.7.7 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 1.7.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.7

Fixed Bugs:

o AGENT: Fixed 'ext.org.mozilla.javascript.EcmaError: ReferenceError: "precedingExecHistory" is not defined.' error that occurs if the job's execution history is empty and a notification rule accesses the precedingExecHistory scripting variable.

 

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.6

Maturity:
Stable
Released on:
Wednesday, 10 June 2015 11:00
Description

QuartzDesk v1.7.6 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 1.7.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.6

Fixed Bugs:

o API: Added fix for "RuntimeException: Unexpected Quartz trigger type: null" errors are can occur while reindexing triggers upon Quartz scheduler's startup in case the Quartz-enabled application creates and deletes triggers at a very fast pace.

o WEB: Fixed security issue with JMX auth passwords showing up in the log.

o AGENT: Fixed the way the WebLogic Server version is determined. This prevents IllegalStateException errors when running the agent on WLS installations with temporary Oracle patches applied in which case the WLS API returns version as "WebLogic Server Temporary ..." rather than expected "WebLogic Server a.b.c.d ...".

 

1.7.5

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.5

Maturity:
Stable
Released on:
Thursday, 26 March 2015 17:56
Description

QuartzDesk v1.7.5 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 1.7.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.5

Please read the Description for important information about this release.

Fixed Bugs:

o WEB: Fixed bug that prevented viewing of runtime log data of executing jobs in the Executing Jobs tab.

 

1.7.4

Please read the Description for important information about this release.

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Please read the Description for important information about this release.

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.4

Maturity:
Stable
Released on:
Monday, 16 February 2015 11:00
Description

QuartzDesk v1.7.4 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent from 1.6.x or older release, please note that the first start of the agent can take long time due to database schema upgrades the agent automatically applies. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Please note that QuartDesk JVM Agent 1.7.x requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.4

Please read the Description for important information about this release.

New features:

o AGENT: Added RMI server connector to the agent so that users no longer need to set com.sun.management.jmxremote.* JVM system properties to enable remote JMX RMI access to the JVM.

o AGENT: Added RMI security support to the RMI server connector.

o AGENT: Added SASL security support to the JMXMP server connector.

o WEB: Added support for secure RMI, JMXMP and REMOTING-JMX scheduler connections.

o WEB: Added new com.quartzdesk.api.web.initializer.IApplicationInitializer API that can be implemented when embedding QuartzDesk Web Application in a custom container. This API allows programmatic initialization of the application without relying on the quartzdesk.work.dir JVM system property.

Changes:

o AGENT,WEB: Upgraded multiple third-party libraries packaged with the agent and web application (e.g. slf4j, logback, etc.).

o WEB: Database tables used by the internal Quartz scheduler embedded in the web application now use 'qd_qrtz_' table prefix rather than the default 'qrtz_' prefix.

o WEB: Added new versions of the ConnectionService (2.0) and QuartzService (6.0) web-services due to security related changes to JMx connection data model.

Fixed Bugs:

o AGENT: Fixed license signature verification error that could be thrown if the agent used a buggy JAXB2 implementation on the classpath (error caused by an xsd:date serialization bug in older JAXB2 releases).

o AGENT: Fixed NPE that occurred during the initialization of the jobs and triggers index when the scheduler MBean could not be found.

o WEB: Fixed an issue that occasionally caused duplicate scheduler connections and folders being shown in the main navigation tree view.

 

1.7.2

Please read the Description for important information about this release.

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.2

Maturity:
Stable
Released on:
Wednesday, 26 November 2014 03:10
Description

QuartzDesk v1.7.2 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent, please note that the first start of the agent can take long time due to the database upgrades the agent applies when it detects an older version of its database schema. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Starting with this release, the QuartDesk JVM Agent requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hours to fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.2

Please read the Description for important information about this release.

Fixed Bugs:

o WEB: Fixed "java.lang.LinkageError: loader constraint violation: when resolving interface method com.quartzdesk.agent.api.IAgent.getSchedulingEventInterceptor(..." error that may prevent the QuartzDesk Web Application from starting if the JVM Agent has been deployed on the same JVM.

 

1.7.1

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.7.1

Maturity:
Stable
Released on:
Monday, 17 November 2014 03:00
Description

QuartzDesk v1.7.1 Artifacts

QuartzDesk Standard / Enterprise Edition Users!

If you are upgrading the QuartzDesk JVM Agent, please note that the first start of the agent can take long time due to the database upgrades the agent applies when it detects an older version of its database schema. The time depends on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB. In our test system that uses a PostgreSQL database with the following parameters, the agent upgrade takes nearly 2 hours.

Number of qd_q_exec_history records: 6,300,000
[ select count(*) from qd_q_exec_history; ]
Total size of qd_q_exec_history data: 11 GB
[ select pg_total_relation_size('qd_q_exec_history'); ]

Do not stop the agent (i.e. kill the JVM) while the upgrade process is in progress!

Starting with this release, the QuartDesk JVM Agent requires additional disk space in its work directory to store full-text indexes created and maintained by the agent. The amount of additional disk space depends primarily on the amount of data stored in the qd_q_exec_history table in the QuartzDesk JVM Agent DB.

In our test system with the above parameters, the full-text index occupies approx. 1 GB of disk space and it takes the agent 6 hoursto fully populate the index. The index population process runs asynchronously and it does not block the agent's start nor does it block its operations. The agent can be safely stopped and restarted anytime during the initial index population. If the agent is restarted, the index population process is resumed where it previously finished.

 

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.7.1

Please read the Description for important information about this release.

New features:

o AGENT, WEB: Added support for full-text searching in Jobs, Triggers, Execution History and Execution Notifications grids.

o AGENT, WEB: Added support for MS SQL Server 2008 R2 SP1 and Oracle 10.2 (10g R2).

o WEB: Added new ConnectionService web-service to allow external application to manage scheduler connections and folders that are displayed in the GUI.

o API: Improved logging in all logging appenders (Log4j, Log4j2, Logback) and handlers (JUL).

Fixed Bugs:

o WEB: Fixed AgentMessagePurgingJob cron schedule. The job was originally triggered every minute between 1am and 2am. Now it is triggered only once at 1am.

o WEB: SOAPFaults produced by all web-services (ConnectionService, MessageReceiverService, QuartzService) are now fully populated with an error-specific message and complete stack traces leading to the root cause error.

o AGENT: Fixed wrong JDBC driver class name in the sample quartzdesk-agent.properties (was org.h2.jdbcx.JdbcDataSource, now org.h2.Driver).

Changes:

o AGENT: JXMMP connector is now started by the agent in a daemon thread to prevent the JVM from exiting (JVM waits for all non-daemon threads to finish before it can exit).

o AGENT: Optimized fetching of execution history records from DB by excluding blob columns from result sets.

o AGENT: Reworked automatic registration of job and scheduler listeners with detected Quartz scheduler instances.

o AGENT: Major refactoring of the Quartz scheduler and job execution event listeners.

o WEB: Fixed the "Context initialization failed java.lang.IllegalArgumentException" problem that may occur during startup with JDK 1.8. This was actually a Spring issue (https://jira.spring.io/browse/SPR-10292) and it was resolved by upgrading to the latest stable Spring release 4.1.1.

o WEB: Added new versions of the QuartzService and MessageReceiverService web-services that use new XSD types ("http://service.quartzdesk.com/types/v1_0/" namespace). In this and future QuartzDesk release this makes it possible to use independent versioning for individual web-services. Previously any change to shared types resulted in a new version of all web-services.

 

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.6.0

Maturity:
Stable
Released on:
Friday, 22 August 2014 22:00
Description

QuartzDesk v1.6.0 Artifacts

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
             auth="Container" 
             type="javax.sql.DataSource"
             .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.6.0

Fixed Bugs:

o WEB: Improved checks for trigger existence to avoid NPE that could occur under rare circumstances while adding a new trigger. 

o WEB (TECH-G174R2960A): Fixed disappearing of currently executing jobs in the Currently Executing Jobs grid whose firing triggers have been deleted while the jobs are still running. Now the running jobs remain in the grid and can be accessed. 

o AGENT, WEB: Fixed QuartzDesk webapp deployment and runtime issues on JBoss caused by colliding classes in the com.quartzdesk.domain package exposed by the QuartzDesk Agent and the same classes present in the QuartzDesk web application. 

o AGENT: Fixed "com.quartzdesk.agent.api.AgentException: Error getting database schema SQL upgrade script URLs." error when upgrading the QuartzDesk Agent that has been configured to use an H2 database. 

Changes:

o WEB: Improved error reporting of the executing job interrupt operation. 

 

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files

Stable 1.5.1

Maturity:
Stable
Released on:
Wednesday, 18 June 2014 09:18
Description

QuartzDesk v1.5.1 Artifacts

Tomcat Users!

If you are going to upgrade 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:
<Resource name="jdbc/quartzdesk" 
            auth="Container" 
            type="javax.sql.DataSource"
            .../>
New:
<Resource name="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:
<ResourceLink name="QuartzDeskDS" global="jdbc/quartzdesk" type="javax.sql.DataSource"/>
New:
<ResourceLink name="QuartzDeskDS" global="jdbc/QuartzDeskDS" type="javax.sql.DataSource"/>

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

 This is a minor bug-fix release. Please refer to the Release notes for the complete list of all fixes and other changes in this release.

Release notes

1.5.1

Fixed Bugs:

o WEB: Updated bundled JSTL lib from 1.2 to 1.2.1 to fix occasional NullPointerExceptions that can occur when the browser initiates multiple parallel requests for dynamically generated JS resources (Msg.js, LicensedProductFeatures.js etc.). The issue was caused by a synchronization bug in the JSTL 1.2 validator implementation.

o WEB: Fixed occasional "TypeError: QDesk.util.constant is undefined.", "QDesk.util.constant.ActionUrl is undefined" etc. JavaScript errors in browser console while loading the application. 

 

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 programatically 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 programatically 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 affect 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. 

Have fun!
-QuartzDesk team

View files


Releases per page: