× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Jim,

You've identified that the jobs that take so long to end are performing
database-related functions.  This being the case there isn't much you
can do.  Once a process dives into updating the database it continues
until it finishes database related processing.

Have you tried something along these lines?  Write an exit program for
the FTP server.  This exit program would reject transactions coming
through.  The transaction rejection would cause the sending process to
receive an error.  You could also have the exit program run the
ENDTCPSVR command before returning control to the FTP server.


-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Jim Damato
Sent: Monday, December 01, 2003 7:23 PM
To: 'midrange-l@xxxxxxxxxxxx'
Subject: RE: Ending TCP/IP, FTP jobs in QSYSWRK


grrr...

We've performed some tests based on folks' recommendations.  No matter
what
we do the ending of these QTFTPxxxxx jobs is taking quite a long time.
ENDTCPSVR SERVER(*FTP), for example, effectively ends all of these jobs
*IMMED, which still takes a long time.  We changed the jobs' logging
levels
and found that we're generating thousands of short QPJOBLOG files for
each
_JOB_.  Each joblog identifies an FTP PUT or GET session.  Apparently
each
of these QTFTPxxxxx jobs supports thousands of consecutive FTP sessions.
I
wonder whether there's some aspect of job cleanup that has grown out of
control.

We send a ridiculous number of transaction files to and from our AS/400.
It
amounts to tens of thousands per week.  At each weekly IPL ending the
FTP
server is becoming a significant bottleneck.

Is anyone else running a fairly heavy FTP environment?  If so, are you
experiencing similar issues?

-Jim

James P. Damato
Manager - Technical Administration
Dollar General Corporation
<mailto:jdamato@xxxxxxxxxxxxxxxxx>

-----Original Message-----
From: Ingvaldson, Scott [mailto:SIngvaldson@xxxxxxxxxxxx]
Sent: Monday, November 24, 2003 5:54 PM
To: 'midrange-l@xxxxxxxxxxxx'
Cc: 'jdamato@xxxxxxxxxxxxxxxxx'
Subject: RE: Ending TCP/IP, FTP jobs in QSYSWRK


Jim -

This is the call of the SAVSYS on one of our systems.  It was adapted
from
QMNSRBND (On previous advice from Al.)  I used to also do the ENDHOSTSVR
SERVER(*ALL) separately, I changed this after V5R1 when I was told that
it
was now included in the ENDTCP.  In a nutshell I issue an end to the
things
that need a little extra time to shut down gracefully, then do a little
delay before dropping everything else.  If your QTFTPxxxxx jobs are
truly
hanging on for an hour and a half you might want to issue ENDTCPSVR
SERVER(*FTP) well before calling your backup (if that is practical)  My
guess is that some external factor(connection not closing) is causing
them
to hang, is your FTP Inactivity timeout set high?  Maybe you could try
CHGFTPA INACTTIMO(300)

What Al is talking about is more or less the code from LOOP on below.
This
basically reissues the ENDSBS *ALL every 15 seconds untile the system
gets
to a restricted state and then continues.  LIMIT30 sends a message to
the
calling MSGQ if all SBS's don't end in 30 minutes. 

BKPENDSYS:  PGM        PARM(&TAPEDEV &IPL)                              
            DCL        VAR(&TAPEDEV) TYPE(*CHAR) LEN(10)                
            DCL        VAR(&IPL) TYPE(*CHAR) LEN(1)                     
            DCL        VAR(&LOOPCNT) TYPE(*DEC) LEN(3 0) VALUE(1)       
            DCL        VAR(&MSGTXT) TYPE(*CHAR) LEN(1)                  

            TECH/ENDQP                  <:::::

            TECH/ENDMQ                    <::::: Ends these applications

            CALL       PGM(TECH/ENDOPT) <:::::        ~gracefully~

                                                                       
            ENDSBS     SBS(QSNADS) OPTION(*IMMED)                    
            MONMSG     MSGID(CPF1054) /* No subsystem QSNADS +       
                         active. */                                  
                                                                       
            ENDTCPSVR  SERVER(*HTTP)                                 
            ENDNFSSVR  SERVER(*ALL)                                   
                                                                       
            DLYJOB     DLY(60)                                       
                                                                       
            ENDTCP                                                    
            MONMSG     MSGID(TCP5713) /* There were no active DHCP +  
                         jobs, end request ignored. */                
                                                                        
LOOP:       ENDSBS     SBS(*ALL) OPTION(*IMMED)                       
            MONMSG     MSGID(CPF1035 CPF1001) EXEC(GOTO +             
                         CMDLBL(DELAY)) /* Subsystems ending with +   
                         *IMMED option. */                            
            GOTO       CMDLBL(ENDSBSDONE)                             
                                                                        
DELAY:      RCVMSG     MSGTYPE(*EXCP) RMV(*YES)                       
            IF         COND(&LOOPCNT *LT 119) THEN(DO) /* 30 minute + 
                         limit */                                     
            DLYJOB     DLY(15)                                        
            CHGVAR     VAR(&LOOPCNT) VALUE(&LOOPCNT + 1)              
            GOTO       CMDLBL(LOOP)                                   
            ENDDO                                                     
            ELSE       CMD(GOTO CMDLBL(LIMIT30))                      
                                                                        
ENDSBSDONE: RCVMSG MSGTYPE(*LAST) RMV(*YES)                           
            CALL       PGM(TECH/BKPSAVSYS) PARM(&TAPEDEV &IPL +      
                         &JOBNAME)                                   
            GOTO       CMDLBL(END)                                   
                                                                       
LIMIT30:    SNDPGMMSG  MSGID(CPA3712) MSGF(*LIBL/QCPFMSG) +          
                         TOPGMQ(*EXT) MSGTYPE(*INQ)                  
            RCVMSG     PGMQ(*SAME) MSGQ(*PGMQ) MSGTYPE(*RPY) +       
                         WAIT(*MAX) RMV(*YES) MSG(&MSGTXT)           
            IF         COND(%SST(&MSGTXT 1 1) *EQ 'G') THEN(DO)      
            CHGVAR     VAR(&LOOPCNT) VALUE(1)                        
            GOTO       CMDLBL(LOOP)                                  
            ENDDO                                                    
                                                                       
END:        ENDPGM 


Regards,

Scott Ingvaldson
AS/400 System Administrator
GuideOne Insurance Group



_______________________________________________
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...


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

This mailing list archive is Copyright 1997-2024 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 on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.