lmstat reliability?

Discussion in 'Cadence' started by lynto, Jul 30, 2003.

  1. lynto

    lynto Guest

    Greetings:

    We are seeing some strange behavior with "lmstat". It's the same on
    Solaris and Linux. What happens is that it's not reporting the users
    properly. I've written a perl script to count the number of licenses
    in use and report. This does: "lmutil lmstat -a -c $lfile" where
    "$lfile" is $CDS_LIC_FILE. I can see jobs running in LSF, however they
    don't show up on the "lmstat" command. Any one else seen this
    behavior? Any idea how to fix it? I've included the script at the
    bottom of this message.

    Thanks
    Tom


    #!/usr/local/bin/perl -w
    #
    #$Id: lcnt,v 1.3 2003/07/29 12:44:56 lynch Exp $
    #
    # Counts the number of licenses in use.
    # by: Tom L.
    #
    use Getopt::Std;
    #
    # Check Command Line
    #
    if ($ARGV[0] eq "") {
    print "ERROR: No Input!\n";
    &usage;
    }
    #
    # Get the command line options.
    #
    getopts("l:") || die &usage;
    #
    if ($opt_l) {
    @license_file = split(/:/,$opt_l);
    }
    #
    # Got through the lmstat routine and make a count and user list.
    #
    foreach $lfile (@license_file) {
    print "\n+++ Checking $lfile +++\n\n";
    @license_list = `lmutil lmstat -a -c $lfile`;
    $hit = 0;
    $count = 0;
    LINE:
    foreach $line (@license_list) {
    $_ = $line;
    @x = $_;
    @x = split;
    if ((/Users of/) && ($hit == 0)) {
    $name = $x[2];
    $total = $x[5];
    $count = 0;
    $hit = 1;
    next LINE;
    }
    elsif ((/Users of/) && ($hit == 1)) {
    &printusage;
    undef %users;
    $name = $x[2];
    $total = $x[5];
    $count = 0;
    next LINE;
    }
    elsif (/start/) {
    $count++;
    $users{$x[0]}++;
    }
    }
    }
    &printusage;
    print "\n";
    exit (0);
    #
    # Usage
    #
    sub usage {
    print "Usage: $0 -l \$LM_LICENSE_FILE\n";
    exit (1);
    }
    #
    # Print out the License usage information, including user name and
    total for user and total for license.
    #
    sub printusage {
    printf "Feature %-35s Current Licenses In Use: %3s, Total:
    %3s\n",$name, $count, $total;
    if ($count == $total) {
    $name =~ s/://;
    print "*** Warning: All Licenses In Use For \"$name\"!
    ***\n";
    }
    while (($key,$value) = each %users) {
    printf "\t User: %-12s has %3s
    license.\n",$key,$value;
    }
    }
     
    lynto, Jul 30, 2003
    #1
  2. Which version of lmstat/lmgrd are you using? There were some problems in 6.1 and
    7.1 (I think) which lead us to update the versions used in IC446 and IC50 to
    8.somethingorother (if my memory is correct). That's assuming you're talking
    about Cadence tools - but either way the version of the FlexLM tools is
    possibly the reason.

    Andrew.

     
    Andrew Beckett, Jul 30, 2003
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.