[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [hobbit] conn test



Hi Christian,

we have something similiar for the tests of OPAC reponses. Shouldn't be too difficult to adapt.

kind regards
Rolf

#!/usr/bin/perl
#
##################################################################
# Parameter
##################################################################
# Parameter fuer Testabfrage an PICA-Webopac
$REQUEST = "<URL>";

$BB_DISP = "<bb-servername>"; # BB-Server zur Anzeige
$BB_PORT=1984;          # Portnummer von BB
$THISHOST=$ENV{MACHINE};
$INDENT="opc4";         # Testkennung

# Art der Meldung mit Gueltigkeitsdauer in Minuten
# Wenn nach x Minuten keine neue Nachicht kommt meckert BB
$GUELTIG="status+20";

# Aktuelles Datum
$t0          = time;
$ZEITSTEMPEL = localtime($t0);

$FEHLER  = "red";
$WARNUNG = "yellow";
$OPTIMAL = "green";


##################################################################
# WEBOPAC Testen
##################################################################
#
system("wget -o /dev/null -O /tmp/opc4 \"$REQUEST\" 2>/dev/null");

# Bestimmung des Ergebnissstatuses aus der Antwortzeit.
$elapsed = time - $t0;
if ( $elapsed <= 6 ){
 $STATUS = $OPTIMAL;
}
elsif ( $elapsed <= 12 ){
 $STATUS = $WARNUNG;
}
else {
 $STATUS = $FEHLER;
}


##################################################################
# TCP Verbindung (ToBB) oeffnen und Text versenden.
##################################################################
use Socket;
$SIG{'INT'} = 'interrupted';

sub unbuffer {
   local($channel) = @_;
   local($oldchannel);

   $oldchannel = select($channel);
   $| = 1;
   select($oldchannel);
}

sub interrupted {
   print STDERR "\nClosing connection to peer (interrupt)\n";
   close(ToBB);
   exit 1;
}

# Ermittle IP-Adresse des Servers aus Hostnamen
($name, $aliases, $type, $len, @srvaddr) = gethostbyname($BB_DISP);
$sockaddr = 'S n a4 x8';
$server = pack($sockaddr, &AF_INET, $BB_PORT, $srvaddr[0]);
# (1) TCP socket anfordern
socket(ToBB, &AF_INET, &SOCK_STREAM, 0) ||
   die "Cannot create socket: $!\n";
# (2) Verbindung aufbauen
connect(ToBB, $server) ||
   die "Cannot connect: $!\n";
# (3) Verbindung ist hergestellt
print STDERR "Connected to $BB_DISP, port #$BB_PORT\n";
# kein I/O buffering auf dem socket
unbuffer(ToBB);

# Versenden der Nachicht.
# 1. Zeile: Statusinfos und Ueberschrift
#    wird '<h3>' formatiert.
# 2..n. Zeile: Erklaerender Text
#    wird als '<pre>' ausgegeben.

print ToBB "$GUELTIG $THISHOST.$INDENT $STATUS $ZEITSTEMPEL\n";
print ToBB "Verbindungstest OPC4 von $THISHOST.\n";
print ToBB "$EXTAMSG\n";
print ToBB "Dauer = $elapsed\n";
close (ToBB);

# ENDE #

Hi all,

I want to set an alarm when the connection time of the conn test to a server exceeds i.e.
50 ms.

Is there a possibility for this?

Thanx
Chris



--
Mit freundlichen Gruessen
Rolf Schrittenlocher

Bitte beachten Sie die neue Emailadresse!

HeBIS-IT, Senckenberganlage 31, 60054 Frankfurt
Tel: (49) 69 - 798 28908   Fax: (49) 69 798 28817
LBS: lbs-f (at) mlist.uni-frankfurt.de
Persoenlich: schritte (at) hebis.uni-frankfurt.de