Ceci est une ancienne révision du document !


GoldenGate OpenR66 openr66

Le projet GoldenGate OpenR66 est une proposition d'un moniteur de transfert de fichiers pour l'environnement de production réel. Il soutient envoyer et de recevoir le transfert de fichiers, transfert de fichiers multiples simultanées, le transfert grâce à l'appui (par exemple à partir d'un serveur web passe par OpenR66 vers un autre serveur), la connexion réseau de multiplexage (une seule prise réseau est utilisé entre deux serveurs), pré-post- ou l'action d'erreur de transfert (plusieurs possibilités, y compris l'exécution de scripts externes), la validation de paquets MD5 (en option), le support de SSL (en option), la limitation de bande passante à la fois au niveau mondial (toutes les sockets) ou locale (une prise à un moment) (optionnel), supervision Web inclus, aux bases de données simples (H2, Oracle, PostgreSQL ou bases de données MySQL sont supportés) qui permettent de renforcer le contrôle ou la manipulation de production, lourds ou clients légers où les clients ne peuvent émettre des transferts (envoyer ou recevoir), mais ne pas accepter un nouveau transfert à partir de serveurs externes (clients lourds sont l'aide d'une connexion à la base, tandis que les clients légers ne sont pas à l'aide à tous les bases de données, utile pour les PC simple, par exemple). Dépendance

