2014-04-28 5 views
0

나는 odbcinst.ini에 다음 추가 :unixODBC 드라이버 추적은 per/perl에서 추적 만 표시하지만 perl에서 추적을 표시하지 않습니까?

[ODBC] 
Trace  = yes 
TraceFile = /777path/odbctrace.txt 

이가 표시된 파일을 생성을; 그러나 여러 연결 중에서 하나의 특정 연결 만 추적하는 것 같습니다 : PostgreSQL 데이터베이스 (ODBC를 통하지 않고 직접 액세스되는) 내의 함수를 통해 연결합니다. 그러나 나는 많은 차이를 보지 못합니다. ODBC를 통해 어떻게 연결하고 있는지 알려줍니다. pl/perl 기능 (유일한 추적 파일에 나타나는)과 같이 연결 :

(추적 파일에 표시 어느 것도) 다른 perl 스크립트를 다음과 같이 연결 반면
my $pfdbh = DBI->connect("dbi:ODBC:$odbc",...); 
if ($pfdbh) { 
    $pfdbh->{LongTruncOk} = 1; 
    $pfdbh->{LongReadLen} = 1048576; 
    $pfdbh->{AutoCommit} = 0; # legacy, don't ask 
    $pfdbh->{RaiseError} = 1; 
    $pfdbh->{ReadOnly} = 0; 

... :

my $fbodbh = DBI->connect("dbi:ODBC:$odbc",...) or die "Could not connect to $db database: $DBI::errstr"; 
$fbodbh->{LongTruncOk} = 1; 
$fbodbh->{LongReadLen} = 1048576; 

내가 어떻게 자동 커밋, RaiseError, 또는 읽기 전용 해야지은 추적이 로그에 넣어 도착 여부를 변경할 수 표시되지 않습니다 ...

NEW UPDATE 그들은없는 것 같습니다 않습니다 : I는 012,352했다스크립트는 똑같은 방법으로 연결되지만 여전히 추적은 없습니다. pl/perl 스크립트가 흔적을 남기고 정규 스크립트가 실행되지 않는 이유는 무엇입니까?

새 업데이트 2 마지막 업데이트 나는 방금 다른 속성을 복사했습니다. 이번에, 나는 실제로 똑같은 Perl 모듈과 똑같은 함수를 호출한다. 이제는 흔적이 ... 그래서 어떻게 추적 할 수있는 ODBC 드라이버를 차단할 수 내 코드가 잘 연결하고 데이터를 검색하고, AFAICS 정확히 동일한 매개 변수 및 설정을 연결할 때 혼란 스러워요. .

답변

0

그것은 단지 추측이지만 다른 사용자로 실행되는 다른 연결입니까?

그렇다면 사용 권한 일 수 있습니다. 첫 번째 연결은 추적 파일을 만들고 다른 추적은 첫 번째 사용자가 소유 한 파일에 쓰지 못하고 있습니다. 실행 전에 추적 파일 (비어 있음)을 만들고 rw-rw-rw 권한을 부여하십시오.

+0

아니요, 모두 동일한 사용자로, 'apache_user' (mod_perl2 실행)입니다. 권한 파일과 모든 상위 디렉토리에는 777 개의 perm이 있습니다. – Kev