<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:i18n="http://apache.org/cocoon/i18n/2.1" xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:d="http://outerx.org/daisy/1.0" version="2.0"><channel><title>David's Blog Posts</title><link>http://my.fluxcorp.com/cocoon/portal/blogs</link><description>David's 10 Most Blog Posts</description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Flux 7.8 Beta 1 is Available!</title><link>http://my.fluxcorp.com/cocoon/blogs/16232-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;The first beta release of Flux 7.8 is available to existing Flux users on the Flux Portal.&lt;/p&gt;
  
    &lt;p&gt;(Flux Portal users can download it by selecting "7.8" in the drop-down box in the upper-right corner of the Flux Portal where it says, "Select Flux Version". Then click Downloads on the menu bar. That will navigate you to the 7.8 beta download file.)&lt;/p&gt;
  
    &lt;p&gt;Flux 7.8 Beta 1 already has a temporary license key built-in, so you can start playing with Flux 7.8 right away.&lt;/p&gt;
  
    &lt;p&gt;So, what's new in Flux 7.8? We took some things that were originally planned for Flux 8 and added a couple other things. Here is the rough list of what's new:&lt;/p&gt;
  
    &lt;ul&gt;
    &lt;li&gt;Database actions for querying and updating databases&lt;/li&gt;
  
    &lt;li&gt;REST action for invoking REST services&lt;/li&gt;
  
    &lt;li&gt;Web Service action improvement so that it properly supports modern Web services available today&lt;/li&gt;
  
    &lt;li&gt;FlowContext.isExpedited() method to allow an action to determine if it is running due to having been expedited&lt;/li&gt;
  
    &lt;li&gt;Persistent variable rules expanded to support POJOs (plain old Java objects -- Java objects having the usual getter and setter methods)&lt;/li&gt;
  
    &lt;li&gt;PostgreSQL database support&lt;/li&gt;
  
    &lt;li&gt;In-memory database upgraded to the H2 database, which removes the previous limits imposed by HSQL&lt;/li&gt;
  
    &lt;li&gt;Documentation and example improvements&lt;/li&gt;
  
    &lt;li&gt;Java 5 or Java 6 required.&lt;/li&gt;
  &lt;/ul&gt;
  
    &lt;p&gt;Our continuous integration server is running positive for all tests across all supported databases. We are continuing to test Flux 7.8. The release date will be 24 March 2009.&lt;/p&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=wELufHB4-S0:SBfd3xuMcMc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Flux 7.8 Release Targeted for 24 March 2009</title><link>http://my.fluxcorp.com/cocoon/blogs/16225-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;We are very close to having a beta ready for Flux 7.8. The generally available release for Flux 7.8 is targeted for Tuesday, 24 March 2009.&lt;/p&gt;
  
    &lt;p&gt;New features in Flux 7.8 include:&lt;/p&gt;
  
    &lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;Database actions for querying and updating databases&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;REST action for invoking REST services&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;Web Service action improvement so that it properly supports modern Web services available today&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;FlowContext.isExpedited() method to allow an action to determine if it is running due to having been expedited&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;Persistent variable rules expanded to support POJOs (plain old Java objects -- Java objects having the usual getter and setter methods)&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;PostgreSQL database support&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;In-memory database upgraded to the H2 database, which removes the previous limits imposed by HSQL
    &lt;br/&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;JMS 1.1 support&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;Documentation and example improvements&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;Java 5 or Java 6 required. As a result of this requirement, an explicit xerces.jar dependency is no longer required.&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ul&gt;
  
    &lt;p&gt;Flux 7.8 includes elements that were originally implemented in Flux 8.0, which has not been released yet.&lt;/p&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=DFKon0OS4AE:axIBjj3ZouA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Better WebSphere Support in Flux 8</title><link>http://my.fluxcorp.com/cocoon/blogs/15698-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;Flux 8, scheduled for release in the first quarter of 2009, will support WebSphere better. Here's how.&lt;/p&gt;
  
    &lt;div&gt;
    &lt;ol&gt;
    &lt;li&gt;
    &lt;p&gt;
    &lt;b&gt;Flux 8 will allow indirect JNDI lookups, which use the 
    &lt;i&gt;java:comp/env&lt;/i&gt;
   prefix.&lt;/b&gt;
   In Flux 7.x, a job or workflow can do direct JNDI lookups but indirect JNDI lookups are not supported. Typical JNDI lookups include accessing data sources and EJBs. When you do a direct JNDI lookup from a Flux 7.x job or workflow running inside WebSphere, there are two primary concerns.&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;ol&gt;
    &lt;li&gt;
    &lt;p&gt;Direct JNDI lookups are deprecated beginning in WebSphere 6. You'll receive a warning message when you use them, which will probably be logged repeatedly. Furthermore, since direct JNDI lookups are deprecated, you may wonder if WebSphere will completely drop support for them sometime in the future.&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;Direct JNDI lookups are undesirable, from a Java developer's point of view, since you are looking up a resource in the global JNDI namespace and you probably cannot depend on that resource being available to you at that exact position in the global namespace. Better that your Java code reference a location in your application's local namespace using a resource reference, which, in turn, can point to a proper data source or EJB. Furthermore, in the resource reference, you can tune the properties of how you use the reference, something not available to you when using direct JNDI lookups.&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ol&gt;
  
    &lt;li&gt;
    &lt;p&gt;
    &lt;b&gt;Flux 8 can use WebSphere-managed threads to perform work instead of directly creating threads.&lt;/b&gt;
   In Flux 7.x, Flux creates its own threads to do its work, even when Flux is instantiated inside WebSphere. When Flux creates its own threads, Flux still runs normally within WebSphere and behaves correctly. However, there are two primary concerns:&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;ol&gt;
    &lt;li&gt;
    &lt;p&gt;WebSphere may log warnings when Flux creates a thread.&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;WebSphere may drop support for such "unmanaged" threads sometime in the future.&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ol&gt;
  &lt;/ol&gt;
  &lt;/div&gt;
  
    &lt;div&gt;
    &lt;div&gt;
    &lt;div&gt;
    &lt;div&gt;
    &lt;div&gt;
    &lt;p&gt;This improved WebSphere support occurred because Flux 8 is adding 
    &lt;i&gt;Work Manager&lt;/i&gt;
   support. In essence, a WebSphere CommonJ WorkManager performs work asynchronously, using its own thread pool. When properly configured, Flux can delegate all its background processing to Work Manager threads. In this case, all of Flux's background, asynchronous processing is performed by threads managed by WebSphere ("managed threads"). When appropriately configured, Flux will not use its own "unmanaged threads", which WebSphere has deprecated.&lt;/p&gt;
  &lt;/div&gt;
  
    &lt;div&gt;
    &lt;p&gt;When it comes right to the heart of the matter, Flux 8 will have better support for WebSphere by making it possible to:&lt;/p&gt;
  &lt;/div&gt;
  
    &lt;div&gt;
    &lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;perform indirect JNDI lookups for data sources and EJBs&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;use WebSphere's Work Manager to make use of managed threads&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;resolve warning messages&lt;/p&gt;
  &lt;/li&gt;
  
    &lt;li&gt;
    &lt;p&gt;remove concern for use of techniques that WebSphere has deprecated&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ul&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=40ZZDYE4_pk:agqgObBw150:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Thread-safe objects formally documented in Flux</title><link>http://my.fluxcorp.com/cocoon/blogs/15329-FC</link><description>&lt;body&gt;


    &lt;p&gt;Developers often want to know exactly which Java objects they use are
