HP3000-L Archives

March 2001, Week 2

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
"HOFMEISTER,JAMES (HP-USA,ex1)" <[log in to unmask]>
Reply To:
HOFMEISTER,JAMES (HP-USA,ex1)
Date:
Mon, 12 Mar 2001 22:44:57 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (89 lines)
Howdy Folks @ 3000-l,

Re: NS/VT excessive I/O

Sorry to not reply earlier, but I have been slammed.

--------------------------------------------------Michael Anderson  writes--
FINPAC enables the CONTROL-Y traps excessively, even at the DBGET level.
Because of this FINPAC feature, and the way the programmer coded it, you
can not use NS/VT to run this application. Use serial connections only.
I had mistakenly told you NOT to use a PC for FINPAC sessions. Actually
you can use a PC with any terminal emulator, but it must be a serial
connection to a ATP port, NOT NS/VT!!!!!
----------------------------------------------------------------------------
-

This one brings back memories... It was one of the reasons in a past life
working in the RC that I asked customers to contact their vendors to ask if
they tested/supported their application over a network.

This is a rare case where NS-VT is too smart.  The problem is a poor coding
technique is made visible over NS-VT since the Client code is smart and
maintains data structures of state information (subsystem break status as an
example) at the Client.

The problem is the case where a XCONTRAP call is made inside of a write or a
read loop results in 2 extra packets for each write or read performed and
can
be removed by moving the XCONTRAP call out side of the write or read loop.

Here is a basic pseudo code example:

Example:    You want to enable subsystem break for a 1000 line output to be
displayed back to a PC.

case 1:

10 for i = 1 to 1000
20 call XCONTRAP
30 linput l$
40 print l$
50 next i

In this example you generated:

a. 1000 Outbound VT Writes (1000 TCP packets)
b. 1000 TCP Ack of a.
c. 1000 Outbound VT Subsystem Break Request (1000 TCP packets)
d. 1000 TCP Ack of c.
e. 1000 Inbound VT Subsystem Break Reply (1000 TCP packets)
f. 1000 TCP Ack of e.
=======
   6000 TCP packets..

Now if you move the XCONTRAP outside of the write loop:

Case 2:

10 call XCONTRAP
20 for i = 1 to 1000
30 linput l$
40 print l$
50 next i

In this example you generated:

a.    1 Outbound VT Subsystem Break Request (1000 TCP packets)
b.    1 TCP Ack of a.
c.    1 Inbound VT Subsystem Break Reply (1000 TCP packets)
d.    1 TCP Ack of c.
e. 1000 Outbound VT Writes (1000 TCP packets)
f. 1000 TCP Ack of e.
=======
   2004 TCP packets..

This coding technique problem is not made visible with Telnet since the
Telnet client code is dumb, all of the work is done in the server,
likewise the problem is not seen with DTC Async port since a terminal is
dumb and the work is performed in the DTC.

I hope this helps.

Regards,

James Hofmeister
Hewlett Packard
Worldwide Technology Network Expert Center
P.S. My Ideals are my own, not necessarily my employers.

ATOM RSS1 RSS2