Dear Richard,

nearly one month ago on that list there was this message :
---
Oggetto: Re: [LINUX5250] use lib5250 without display
Data: Wed, 16 Jun 2010 17:01:35 +0200
Mittente: Holger Schurig <holgerschurig@xxxxxxxxx>

---
that gave some useful info on driving lib5250 (the "engine" of tn5250) from another C program.
I suggest that you will try to do the screen scraping part of your application using lib5250 (or the engine of tn5250j, if you're more proficient in Java than in C) instead of digging in the details of 5250 protocol.

At work I wrote many java "transaction" that use a layer over a 5250 emulator ("connect", wait, get list of fields, field content, attributes, move to, send, ...) and ... the programming is very easy.

They are blazingly fast (the 5250 protocol is very light and ... there's no graphic to wait for!), the program logic is as simple as you need (a state machine or a bunch of if-then-else) and you can skip completely the data access, decoding and validation phases.

I use a (jakarta commons) pool of sessions pre-logged and kept on the main menu so a typical transaction involving ...

- the input of a menu code <ENTER>
- the input of a customer card numer in a known field <ENTER>
- the scan of a subfile (generally on a single page, seldom on two or more pages) to collect the yearly points accumulated on the card
- picking (guess how : 1 + <ENTER> on the top left of the subfile) the topmost year (+ F16 + wait if scrolled)
- collecting data on a multipage subfile (with varying format on the lines) and converting to an XML tree spitted back on a web response

... requires times of 0.1 - 0.5 seconds.
(the validation - restoring - housekeeping of the 5250 sessions are made by separate thread or directly by the pool, so they don't get accounted on the strict timing required by our customer).

Just my 2 (euro) cents.

Best regards,

Davide Grandi


Il 16/07/10 22:44, Richard Nolde ha scritto:
Original message:
TN5250 list members:

I've been tasked with writing an interface between an application that
runs on a remote iSeries host, accessible with TN5250 over a private
network, and our application that would query the iSeries in real time
without human interaction. My application will run on a Linux or AIX
box, and act like a broker between the local application and the remote
iSeries host application that contains the database we are querying.
...

Thanks,
Richard Nolde

------------------------------

message: 2
date: Thu, 15 Jul 2010 18:10:08 -0600
from: Xavier S?nchez<antoniobarquero@xxxxxxxxx>

It seems like what you want to know are details about the 5250 data stream.

5250 is a data stream that contains not only plain text data, but attributes
for the data displayed on the screen (like foreground color, background
color, underlining and bold), along with keyboard command attention (CA) and
command function (CF) keys.


Yes, I've studied enough of the source code to the tn5250 application to
see that it is a highly complex protocol with a multitude of control
sequences and status bits and very demanding sequencing requirements.
I think the best source of that complete information is specified in a set
of books by IBM, like "SNA Formats", and others related to the SNA data
streams used in 5250-like terminals.

There is an on-line source of information where you will probably find it.

I'd suggest you search the IBM search engine at this URL. You will have to
look for further to find what you need. Try to find out one version that
deals with iSeries under the same bookmanager library reader.

http://www-03.ibm.com/systems/z/os/zos/library/softcopy/softfeat.html

Good luck!


Thanks for the link. As with most things IBM, it is harder to find with
there own search engine that with Google, but your link saved me a lot
of time.
X Sanchez

-----Mensaje original-----
De: linux5250-bounces@xxxxxxxxxxxx [mailto:linux5250-bounces@xxxxxxxxxxxx]
En nombre de Richard Nolde
Enviado el: Jueves, 15 de Julio de 2010 04:47 p.m.
Para: linux5250@xxxxxxxxxxxx
Asunto: [LINUX5250] Driving TN5250 non-interactively


from: Jim Oberholtzer<midrangel@xxxxxxxxxx>

subject: Re: [LINUX5250] Driving TN5250 non-interactively

You say that the iSeries is on a private LAN. Why not just write a
program using ODBC to access the data you are after? Or, create some
stored procedures on the iSeries and use a web service over there. I
wonder if the direction is coming from someone that does not realize
those facilities are available on that machine, or alternatively you
don't have the ability to sign on and create things there. If the goal
is to run specific commands, you might consider an FTP script using
"syscmd".
We do not have any access to the remote AS400 machine except to run this one specific application. The business partner with the AS400 does not have its own developers and the administrative staff is scared to change anything. We looked into developing a web service on their end and they have no development environment or programming staff. None of our IT staff has ever worked on an AS400. We do only Linux/AIX and database applications that interface with our own servers so we are stuck with this kind of interface.

That said creating a screen scraper application really is all about
knowing the 5250 data stream.

Try this for more understanding. I pulled it from V5R3 since you said
"iSeries" guessing that the system might be a bit further back in OS
than current.
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/apis/dsm1f.htm
I don't even know the exact hardware or version of the OS they are running but I can be relatively sure it isn't current. Thanks for the link.

Jim Oberholtzer
CEO/Chief Technical Architect
Agile Technology Architects, LLC
message: 4
date: Fri, 16 Jul 2010 10:29:23 -0400
from: "Raul A. Jager W."<raul@xxxxxxxxxx>
subject: Re: [LINUX5250] Driving TN5250 non-interactively
Can you use a web service instead?
If the reports to be transfered are easy to build, you can generate a
web page and retrieve it automaticlay.
If you need the output of a "batch" program, you can run it from a web
page (automaticaly, by using something like wget) and retrive the spool
file after.
See above. Our only option is to use the existing interface at this point. I think it is going to be a long shot at best, with lots of potential for hangups, but we have to prove whether it is practical or not.

Thanks,
Richard Nolde


This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact [javascript protected email address].