Elle est basée essentiellement sur le cadre Netty (NIO cadre de soutien au grand http://www.jboss.org/netty et ont tendance à être réellement efficace, tant en terme de mémoire, les threads et la bande passante réseau.

limitation de bande passante peut être configuré en tant stocker et de récupérer, par séance (même si une seule valeur est définie par défaut, mais il peut être modifié dynamiquement en cas de besoin) ou au niveau mondial pour le serveur et bien sûr, sans limitation à tous s'il le désire. Limitation devrait être suffisant pour modifier le comportement de la bande passante par exemple en fonction du temps dans la journée, afin de permettre de limiter la bande passante lorsque les utilisateurs sont à l'œuvre et dans le contraire de permettre plus de vitesse que lorsque batchs sont en cours d'exécution.

Installation de Openr66

Configuration de GoldenGateR66 Server et Clients

Ce projet repose sur les bibliothèques suivantes:

  • NETTY (excellent NIO framework) from version 3.2 (NIO support). An extension to Netty is needed and can be found as Netty-Extension project.
  • Apache Commons IO from 1.4 (special file functions like wildcard support).
  • Apache Commons Codec from 1.3 (Base64 support).
  • Apache Commons Exec from 1.0 (external Exec support).
  • DOM4J from 1.6.1 and JAXEN from 1.1.1 (XML support), only used by the current implementation of the standard Ftp Server. It could be replaced very easily.
  • optional: SLF4J from 1.5.8 and LOGBACK from 0.9.17, can be replaced by any logger facilities (default is Java native logger). Only used by the current implementation of the standard Ftp Server. It could be replaced very easily.
  • A Database support: right now tested were H2 database engine ; partially tested are Oracle, PostGreSQL and MySQL support. Any new database could easily be implemented (only 3 functions are to be implemented).
  • From GoldenGate project, two modules are necessary: GG Common (files support) and GG MD5 (MD5 Support)

sous ubuntu les fichiers jar se trouve sous /usr/share/java

Les paquets java doivent être installé par la commande :

sudo apt-get install mysql-connector-java logback-access jaxen dom4j logback-core commons-io netty 

Récupérer les derniers fichiers .jar de openr66 sur le site [http://sourceforge.net/projects/goldengate/files/ openr66.free.fr] et récupérer également le fichier netty-3.1.3.GA.jar ainsi que GoldenGateR66-x.x.x.zip et les copier sous /usr/share/java (sauf le fichier GoldenGateR66-x.x.x.zip) puis créer les liens comme ci-dessous

 ls -ltr GoldenGate*
 -rwxrwxrwx 1 root root 317355 2010-05-31 11:44 GoldenGateR66Gui-1.0.2.jar
 -rwxrwxrwx 1 root root  68207 2010-05-31 11:44 GoldenGateDigest-1.0.0.jar
 lrwxrwxrwx 1 root root     26 2010-05-31 11:45 GoldenGateR66Gui.jar -> GoldenGateR66Gui-1.0.2.jar
 lrwxrwxrwx 1 root root     26 2010-05-31 11:45 GoldenGateDigest.jar -> GoldenGateDigest-1.0.0.jar
 -rwxrwxrwx 1 root root 101155 2010-05-31 11:55 GoldenGateCommon-1.0.8.jar
 lrwxrwxrwx 1 root root     26 2010-05-31 11:55 GoldenGateCommon.jar -> GoldenGateCommon-1.0.8.jar
 lrwxrwxrwx 1 root root     23 2010-06-02 10:30 GoldenGateR66.jar -> GoldenGateR66-1.0.4.jar
 -rwxrwxrwx 1 root root 487412 2010-06-02 10:31 GoldenGateR66-1.0.4.jar
 -rwxrwxrwx 1 root root 574838 2010-02-08 12:01 netty-3.1.0.CR1.jar
 lrwxrwxrwx 1 root root     19 2010-05-27 18:58 netty.jar -> netty-3.1.0.CR1.jar
 -rwxrwxrwx 1 root root 697683 2010-05-31 13:16 netty-3.1.3.GA.jar
 lrwxrwxrwx 1 root root     18 2010-05-31 13:17 netty.GA.jar -> netty-3.1.3.GA.jar

Créer un répertoire pour l'installation de la conf de openr66 et y déposer le fichier zip

 sudo mkdir /usr/share/opengater66
 cd /usr/share/opengater66
 unzip GoldenGateR66-1.0.4.zip
 sudo mkdir admin data certs log conf
 sudo data
 sudo mkdir arch in out work

Sous /usr/share/opengater66/GoldenGateR66/src/main/example Copier le fichier ENV_R66 sous /usr/share/opengater66/

sudo cp ENV_R66 /usr/share/opengater66/ 

Et Copier les répertoires bin et conf sous /usr/share/opengater66/

sudo cp -R conf bin /usr/share/opengater66/

sous la home directory modifier le fichier .bashrc et ajouter la ligne suivante :

 cd
 vi .bashrc

Ajouter a la fin du fichier

 if [ -f /usr/share/goldengater66/ENV_R66 ] ; then
    . /usr/share/goldengater66/ENV_R66
 fi

modifier le fichier /usr/share/goldengater66/ENV_R66

 #!/bin/sh
 set +x
 export AIXTHREAD_SCOPE=S
 # JDK SUN
 #export JAVABASE="/usr/local/jdk1.6.0_13"
 #export JAVAJDK="${JAVABASE}"
 #JAVA_HOME="${JAVAJDK}/jre"
 #JAVA_OPTS1="-server"
 #JAVA_OPTS2="-Xms256m -Xmx4096m"
 #export JAVA_RUN="${JAVA_HOME}/bin/java ${JAVA_OPTS1} ${JAVA_OPTS2} "
 # JDK IBM
 #export JAVABASE="/usr/java6_64"
 export JAVABASE="/usr/lib/jvm/java-6-openjdk"
 export JAVAJDK="${JAVABASE}"
 JAVA_HOME="${JAVAJDK}/jre"
 JAVA_OPTS1=""
 #JAVA_OPTS1="-Xquickstart -Xgcpolicy:gencon -Xdisableexcessivegc"
 JAVA_OPTS2="-Xms256m -Xmx1024m"
 export JAVA_RUN="${JAVA_HOME}/bin/java ${JAVA_OPTS1} ${JAVA_OPTS2} "
 export PATH=${JAVA_HOME}/bin:${JAVAJDK}/bin:$PATH
 export LDR_CNTRL=LARGE_PAGE_DATA=Y
 export R66HOME="/usr/share/goldengater66"
 export R66BIN="${R66HOME}/lib"
 # command for Client
 # Logger
 loggerserver=" -Dlogback.configurationFile=${R66HOME}/conf/logback.xml "
 loggerclient=" -Dlogback.configurationFile=${R66HOME}/conf/logback-client.xml "
 libraries=" ${R66BIN}/slf4j-api.jar:\
 ${R66BIN}/logback-access.jar:${R66BIN}/logback-classic.jar:${R66BIN}/logback-core.jar:\
 ${R66BIN}/dom4j.jar:${R66BIN}/jaxen.jar:\
 ${R66BIN}/commons-io.jar:\
 ${R66BIN}/commons-codec.jar:${R66BIN}/commons-exec-1.0.jar:\
 ${R66BIN}/ojdbc5.jar:${R66BIN}/orai18n.jar:\
 ${R66BIN}/mysql.jar:\
 ${R66BIN}/GoldenGateCommon.jar:${R66BIN}/GoldenGateDigest.jar:\
 ${R66BIN}/NettyExtension.jar:${R66BIN}/netty.GA.jar:\
 ${R66BIN}/GoldenGateR66.jar "
 export JAVARUNCLIENT="${JAVA_RUN} -cp ${libraries} ${loggerclient} "
 export JAVARUNSERVER="${JAVA_RUN} -cp ${libraries} ${loggerserver} "
 ################
 # R66 COMMANDS #
 ################
 # SERVER SIDE #
 ###############
 # start the OpenR66 server
 # no option
 export R66SERVER="${R66HOME}/bin/server.sh"
 #alias -x r66server="${R66SERVER}"
 alias r66server="${R66SERVER}"
 # shutdown locally the server
 # [ PID ] optional PID of the server process
 export R66SIGNAL="${R66HOME}/bin/localshutdown.sh"
 #alias -x r66signal="${R66SIGNAL}"
 alias r66signal="${R66SIGNAL}"
 # shutdown by network the server
 # no option
 export R66SHUTD="${JAVARUNCLIENT} openr66.server.ServerShutdown ${R66HOME}/conf/config`hostname`.xml"
 #alias -x r66shutd="${R66SHUTD}"
 alias r66shutd="${R66SHUTD}" 
 # change limits of bandwidth
 # "[ -wglob x ] [ -rglob w ] [ -wsess x ] [ -rsess x ]"
 export R66LIMIT="${JAVARUNCLIENT} openr66.server.ChangeBandwidthLimits ${R66HOME}/conf/config`hostname`.xml "
 #alias r66limit="${R66LIMIT}"
 alias r66limit="${R66LIMIT}"
 # init database from argument
 # [ -initdb ] [ -dir rulesDirectory ] [ -limit xmlFileLimit ] [ -auth xmlFileAuthent ]
 export R66INIT="${JAVARUNCLIENT} openr66.server.ServerInitDatabase ${R66HOME}/conf/configinit`hostname`.xml "
 #alias -x r66init="${R66INIT}"
 alias r66init="${R66INIT}"
 # export the log
 # [ -purge ]|[ -clean ] [ -start timestamp ] [ -stop timestamp ]
 export R66EXPORT="${JAVARUNCLIENT} openr66.server.LogExport ${R66HOME}/conf/config`hostname`.xml "
 #alias -x r66export="${R66EXPORT}"
 alias r66export="${R66EXPORT}"
 # export configuration
 # directory
 export R66CNFEXP="${JAVARUNCLIENT} openr66.server.ServerExportConfiguration ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66cnfexp="${R66CNFEXP}"
 alias r66cnfexp="${R66CNFEXP}" 
 # CLIENT SIDE #
 ###############
 # get information on remote files or directory
 # "-to host -rule rule [ -file file ] [ -exist | -detail | -list | -mlsx ]
 export R66INFO="${JAVARUNCLIENT} openr66.client.RequestInformation  ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66info="${R66INFO}"
 alias r66info="${R66INFO}" 
 # test the connectivity
 # -to host -msg "message"
 export R66MESG="${JAVARUNCLIENT} openr66.client.Message ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66mesg="${R66MESG}"
 alias r66mesg="${R66MESG}"
 # get information on transfers
 # -id transferId [ -to hostId | -from hostId ] [ -cancel | -stop | -restart ]
 export R66REQ="${JAVARUNCLIENT} openr66.client.RequestTransfer ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66req="${R66REQ}"
 alias r66req="${R66REQ}" 
 # synchronous transfer
 # -to hostId -file filepath -rule ruleId [ -md5 ] [ -block size ] [ -nolog ] [ -info "information" ]
 export R66SYNCSEND="${JAVARUNCLIENT} openr66.client.DirectTransfer ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66syncsend="${R66SYNCSEND}"
 alias r66syncsend="${R66SYNCSEND}"
 # asynchronous transfer
 # -to hostId -file filepath -rule ruleId [ -md5 ] [ -block size ] [ -nolog ] [ -info "information" ]
 export R66SEND="${JAVARUNCLIENT} openr66.client.SubmitTransfer ${R66HOME}/conf/configclient`hostname`.xml "
 #alias -x r66send="${R66SEND}"
 alias r66send="${R66SEND}"

sous /usr/share/opengater66/conf modifier le fichier logback-client.xml et remplacer les lignes avec le bon path

 <configuration>
  <appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>**/usr/share/goldengater66**/log/R66Client.log</file>
    <Append>true</Append>
    <BufferedIO>false</BufferedIO>
    <ImmediateFlush>true</ImmediateFlush>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <FileNamePattern>**/usr/share/goldengater66**/log/R66Client.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
      <MaxHistory>30</MaxHistory>
      <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
          <MaxFileSize>10MB</MaxFileSize>
      </TimeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

sous /usr/share/opengater66/conf modifier le fichier logback.xml

 <configuration>
  <appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>**/usr/share/goldengater66**/log/R66Server.log</file>
    <Append>true</Append>
    <BufferedIO>false</BufferedIO>
    <ImmediateFlush>true</ImmediateFlush>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <FileNamePattern>**/usr/share/goldengater66**/log/R66Server.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
      <MaxHistory>30</MaxHistory>
      <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
          <MaxFileSize>10MB</MaxFileSize>
      </TimeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>
        %date{dd/MM/yyyy/HH:mm:ss.SSS} %level [%logger] [%thread] %msg%n
      </Pattern>
    </layout>
  </appender>  
  <root>
    <level value="warn" />
    <appender-ref ref="FILE" />
  </root>
 </configuration>

sous /usr/share/opengater66/conf copier un fichier exemple configinitbparq102.xml modifier le fichier configinit`hostname`.xml ici j'utilise mysql comme SGBD (mais on peut utiliser oracle , postgres )

 cd  /usr/share/opengater66/conf
 cp configinitbparq102.xml configinit`hostname`.xml
 vi configinitmyhost.xml 
 <config>
        <comment>Example of config file: change its as your need.</comment>
        <hostid>**myhost**</hostid>
        <dbdriver>**mysql**</dbdriver>
        <dbserver>**jdbc:mysql://localhost:3306/openr66**</dbserver>
        <dbuser>openr66</dbuser>
        <dbpasswd>golden</dbpasswd>
 </config>
Generation de la cle SSL

Installation des packages

Vérifiez d'abord tous les paquets nécessaires sont installés.

 sudo apt-get install apache2 libapache-mod-ssl

Générer le certificat

  sudo keytool -genkey -alias openr66.store -keyalg RSA -validity 3650 -keystore /usr/share/goldengater66/certs/openr66.store
Tapez le mot de passe du Keystore :
 Ressaisissez le nouveau mot de passe :
 Quels sont vos prénom et nom ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre unité organisationnelle ?
   [Unknown] :  cequevousvoulez
 Quelle est le nom de votre organisation ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre ville de résidence ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre état ou province ?
   [Unknown] :  cequevousvoulez
 Quel est le code de pays à deux lettres pour cette unité ?
   [Unknown] :  fr
 Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ?
   [non] :  oui

 Spécifiez le mot de passe de la clé pour <openr66.store>
         (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) :
 Ressaisissez le nouveau mot de passe :

 rootb@REY00014:/usr/share/goldengater66/certs$ sudo keytool -genkey -alias admin66.store -keyalg RSA -validity 3650 -keystore    /usr/share/goldengater66/certs/admin66.store
 Tapez le mot de passe du Keystore :
 Ressaisissez le nouveau mot de passe :
 Quels sont vos prénom et nom ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre unité organisationnelle ?
   [Unknown] :  cequevousvoulez
 Quelle est le nom de votre organisation ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre ville de résidence ?
   [Unknown] :  cequevousvoulez
 Quel est le nom de votre état ou province ?
   [Unknown] :  cequevousvoulez
 Quel est le code de pays à deux lettres pour cette unité ?
   [Unknown] :  fr
 Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ?
   [non] :  oui

 Spécifiez le mot de passe de la clé pour <admin66.store>
         (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) :
 Ressaisissez le nouveau mot de passe :

Lister les fichiers sous /usr/share/goldengater66/certs

 -rw-r--r-- 1 root root 1354 2010-06-04 13:19 openr66.store
 -rw-r--r-- 1 root root 1353 2010-06-04 13:20 admin66.store

sous /usr/share/opengater66/conf copier un fichier exemple configbparq102.xml modifier le fichier config`hostname`.xml

cat configmyhost.xml
<config>
        <comment>Test de transfert de fichier.</comment>
        <hostid>myhost</hostid>
        <sslhostid>myhosts</sslhostid>
        <serveradmin>admin</serveradmin>
        <serverpasswd>/usr/share/goldengater66/conf/serveradminkey.txt</serverpasswd>
        <serverport>6666</serverport>
        <serversslport>6667</serversslport>
        <serverhttpport>8066</serverhttpport>
        <serverhttpsport>8067</serverhttpsport>
        <httpadmin>/usr/share/goldengater66/admin/</httpadmin>
        <keypath>/usr/share/goldengater66/certs/openr66.store</keypath>
        <keypass>opengater66</keypass>
        <keystorepass>storeopenr66</keystorepass>
        <admkeypath>/usr/share/goldengater66/certs/admin66.store</admkeypath>
        <admkeypass>admin66</admkeypass>
        <admkeystorepass>storeadmin66</admkeystorepass>
        <serverhome>/usr/share/goldengater66/</serverhome>
        <in>data/in</in>
        <out>data/out</out>
        <arch>data/arch</arch>
        <work>data/work</work>
        <conf>conf</conf>
        <serverthread>49</serverthread>
        <clientthread>800</clientthread>
        <timeoutcon>10000</timeoutcon>
        <deleteonabort>0</deleteonabort>
        <usenio>0</usenio>
        <usefastmd5>1</usefastmd5>
        <fastmd5>/usr/share/goldengater66/lib/MD5.so</fastmd5>
        <blocksize>65536</blocksize>
        <dbdriver>oracle</dbdriver>
        <dbserver>jdbc:mysql://223.0.129.36:3306/openr66</dbserver>
        <dbuser>openr66</dbuser>
        <dbpasswd>golden</dbpasswd>
</config>

Création de la base sous MYSQL

lancer le script init.sh sous /usr/share/goldengater66/bin

 cat init.sh
 #!/bin/sh
 set +x
 PATH_R66=/usr/share/goldengater66
 export PATH_R66
 . $PATH_R66/ENV_R66
 $PATH_R66/bin/r66command.sh openr66.server.ServerInitDatabase $PATH_R66/conf/configinit`hostname`.xml -initdb -dir $PATH_R66/conf/ 
 -auth $PATH_R66/conf/authent.xml -limit $PATH_R66/conf/limitConfig`hostname`.xml

Executer le script

 sudo sh init.sh

Vérifier si les tables sont créées via phpmyadmin par exemple ;-) ou en ligne de commande 8-)

