IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

ping en continu


Sujet :

AS/400

  1. #1
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut ping en continu
    Bonjour,
    Suite à des problèmes de connexion réseau,
    Est-ce possible d'avoir sur l'as400 un ping en continu vers un serveur w2003, pendant au moins 1h, avec une redirection du résultat dans un fichier, sans gros développement ?
    Merci.

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    il faudrait une jobq a entrée unique dans un SBSD.

    SBMJOB CMD(PING RMTSYS('192.168.141.146') NBRPKT(100)) JOBQ(ZZZCLP2) LOG(4 00 *SECLVL)

    A soumettre 17 fois pour un peu plus d' 1 heure de stats...

    un petit CLP pour copier les bonnes lignes dans un PF ...
    c'est le minimum...

  3. #3
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut merci
    On ne perd pas de paquets, le problème n'est pas là...
    Merci de votre aide.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    ah, pardon...

    Plus de détail pour comprendre votre problème peut-être ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Je vois une autre possibilité pour limiter le temps d'exécution du "ping" (à une heure par exemple) avec l'API QOLTIMER qui permet de temporiser la durée d'exécution d'une fonction. J'utiliserais ensuite la commande shell de Fabrice dans une boucle pour envoyer les résultats du ping dans un fichier texte dans l'UDFS.

    Principe :

    • Initialiser le timer à la durée voulue. Dans le programme-exemple ci-dessous, j'ai mis 3600000 millisecondes, soit une heure.
    • Créer si besoin une data queue que j'appelle "TIMERDTAQ".
    • Clearer cette data queue et virer le fichier texte ping.txt suite aux passages précédents.
    • Mettre le timer en fonction.
    • Dans une boucle, "pinger" le serveur cible via QSH et en retour, si message (émis par le timer) existe dans la data queue associée au timer, faire le ménage des spools QSH et arrêter le traitement.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     PGM
     dcl &rc                *int 4
     dcl &rd                *int 4
     dcl &timerset          *char 8  'TIMER001'
     dcl &timercnl          *char 8  ' '
     dcl &dtaq              *char 20 'TIMERDTAQ *LIBL'
     dcl &Oper              *char 1 x'01'
     dcl &interval          *int 4  3600000  /* 1 heure */
     dcl &estcnt            *int 4  1
     dcl &keylen            *int 4  0
     dcl &keyval            *char 256 ' '
     dcl &usrdta            *char 60 'Je mets ici ce que je veux'
     dcl &quetype           *char 1 'D'
    
     dcl &dtaqlen           *dec (5 0) 336
     dcl &dta               *char 336
     dcl &waittime          *dec (5 0) 0
    
     dcl &cmd               *char 200  
    
     chkobj *LIBL/TIMERDTAQ *dtaq
     monmsg cpf9801 exec ( crtdtaq <MaBib>/TIMERDTAQ maxlen(336) )
    
     call QCLRDTAQ (  'TIMERDTAQ' '*LIBL' )
     rmvlnk '/home/<MonProfil>/ping.txt'
    
     call QOLTIMER  ( &rc        +
                      &rd        +
                      &timerset  +
                      &timercnl  +
                      &dtaq      +
                      &Oper      +
                      &interval  +
                      &estcnt    +
                      &keylen    +
                      &keyval    +
                      &usrdta    +
                      &quetype   )
    
    
     chgvar &cmd ('system "PING RMTSYS(''adress IP ou nom serveur'')" +
                                      2>>/home/<MonProfil>/ping.txt')
    Loop:
    
      qsh cmd( &cmd )
    
      call qrcvdtaq ( 'TIMERDTAQ' +
                      '*LIBL'     +
                      &dtaqlen    +
                      &dta        +
                      &waittime )
    
      if ( &dtaqlen > 0 ) do
         sndpgmmsg &dta
         dltsplf *select
         return
      enddo
      else goto Loop
    
     ENDPGM
    Dans cet exemple, il faut remplacer <MaBib> par sa propre bibliothèque et <MonProfil> par son propre profil ou bien placer le fichier "ping.txt" dans un répertoire ou dossier UDFS de son choix.

    Pour voir les résultats, faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSPF '/home/<MonProfil>/ping.txt'
    J'ai testé le programme qui marche nickel-chrome !

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Tu m'as bien mis sur la voie Fabrice pour récupérer les infos du ping avec la solution rusée du shell unix qui, outre l'exécution du ping, permet de router ce que renvoie la commande dans un stream file. J'étais parti avec l'idée de récupérer ces messages dans une boucle "RCVMSG" et des les stocker dans une message queue ou une data queue mais ta solution "QSH" m'a ouvert la voie en me simplifiant allégrement la tâche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ping de broadcast sous Windows
    Par ovh dans le forum Développement
    Réponses: 10
    Dernier message: 09/05/2003, 18h40
  2. L'instruction continue ?
    Par Patrick PETIT dans le forum C
    Réponses: 11
    Dernier message: 10/03/2003, 08h05
  3. ping sur un port
    Par Neo41 dans le forum Développement
    Réponses: 3
    Dernier message: 21/01/2003, 01h42
  4. [VB6] attendre un événement pour continuer l'exécution
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 12/11/2002, 13h08
  5. [langage] Continuer a parser une ligne
    Par D[r]eadLock dans le forum Langage
    Réponses: 5
    Dernier message: 30/09/2002, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo