|
Alan,
I'd never heard this described as "soft lock" before but your description
fitted with my experience.
I was just testing a program today, which showed that the Operating System
will only release the "soft lock" if the process that needs to use the
table for RGZPFM etc is the same job that has the "soft lock".
Is this also your understanding?
Specifically -
I have a program ( running in named Activation Group ) which does a few
INSERT INTO ... WITH NC statements.
Once the program ends with *INLR, WRKOBJLCK shows locks on the 3 files I
inserted records into.
I can clear those 3 files in the job that inserted the records, but not in
other jobs.
Normally I try to arrange it so that programs are run from a menu which
will then Reclaim the Named Activation Group to close everything down at
the end of the base program, but not everything is run that way.
So this makes me think I might have to consider the programs not called
that way to close the cursor at *ENDMOD....
Pfft, for some reason I thought the "soft lock" could be released by ANY
job.
regards,
Craig
On 18 March 2018 at 23:03, Alan Campin <alan0307d@xxxxxxxxx> wrote:
SQL Cursors are always soft closed unless you either have an error. Thesoft
operating system will maintain a lock on the table and the ODP(Open Data
Path) will remind open if possible.
If you use Close Cursor *ENDMOD and the module ends or you use *ENDACTGRP
and the activation group ends, cursor will be hard closed.
By soft close, what we mean is the cursor is left open and the lock is
which means if some process needs to use the table, the operating systemhard
will release the lock. For example, you wanted to do a RGZPFM. With a
open, you cannot do this. If the cursor has been closed soft, the OS willwhen
release the lock, close the ODP and do the reorg.
On Sun, Mar 18, 2018 at 2:08 PM, Craig Richards <craig@xxxxxxxxxxxxxxxx>
wrote:
Yesshows
That’s what I was talking about in the beginning.
On Sun, 18 Mar 2018 at 20:36, Dave <dfx1@xxxxxxxxxxxxxx> wrote:
Maybe the cursor is closed, but with Exec Sql close cursor, dspjob
a
lock still in place on the table. I think this is normal behaviour
beendopened in the dftactgrp. With CloSqlCsr, I don't have the lock at the
moduleof the program.
2018-03-18 18:12 GMT+01:00 Craig Richards <craig@xxxxxxxxxxxxxxxx>:
CloSqlCsr - as described in this thread is referring to the way the*Module
is created.
Instructing the system to close the SQL cursors for you when the
cursorsends.
I suppose you could say it is a safeguard to make sure that no
canclose
be accidentally be left open once the *module is exited.
If you have taken care to manually close any cursors using Exec Sql
cursor, then it won't be doing anything for you.
On 18 March 2018 at 16:49, Dave <dfx1@xxxxxxxxxxxxxx> wrote:
Thanks, the CloSqlCsr is what I needed. Actually, I have yet to
indo
wasthe
situation when having the cursor stay open after the program ends
notworth
more than the potentiel problems it can cause. A thing I'm still
clear
on is, what's the difference between "close cursor" as you would
Hardwantedbefore
reopening it, for example, and CloSqlCsr?
Craig, RCLRSC will not work and I believe this is documented
I'm in the dftactgrp which wasn't completely clear in my op. I
thattohave
beglenn.gundermann@xxxxxxxxx
able to compile but still have my program run in the dftactgrp.
Thanks
2018-03-16 16:18 GMT+01:00 Glenn Gundermann <
:
Hi Dave,
If you are referring to a SQLRPGLE program, then this is what I
in
mine:
// Set SQL options.
EXEC SQL
SET OPTION
CloSqlCsr = *ENDMOD,
Commit = *NONE,
DatFmt = *ISO,
Naming = *SYS;
It was pointed out on this forum by Birgitta and maybe others
programCloSqlCsr = *ENDMOD isn't the most efficient if you call the
experiment.repeatedly. Each person's case is different but you can
Hope this helps.
Yours truly,
Glenn Gundermann
Email: glenn.gundermann@xxxxxxxxx
Work: (905) 486-1162 x 239
Cell: (416) 317-3144
On 16 March 2018 at 10:07, Dave <dfx1@xxxxxxxxxxxxxx> wrote:
Hello all,
I’ve arrived at a new company and run into a bit of a fix.
doto
believe,
but there are no development standards and everyone seems to
RPG.as
he
pleases. Most are still writing new programs in fixed form
as IAs
I’ve
had
to work alone with very little time or coaching, I’ve done
toalways
have, preferring sub procedures to subroutines. When I came
shop. Idftactgrp(*no),compiling
I
got blocked by the error caused by not specifying
whythis, Iwhich
I’d
forgotten about (I’ve been away a long time). To get round
h-specs.specified the value **no, and added actgrp(**caller) in the
remaining
During testing, when I noticed that my files and cursors were
open (and remembered also this behavior), it suddenly hit me
up
till
now I’ve only come across dynamic program calls in this
closingcan
get
round the problem of the files, but can’t see a way of
myprocedures
cursors.
Can anybody advise me? Should I just convert all my
torelated
relatedback
to
(RPG400-L)routines?
*Thanks *
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription
affiliatequestions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription
affiliateaffiliateaffiliateaffiliatequestions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
--mailing list--
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
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: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
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: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
As an Amazon Associate we earn from qualifying purchases.
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.