thread-safe. Equally as important, developers want to know which Java objects
are 
    &lt;em&gt;not&lt;/em&gt;
   thread-safe. Of course, it's important to know when it's safe
to have lots of threads invoking methods on objects simultaneously.&lt;/p&gt;
  


    &lt;p&gt;Starting with Flux 8.0, thread-safe objects in Flux are formally documented
in Flux's Javadoc API documentation. Here's a snapshot of the Flux 8.0 Javadoc
API documentation.&lt;/p&gt;
  


    &lt;p&gt;
    &lt;br/&gt;
    &lt;img src="http://my.fluxcorp.com/cocoon/blogs/15328-FC/version/1/part/ImageData/data?branch=main&amp;language=default"/&gt;
    &lt;br/&gt;
  &lt;/p&gt;
  


    &lt;p&gt;In the image above, you can see the top of the Javadoc for

    &lt;em&gt;flux.repository.RepositoryAdministrator&lt;/em&gt;
  . In the highlighted section at
the bottom, it says, "
    &lt;strong&gt;Thread-safe. Can be invoked safely from multiple
threads simultaneously.&lt;/strong&gt;
  "&lt;/p&gt;
  


    &lt;p&gt;This is the formal notation indicating that the

    &lt;em&gt;RepositoryAdministrator&lt;/em&gt;
   class is thread-safe.&lt;/p&gt;
  


    &lt;p&gt;In the absence of this formal notation, you should assume a Flux class is not
