Tilslutning af Oracle til SQL Server er en af de mest almindelige anvendelsesmuligheder for Easysoft SQL Server ODBC-driveren. At understøtte denne kombination indebærer ikke kun at yde assistance med at konfigurere vores chauffør. Det betyder også at hjælpe med at løse Oracle-konfigurationsproblemer, der forhindrer Oracle Heterogeneous Services i at komme så langt som at indlæse vores driver.
For nylig rapporterede en SQL Server ODBC-driverkunde følgende fejl til os:
ORA-28513: internal error in heterogeneous remote agent
Kunden var i stand til at forsyne os med en DG4ODBC-sporingslog, som fortalte os to ting:
- Oracle-konfigurationsfilerne (.ora) var konfigureret korrekt. Hvis disse filer indeholder en fejl (f.eks. en manglende eller uvedkommende parentes), vil der ikke blive genereret nogen DG4ODBC-sporingslog.
- DG4ODBC forsøgte ikke engang at indlæse unixODBC Driver Manager.
I situationer som disse, hvor Oracle DG4ODBC-loggen ikke identificerer problemet (den vil normalt altid indeholde flere oplysninger end ORA-NNNN-fejlen rapporteret af applikationen), og ODBC-logning endnu ikke er mulig, når vi efter strace eller
truss
. For eksempel:
- Start to shell-sessioner som Oracle-bruger.
- Stop Oracle-lytteren i skal 1.
- Start lytteren med denne kommando:
strace -f -o /tmp/easysoft.log -s 512 lsnrctl start
—Eller—
truss -wall -rall -o /tmp/easysoft.log lsnrctl start
- I skal 2, start SQL*PLus og kør en SQL-sætning mod DG4ODBC / SQL Server-databaselinket.
- Stop Oracle-lytteren i skal 2.
Men systembibliotekets sporingsværktøj (truss
i kundens tilfælde) afslørede stadig ikke årsagen til problemet.
Til sidst viste det sig, at kunden indstillede ORA_NLS10
miljøvariabel, og en bivirkning ved at gøre dette var at forhindre DG4ODBC i at virke. Da variablen ikke behøvede at blive indstillet på denne maskine, var løsningen på kundens problem at fjerne den og fjerne den fra en profilfil.