this isn't a personal post - i have 3 kids with a 4th on the way. no trouble there!
I have a type of TCP/IP server that can't spawn a child process to handle a connection request. The crazy thing is that it previously worked fine.... then i created a separate subsystem for it to run in.... and now when i go back to running in QBATCH... it augers in. BTW, i know QBATCH is NOT where to run this type of thing... but i need a place to do a 'quick and dirty' connection test, and QBATCH should work just fine for that.
The long version:
The company I work for has, for lack of better analogy, a specialized telnet server. This server uses port 2130 by default. You can test that connection by sending the command 'telnet machinename 2130' and it will open a very non-descript telnet session.
we have a start program for the AS400, and use SAVF file(s) to install it in it's own library.
however, when i attempt to connect in the manner above, the telnet connection immediately slams shut. the session looks like this:
Trying 192.168.1.44...
Connected to gizmo.
Escape character is '^]'.
Connection closed by foreign host.
---snip----
after the Escape char line, it should just sit there and stare at me; i know what to enter to further test it.
Now, here's the part i don't understand: this PREVIOUSLY ran just fine in QBATCH like this. i could test it and it was just fine. not wanting to run in "production" in QBATCH, i created a separate subsystem (this forum) to run my telnet server in. Then, i removed the subsystem and all other calls required to start in the subsystem (and start on IPL).... and now my "simple test" doesn't work.
frunstrating.
so, when i start the server, it sits in subsystem QBATCH... until the first connection request. Then,
QPRINT in QGPL fills up. So then if I do a WRKOUTQ, then select opt 5 work with queue QPRINT, i see 2 or 3 files. one is 1 page long,
it displays the server startup message(s), and that looks fine. that one may or may not be there. Then there is a file with pages 0... so obviously i can't display it. then, there's a file that will be, oh, about 1800 pages long. if i select it and display it,
it will contain:
Error creating diveline process: 3489
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
--snip--
all these are messages coming out of my our product. the last line will continue for 2000 pages
and fill up the outq.
our server operates like some web servers: a daemon listens for connection requests, then spawns a child process to service that connection. our developers tell me at the point of failure, the server is trying to spawn a child process. for whatever reason, the OS won't let it.
if i go to WRKSBS, select QBATCH 8=work with subsystem jobs, I can see my server sitting there with status=MSGW. i can do a 4=end, then F4,
OPTION=*IMMED, and Delete Spooled Files = *YES, and it appears to end and clean up after itself. i guess.
Like i said, this use to work just fine. I am using the SAME executable i used before. Then i created a subsystem for it, set this server to autostart with the subsystem, set the subsystem to start on IPL.... then removed all that and re-installed so I could test my procedures for all of this. and now, the same server that use to work just fine doesn't.
Maybe there is a patron saint of the AS400 i could entreat to assist me in my quest.... this is making me loopy.
thanks for ANY help anyone out there can provide.
matt
I have a type of TCP/IP server that can't spawn a child process to handle a connection request. The crazy thing is that it previously worked fine.... then i created a separate subsystem for it to run in.... and now when i go back to running in QBATCH... it augers in. BTW, i know QBATCH is NOT where to run this type of thing... but i need a place to do a 'quick and dirty' connection test, and QBATCH should work just fine for that.
The long version:
The company I work for has, for lack of better analogy, a specialized telnet server. This server uses port 2130 by default. You can test that connection by sending the command 'telnet machinename 2130' and it will open a very non-descript telnet session.
we have a start program for the AS400, and use SAVF file(s) to install it in it's own library.
however, when i attempt to connect in the manner above, the telnet connection immediately slams shut. the session looks like this:
Trying 192.168.1.44...
Connected to gizmo.
Escape character is '^]'.
Connection closed by foreign host.
---snip----
after the Escape char line, it should just sit there and stare at me; i know what to enter to further test it.
Now, here's the part i don't understand: this PREVIOUSLY ran just fine in QBATCH like this. i could test it and it was just fine. not wanting to run in "production" in QBATCH, i created a separate subsystem (this forum) to run my telnet server in. Then, i removed the subsystem and all other calls required to start in the subsystem (and start on IPL).... and now my "simple test" doesn't work.
frunstrating.
so, when i start the server, it sits in subsystem QBATCH... until the first connection request. Then,
QPRINT in QGPL fills up. So then if I do a WRKOUTQ, then select opt 5 work with queue QPRINT, i see 2 or 3 files. one is 1 page long,
it displays the server startup message(s), and that looks fine. that one may or may not be there. Then there is a file with pages 0... so obviously i can't display it. then, there's a file that will be, oh, about 1800 pages long. if i select it and display it,
it will contain:
Error creating diveline process: 3489
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
Bad file descriptor in select. errno: 3450
--snip--
all these are messages coming out of my our product. the last line will continue for 2000 pages
and fill up the outq.
our server operates like some web servers: a daemon listens for connection requests, then spawns a child process to service that connection. our developers tell me at the point of failure, the server is trying to spawn a child process. for whatever reason, the OS won't let it.
if i go to WRKSBS, select QBATCH 8=work with subsystem jobs, I can see my server sitting there with status=MSGW. i can do a 4=end, then F4,
OPTION=*IMMED, and Delete Spooled Files = *YES, and it appears to end and clean up after itself. i guess.
Like i said, this use to work just fine. I am using the SAME executable i used before. Then i created a subsystem for it, set this server to autostart with the subsystem, set the subsystem to start on IPL.... then removed all that and re-installed so I could test my procedures for all of this. and now, the same server that use to work just fine doesn't.
Maybe there is a patron saint of the AS400 i could entreat to assist me in my quest.... this is making me loopy.
thanks for ANY help anyone out there can provide.
matt
Comment