Operating System - OpenVMS
1830136 Members
2947 Online
109999 Solutions
New Discussion

VMS732_SYS-V0900 problem

 
SOLVED
Go to solution
Duncan Morris
Honored Contributor

VMS732_SYS-V0900 problem

I seem to observe a slight problem with the SHOW MEMORY display following application of the VMS732_SYS-V0900 patch which was released the other day.

The figures for the balance set count appear to be displaced 1 logical column to the right, so that the true value of say, RESIDENT appears under the heading of SWAPPED, and the first column is fill by asterisks.

Prior to patch:
Slot Usage (slots): Total Free Resident Swapped
Process Entry Slots 527 503 24 0
Balance Set Slots 525 503 22 0


After Patch:

Slot Usage (slots): Total Free Resident Swapped
Process Entry Slots 527 503 24 0
Balance Set Slots ***** 525 503 22

I have not noticed any functionality problems, but any problems with the SHOW MEMORY display might upset somebody's system management DCL scripts.


10 REPLIES 10
Hein van den Heuvel
Honored Contributor

Re: VMS732_SYS-V0900 problem


Hi Duncan,

As you see, the ITRC forum will totally mangle whitespace.
Please attach a text file with the output to clarify the problem.
a) as screen dump
b) captured with define/user sys$output tmp.txt

Could this be an issue with TAB settings?

Can you use a terminal(emulator) to show the exact characters coming by?


If this is for real, then surely a report to HP support is in order.

fwiw,
Hein.
Volker Halle
Honored Contributor

Re: VMS732_SYS-V0900 problem

Hein,

as a workaround for viewing the original SHOW MEM output in ITRC, use your browser's View Source function and find the text in the HTML source code.

This looks like a bug, please report to HP. The data is reported in the wrong columns, looks like something broke some FAO control string or parameter.

Volker.
Duncan Morris
Honored Contributor

Re: VMS732_SYS-V0900 problem

For those wanting to see the text version requested by Hein, I have attached it here.

Volker, I will be raising a fault report in the morning - though goodness knows how long it will take to make its way to the right destination!

Hein van den Heuvel
Honored Contributor

Re: VMS732_SYS-V0900 problem

Duncan,

Sorry for not reading your original topic not carefuly enough. This is clearly not a 'visual' problem, but probably a surprise argument to a SYS$FAO call.

Volker,

Thanks for the 'view source' hint!
Now why did I not bother to look there?
I had always assumed the forum display was to blame.
I now see it is a simple html artifact and the real spaces are send to the client.


Cheers,
Hein

[0 points for this reply please]
Guy Peleg
Respected Contributor

Re: VMS732_SYS-V0900 problem

Hi Morris,

You are correct. The SYS-V0900 kit shipped
a new version of SHOW.EXE (which
includes changes to the SHOW message
file) but neglected to ship the
corresponding version of CLIUTLMSG.EXE.

Thank you for bringing this to our
attention, I'll make sure this is fixed
ASAP.

Guy Peleg
OpenVMS Engineering
Duncan Morris
Honored Contributor

Re: VMS732_SYS-V0900 problem

Many thanks for prompt analysis, once again.

Duncan
Guy Peleg
Respected Contributor
Solution

Re: VMS732_SYS-V0900 problem

VMS732_SYS-V10 is in the works, the new
kit will include the same set of images
plus CLIUTLMSG. The new kit will be released
within few days.

Guy
Duncan Morris
Honored Contributor

Re: VMS732_SYS-V0900 problem

Many thanks Guy. We will await the revised kit
Hein van den Heuvel
Honored Contributor

Re: VMS732_SYS-V0900 problem


Dislaimer: JUST FOR FUN, to enhance our understanding of the system.

If Guy makes you wait too long, then how about trying to 'fix' the FAO/MSG mismatch.

Apparently there is an extra param, which is too large (more likely the wrong type: a piece of string) to be printed in !5UL.

So how about 'eating' that extra param with "!+" and compensating the formatting length by growing the !5UL to !7UL.

In a DCL-only example (.txt attached)

