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