<trebuchet-configuration>

Purpose/Function

Extension of the ncsa.tools.common.types.Configuration object specifically for Trebuchet usage. See below for a fuller explanation of this object. Within Trebuchet, the object is used to carry Trebuchet-specific settings, and (under the covers) user name and/or proxy, along with any optimization settings for the operation. When Trebuchet is used through Ogrescript, the configuration is present only to specify non-default option settings (see the list below).

Attributes

Usually not used in Ogrescript.

Elements

TAG

TYPE

COUNT

DESCRIPTION

<property>

ncsa.tools.common.types.Property

0:N

a Trebuchet configuration option to set

For the purposes of Trebuchet, the name, value and type attributes should be set (default type is string).

TREBUCHET CONFIGURATION OPTIONS

JAVA

OGRESCRIPT

TYPE

DEFAULT

ANY.OPERATION_ID

operation-id

String

null

ANY.TREBUCHET_DIR

trebuchet.dir

String

null; this property must be set as a Java System property; the default will produce a directory username/trebuchet in java.io.tmpdir

ANY.IGNORE_SUCCESS_STATUS

ignore-success-status

boolean

false

ANY.CLIENT_POOL_SIZE

client-pool-size

int

3

ANY.THREAD_POOL_SIZE

thread-pool-size

int

30

ANY.LIST_FAILONERROR

list-fail-on-error

boolean

false

ANY.LIST_RECURSIVE

list-recursive

boolean

false

ANY.LIST_EXCLUDE_HIDDEN

list-exclude-hidden

boolean

false

ANY.LIST_INCLUDE_SELF

list-include-self

boolean

false

ANY.LIST_PROCESS_SYMLINKS

list-process-symlinks

boolean

false

ANY.LIST_TIMEOUT

list-timeout

long

3000

ANY.LIST_STAGE_LATENCY

list-stage-latency

long

60000

ANY.LIST_STAGE_POLLING

list-stage-polling

long

5000

ANY.LIST_STAGE_MAX_TIME

list-stage-max-time

long

-1 (no max)

ANY.TOUCH_FAILONERROR

touch-fail-on-error

boolean

false

ANY.TOUCH_MAKE_PARENT

touch-make-parent

boolean

true

ANY.TOUCH_CREATE

touch-create

boolean

false

ANY.TOUCH_TIMESTAMP

touch-timestamp

Integer

null

ANY.TOUCH_SOURCE

touch-source

boolean

false

ANY.TOUCH_TMP

touch-tmp

boolean

false

ANY.MKDIR_FAILONERROR

mkdir-fail-on-error

boolean

false*

ANY.MKDIR_TMP

mkdir-tmp

boolean

false

ANY.DELETE_FAILONERROR

delete-fail-on-error

boolean

false*

ANY.DELETE_ALL_EMPTY_DIRS

delete-all-empty-dirs

boolean

false

ANY.DELETE_ONLY_NON_DIRS

delete-only-non-dirs

boolean

false

ANY.DELETE_ONLY_DIRS

delete-only-dirs

boolean

false**

ANY.DELETE_TMP

delete-tmp

boolean

false

ANY.COPY_SCAN_ALL_BEFORE

copy-scan-all-before

boolean

false

ANY.COPY_SKIP_EMPTY_DIRS

copy-skip-empty-dirs

boolean

false

ANY.COPY_FLATTEN

copy-flatten

boolean

false

ANY.COPY_DELETE_SRC

copy-delete-src

boolean

false

ANY.COPY_MAKE_PARENT

copy-make-parent

boolean

true***

ANY.COPY_OVERWRITE

copy-overwrite

boolean

true****

ANY.COPY_RANDOM_DUPLICATES

copy-random-duplicates

boolean

false

ANY.COPY_SEQUENTIAL_DUPLICATES

copy-sequential-duplicates

boolean

false

ANY.COPY_MARK_FAILED_DELETES

copy-mark-failed-deletes

boolean

false

ANY.COPY_ONLY_MORE_RECENT

copy-only-more-recent

boolean

false

ANY.COPY_RETRY

copy-retry

int

0

ANY.COPY_VALIDATE_SIZES

copy-validate-sizes

boolean

false

ANY.COPY_UPDATE_CHUNK_SIZE

copy-update-chunk-size

int

1024*1024*10

ANY.COPY_FORCE_UPDATES

copy-force-updates

boolean

false

FILE.LIST_UNIX_SCAN

list-unix-scan

boolean

true

FILE.COPY_RELINK_SYMLINKS

copy-relink-symlinks

boolean

false

FILE.COPY_LINK_TO_SOURCE

copy-link-to-source

boolean

false

GRIDFTP.TRANSFER_TYPE

transferType

String

gridftp-image

GRIDFTP.ASCII

gridftp-ascii

String

 

GRIDFTP.IMAGE

gridftp-image

String

 

GRIDFTP.EBCDIC

gridftp-ebcdic

String

 

GRIDFTP.TRANSFER_MODE

transferMode

String

gridftp-eblock (if supported)

