iSeries NetServer
I was working on a problem at work, today, involving our IBM iSeries (AS/400) database server. It occurred to me that I ought to create an iSeries category and start posting some entries. I haven’t seen any blogs that talk about iSeries servers, but I’m sure there’s a couple out there.
Anyway, today I couldn’t get the “NetServer” on the system to start. The netserver is basically a windows/samba file sharing application for the iSeries that enables Windows and Samba clients to connect to file shares on the server. Yesterday we had to kill the qserver subsystem due to a couple out of control ODBC queries and since that time the netserver wasn’t running. I didn’t notice until I came into work this morning (that function of the server doesn’t get used much). Initially I tried stopping and restarting the service using “endtcpsvr *netsvr” and “strtcpsvr *netsvr” but that didn’t seem to do much. I checked around and learned the NetServer is basically dependent upon two jobs in the QServer subsystem, qzlsserver and qzlsfile. I checked the subsystem (”wrksbsjob qserver”) and noticed the qzlsfile job was running but not qzlsserver. The “strtcpsvr *netsvr” command is supposed to start the qzlsserver and the qzlsfile job starts when the subsystem is started automatically.
After much troubleshooting here’s what I found: I did a “wrkjob qzlsserver” to try and see what was happening to all the start commands I submitted. I found about 10 qzlsserver jobs waiting to be submitted to run in the qpfwserver jobq. For those not familiar with the iSeries or OS/400 the jobq is where the jobs are initially submitted. If the associated subsystem has enough free resources to run the job it moves to the subsystem and begins execution, otherwise it sits in the jobq and waits until resources become available. I checked the qserver subsystem description and learned it restricts execution to 10 concurrent jobs. I checked the status and noticed there were already 10 jobs executing which explained why the qzlsserver job was sitting in the jobq. The qserver subsystem has a variety of system jobs that run, not all of which I’m clear on what their purpose is. I noticed one job in particular, qpwfserv, was listed three times. I’m not sure why it was initially submitted three times when I restarted the subsystem, but it was. Instead of ending the extra jobs, causing unpredictable results, I decided to change the subsystem description, “chgsbsd qserver” temporarilly and increase the concurrent jobs to 15. That’ll give me a little time to figure out if that job should have 3 seperate processes, or if it shouldn’t, where the 2 extra ones came from. After I changed the subsystem description the qzlsserver job moved into the subsystem, began executing and the NetServer was up and running.