$ write sys$output f$fao("Process Entry Slots !5UL !5UL !5UL !5UL",999999,1,2,3,4)
Process Entry Slots ***** 1 2 3
$ write sys$output f$fao("Process Entry Slots !+!7UL !5UL !5UL !5UL",999999,1,2,3,4)
Process Entry Slots 1 2 3 4
$

So now how to 'patch' the cliutlmsg.exe?
SMOP! (Simple Matter Of Perling)

Here is an example using the message file example from the DCL concepts manual:

$CREATE tmp.msg
.FACILITY INCOME, 1 /PREFIX=INCOME__
.SEVERITY WARNING
LINELOST "Statistics on last line lost due to Ctrl/Z"
.SEVERITY SEVERE
BADFIXVAL "Bad value on /FIX"
CTRLZ "Ctrl/Z entered on terminal"
FORIOERR "Fortran I/O error"
INSFIXVAL "Insufficient values on /FIX"
MAXSTATS "Maximum number of statistics already entered"
NOACTION "No action qualifier specified"
NOHOUSE "No such house number"
NOSTATS "No statistics to report"
.END

$ mess /list tmp
$ sear tmp.lis. already
08018034 9 MAXSTATS "Maximum number of statistics already entered"
$ link /share tmp
$ set mess tmp
$ perl msg.pl tmp.exe "already" > tmp.txt
4 - 8:MAXSTATS 44:Maximum number of statistics already entered
$edit tmp.txt ! Use TPU in OVERSTRIKE mode
Buffer: TMP.TXT | Write | Overstrike | Forward
1 line written to file TMP.TXT
$ copy tmp.exe new.exe
$ perl msg.pl new.exe "already" tmp.txt
4 - 8:MAXSTATS 44:Maximum number of statistics already entered
Updating!
Old:Maximum number of statistics already entered
New:Maximum Hein was here already entered
$
$ exit %x08018034
%INCOME-F-MAXSTATS, Maximum number of statistics already entered
$ set mess new.exe
$ exit %x08018034
%INCOME-F-MAXSTATS, Maximum Hein was here already entered

Now with CLIUTLMSG there is of course the extra complication that it is installed shared: SMOP
(Simple Matter Of Privileges :-)

Below and attached you'll find the perl script I wrote for this.

Hope this makes someone smile...
Cheers,
Hein.



$ typ msg.pl
use strict;
my $usage = "Usage: $0 message-file message-name [new-text-file]";
my $msg = shift @ARGV or die $usage;
my $look_for = shift @ARGV or die $usage;
my $new = shift @ARGV;
my ($i, $update, $record, $found, $text, $name);
my ($text_size, $name_size, $new_size);

if ($new) {
open NEW, "<$new" or die "Failed to open file $new for new text";
$new = ;
chomp $new;
$update = "+";
$new_size = length($new);
}

open MSG, "$update<$msg" or die "Could not open message-file";
binmode MSG;

# step through file reading 512 byte chunks but in 256 byte steps

while (read (MSG, $record, 512) == 512) {
seek (MSG, -256, 1);
$i++;
$found = index ($record, $look_for);
# print length ($record) . " - $i - $found - $look_for\n" unless ($found<0);
next if ($found < 128);
next if ($found >= 384);
while (--$found) {
$name_size = ord (substr ($record, $found));
if ($name_size < 16) {
$found++;
$name = substr ($record, $found, $name_size);
$text_size = ord (substr ($record, $found + $name_size));
$text = substr ($record, $found + $name_size + 1, $text_size);
print STDERR "$i - $name_size:$name $text_size:$text\n";
if ($new_size == $text_size) {
print STDERR "Updating!\nOld:$text\nNew:$new\n";
seek (MSG, -256 + $found + $name_size + 1, 1);
print MSG $new;
seek (0,0,2); # done
} else {
print STDOUT "$text\n";
}
last;
}
}
}









Ian Miller.
Honored Contributor

Re: VMS732_SYS-V0900 problem

Hein,It made me smile - sometimes I wonder if you are getting enough interesting work in your day job :-)
____________________
Purely Personal Opinion