[kepler-dev] Writing Files inside workflows

Dan Higgins higgins at nceas.ucsb.edu
Wed May 25 12:55:28 PDT 2005


Hi All,
    There are currently several actors in Kepler for writing text files: 
e.g. 'org.geon.FileWrite' and 'org.resurgence.actor.TextFileWriter'.  
These actors apparently do the same thing (write a string to a file) but 
the details of how they do it can apparently make a big difference! Let 
me explain.

    The GARP workflow "garpModel_ASC_withData.xml" is an example of 
getting species locations from Digir and then running GARP. The species 
locations (longitude, latitude pairs) are concatenated into a string and 
then written to a file that is an input to the GarpPresampleLayers 
actor. Originally, the workflow used a FileWriter actor to write the 
input long,lat file. This seemed to work fine. Recently, however, I 
tested this workflow again and had all sorts of problems (Kepler 
crashes, strange error messages, etc.) In trying to figure out the 
problem, I discovered that the Digir sources have apparently be updated 
and are now returning more locations than before. The location file is 
thus longer (and takes more time to write). To summarize a whole bunch 
of debugging, the problem was apparently the FileWriter! FileWriter 
writes the file in the postfire method and then doesn't close the file 
until the wrapup method (in its parent LineWriter class). But I was 
using it in the middle of a workflow; I really want it to completely 
write and close the file before the next actor starts reading the file. 
It thus looks like there are some threading/timing issues with using 
FileWriter.

    Well, it turns out that TextFileWriter does all of its work writing 
a file INSIDE the 'fire' method. If I replace the FileWriter with the 
resurgence TextFileWriter, all the problems I was having disappear!

    So the lesson appears to be that internal details can be very important!

Dan

-- 
*******************************************************************
Dan Higgins                                  higgins at nceas.ucsb.edu
http://www.nceas.ucsb.edu/    Ph: 805-893-5127
National Center for Ecological Analysis and Synthesis (NCEAS) 
Marine Science Building - Room 3405
Santa Barbara, CA 93195
*******************************************************************



More information about the Kepler-dev mailing list