| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 5020.1 |  | NOVA::SMITHI | Don't understate or underestimate Rdb! | Tue Feb 11 1997 14:04 | 11 | 
|  | ~In V7.0 on VAX, the last error is changed to 
~	-RDMS-I-TEXT, Error activating image FRVMSS$DKA200:[USER.PJACOB.RDB.JFP]
~	RDBFUNC.EXE;14, Writable shareable images must be installed  
This looks like you have a WRT PSECT.  Find out what it is and change it in
the options file NOWRT.  It is unusual to install an image /WRITE
You don't show us the source code or the function definitions.  Please show us
so we can help further.
ian
 | 
| 5020.2 |  | DUCATI::LASTOVICA | Is it possible to be totally partial? | Tue Feb 11 1997 14:20 | 7 | 
|  | re: .0, .-1
	I suspect that the problem is more along the lines of a
psect that is WRT and SHR.  Usually one would change the options
files to specify NOSHR.  This most often seems to happen with 
modules written in C that contain global variables.
	use a link map (/map/full) to determine what psect(s) are
SHR and WRT.
 | 
| 5020.3 |  | NOVA::SMITHI | Don't understate or underestimate Rdb! | Tue Feb 11 1997 16:18 | 3 | 
|  | right, I meant to so NOSHR, not NOWRT.  Sorry
Ian
 | 
| 5020.4 | additional info | 8292::PJACOB | Patrick [email protected] | Wed Feb 12 1997 13:56 | 41 | 
|  | Thanks to both of you. I will investigate in this direction.
But in the meantime, let me share with you the funny side effect I found out
when I started to apply your suggestion: 
Once I added in V7.0 the shareable image ( /share/write/open USR$COMMON:rdbfunc
.exe ) from where I got the "file currently lock error", I relinked the object
to recreate a new image ( and the map of the linker ). What a surprise ! Now
the SELECT works !!!??? 
>You don't show us the source code or the function definitions.  Please show us
>so we can help further.
 Here it is :
create function SQL_ERREUR_NSDK (
in int,		-- code sql de l'erreur
in char(7),	-- nom du module ou programme
in char(15),	-- etiquette ou la fonction d'appel de la requete
in char(20),	-- user NSDK
in char(3))	-- code de l'application
returns integer;
    external
        location 'USR$COMMON:rdbfunc.exe'
            with SYSTEM logical_name translation
language c
general parameter style variant;
grant
    EXECUTE, SHOW, DROP, DBCTRL
    on function SQL_ERREUR_NSDK
    to ADMIN_RDB
    position 1;
grant
    EXECUTE
    on function SQL_ERREUR_NSDK
    to PG
    position 2;
revoke all
    on function SQL_ERREUR_NSDK
    from PUBLIC
    position 3;
commit work;
 | 
| 5020.5 | PSECT_ATTR=RDB$MESSAGE_VECTOR,NOSHR,LCL | 8292::PJACOB | Patrick [email protected] | Thu Feb 13 1997 09:40 | 24 | 
|  | Hi,
I finally make it work properly on VAX with Rdb 6.0-15 , 6.1-04 and 7.0.
The map resulting fronm a LINK/MAP/FULl shows that psect RDB$MESSAGE_VECTOR was
both SHR and WRT. Thus adding PSECT_ATTR=RDB$MESSAGE_VECTOR,NOSHR,LCL in the
VAX option file fixed the problem. I should read Guide to SQL Programming 
more often... 
I kept however the Alpha option file without this psect attribute because it 
does not seem to be necessary. Do you think I need to change the option file 
on Alpha too? Currently it is:
	SYMBOL_VECTOR=(SPARE,-
	SUBMITJOB=PROCEDURE,-
	CAPITALIZE=PROCEDURE,-
	SQL_ERREUR_NSDK=PROCEDURE)
I gave up with the strange behaviour I mentionned of both install the shareable
image with /open/shared/writable and regenerate a new image upside on disk. It
workarounded the problem on the 3 mentionned versions but it was not a clean
workaround. The error messages were missleading.
Once again, thanks.
    
Patrick.
 | 
| 5020.6 |  | HOTRDB::LASTOVICA | Is it possible to be totally partial? | Thu Feb 13 1997 10:07 | 3 | 
|  |     I believe that the difference between vax and alpha is due to the DECC
    compiler being a little bit more vms-friendly.  If it works on Alpha, I
    think that there isn't much more you need to do.
 | 
| 5020.7 | I think it's all compilers | ORAREP::RTOAL2::MAHER | TIER3 simply a better RPC! | Thu Feb 13 1997 11:59 | 21 | 
|  |     Hi,
    
    Not so long ago I asked the COBOL people the same thing and I believe
    the answer was that most people really wanted noshr so that is the
    default for (all?) compilers on Alpha. (Which seems reasonable but
    another change was that if you really wanted an installed common
    block then you had too explicitly put the psect name in the options
    file symbol_table directive so it could be linked against)
    
    Another curious new (apparently calling) standard is that these
    psects will have their size rounded up to multiples of 8 bytes.
    I think rdb$message_vector is 80 bytes so no change there. (MACRO
    has no such requirement even though it's a compiler  on Alpha)
    
    The other thing I remember from one of the earlier replies was
    about "locked by other user" messages. It's probably not related
    but once I received a similar error when installing a writeable
    shareable with a ";" specified in the filename. Taking it off
    fixed it. (But I think your errors were from Rdb not install)
    
    Regards Richard Maher.
 |