Despite the relatively good laptop (Pentium M 1.7 GHz, 1 GB RAM) I'm using at the moment, I'm always on the look for a way to speed up common operations like Dynamo restarts, something that under Windows is exasperatingly long due to the creation of startDynamo.jar files; sometimes it takes more than one minute to create one, and for my current project the result is 110MB (gotta leave space for all my MP3s...)

Since I usually run with an Oracle 9.2.0.6 database instance, 3 ATG 7.1p1 instances, a couple of browsers and an IDE, and my laptop has a very slow disk, the lost time quickly adds up. I'm almost completely unproductive during this time due to the heavy trashing of the Windows VM system (a disgrace that should never had seen daylight). This was the main motivation to try to convince Dynamo to run on Cygwin, the second motivation being that there I can have a decent terminal and shell (mrxvt and bash) and a tail utility worth its name (a great help in debugging form handlers, I can tell you). The original Unix startup scripts from ATG are adaptable to the Cygwin environment with a bit of massaging, due to the fact that all paths passed to the JVM on Windows must be converted from the Cygwin format. Another note, as far as I know ATG doesn't support Cygwin, so if you're curious and want to do this, do not bother ATG if you run into any problems.

How to do it:
  • make a backup of the $DYNAMO_HOME/bin directory (oops... make that %DYNAMO_HOME%\bin)
  • look in the startup scripts for expression involving paths, the results must be converted to a format that the Windows JVM understands; for example,

    JAVA_ARGS=" -Datg.dynamo.modulepath=${DYNAMO_ROOT}:${DAS_ROOT} $JAVA_ARGS"

    should become

    JAVA_ARGS=" -Datg.dynamo.modulepath=`cygpath -wp ${DYNAMO_ROOT}:${DAS_ROOT}` $JAVA_ARGS"

    the cygpath -wp command takes a Cygwin path string (/cygdrive/C/ATG/ATG71p1:/cygdrive/C/ATG/DAS630) and produces the equivalent Windows path string (C:\ATG\ATG71p1;C:\ATG\DAS630)
  • add Cygwin as a Unix variant to dynamoEnv.sh
  • modify the temp environment script to convert to Cygwin format all the paths of module startup scripts (like C:\ATG\ATG71p1\PublishingAgent\bin\deploymentConfig.sh)
I have a diff of my changes that you can apply to a 7.1 patch 1 install to help get you going; it contains changes for the scripts I'm currently using, such as startDynamo, startSQLRepository, importRepository and exportRepository.

I recommend also to install and configure mrxvt on Cygwin, I like to have a multi-tabbed terminal to replace putty with: here's my .mrxvtrc file
  mrxvt*vt0*tabTitle:term1
  mrxvt*vt1*tabTitle:term2
  mrxvt*vt2*tabTitle:term3
  mrxvt*vt3*tabTitle:term4
  mrxvt*vt4*tabTitle:term5
  mrxvt*vt5*tabTitle:term6
  mrxvt*vt6*tabTitle:term7
  mrxvt*vt7*tabTitle:term8
  mrxvt*vt8*tabTitle:term9
  mrxvt*vt0*saveLines:2000
  mrxvt*vt1*saveLines:2000
  mrxvt*vt2*saveLines:2000
  mrxvt*vt3*saveLines:2000
  mrxvt*vt4*saveLines:2000
  mrxvt*vt5*saveLines:2000
  mrxvt*vt6*saveLines:2000
  mrxvt*vt7*saveLines:2000
  mrxvt*vt8*saveLines:2000
  mrxvt*initTermNumber:2
  mrxvt*tabShell:True
  mrxvt*scrollbarStyle:sgi
  mrxvt*scrollbarRight:True
  mrxvt*geometry:220x60
  mrxvt*font:fixed
and to run it automatically when starting Cygwin/X, the startxwin.bat file should contain the following line
  run /usr/local/bin/mrxvt -ls