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 )