Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2007, 06h30   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 12
Points : 3
Points : 3
Par défaut Synchronisation DB/400 <-> MySQL

Bonjour à tous,

j'utilise les fonctions ODBC_* de php pour attaquer ma base DB2/400.
J'ai installé le pilote ODBC for Linux de IBM (.rpm converti en .deb par le package Alien). Je suis sur une plateforme, vous l'aurez deviné, Debian Etch.

Donc, je requête chaque table de ma bibliothèque DB2/400, insère le résultat dans un fichier temporaire, type csv, puis charge le fichier dans mon serveur MySQL.

Je vous donne la version très simplifiée de mon code :

$dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM=$isdb_system;DBQ=$isdb_database";
$db = odbc_connect($dsn, $isdb_authuser, $isdb_authpwd, SQL_CUR_USE_ODBC);
$cur=odbc_exec($db,"SELECT * FROM $DB2Library.$tableEnCours");
while(odbc_fetch_row($cur)) {
for ($j=1; $j<=odbc_num_fields($cur); $j++) {
$values.=odbc_result($cur,$j);
}
}

Mon problème est que pour une partie des tables (42 sur 370), il me manque des enregistrements... le 'COUNT(*)' sur la biblio DB2/400 est alors différent du 'COUNT(*)' de la base MySQL, après l'insertion des datas.

Le volume manquant semble ne concerner que les enregistrements les plus récents. Plus la table est épaisse (j'ai des tables à 6millions+ enr), plus la perte est importante. Les petites tables (<100000enr) ne sont pas affectés par ce phénomène. Mais je peux avoir deux tables disons de 500.000enr, l'une OK l'autre à qui il manque 20% des datas.

Deux possibilités, pour moi :
- Un verrouillage d’une partie des enregistrements des tables par les processus Elvis (lourd à résoudre) ;
- Un bug dans la méthode d’accès à l’AS/400 (je me concentre là-dessus aujourd’hui).

Qu'en pensez-vous ? Si j'arrive à passer ce bug là, j'ai terminé mon script et j'aurais une base mirroir beaucoup plus facile à gérer pour nos dev analytiques.
ruiz.nicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 00h37   #2
Membre confirmé
 
Avatar de Green Hornet
 
Homme
Inscription : février 2004
Messages : 204
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : février 2004
Messages : 204
Points : 219
Points : 219
si verrouillage il y a à un moment donné, loggue le job qui se charge de requêter la base as400 pour en être sur...
Green Hornet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 07h51   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 12
Points : 3
Points : 3
Logguer le job côté AS/400 tu veux dire ?
Je suis très limité dans mes connaissances sur ce système, je ne serais où chercher.... Pourrais-tu me donner une approche succinte pour tracer le comportement côté AS/400 ?

Je me demandais si le problème ne pourrait venir du driver ODBC sinon... Connais-tu OLEDB IBMDA400 ? Comment l'installer sur mon GNU/Linux ?

@++
ruiz.nicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 08h40   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 12
Points : 3
Points : 3
Il n'y a, a priori, pas de pilotes OLEDB IBMDA400 pour GNU/Linux, cette technologie Microsoft n'existerait que sur plateforme Windows.
ruiz.nicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 13h20   #5
Membre confirmé
 
Avatar de Green Hornet
 
Homme
Inscription : février 2004
Messages : 204
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : février 2004
Messages : 204
Points : 219
Points : 219
lorsqu'un programme micro/serveur discute avec l'as400, il y a un job côté 400 qui correspond à la connexion du programme, donc il est possible, une fois l'avoir repéré, de savoir si un verrouillage a lieu ou non, ou tout autre problème lié à ton job...
Green Hornet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h51.


 
 
 
 
Partenaires

Hébergement Web