What's worse than a Bad Error Message?

I'm sure I don't have to explain what is wrong with error messages like this:

Due to the issue documented in my previous post, we're currently replacing the database layer of our production application-- switching from Microsoft's System.Data.OracleClient, to Oracle's Oracle.DataAccess. Just what you want to do in a production system, make sweeping changes in the back end soon after deployment. Er, right. But I digress.

This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2004/06/whats-worse-than-a-bad-error-message.html

Oracle 9.2 Client software requires that you give the Authenticated User privilege to the Oracle Home by following steps:

  1. Log on to Windows as a user with Administrator privileges.
  2. Launch Windows Explorer from the Start Menu and and navigate to the ORACLE_HOME folder.
    This is typically the “Ora92” folder under the"Oracle" folder (i.e. C:\Oracle\Ora92).
  3. Right-click on the ORACLE_HOME folder and choose the “Properties” option from the drop down menu. A “Properties” window should appear.
  4. Click on the “Security” tab of the “Properties” window.
  5. Click on “Authenticated Users” item in the “Name” list (If none, Please Click “Add” button To Add it in).
  6. Uncheck the “Read and Execute” box in the “Permissions” list under the “Allow” column.
  7. Re-check the “Read and Execute” box under the “Allow” column (this is the box you just unchecked).
  8. Click the “Advanced” button and in the “Permission Entries” list make sure you see the “Authenticated Users” listed there with:
    Permission = Read ExecuteApply To = This folder, subfolders and files.
    If this is NOT the case, edit that line and make sure the "Apply onto"drop-down box is set to “This folder, subfolders and files”.
    This should already be set properly but it is important that you verify this.
  9. Click the “Ok” button until you close out all of the security propertieswindows.
    The cursor may present the hour glass for a few seconds as it applies the permissions you just changed to all subfolders and files.
  10. Reboot your computer to assure that these changes have taken effect. Re-execute the application and it should now work.

The call in question was executing on the server, not the client. There’s a bizarre client dependency when using remoting and Oracle.DataAccess. The client isn’t making any database calls, it is invoking HTTP proxy classes which actually execute on the server (eg, Remoting).

Well, came across this post and I’m feeling better already, I’m not the only one who has suffered :wink:

Haven’t figured out yet what is causing it but here is the error (partial stack removed).
TargetSite : Void HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessage)
Stack Trace : Server stack trace: at {Class Name}.ReplaceText(Object objectName, String text) in {File Path}:line 446

And here is the offending ‘Remoting.Messaging.IMessage’ error, didn’t realize a string replace command was now a Remoting Call Microsoft:
returnValue = returnValue.Replace("@Date", Object.Date.ToShortDateString)

Worked fine all day and then when I VPN’d in again tonight to deploy to production I get this joyous pain in the rear. The funny (or sad I guess) thing is there were no new dependencies or anything put in the code today, only minor bug fixes before deployment!


Oracle sucks!

Man this makes me love my custom remoting. Any exceptions thrown travel through the remoting barrier as thrown exceptions (unwrapped) with the backtrace line of the remoting handler reading “[memory barrier]”

Just in case someone else stumbles on to this - I had the error here and the issue for me was an upgrade to a newer .NET version. At some point in time this made my references to Types case sensitive, and I had some case issues, so the types could not be found. Painful lesson: just keep an eye on your case sensitivity.

I landed here by searching with stack trace error “realproxy.privateinvoke” search, as there is not much help available. I am getting this error with MQ Queue put/read…still stuck and not sure how to proceed. Even MSDN also not available for RealProxy.PrivateInvoke and RealProxy.HandleReturnMessage methods…strange!!