Configuration du client

sous /usr/share/opengater66/conf copier un fichier exemple configclientbparq102.xml modifier le fichier configinit`hostname`.xml ici j'utilise mysql comme SGBD (mais on peut utiliser oracle , postgres )

 cd  /usr/share/opengater66/conf
 cp configinitbparq102.xml configinit`hostname`.xml
 vi configclientREY00014.xml
 <config>
        <comment>Example of config file: change its as your need.</comment>
        <hostid>myhost</hostid>
        <serverhome>/usr/share/goldengater66/</serverhome>
        <in>data/in</in>
        <out>data/out</out>
        <arch>data/arch</arch>
        <work>data/work</work>
        <conf>conf</conf>
        <serverthread>49</serverthread>
        <clientthread>800</clientthread>
        <timeoutcon>10000</timeoutcon>
        <deleteonabort>0</deleteonabort>
        <usenio>0</usenio>
        <usefastmd5>1</usefastmd5>
        <fastmd5>/usr/share/goldengater66/lib/MD5.so</fastmd5>
        <blocksize>65536</blocksize>
        <dbdriver>mysql</dbdriver>
        <dbserver>jdbc:mysql://localhost:3306/openr66</dbserver>
        <dbuser>openr66</dbuser>
        <dbpasswd>golden</dbpasswd>
 </config>