thread-safe. For example, we make no guarantees that the 
    &lt;em&gt;flux.FlowChart&lt;/em&gt;
  
class is thread-safe. (It doesn't need to be.)&lt;/p&gt;
  


    &lt;p&gt;In case you're interested what tools I used to generate this thread-safe
documentation, it's nothing fancy. I first searched online to find out what
other Java API documentation writers were using. I found Alex Miller's blog
posting about

    &lt;a href="http://tech.puredanger.com/2008/08/11/documenting-thread-safety/"&gt;documenting
thread safety&lt;/a&gt;
  .&lt;/p&gt;
  


    &lt;p&gt;Alex and others reference some

    &lt;a href="http://www.javaconcurrencyinpractice.com/annotations/doc/net/jcip/annotations/package-summary.html"&gt;concurrency
annotations&lt;/a&gt;
   from the book 
    &lt;em&gt;Java Concurrency in Practice&lt;/em&gt;
  .&lt;/p&gt;
  


    &lt;p&gt;So, I tagged Flux's thread-safe classes with 
    &lt;strong&gt;@ThreadSafe&lt;/strong&gt;
   in
the source code. The 
    &lt;strong&gt;@ThreadSafe&lt;/strong&gt;
   tags are up in the class
declaration, right beneath the 
    &lt;strong&gt;@author&lt;/strong&gt;
   tag. That was easy
enough.&lt;/p&gt;
  


    &lt;p&gt;Then I marked up our Maven pom.xml file, which uses Maven's Javadoc plugin,
to describe the verbiage to be emitted when the 
    &lt;strong&gt;@ThreadSafe&lt;/strong&gt;
  
tag is encountered.&lt;/p&gt;
  


    &lt;p&gt;Running 
    &lt;em&gt;mvn javadoc:javadoc&lt;/em&gt;
   in our build environment produces
standard Javadoc along with the customized notices about thread-safety that you
see above.&lt;/p&gt;
  


    &lt;p&gt;Having Flux's thread-safe classes formally documented in this way will be a
productive boost for Java developers using the Flux APIs.&lt;/p&gt;
  

&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=Bvh7fMir-Jw:g6QPVZfT9nk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>R.I.P. flux.Factory</title><link>http://my.fluxcorp.com/cocoon/blogs/11834-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;Eight years ago, I wrote the first version of Flux's Factory class. It was
the starting point for Flux users. Flux users would first make an instance of
Flux's Factory class and then use it to create other objects involved in Flux
programming.&lt;/p&gt;
  
    &lt;p&gt;Yesterday, I deleted the Factory class from the upcoming Flux 8.0 code base.
&lt;/p&gt;
  
    &lt;p&gt;
    &lt;br/&gt;
    &lt;img src="/cocoon/blogs/11832-FC/version/live/part/ImageData/data?branch=1&amp;language=1"/&gt;
    &lt;br/&gt;
  &lt;/p&gt;
  
    &lt;p&gt;Back in 2000, using the factory design pattern was the natural choice for
Flux. These days,

    &lt;a href="daisy:11793-FC"&gt;it's
become clear that Flux needs to use simple classes&lt;/a&gt;
   instead of the factory
design pattern.&lt;/p&gt;
  
    &lt;p&gt;It felt good to simplify. 
    &lt;br/&gt;
    &lt;img src="/cocoon/blogs/11833-FC/version/live/part/ImageData/data?branch=1&amp;language=1"/&gt;
    &lt;br/&gt;
  &lt;/p&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=OZZxizBuzlE:trIKKF47hCQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Lightweight or heavyweight job scheduler?</title><link>http://my.fluxcorp.com/cocoon/blogs/11830-FC</link><description>&lt;body&gt;


    &lt;p&gt;On a fairly regular basis, we're asked how Flux is different than one of the
large, enterprise-class job schedulers like AutoSys and CONTROL-M. The short
answer is: 
    &lt;em&gt;apples and oranges.&lt;/em&gt;
  &lt;/p&gt;
  


    &lt;p&gt;
    &lt;br/&gt;
    &lt;img src="http://my.fluxcorp.com/cocoon/blogs/11829-FC/version/1/part/ImageData/data?branch=main&amp;language=default"/&gt;
    &lt;br/&gt;
  &lt;/p&gt;
  


    &lt;p&gt;
    &lt;em&gt;Is someone on your team doing Java development?&lt;/em&gt;
  &lt;/p&gt;
  


    &lt;p&gt;Answer 
    &lt;em&gt;
    &lt;strong&gt;Yes&lt;/strong&gt;
  &lt;/em&gt;
  : an embeddable Java job scheduler is the
lightweight solution I would use.&lt;/p&gt;
  


    &lt;p&gt;Answer 
    &lt;em&gt;
    &lt;strong&gt;No&lt;/strong&gt;
  &lt;/em&gt;
  : a stand-alone job scheduler server like
AutoSys, CONTROL-M, etc is the heavyweight solution I would use.&lt;/p&gt;
  


    &lt;p&gt;

    &lt;a href="http://fluxcorp.com/products/flux/technical/flux_or_job_scheduler_server.html"&gt;I've
written a short technical article that addresses this topic.&lt;/a&gt;
   I hope you find
it useful if you're sorting out whether you should use an embeddable,
lightweight Java job scheduler like Flux or a stand-alone, heavyweight job
scheduler server like CONTROL-M or AutoSys.&lt;/p&gt;
  


    &lt;p&gt;What's your opinion? Leave a comment or call me on skype at

    &lt;em&gt;flux.david&lt;/em&gt;
  &lt;/p&gt;
  

&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=n0-QQH5jtww:B4I7KwTgLBU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>New in-memory database for Flux: H2</title><link>http://my.fluxcorp.com/cocoon/blogs/11810-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;Flux has used the HSQL in-memory database since Flux's launch in 2000. It's a
nice and easy way to get programming with simple Flux examples in literally five
minutes after downloading and installing Flux.&lt;/p&gt;
  
    &lt;p&gt;However,

    &lt;a href="daisy:11795-FC"&gt;as I've
talked about before,&lt;/a&gt;
   HSQL has its limitations.&lt;/p&gt;
  
    &lt;p&gt;The Derby database is now supported by the forthcoming Flux 8.0. It's a
simple, embeddable, well supported database (Apache, Sun) that stores jobs and
workflows persistently without using an enterprise class database such as
Oracle, DB2, or MySQL.&lt;/p&gt;
  
    &lt;p&gt;From a Flux perspective, the only problem with Derby is that it doesn't
support an in-memory mode, which can make things fast and simple. Fast, because
an in-memory database doesn't hit the disk. Simple, because a fresh in-memory
database is created each time a Flux engine is created.&lt;/p&gt;
  
    &lt;p&gt;Now enter 
    &lt;a href="http://www.h2database.com/"&gt;H2&lt;/a&gt;
  . H2 is the popular
successor to HSQL. It overcomes the glaring limitations in HSQL, supports an
in-memory mode, and is still fast!&lt;/p&gt;
  
    &lt;p&gt;Yesterday I integrated H2 into Flux 8.0. It was easy.&lt;/p&gt;
  
    &lt;p&gt;I just ran a simple speed test of loading and firing a simple Java Action
job. H2 took about 4.5 seconds. Derby took between 6.5 and 7.5 seconds.&lt;/p&gt;
  
    &lt;p&gt;All in all, H2 provides (a) simplicity over Derby since a fresh database is
created whenever a Flux engine is created and (b) speed over Derby.&lt;/p&gt;
  
    &lt;p&gt;Of course, Derby is still very handy since it provides a robust persistence
option. Since Derby is supported by both Apache and Sun, I have more confidence
in it for data persistence than H2's persistence mode, which Flux won't be
using.&lt;/p&gt;
  
    &lt;p&gt;H2 is now the default database in Flux 8.0. Derby is available as an option.
Both H2 and Derby will ship embedded with Flux 8.0 so you'll never even have to
include their jar files on your class path. Just include flux.jar.&lt;/p&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=8XF-mCw_4fc:pDWlry3G0Jo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Towards a Flux POJO programming model</title><link>http://my.fluxcorp.com/cocoon/blogs/11793-FC</link><description>&lt;body&gt;


    &lt;p&gt;I want to introduce the idea of programming in Flux using POJOs (plain old
Java objects). In a Flux release later this year, you'll be able to instantiate
Flux objects as POJOs in addition to the traditional factory approach that Flux
has employed since its inception.&lt;/p&gt;
  


    &lt;p&gt;The historical perspective is simple. Back in 2000 when Flux 1.0 was
released, J2EE was the most important enterprise Java technology, and J2EE
architectures used factories extensively. That concept influenced Flux 1.0. For
that reason, Flux uses the factory design pattern to instantiate objects.&lt;/p&gt;
  


    &lt;p&gt;Today, the POJO programming model is the modern way. After all, it's simpler.
It also makes it easier to integrate with other frameworks, most notably Spring,
but Spring is certainly not the only framework that Flux could plug into easier
if Flux supported a POJO programming model.&lt;/p&gt;
  


    &lt;p&gt;So, what will the new Flux APIs look like? Picture lines of code like this:
&lt;/p&gt;
  


    &lt;blockquote&gt;

    &lt;p&gt;new FlowChart(); 
    &lt;br/&gt;
  
new TimerTrigger(); 
    &lt;br/&gt;
  
FlowChart.add(timerTrigger); 
    &lt;br/&gt;
  
new Configuration(); 
    &lt;br/&gt;
  
new Engine(configuration);&lt;/p&gt;
  
&lt;/blockquote&gt;
  


    &lt;p&gt;I'm working on this task now and will report back once something more
substantial is in place. Comments? Questions?&lt;/p&gt;
  

&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=wCuCv7rZkfw:0rWd2XL5VdA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>HSQL to Derby</title><link>http://my.fluxcorp.com/cocoon/blogs/11795-FC</link><description>&lt;body&gt;


    &lt;p&gt;By default, Flux stores its information in an HSQL in-memory database. Flux
is preconfigured with HSQL by default so that people can download Flux and get
started with running simple examples within a few minutes. No need to configure
your Oracle, DB2, or MySQL instance.&lt;/p&gt;
  


    &lt;p&gt;Over the years, a few problems have arisen from this approach:&lt;/p&gt;
  


    &lt;p&gt;1) HSQL's database transaction isolation level is READ_UNCOMMITTED (instead
