DB2-Admin

 view release on metacpan or  search on metacpan

lib/DB2/Admin/DataElement.pm  view on Meta::CPAN

            #
            # The docs are incomplete, though.  There's another
            # case for TCP/IP v4, for V9.1 clients, where you get:
            # - TCP/IP for IPv4: 192.168.1.14.12345.040326210233
            #
            # We only handle the TCP/IP case (who uses the other
            # protocols anymore).
            #
            # Another detail for TCP/IP v4:
            #
            # Data like 900E1AA1.47E2.040326210233
            # is IP:port:instance
            #
            # If the first letter of IP address or port would be
            # in 0-9, IBM uses G-P instead.  We fix that below.
            #
            if ($display =~ /^(\d+\.\d+\.\d+\.\d+)\.(\d+)\.(\d+)$/) {
                #
                # New IPV4 format
                #
                $display = "$1 port $2 ($3)";
                #print STDERR "XXX: new-style IP v4 - $display\n";
            } elsif ($display =~ /^(\d[\d:]+\d)\.(\d+)\.(\d+)$/) {
                #
                # IPv6 format
                #
                $display = "$1 port $2 ($3)";
            } else {            # Assume old-style IPv4
                my ($raw_ip, $raw_port, $raw_instance) =
                  split /\./, $display;
                #print STDERR "XXX: $this->{Name} display [$display], IP [$raw_ip], port [$raw_port]\n";
                substr($raw_ip, 0, 1) =~ tr/G-P/0-9/;
                substr($raw_port, 0, 1) =~ tr/G-P/0-9/;
                my @ip = map hex(substr($raw_ip, $_ * 2, 2)), (0..3);
                my @port = map hex(substr($raw_port, $_ * 2, 2)), (0..1);
                $display = join('.', @ip) . " port ";
                $display .= ($port[1] << 8) + $port[0];
                $display .= " ($raw_instance)";
                #print STDERR "XXX: old-style IP v4 - $display\n";
            }                   # End if: not new-style IPv4 / IPv6
        }
    } elsif ($this->{'Name'} eq 'APPL_STATUS') {
        my %status_table = (1  => 'connect pending',
                            2  => 'connect completed',
                            3  => 'UOW executing',
                            4  => 'UOW waiting',
                            5  => 'lock wait',
                            6  => 'commit active',
                            7  => 'rollback active',
                            8  => 'recompiling plan',
                            9  => 'compiling SQL stmt',
                            10 => 'request interrupted',
                            11 => 'disconnect pending',
                            12 => 'prepared transaction',
                            13 => 'heuristically committed',
                            14 => 'heuristically rolled back',
                            15 => 'transaction ended',
                            16 => 'creating database',
                            17 => 'restarting database',
                            18 => 'restoring database',
                            19 => 'performing backup',
                            20 => 'performing fast load',
                            21 => 'performing fast unload',
                            22 => 'wait to disable tablespace',
                            23 => 'quiescing tablespace',
                            24 => 'waiting for remote node',
                            25 => 'pending results from remote request',
                            26 => 'app decoupled from coord',
                            27 => 'rollback to savepoint',
                           );
        $display = $status_table{$value} ||
          "(unknown application status code $value)";
    } elsif ($this->{'Name'} eq 'CLIENT_PLATFORM' ||
             $this->{'Name'} eq 'SERVER_PLATFORM') {
        $display = DB2::Admin::Constants::->Lookup('Platform', $value) ||
          "<unknown client platform $value>";
    } elsif ($this->{'Name'} eq 'CONTAINER_TYPE') {
        $display = DB2::Admin::Constants::->Lookup('ContainerType', $value) ||
          "<unknown container type $value>";
    } elsif ($this->{'Name'} eq 'HADR_CONNECT_STATUS') {
        $display = DB2::Admin::Constants::->Lookup('HadrConnectStatus', $value) ||
          "<unknown HADR connect status $value>";
    } elsif ($this->{'Name'} eq 'HADR_ROLE') {
        $display = DB2::Admin::Constants::->Lookup('HadrRole', $value) ||
          "<unknown HADR role $value>";
    } elsif ($this->{'Name'} eq 'HADR_STATE') {
        $display = DB2::Admin::Constants::->Lookup('HadrState', $value) ||
          "<unknown HADR state $value>";
    } elsif ($this->{'Name'} eq 'HADR_SYNCMODE') {
        $display = DB2::Admin::Constants::->Lookup('HadrSyncMode', $value) ||
          "<unknown HADR sync mode $value>";
    } elsif ($this->{'Name'} eq 'LOCK_MODE' ||
             $this->{'Name'} eq 'LOCK_MODE_REQUESTED') {
        my $constant = DB2::Admin::Constants::->Lookup('LockMode', $value);
        if (defined $constant) {
            my $info = DB2::Admin::Constants::->GetInfo($constant);
            $display = $info->{'Comment'};
        } else {
            $display = "<unknown lock mode $value>";
        }
    } elsif ($this->{'Name'} eq 'LOCK_OBJECT_TYPE') {
        $display = DB2::Admin::Constants::->Lookup('LockObjectType', $value) ||
          "<unknown lock object type $value>";
    } elsif ($this->{'Name'} eq 'POOL_ID') {
        my $constant = DB2::Admin::Constants::->Lookup('Heap', $value);
        if (defined $constant) {
            $display = $constant;
        } else {
            $display = "<unknown pool id $value>";
        }
    } elsif ($this->{'Name'} eq 'REORG_STATUS') {
        $display = DB2::Admin::Constants::->Lookup('ReorgStatus', $value) ||
          "<unknown reorg status $value>";
    } elsif ($this->{'Name'} eq 'STMT_OPERATION') {
        my $constant = DB2::Admin::Constants::->Lookup('StatementOperation', $value);
        if (defined $constant) {
            my $info = DB2::Admin::Constants::->GetInfo($constant);
            $display = $info->{'Comment'};
        } else {
            $display = "<unknown statement operation $value>";
        }



( run in 1.057 second using v1.01-cache-2.11-cpan-5837b0d9d2c )