Wednesday, September 21, 2011

ArcSDE / Oracle Cannot Initialize Shared Memory

Someone (not me! ha ha!) rebooted a server running ArcSDE 9.3 with local Oracle 10g, and afterward ArcSDE was giving these errors on startup:
ERROR in clearing lock and process tables.
Error: -51
DBMS error code: -12704
Error PL/SQL block to clean up hanging entries 
ORA-12704: character set mismatch
 
ERROR: Cannot Initialize Shared Memory (-51)

... so... I guess... the character set is wrong in Oracle? BUT NO IT'S CORRECT.
Or there's some permissions issue? NO THAT'S NOT IT EITHER.
The issue was fixed, though this is not the recommended solution, by deleting all the files owned by the sde user in /tmp/ - in this case, just the helpful socket files:
/tmp/SDE_9.3_esri_sde_iomgr_shared_semaphore  /tmp/sde_server_to_client_FIFO_esri_sde_0
/tmp/sde_client_to_server_FIFO_esri_sde_0     /tmp/sde_server_to_client_FIFO_esri_sde_1
/tmp/sde_client_to_server_FIFO_esri_sde_1     /tmp/s.esri_sde.iomgr

Users experienced some instability until ArcSDE was able to regenerate all the files, which happened after about 20 minutes. So even though this was a bad thing to do and should not have worked anyway, I offer it to you, o interwebz, in case you get as desperate as I did. At the very least, perhaps it will be reassuring to be able to find "DBMS error code: -12704" in Google. It's not just you!

Useful references I found: Administering ArcSDE for Oracle (pdf)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.