× 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.



I did not say the programs ended. They crashed with a message saying that
they crashed and to see the job log for why but there is no message I can
find that explains the crash.

I think you are mis-understanding what a pre-start job does. It does not
actually run a program. A job is created and then the system puts the job
into a Pre-start wait(PSW). When you issue the spawn is when it actually
calls the program. Nothing gets called until you run the spawn.

The manual for the pre-start job entry seemed to imply that if you used
some other name than the two programs names for spawn that when a job was
submitted, the system would use the program name to look up in the
pre-start list and run the program in the pre-start job but that did not
work because of the crash.



On Wed, Sep 21, 2016 at 12:29 AM, D*B <dieter.bender@xxxxxxxxxxxx> wrote:

<Alan>
I did a quick test. Created a program that did nothing. Added as a
pre-start job to my subsystem and started up. All the pre-start jobs
crashed. Job log does not say why, just that they crashed. . Called the
program directly I and it runs fine. My only guess is that program name is
not QP0ZSPWP or QP0ZSPWT.
</Alan>

... this is happening simply, because your job is doing nothing!!! (=>
it's ended before you could catch it and you don't find "nothing")
Add a DLYJOB to your CL and you will see, that there is a JOB in DLY
status. If you do the following:
ADDPJE SBSD(...) PGM(.../...) USER(...) INLJOBS(2) THRESHOLD(1) ADLJOBS(1)
MAXJOBS(2)
you will see 2 Jobs in DLY status and if you kick out one of the jobs, a
new one will arise by automatic.
(BTW: I did not succeed to have one automagic starting job, THRESHOLD
didn't allow 0)

So your prestarted clients would have to do something (waiting on a DtaQ
or Socket) and your dispatcher has to fire the asynchronous channel to
bring them to work. You could use spawn() or sbmjob to create your workers.
spawn should perform better (it's using BCI). For the socket variant
sendmsg() rcvmsg() would be easier to handle than givedescriptor()
takedescriptor() (you will find examples). You don't really need prestarted
jobs to do so, the performance diffrence should be neglectable, as long as
the startup of your (!!!) programm isn't heavy.

D*B
--
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.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.