Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
openr66 [Le 04/06/2010, 11:53] axil_76 créée |
openr66 [Le 11/09/2022, 11:55] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | '''GoldenGate OpenR66''' [[source|source]] | + | {{tag>TAGS}} |
+ | ---- | ||
- | 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). | + | ====== GoldenGate OpenR66 ====== |
- | 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 == | + | Le projet [[http://openr66.free.fr/|GoldenGate OpenR66]] est un moniteur de transfert de fichiers pour l'environnement de production réel. Il permet d'envoyer et de recevoir des fichiers (plusieurs fichiers en simultané, par exemple à partir d'un serveur web en passant par OpenR66 vers un autre serveur), une seule prise réseau est utilisé entre deux serveurs),on peut y ajouter un traitement pré-post- ou bien une gestion 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), une supervision Web est inclus, l'outil a besoin d'une base de donnée simples type H2, Oracle, PostgreSQL, MySQL ce qui permettent de renforcer le contrôle ou la manipulation .il existe également un client léger on peut ainsi émettre des transferts (envoyer ou recevoir), mais on ne pas accepter un nouveau transfert à partir de serveurs externes. |
- | === Configuration de GoldenGateR66 Server et Clients === | + | L'outil est basé essentiellement sur le cadre Netty (http://www.jboss.org/netty) et ont tendance à être réellement efficace, tant en terme de mémoire, de threads et la bande passante réseau. |
+ | |||
+ | |||
+ | ** Configuration de GoldenGateR66 Server et Clients ** | ||
Ce projet repose sur les bibliothèques suivantes: | Ce projet repose sur les bibliothèques suivantes: | ||
Ligne 34: | Ligne 35: | ||
</code> | </code> | ||
- | Récupérer les derniers fichiers .jar de openr66 sur le site [http://sourceforge.net/projects/goldengate/files/ openr66.free.fr] | + | Récupérer les derniers fichiers .jar et GoldenGateR66-x.x.x.zip de openr66 sur le site [https://sourceforge.net/projects/goldengate/files/ openr66.free.fr] et récupérer également le fichier netty-3.1.3.GA.jar |
- | 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) | et les copier sous /usr/share/java (sauf le fichier GoldenGateR66-x.x.x.zip) | ||
- | puis créer les liens comme ci-dessous | + | puis créer les liens comme ci-dessous |
<code> | <code> | ||
- | ls -ltr GoldenGate* | + | $ ls -ltr GoldenGate* |
-rwxrwxrwx 1 root root 317355 2010-05-31 11:44 GoldenGateR66Gui-1.0.2.jar | -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 | -rwxrwxrwx 1 root root 68207 2010-05-31 11:44 GoldenGateDigest-1.0.0.jar | ||
Ligne 53: | Ligne 53: | ||
lrwxrwxrwx 1 root root 18 2010-05-31 13:17 netty.GA.jar -> 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 | ||
</code> | </code> | ||
+ | |||
===== Installation ===== | ===== Installation ===== | ||
Ligne 59: | Ligne 60: | ||
sudo mkdir /usr/share/opengater66 | sudo mkdir /usr/share/opengater66 | ||
cd /usr/share/opengater66 | cd /usr/share/opengater66 | ||
- | unzip GoldenGateR66-1.0.4.zip | + | unzip GoldenGateR66-1.0.6.zip |
- | sudo mkdir admin data certs log conf | + | sudo mkdir web data certs log conf |
sudo data | sudo data | ||
sudo mkdir arch in out work | sudo mkdir arch in out work | ||
Ligne 68: | Ligne 69: | ||
<code>sudo cp ENV_R66 /usr/share/opengater66/ </code> | <code>sudo cp ENV_R66 /usr/share/opengater66/ </code> | ||
Et Copier les répertoires bin et conf sous /usr/share/opengater66/ | Et Copier les répertoires bin et conf sous /usr/share/opengater66/ | ||
- | <code>sudo cp -R conf bin /usr/share/opengater66/</code> | + | <code>sudo cp -R conf bin /usr/share/opengater66/</code> |
+ | Copier également l'admin http | ||
+ | Sous /usr/share/opengater66/GoldenGateR66/src/main/admin | ||
+ | <code>sudo cp -R * /usr/share/opengater66/web </code> | ||
sous la home directory modifier le fichier .bashrc et ajouter la ligne suivante : | sous la home directory modifier le fichier .bashrc et ajouter la ligne suivante : | ||
Ligne 83: | Ligne 87: | ||
modifier le fichier /usr/share/goldengater66/ENV_R66 | modifier le fichier /usr/share/goldengater66/ENV_R66 | ||
- | <code> | + | <code bash> |
#!/bin/sh | #!/bin/sh | ||
set +x | set +x | ||
Ligne 192: | Ligne 196: | ||
</code> | </code> | ||
sous /usr/share/opengater66/conf modifier le fichier logback-client.xml et remplacer les lignes avec le bon path | sous /usr/share/opengater66/conf modifier le fichier logback-client.xml et remplacer les lignes avec le bon path | ||
- | <code> | + | <code xml> |
<configuration> | <configuration> | ||
<appender name="FILE" | <appender name="FILE" | ||
class="ch.qos.logback.core.rolling.RollingFileAppender"> | class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
- | <file>'''/usr/share/goldengater66/'''log/R66Client.log</file> | + | <file>**/usr/share/goldengater66**/log/R66Client.log</file> |
<Append>true</Append> | <Append>true</Append> | ||
<BufferedIO>false</BufferedIO> | <BufferedIO>false</BufferedIO> | ||
<ImmediateFlush>true</ImmediateFlush> | <ImmediateFlush>true</ImmediateFlush> | ||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
- | <FileNamePattern>/'''usr/share/goldengater66'''/log/R66Client.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern> | + | <FileNamePattern>**/usr/share/goldengater66**/log/R66Client.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern> |
<MaxHistory>30</MaxHistory> | <MaxHistory>30</MaxHistory> | ||
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
Ligne 207: | Ligne 211: | ||
</TimeBasedFileNamingAndTriggeringPolicy> | </TimeBasedFileNamingAndTriggeringPolicy> | ||
</rollingPolicy> | </rollingPolicy> | ||
+ | </code> | ||
- | </code> | ||
sous /usr/share/opengater66/conf modifier le fichier logback.xml | sous /usr/share/opengater66/conf modifier le fichier logback.xml | ||
- | <code> | + | |
+ | <code xml> | ||
<configuration> | <configuration> | ||
<appender name="FILE" | <appender name="FILE" | ||
class="ch.qos.logback.core.rolling.RollingFileAppender"> | class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
- | <file>'''/usr/share/goldengater66/'''log/R66Server.log</file> | + | <file>**/usr/share/goldengater66**/log/R66Server.log</file> |
<Append>true</Append> | <Append>true</Append> | ||
<BufferedIO>false</BufferedIO> | <BufferedIO>false</BufferedIO> | ||
<ImmediateFlush>true</ImmediateFlush> | <ImmediateFlush>true</ImmediateFlush> | ||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
- | <FileNamePattern>'''/usr/share/goldengater66/'''log/R66Server.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern> | + | <FileNamePattern>**/usr/share/goldengater66**/log/R66Server.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern> |
<MaxHistory>30</MaxHistory> | <MaxHistory>30</MaxHistory> | ||
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
Ligne 240: | Ligne 245: | ||
sous /usr/share/opengater66/conf copier un fichier exemple configinitbparq102.xml modifier le fichier configinit`hostname`.xml | 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 ) | ici j'utilise mysql comme SGBD (mais on peut utiliser oracle , postgres ) | ||
- | <code> | + | <code xml> |
- | cd /usr/share/opengater66/conf | + | $ cd /usr/share/opengater66/conf |
- | cp configinitbparq102.xml configinit`hostname`.xml | + | $ cp configinitbparq102.xml configinit`hostname`.xml |
- | vi configinitmyhost.xml | + | $ vi configinitmyhost.xml |
<config> | <config> | ||
<comment>Example of config file: change its as your need.</comment> | <comment>Example of config file: change its as your need.</comment> | ||
- | <hostid>'''myhost'''</hostid> | + | <hostid>myhost</hostid> |
- | <dbdriver>'''mysql'''</dbdriver> | + | <dbdriver>mysql</dbdriver> |
- | <dbserver>'''jdbc:mysql://localhost:3306/openr66'''</dbserver> | + | <dbserver>jdbc:mysql://localhost:3306/openr66</dbserver> |
<dbuser>openr66</dbuser> | <dbuser>openr66</dbuser> | ||
<dbpasswd>golden</dbpasswd> | <dbpasswd>golden</dbpasswd> | ||
Ligne 263: | Ligne 268: | ||
=== Générer le certificat === | === Générer le certificat === | ||
<code> | <code> | ||
- | sudo keytool -genkey -alias openr66.store -keyalg RSA -validity 3650 -keystore /usr/share/goldengater66/certs/openr66.store | + | $ sudo keytool -genkey -alias openr66.store -keyalg RSA -validity 3650 -keystore /usr/share/goldengater66/certs/openr66.store |
Tapez le mot de passe du Keystore : | Tapez le mot de passe du Keystore : | ||
Ressaisissez le nouveau mot de passe : | Ressaisissez le nouveau mot de passe : | ||
- | Quels sont vos prénom et nom ? | + | Quels sont vos prénom et nom ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre unité organisationnelle ? | + | Quel est le nom de votre unité organisationnelle ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
Quelle est le nom de votre organisation ? | Quelle est le nom de votre organisation ? | ||
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre ville de résidence ? | + | Quel est le nom de votre ville de résidence ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre état ou province ? | + | Quel est le nom de votre état ou province ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le code de pays à deux lettres pour cette unité ? | + | Quel est le code de pays à deux lettres pour cette unité ? |
[Unknown] : fr | [Unknown] : fr | ||
Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ? | Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ? | ||
[non] : oui | [non] : oui | ||
- | Spécifiez le mot de passe de la clé pour <openr66.store> | + | 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) : | + | (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) : |
Ressaisissez le nouveau mot de passe : | Ressaisissez le nouveau mot de passe : | ||
Ligne 290: | Ligne 295: | ||
Quels sont vos prénom et nom ? | Quels sont vos prénom et nom ? | ||
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre unité organisationnelle ? | + | Quel est le nom de votre unité organisationnelle ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
Quelle est le nom de votre organisation ? | Quelle est le nom de votre organisation ? | ||
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre ville de résidence ? | + | Quel est le nom de votre ville de résidence ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le nom de votre état ou province ? | + | Quel est le nom de votre état ou province ? |
[Unknown] : cequevousvoulez | [Unknown] : cequevousvoulez | ||
- | Quel est le code de pays à deux lettres pour cette unité ? | + | Quel est le code de pays à deux lettres pour cette unité ? |
[Unknown] : fr | [Unknown] : fr | ||
Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ? | Est-ce CN=rouen, OU=spirouen, O=laposte, L=rouen, ST=france, C=fr ? | ||
Ligne 304: | Ligne 309: | ||
Spécifiez le mot de passe de la clé pour <admin66.store> | 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) : | + | (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) : |
Ressaisissez le nouveau mot de passe : | Ressaisissez le nouveau mot de passe : | ||
</code> | </code> | ||
Lister les fichiers sous /usr/share/goldengater66/certs | Lister les fichiers sous /usr/share/goldengater66/certs | ||
- | <code> | + | <file> |
-rw-r--r-- 1 root root 1354 2010-06-04 13:19 openr66.store | -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 | -rw-r--r-- 1 root root 1353 2010-06-04 13:20 admin66.store | ||
+ | </file> | ||
+ | |||
+ | sous /usr/share/opengater66/conf copier un fichier exemple configbparq102.xml modifier le fichier config`hostname`.xml | ||
+ | <code 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/web/</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>mysql</dbdriver> | ||
+ | <dbserver>jdbc:mysql://localhost:3306/openr66</dbserver> | ||
+ | <dbuser>openr66</dbuser> | ||
+ | <dbpasswd>golden</dbpasswd> | ||
+ | </config> | ||
</code> | </code> | ||
- | Création du fichier openr66.store (key SSL) sous /usr/share/goldengater66/certs/ | + | sous /usr/share/opengater66/conf copier un fichier exemple limitConfigbparq102.xml modifier le fichier limitConfig`hostname`.xml |
- | executer la commande | + | |
- | <code> | + | |
- | cd /usr/share/goldengater66/certs | + | |
- | </code> | + | |
- | * '''Création de la base sous MYSQL''' | + | |
- | lancer le script init.sh sous /usr/share/goldengater66/bin | + | <code xml> |
- | <code> | + | $ cat limitConfig`hostname`.xml |
- | cat init.sh | + | <config> |
- | #!/bin/sh | + | <comment>Example of config file: change its as your need.</comment> |
- | set +x | + | <hostid>myhost</hostid> |
- | PATH_R66=/usr/share/goldengater66 | + | <sessionlimit2>102400</sessionlimit2> |
- | export PATH_R66 | + | <globallimit2>1024000</globallimit2> |
- | . $PATH_R66/ENV_R66 | + | <sessionlimit>0</sessionlimit> |
- | $PATH_R66/bin/r66command.sh openr66.server.ServerInitDatabase $PATH_R66/conf/configinit`hostname`.xml -initdb -dir $PATH_R66/conf/ | + | <globallimit>0</globallimit> |
- | -auth $PATH_R66/conf/authent.xml -limit $PATH_R66/conf/limitConfig`hostname`.xml | + | <delaylimit>10000</delaylimit> |
+ | </config> | ||
</code> | </code> | ||
- | Executer le script | + | |
- | <code> | + | modifier le fichier authent.xml sous /usr/share/opengater66/conf |
- | sudo sh init.sh | + | <code xml> |
+ | <authent> | ||
+ | <entry> | ||
+ | <hostid>myhost</hostid> | ||
+ | <address>xxx.xxx.xxx.xxx</address> | ||
+ | <port>6666</port> | ||
+ | <isssl>0</isssl> | ||
+ | <keyfile>/usr/share/goldengater66/conf/myhost.key</keyfile> | ||
+ | <admin>0</admin> | ||
+ | </entry> | ||
+ | </authent> | ||
</code> | </code> | ||
- | Vérifier si les tables sont créées via phpmyadmin par exemple ou en ligne de commande | ||
- | * '''Configuration du client''' | + | |
+ | |||
+ | ==== Configuration du client ==== | ||
sous /usr/share/opengater66/conf copier un fichier exemple configclientbparq102.xml modifier le fichier configinit`hostname`.xml | 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 ) | ici j'utilise mysql comme SGBD (mais on peut utiliser oracle , postgres ) | ||
<code> | <code> | ||
- | cd /usr/share/opengater66/conf | + | $ cd /usr/share/opengater66/conf |
- | cp configinitbparq102.xml configinit`hostname`.xml | + | $ cp configinitbparq102.xml configinit`hostname`.xml |
- | vi configclientREY00014.xml | + | $ vi configclientREY00014.xml |
<config> | <config> | ||
<comment>Example of config file: change its as your need.</comment> | <comment>Example of config file: change its as your need.</comment> | ||
Ligne 371: | Ligne 425: | ||
+ | **Création de la base sous MYSQL** | ||
+ | lancer le script init.sh sous /usr/share/goldengater66/bin | ||
+ | <code bash> | ||
+ | $ 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 | ||
+ | </code> | ||
+ | Executer le script | ||
+ | <code> | ||
+ | sudo sh init.sh | ||
+ | Start R66Command | ||
+ | /usr/lib/jvm/java-6-openjdk/jre/bin/java -Xms256m -Xmx1024m -cp /usr/share/goldengater66/lib/slf4j-api.jar:/usr/share/goldengater66/lib/logback-access.jar:/usr/share/goldengater66/lib/logback-classic.jar:/usr/share/goldengater66/lib/logback-core.jar:/usr/share/goldengater66/lib/dom4j.jar:/usr/share/goldengater66/lib/jaxen.jar:/usr/share/goldengater66/lib/commons-io-1.4.jar:/usr/share/goldengater66/lib/commons-codec-1.3.jar:/usr/share/goldengater66/lib/commons-exec-1.0.jar:/usr/share/goldengater66/lib/ojdbc5.jar:/usr/share/goldengater66/lib/orai18n.jar:/usr/share/goldengater66/lib/mysql.jar:/usr/share/goldengater66/lib/GoldenGateCommon.jar:/usr/share/goldengater66/lib/GoldenGateDigest.jar:/usr/share/goldengater66/lib/NettyExtension.jar:/usr/share/goldengater66/lib/netty.GA.jar:/usr/share/goldengater66/lib/GoldenGateR66.jar -Dlogback.configurationFile=/usr/share/goldengater66/conf/logback-client.xml openr66.server.ServerInitDatabase /usr/share/goldengater66/conf/configinitREY00014.xml -initdb -dir /usr/share/goldengater66/conf/ -auth /usr/share/goldengater66/conf/authent.xml -limit /usr/share/goldengater66/conf/limitConfigREY00014.xml | ||
+ | CREATE TABLE IF NOT EXISTS CONFIGURATION (READGLOBALLIMIT BIGINT NOT NULL , WRITEGLOBALLIMIT BIGINT NOT NULL , READSESSIONLIMIT BIGINT NOT NULL , WRITESESSIONLIMIT BIGINT NOT NULL , DELAYLIMIT BIGINT NOT NULL , UPDATEDINFO INTEGER NOT NULL , HOSTID VARCHAR(254) PRIMARY KEY ) | ||
+ | CREATE TABLE IF NOT EXISTS HOSTS (ADDRESS VARCHAR(254) NOT NULL , PORT INTEGER NOT NULL , ISSSL BOOLEAN NOT NULL , HOSTKEY BLOB NOT NULL , ADMINROLE BOOLEAN NOT NULL , UPDATEDINFO INTEGER NOT NULL , HOSTID VARCHAR(254) PRIMARY KEY ) | ||
+ | CREATE TABLE IF NOT EXISTS RULES (HOSTIDS TEXT , MODETRANS INTEGER , RECVPATH VARCHAR(254) , SENDPATH VARCHAR(254) , ARCHIVEPATH VARCHAR(254) , WORKPATH VARCHAR(254) , RPRETASKS TEXT , RPOSTTASKS TEXT , RERRORTASKS TEXT , SPRETASKS TEXT , SPOSTTASKS TEXT , SERRORTASKS TEXT , UPDATEDINFO INTEGER , IDRULE VARCHAR(254) PRIMARY KEY ) | ||
+ | CREATE TABLE IF NOT EXISTS RUNNER (GLOBALSTEP INTEGER NOT NULL , GLOBALLASTSTEP INTEGER NOT NULL , STEP INTEGER NOT NULL , RANK INTEGER NOT NULL , STEPSTATUS CHAR(3) NOT NULL , RETRIEVEMODE BOOLEAN NOT NULL , FILENAME VARCHAR(254) NOT NULL , ISMOVED BOOLEAN NOT NULL , IDRULE VARCHAR(254) NOT NULL , BLOCKSZ INTEGER NOT NULL , ORIGINALNAME VARCHAR(254) NOT NULL , FILEINFO TEXT NOT NULL , MODETRANS INTEGER NOT NULL , STARTTRANS TIMESTAMP NOT NULL , STOPTRANS TIMESTAMP NOT NULL , INFOSTATUS CHAR(3) NOT NULL , UPDATEDINFO INTEGER NOT NULL , OWNERREQ VARCHAR(254) NOT NULL , REQUESTER VARCHAR(254) NOT NULL , REQUESTED VARCHAR(254) NOT NULL , SPECIALID BIGINT NOT NULL , CONSTRAINT runner_pk PRIMARY KEY (OWNERREQ,REQUESTER,REQUESTED,SPECIALID)) | ||
+ | CREATE INDEX IDX_RUNNER ON RUNNER (STARTTRANS, OWNERREQ, STEPSTATUS, UPDATEDINFO, GLOBALSTEP) | ||
+ | CREATE TABLE Sequences (name VARCHAR(22) NOT NULL PRIMARY KEY,seq BIGINT NOT NULL) | ||
+ | INSERT INTO Sequences (name, seq) VALUES ('RUNSEQ', -9223372036854775807) | ||
+ | End creation | ||
+ | Load done | ||
+ | R66Command stopped | ||
+ | </code> | ||
- | ===== Utilisation OpenR66 ===== | + | Vérifier si les tables sont créées via phpmyadmin par exemple ;-) ou en ligne de commande 8-) |
- | ====== Envoyer un fichier ====== | + | lancer le serveur |
- | '''SubmitTransfer''' | + | <code> |
+ | sudo sh server.sh | ||
+ | </code> | ||
- | 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. | + | Vérifier si le serveur a démarré |
- | 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). | + | <code> |
- | '-file' option : spécifie le fichier à transférer (soit en recevoir ou d'envoyer le mode). | + | $ ps -ef | grep java |
- | '-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, ...). | + | root 14624 1 0 Jun08 ? 00:03:13 /usr/lib/jvm/java-6-openjdk/jre/bin/java -Xms256m -Xmx1024m -cp /usr/share/goldengater66/lib/slf4j-api.jar:/usr/share/goldengater66/lib/logback-access.jar:/usr/share/goldengater66/lib/logback-classic.jar:/usr/share/goldengater66/lib/logback-core.jar:/usr/share/goldengater66/lib/dom4j.jar:/usr/share/goldengater66/lib/jaxen.jar:/usr/share/goldengater66/lib/commons-io-1.4.jar:/usr/share/goldengater66/lib/commons-codec-1.3.jar:/usr/share/goldengater66/lib/commons-exec-1.0.jar:/usr/share/goldengater66/lib/ojdbc5.jar:/usr/share/goldengater66/lib/orai18n.jar:/usr/share/goldengater66/lib/mysql.jar:/usr/share/goldengater66/lib/GoldenGateCommon.jar:/usr/share/goldengater66/lib/GoldenGateDigest.jar:/usr/share/goldengater66/lib/NettyExtension.jar:/usr/share/goldengater66/lib/netty.GA.jar:/usr/share/goldengater66/lib/GoldenGateR66.jar -Dlogback.configurationFile=/usr/share/goldengater66/conf/logback.xml openr66.server.R66Server /usr/share/goldengater66/conf/configmyhost.xml |
- | *Les autres options sont: | + | </code> |
- | '-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: | + | ===== Utilisation OpenR66 ===== |
- | 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. | + | ==== Envoyer un fichier ==== |
- | 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é. | + | 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. |
- | 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. | + | 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). |
- | SendThroughClient | + | * '-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, ...). | ||
- | 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. | + | * 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). | ||
- | Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre. | + | ==== Transfert direct ==== |
- | * | ||
- | RecvThroughClient | + | 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: |
- | 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. | + | 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. |
- | Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre. | + | 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 |
- | RequestTransfer | + | |
- | Cet utilitaire est utilisé pour obtenir des informations spécifiques pour un coureur ou d'avoir une action sur ce coureur. | + | 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. |
- | Les arguments sont les suivants: | + | Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre. |
- | * | + | * RecvThroughClient |
- | 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é). | + | |
- | * | + | 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. |
- | RequestInformation | + | Ainsi, cette méthode nécessite quelques développements mineurs à mettre en œuvre. |
- | Cet utilitaire est utilisé pour obtenir des informations d'un fichier, un répertoire, avec ou sans caractères génériques («*» et'?"). | + | * RequestTransfer |
- | Les arguments sont les suivants: | + | 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. | + | * 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. | ||
+ | * "D'annulation de l'option" : le coureur sera annulée. Tout fichier actuellement en écriture sera supprimé. | ||
+ | * option «guichet unique»: le coureur sera arrêté (mais pas d'annulation). | ||
+ | * '-Restart' option: le coureur sera le redémarrage (si arrêté). | ||
+ | * RequestInformation | ||
- | 'À' option: spécifie l'hôte demandé. | + | Cet utilitaire est utilisé pour obtenir des informations d'un fichier, un répertoire, avec ou sans caractères génériques («*» et'?"). |
- | * | + | |
- | + | ||
- | «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 | + | |
+ | 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. | ||
+ | * »-Exister» pour tester l'existence. | ||
+ | * »-Détail» pour obtenir le détail dans le dossier. | ||
+ | * «Liste» pour obtenir la liste des fichiers. | ||
+ | * »-Mlsx 'pour obtenir la liste et les détails des fichiers | ||
- | ===== Règles OpenR66 ===== | + | ==== Règles OpenR66 ==== |
- | 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) . | + | 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: | 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. | + | - 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. | + | - 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. | + | Chaque action pourrait être le pré, post ou pas d'erreur, chaque étape peut avoir plusieurs actions. |
Exemple : | Exemple : | ||
+ | <code xml> | ||
<tasks> | <tasks> | ||
<task> | <task> | ||
Ligne 503: | Ligne 567: | ||
</task> | </task> | ||
</tasks> | </tasks> | ||
+ | </code> |