2011-10-14 1 views
0

내 응용 프로그램은 닷넷 기반입니다. VS를 사용하고 있습니다. 내 응용 프로그램은 백엔드에서 IBm DB2를 사용합니다. 내 쿼리 코드 -DB2DataAdapter.Fill (dataset)은 "SQL0901N (이유"CPF4273 ")을 던졌습니다. SQLSTATE = 58004"

DB2DataAdapter dbAdapter = null; 
DB2Connection dbConn = null; 
DB2Command dbCommand; 
DataSet dsReturnDataSet ;    
dbConn = new DB2Connection(connectionString); 
if (dbConn.State == ConnectionState.Closed) dbConn.Open(); 
dsReturnDataSet.Clear(); 

dbCommand = GetCommand(); 
dbCommand.CommandText = queryString; 
dbCommand.Connection = dbConn; 
dbAdapter = new DB2DataAdapter((DB2Command)dbCommand); 
dbAdapter.Fill(dsReturnDataSet); 
return dsReturnDataSet; 

SELECT A, B FROM SERVER.D WHERE A IN 
    (SELECT C FROM SERVER.E WHERE X = '01OBPP' AND Y= 'U' AND Z= '1') 

A, B, C, X, Y, Z-열 이름 서버 - 서버 이름, D 및 E -table NAME

PFB 인 이 선에 도달하는 동안

GetCommand() 메소드는 다음과 같은 성명

DB2Command dbCommand; 
dbCommand = null; 
dbCommand = new DB2Command(); 
dbCommand.CommandType = CommandType.Text; 
dbCommand.CommandTimeout = 30; 
return dbCommand; 

있다 'dbAdapter.Fill (dsReturnDataSet를);' 그것은 매우 긴 시간과 오류를

"ERROR [58004] [IBM]를 [AS]를 SQL0901N SQL 문이 실패 때문에 비 심각한 시스템 오류. 후속 SQL 문을 던진다 후이 stucks . 처리 (이유 "CPF4273"). SQLSTATE = 58004 "

어떤 포인터를 입력하세요 될 수있다. 이 오류를 해결하기위한 지침을 제공하는 사람이 있으면 매우 감사드립니다.

답변

1

데이터베이스 로그를 확인하십시오. db2dump 디렉토리에 인스턴스 sqllib 디렉토리 아래에 db2diag.log 파일이 있어야합니다. 이 파일에서 위의 오류를 검색하면 참조하는 근본 원인 (심각하지 않은 시스템 오류)을 포함해야합니다.

+0

안녕하세요, inflagranti, 업데이트 주셔서 감사합니다. SQLLIB를 발견했지만 db2diag.log를 찾을 수 없습니다. 나는 서핑을했는데 내 DIAGPATH가 비어 있고 diaglevel이 3이라는 것을 알았습니다. 어디로 가야하는지, 또는 일부 로컬 장소로의 diagpath를 변경해야하는지에 대한 포인터 그리고 db2diag.log의 결함을 기록하기 위해 Query를 다시 실행해야합니다. // – Ayoti

+0

@Ayoti : 변경 사항을 적용하려면 DB2 서비스를 다시 시작해야합니다. 위의 diaglevel을 3로 설정하지 마십시오. 로그가 채워질 것입니다. 문서를 확인하십시오 ( http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.config.doc%2Fdoc%2Fr0000299.html) 자세한 내용은. –

+1

'(Reason "CPF4273".) 때문에, 이것은 i 용 DB2 원격 데이터베이스라고합니다. 따라서 "db2diag.log"나 "db2dump directory"나 "instance 's sqllib directory"도 없습니다. "CPF4273"은 오류가 발생했으며 이전에 기록 된 모든 메시지를보기 위해 작업 기록부를 검사해야한다는 일반적인 표시입니다. – user2338816

관련 문제