We use Oracle's ORDCOM infrastructure on our 11.1.0.7 database to interact with a COM object. The COM object doesn't do anything with the database. This process has been working fine for several years.
Today I created an Oracle Wallet and added credentials for sys to so that a script I have can login using "/@coredev as sysdba" rather than store the username and password in clear text.
The problem is that as soon as I added the line "SQLNET.WALLET_OVERRIDE = TRUE" to the sqlnet.ora file, the ORDCOM OACreate call raises an ORA-28578: protocol error during callback from an external procedure. I have a program outside of the database that can test the COM object and that continues to work correctly. As soon as I comment out the line in sqlnet.ora it all works correctly, but of course I can no longer use the Wallet.
Oracle reproduced this problem with an internal test case and has created a bug for it. The workaround is to use a separate sqlnet.ora/tnsnames.ora for the wallet setting the TNS_ADMIN environment variable to the path to the alternate files.