Envoyer un fichier

SubmitTransfer

Pour transférer un fichier, il existe deux méthodes principales. Celui-ci est une demande de soumission, si une opération asynchrone car une fois la demande est présentée, le client retourne sans attendre la fin de l'opération. Il prend l'argument suivant: *Le client fichier de configuration XML en tant que premier argument, celui dont l'accès base de données *Au moins 3 autres arguments sont nécessaires:

'-to' option : spécifie l'ID de l'hôte distant (soit l'ID de SSL ou non). '-file' option : spécifie le fichier à transférer (soit en recevoir ou d'envoyer le mode). '-rule' option : spécifie la règle a appliquer (qui spécifie le mode de transfert, le pré, post ou des opérations d'erreur, …).

*Les autres options sont: '-info' option: précise les informations optionnelles qui est envoyé en même temps à la demande de transfert (des informations supplémentaires qui pourraient être nécessaires par l'hôte distant). '-md5' option: précise que chaque transfert en bloc sera vérifié avec une clé MD5. Si la règle utilisée est déjà en mode MD5, cette option ne changera rien. '-block' option : spécifie la taille du bloc (par défaut est de 64 Ko). '-nolog' option : précise que ce transfert ne sera pas connecté (uniquement sur côté demandeur).

Transfert direct

DirectTransfer

Il s'agit de la deuxième méthode pour transférer un fichier. Cette méthode est directe, donc comme une opération synchrone. Cette fois, le client va faire le vrai travail (transfert de fichier). Les options sont exactement les mêmes qu'avec SubmitTransfer. Toutefois, deux cas existent:

1.client lourd: Le fichier de configuration XML client comprend l'accès à la base. Toutes les opérations de transfert sera connecté (éventuellement supprimées à la fin du côté client si l'option '-nolog est fixé). Cette option est utile pour la "production" des clients dans un centre de données.

2.Client léger: Le fichier de configuration XML client ne comprend pas de l'accès à la base. Toutes les opérations de transfert ne sera pas connecté à tous (à côté du client). Cette option est utile pour "client léger" comme les ordinateurs personnels, où le transfert de fichiers depuis ou vers un centre de données est une nécessité. Toutefois, les deux clients ne peut être l'initiateur du transfert (recevoir ou d'envoyer), car aucun service n'est en cours d'exécution une fois que le client est terminée.

SendThroughClient

  Cette méthode n'est pas une méthode complète mise en œuvre. C'est une façon de router un transfert de fichier d'un protocole en Java pour OpenR66. Par exemple, si un protocole comme upload HTTP ou FTP upload permet d'obtenir un transfert de fichiers par paquets, vous pouvez ensuite la route de ce transfert de fichiers par le biais OpenR66 à une finale Server OpenR66 utilisant le protocole, mais sans écrire un fichier intermédiaire (écrire directement les octets à partir de le téléchargement à l'interface OpenR66 SendThroughClient). Un exemple simple est montré dans TestSendThroughClient.
  Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre.
    RecvThroughClient
  Cette méthode n'est pas une méthode complète mise en œuvre. C'est une façon de router un transfert de fichier à un protocole en Java pour OpenR66. Par exemple, si un protocole comme HTTP ou FTP de téléchargement permet d'obtenir un fichier téléchargé par paquets, vous pouvez ensuite acheminer directement le transfert de fichiers à partir de OpenR66 un serveur distant en utilisant le protocole OpenR66 directement, mais sans écrire un fichier intermédiaire (écrire directement les octets de la télécharger à partir de l'interface OpenR66 RecvThroughHandler). Un exemple simple est montré dans TestRecvThroughClient.
  Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre.

RequestTransfer

  Cet utilitaire est utilisé pour obtenir des informations spécifiques pour un coureur ou d'avoir une action sur ce coureur.
  Les arguments sont les suivants:

Le premier argument est le client fichier de configuration XML, y compris l'accès à la base.

'Id' option: c'est le Id Runner.

«À» ou «de-option" (exclusivité): Ceci spécifie le chemin de la demande de transfert. 'À' précise que la demande initiale a été initié par l'hôte actuel en cours d'exécution sur l'hôte distant spécifié. '-De' précise que la demande initiale a été initié par l'hôte distant spécifié.

Les arguments optionnels (exclusive): sans aucun de ces arguments, la requête retourne uniquement les informations actuelles du coureur.

            o
              »D'annulation de l'option ': le coureur sera annulée. Tout fichier actuellement en écriture sera supprimé.
            o
              option «guichet unique»: le coureur sera arrêté (mais pas d'annulation).
            o
              '-Restart' option: le coureur sera le redémarrage (si arrêté).
    RequestInformation
  Cet utilitaire est utilisé pour obtenir des informations d'un fichier, un répertoire, avec ou sans caractères génériques («*» et'?").
  Les arguments sont les suivants:
        Le premier argument est le client fichier de configuration XML, y compris l'accès à la base.
      *
        'À' option: spécifie l'hôte demandé.
      *
        «Régner», option: la règle
      *
        'Fichier' le fichier option pour laquelle pour obtenir des infos (peut contenir des caractères génériques)
      *
        Les arguments optionnels (exclusive): sans aucun de ces arguments, la demande ne renvoie que l'existence du fichier ou du répertoire.
            o
              »-Exister» pour tester l'existence.
            o
              »-Détail» pour obtenir le détail dans le dossier.
            o
              «Liste» pour obtenir la liste des fichiers.
            o
              »-Mlsx 'pour obtenir la liste et les détails des fichiers

Nous nous concentrons ici sur les différentes tâches qui sont possibles de faire avant que le transfert commence (action préalable), après un transfert est terminé correctement (action post) ou après une erreur se produit (soit en pré ou post action ou lors du transfert: l'action d'erreur) .

Ces actions sont définies dans une règle. Chaque règle contient 2 parties:

 1. actions de l'expéditeur: Un hôte est un expéditeur s'il est demandeur d'une règle SEND ou si c'est la demande sur une règle RECV.
 2. actions récepteur: Un hôte est un expéditeur s'il est demandeur d'une règle RECV ou si c'est la demande sur une règle ENVOYER.

Chaque action pourrait être le pré, post ou pas d'erreur, chaque étape peut avoir plusieurs actions. Exemple :

    <tasks>
        <task>
           <type>NAME</type>
           <path>path</path>
           <delay>x</delay>
        </task>
        <task>
           <type>NAME</type>
           <path>path</path>
           <delay>x</delay>
        </task>
    </tasks>
  • openr66.1275645825.txt.gz
  • Dernière modification: Le 18/04/2011, 14:58
  • (modification externe)