GRIDFTP.STREAM

gridftp-stream

String

 

GRIDFTP.BLOCK

gridftp-block

String

 

GRIDFTP.EBLOCK

gridftp-eblock

String

 

GRIDFTP.PROTECTION_LEVEL

protection

String

gridftp-clear

GRIDFTP.CLEAR

gridftp-clear

String

 

GRIDFTP.SAFE

gridftp-safe

String

 

GRIDFTP.PRIVATE

gridftp-private

String

 

GRIDFTP.CONFIDENTIAL

gridftp-confidential

String

 

GRIDFTP.DATA_CHANNEL_AUTH

dataChannelAuthentication

String

gridftp-none

GRIDFTP.NONE

gridftp-none

String

 

GRIDFTP.SELF

gridftp-self

String

 

GRIDFTP.TARGET_ACTIVE

target-active

boolean

false

GRIDFTP.PARALLELISM

parallelism

int

1

GRIDFTP.STRIPING

striping

boolean

false

GRIDFTP.PROTECTION_BUFFER

protectionBufferSize

int

1024*16

GRIDFTP.TCP_BUFFER

tcpBufferSize

int

1024*64 (local)

GRIDFTP.LOCAL_TCP_BUFFER

localTcpBufferSize

int

1024*64 (local)

GRIDFTP.REPLY_WAIT

replyWait

int

30 * 1000 (ms)

GRIDFTP.POLL_SERVER

pollServer

int

200 (ms)

GRIDFTP.VERIFY_VIA_LIST

verify-via-list

boolean

false

SSH.COPY_LINK_TO_SOURCE

copy-link-to-source

boolean

false

HTTP.CONNECTION_TIMEOUT_IN_SECS

HTTP-connection-timeout-in-secs

int

0

HTTP.LINGER

HTTP-linger

int

0

HTTP.SEND_BUFFER_SIZE

HTTP-send-buffer-size

int

?

HTTP.RECV_BUFFER_SIZE

HTTP-recv-buffer-size

int

?

HTTP.SO_TIMOUT_IN_SECS

HTTP-so-timeout-in-secs

int

0

HTTP.ENABLE_STALE_CHECKING

HTTP-enable-stale-checking

boolean

false

HTTP.TCP_NO_DELAY

HTTP-tcp-no-delay

boolean

false

HTTP.MAX_CONNECTIONS_PER_HOST

HTTP-max-connections-per-host

int

?

HTTP.TOTAL_CONNECTIONS

HTTP-total-connections

int

?

HTTP.LENIENT

HTTP-lenient

boolean

false

HTTP.STRICT

HTTP-strict

boolean

false

HTTP.VERSION

HTTP-version

String

HTTP_1_1

HTTP_0_9

HTTP-0-9

String

 

HTTP_1_0

HTTP-1-0

String

 

HTTP_1_1

HTTP-1-1

String

 

GRIDFTP settings also apply to MSSFTP.

* = defaults to FALSE if the property is not set; the default configuration object for Mkdir, Delete, and Copy, however, forces these to TRUE.
** = automatically set to TRUE during the postprocessing phase of the copy operation if source or tmp is being deleted.
*** = used when generating a CopyCache directly from source and target URIs.
**** = set to FALSE in the default configuration for resource copy.

To set the GRIDFTP port range programmatically, do the following:
  • in JAVA:
    System.setProperty("org.globus.tcp.port.range", "x,y");
    
  • in OGRESCRIPT (see SetSystemProperty):
    <set-system-property name="org.globus.tcp.port.range" value="x,y"/>
    

NOTES

An explanation of ncsa.tools.common.types.Configuration

This object can be used (programmatically) in one of two ways:

  • to provide a dynamic set of name-value pairs which can be used to configure an object's "set" methods by reflection;
  • to carry definitions of properties to be used dynamically in connection with an operation, without their being directly associated with an object's accessor methods.

The latter is the mode in which it is used in the Ogrescript-Trebuchet tasks.

The principal data type added and stored is an ncsa.tools.common.types.Property; however, its subclass, ncsa.tools.common.types.ActualValueAttribute, can also be added programmatically (not through Ogrescript) to the configuration object. The latter holds a property value of an arbitrary, usually (though not necessarily) serializable type. The configuration object's "match" method, however, only attempts to compare names and string values, even on the ActualValueAttribute.

If a property name is in the configuration propertyObjectMap and matches an accessor method on an object to be configured by reflection, that object will be given the corresponding value for that field by first deserializing the string value.

A single configuration object can be re-used to configure more than one object. Care must be taken, however, to avoid re-use of the same configuration object across objects of different types when these have intersecting method names whose values need to be different, or where default values for those names should not be changed on one of the objects.


Examples

<ogrescript>
   ...
   <copy>
      <configuration>
         <property name="transferMode" value="gridftp-stream"/>
         <property name="target-active" value="true" type="boolean"/>
         <property name="tcpBufferSize" value="2097152" type="int"/>
      </configuration>
      ...
   </copy>
   ...	
</ogrescript>
  • No labels