of the usual READ_COMMITTED), which places severe limitations on Flux's ability
to run multiple jobs and workflows concurrently. In short, when using HSQL as
its database, Flux can run at most one job or workflow at a time.&lt;/p&gt;
  


    &lt;p&gt;2) Flux requires up to three database connections for its internal use. Due
to this requirement, not all of Flux's features are available when using HSQL.
For one, Flux messaging doesn't work when using HSQL.&lt;/p&gt;
  


    &lt;p&gt;3) It would be useful if HSQL could store its information persistently. It
can, actually, but it performs so poorly with sizable databases that Flux
explicitly prevents HSQL from running in a persistent mode. For a Flux user to
get a persistent database working with Flux, it would be nice if Flux's built-in
database supported it. Not everyone wants to go to a full-fledged database such
as Oracle, DB2, or MySQL.&lt;/p&gt;
  


    &lt;p&gt;Moving from HSQL to Derby would solve these problems.&lt;/p&gt;
  


    &lt;p&gt;Derby is well supported, would allow many jobs and workflows to run
concurrently from the get-go, and would allow for an option to persistently
store Flux data.&lt;/p&gt;
  


    &lt;p&gt;The plan for Flux 8.0 is to move from HSQL to Derby. For nearly all those
using HSQL with Flux, the transition will be transparent and seamless.&lt;/p&gt;
  


    &lt;p&gt;Flux 8.0 development begins imminently. Flux 7.7 is very nearly ready to be
