Připojení Oracle k SQL Serveru je jedním z nejběžnějších případů použití ovladače Easysoft SQL Server ODBC. Podpora této kombinace zahrnuje nejen poskytování pomoci s nastavením našeho ovladače. Znamená to také pomoc při řešení problémů s konfigurací Oracle, které brání heterogenním službám Oracle dostat se až k načtení našeho ovladače.
Nedávno nám zákazník s ovladačem SQL Server ODBC nahlásil následující chybu:
ORA-28513: internal error in heterogeneous remote agent
Zákazník nám byl schopen dodat záznam sledování DG4ODBC, který nám řekl dvě věci:
- Konfigurační soubory Oracle (.ora) byly nastaveny správně. Pokud tyto soubory obsahují chybu (např. chybějící nebo nadbytečné závorky), nebude vygenerován žádný trasovací protokol DG4ODBC.
- DG4ODBC se ani nepokusilo načíst unixODBC Driver Manager.
V situacích, jako jsou tyto, kdy protokol Oracle DG4ODBC neidentifikuje problém (normálně bude vždy obsahovat více informací než chyba ORA-NNNNN hlášená aplikací) a protokolování ODBC zatím není možné, sáhneme po strace
nebo truss
. Například:
- Spusťte dvě relace prostředí jako uživatel Oracle.
- V shellu 1 zastavte posluchače Oracle.
- Spusťte posluchač pomocí tohoto příkazu:
strace -f -o /tmp/easysoft.log -s 512 lsnrctl start
—Nebo —
truss -wall -rall -o /tmp/easysoft.log lsnrctl start
- V shellu 2 spusťte SQL*PLus a spusťte příkaz SQL proti propojení databáze DG4ODBC / SQL Server.
- V prostředí shell 2 zastavte posluchač Oracle.
Nástroj pro sledování systémové knihovny (truss
v případě zákazníka) stále neodhalila příčinu problému.
Nakonec se ukázalo, že zákazník nastavuje ORA_NLS10
proměnná prostředí a vedlejším efektem tohoto provedení bylo zabránit práci DG4ODBC. Protože proměnnou nebylo nutné na tomto počítači nastavovat, řešením problému zákazníka bylo její zrušení a odstranění ze souboru profilu.