What could be a cause for Natural to start ADABAS user session with an implicit OPEN?
Extract from adaopr di=uq:
session started with an implicit OPEN has blank User Id
ES-Id___User Id___Type__Status
30194____________ET____IE
31548__USER1____ET____E
Environment: OS RHEL 7; Nantural Ver 9.1.2; ADABAS Ver. 6.7.1
What is your OPRB NatParm setting? I usually take the default value of OFF which means that all Natural users get an implicit database open at session start. But despite the implicit open, I don’t see an I status code in my UQ report.
At the moment, I can’t think of why you are seeing an I in the status column and a blank user ID.
Hi Ralph,
OPRB is set to OFF.
Please see below response from support:
Here is the explanation from the developer on how the implicit OPEN could be done by Natural on Unix:
If a user session is at ET status, the user session is closed when a
non-activity timeout occurs. Then the next L3 call performs an implicit open, and the command ID no longer exists.
Also use of OPEN_REQUIRED was suggested, but this option would force necessity to exit/reenter natural session or may be issue OP command over direct call after 3009 on timeout - agree?
Thank you,
Boris
What concerns you about the implicit open that you need to avoid it?
Hi Ralph,
All concerns are timeout related.
The major problem is an existence of custom logic based on “User Id” which is blank for implicit open.
The minor (probably negligible) problem is SAG support response:
“OPTION OPEN_REQUIRED is recommended anyway, because without this under some circumstances inconsistencies in the database are possible.”. Documentation ADANUC section has two irrelevant for me cases when OPEN_REQUIRED could be essential - This option should be set if lnk_set_adabas_id is used when calling Adabas from application servers, and also when using Net-Work, otherwise in these cases Adabas cannot guarantee transaction integrity following an ADANUC restart. .
Do you agree that OPEN_REQUIRED will force necessity to exit/reenter natural session or alternatively sending OP command over ‘USR1043N’ to continue natural session after timeout 3009 ?
Regards
I have always done my best to set the environment/application (via Natural configuration, Adabas configuration, and programmatically) to avoid timeouts, but then force an ABEND if one occurs. I prefer that the user start a new session, rather than fudging things to allow the session to continue.
I leave OPRB set to the default.