released. Flux 8.0 starts afterwards.&lt;/p&gt;
  


    &lt;p&gt;I've already coded a proof-of-concept transition from HSQL to Derby in the
Flux 7.7 code base. It was straightforward. I ran Derby-based Flux jobs and
workflows.&lt;/p&gt;
  


    &lt;p&gt;It was cool.

    &lt;br/&gt;
    &lt;img src="http://blogs.fluxcorp.com/images/emoticons/happy.gif"/&gt;
    &lt;br/&gt;
  &lt;/p&gt;
  

&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=J39eOzp9Zvo:NQjIkLcj6cw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Resources to help you learn and use Flux better</title><link>http://my.fluxcorp.com/cocoon/blogs/11786-FC</link><description>&lt;head&gt;
    &lt;link&gt;&lt;/link&gt;
  &lt;/head&gt;
  
    &lt;body&gt;
    &lt;p&gt;Here at Flux, we have a lot of resources that are new or updated as of late.
They could be useful to you or your team to help you flatten your Flux learning
curve or to help you use Flux better.&lt;/p&gt;
  
    &lt;p&gt; 
    &lt;br/&gt;
    &lt;img src="/cocoon/blogs/1045-FC/version/live/part/ImageData/data?branch=1&amp;language=1"/&gt;
    &lt;br/&gt;
  Here are seven helpful resources updated as of late.&lt;/p&gt;
  
    &lt;ul&gt;
    &lt;li&gt;
    &lt;a href="http://www.fluxcorp.com/"&gt;New website:&lt;/a&gt;
   We reworked the content
