Obsidian Scheduler 1.2 Released!

We’ve added more to Obsidian Scheduler. Version 1.2 is now available here. Features added in this release include Description annotation on job class enables inline help in admin web app Scheduled one-time runs New Job Status supporting any unscheduled events (ad hoc & chaning) Bundled Winstone support for quick start Option to wait indefinitely for … Read more

Scheduler Fault Tolerance & Load Balancing

Obsidian Scheduler provides enterprise scheduling features while natively supporting pooling and clustering, or in other words, load balancing and fault tolerance. But Obsidian does so in a way that is painless and non-invasive. In fact, you don’t have to do anything. Load balancing and fault tolerance are built into each instance of Obsidian Scheduler whether … Read more

Scheduler Management

When we started working on our Obsidian Scheduler, one of the primary motivations was to give our clients full control over the configuration of their server runtime and total control over job configuration, including schedule, state, parameterization, etc. More than just full control, we wanted the configuration of said items to take effect immediately across … Read more

Using MongoDB with Morphia

In the past few years, NoSQL databases like CouchDB, Cassandra and MongoDB have gained some popularity for applications that don’t require the semantics and overhead of running a traditional RDBMS. I won’t get into the design decisions to go into choosing a NoSQL database as others have done a good enough job already, but I … Read more

Obsidian Scheduler 1.1 Released!

We’ve been working hard to make Obsidian Scheduler even better. Version 1.1 is now available. Features added in this release include Perfectly distributed load balancing across runnings hosts within seconds of pool membership changes Header icons indicating the number of active hosts Ability to disable targeted scheduler instances without shutting them down Ad hoc job … Read more

Concurrent Collections – Map Time!

Java has boasted various collections classes for many years now, all to deal with common programming problems. When we need synchronized collections, we used to just wrap our regular collections with a call to java.util.Collections.synchronizedList() or the other similar methods. Sometimes though, these methods don’t scale as they are a very primitive and unoptimized way … Read more

Obsidian Scheduler 1.0 Released!

We are proud to announce version 1.0 of Obsidian Scheduler, which features built-in failover, load distribution and scripting support, is out today. We are proud to direct you to our demo and invite you to download a fully-functional trial.

Java Concurrency Part 5 – Blocking Queues

As discussed in Part 3, the thread pools introduced in Java 1.5 provided core support that was quickly a favourite of many java developers. Internally, the implementations make smart use of another concurrency feature introduced in java 1.5 – Blocking Queues. Queue First, a brief review of what a standard queue is. In computer science, … Read more

Java Concurrency Part 4 – Callable, Future

One of the beautiful things about Java from its very first release was the ease with which we could write multi-threaded programs and introduce asynchronous processing into our designs. The Thread class and Runnable interface combined with Java’s memory management model meant for straightforward thread programming. But as discussed in Part 3, neither the Thread … Read more