Rich,
I assume you are using RPG and the Socket API's.
Are you closing the socket descriptors when you are done with them?
Your program might be choking because it has reached the maximum number of
simultaneous open sockets it can address at once, until some expire (they
will auto close after 2 minutes of inactivity,) it cannot do anything.
The maximum simultaneous open sockets the system API's can handle did seem
pretty low to me. You really need to close them yourself.
What is the volume of connections you receive in a 2 minute window?
Charlie
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Rich Marion
Sent: Friday, August 02, 2013 12:40 AM
To: 'RPG programming on the IBM i (AS/400 and iSeries)'
Subject: Socket Listener Delay Issue
I have encountered a little intermittent problem with a program that is
monitoring a port for any incoming connections. It appears that it does
not get notified in a timely manner, sometimes, when there is a connection
request.
I set up a listen socket descriptor, then bind to the port, then set listen
with a parm of 100.
I have it log to a file the timestamp when a connection is received. I
accept the connection to an accept socket descriptor, and then spawn off
another job passing the accepted descriptor to the new job. Each incoming
request has its own spawned job to handle the communications. The
subsystem and jobqs are set to *NoMax.
My listener program logs every step to a log file with the time stamp it
happens.
Periodically, a network trace of the traffic will show the communications
between the remote device and the 400 NIC, but the program will not know of
its existence until after a delay. Most of the time it processes the
request within a few micro seconds from when the remote device initiates the
connection. But every so often, the 400 NIC will not inform my listener
program of the incoming transmission for up to 15 seconds.
I know for a fact the delay is between the 400 NIC and my listener program.
Network traces and my log files have proved this beyond any doubt. During
that delay, my listener program does accept and process other requests. It
has plenty of "Spare" time to handle the delayed request.
When it decides to have a delay, it affects multiple incoming requests.
(Each request is from a separate device.) We are at V7. Can anyone point me
in a direction to go or to a forum?
Thanks
Rich M.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.