on our website and the visual design to provide more information than before.
It's organized better. The goal is to help you find what you need to learn Flux
and to use Flux better.&lt;/li&gt;
  
    &lt;li&gt;
    &lt;a href="http://blogs.fluxcorp.com/"&gt;Blogs:&lt;/a&gt;
   We blog. We do it to give
you insight into what we're thinking and how we're planning to help our
customers succeed. There are truly useful things in our blogs.&lt;/li&gt;
  
    &lt;li&gt;
    &lt;a href="http://my.fluxcorp.com/"&gt;New customer portal:&lt;/a&gt;
   We updated the
Flux Portal to better organize the info that is available. This includes
discussion forums with other Flux users. It all helps you learn and use Flux.
&lt;/li&gt;
  
    &lt;li&gt;

    &lt;a href="http://www.fluxcorp.com/products/flux/technical/tech_specs.html"&gt;New
technical specs page:&lt;/a&gt;
   It lists Flux's technical specifications and is
updated regularly.&lt;/li&gt;
  
    &lt;li&gt;

    &lt;a href="http://www.fluxcorp.com/products/flux/technical/tech_specs.html"&gt;New
performance metrics:&lt;/a&gt;
   Flux engine performance data is online. The link to the
performance metrics is near the bottom of the technical specs page.&lt;/li&gt;
  
    &lt;li&gt;

    &lt;a href="http://www.fluxcorp.com/products/flux/technical/quartz.html"&gt;Comparison
to Quartz:&lt;/a&gt;
   This comparison document gives a straightforward, unbiased
viewpoint of when it's appropriate to use each.&lt;/li&gt;
  
    &lt;li&gt;
    &lt;a href="http://my.fluxcorp.com/community/kb"&gt;Technical articles:&lt;/a&gt;
  
Short, to-the-point knowledge base articles that present solutions to common
Flux situations.&lt;/li&gt;
  &lt;/ul&gt;
  
    &lt;p&gt;How else can we help you? What else would you like to see?&lt;/p&gt;
  &lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/david_at_flux?a=NTYbw7VFpdA:9L3rApN84J4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/david_at_flux?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item></channel></rss>
