JDBC 중개자 예외

JDBC 중개자는 데이터베이스에서 보고된 표면 오류를 예외 처리하거나, 또는 DMS를 인스턴스화하는 시도에서 유효하지 않은 메타데이터의 사용을 표시합니다.

예외

Mediator 예외는 모든 데이터 중개자 서비스의 루트 예외이며, JDBCMediator 예외는 특히 JDBC DMS의 루트 예외입니다.

오류가 데이터베이스에서 보고되면 DB 예외가 발생합니다. 여러 방식으로 발생할 수 있습니다.
  • 사용 중인 연결이 AutoCommit 특성을 true로 설정하지만 JDBC DMS는 트랜잭션을 제어하고 false로 설정해야 하는 경우
  • 지원되지 않는 데이터베이스를 사용하려고 하는 경우
  • 커미트 또는 롤백 중 다른 백엔드 데이터베이스 오류가 발생하는 경우.

applyChanges() 조작으로 데이터 충돌이 발생되면 OCC(Optimistic Concurrency Control) 예외가 발생합니다. 예외가 발생하면, 예외는 원래 행 값, 현재 행 값 및 시도된 행 값을 포함합니다. 이 값을 사용하여 오류에서 복구될 수 있습니다.

InvalidMetadata 예외는 작성 시 JDBC DMS에 제공된 유효하지 않은 메타데이터에 대해 발생합니다. 조회가 메타데이터에 정의되지 않은 테이블이나 열을 필요로 하거나 Oracle, Informix® 및 지원되는 이전 버전의 Sybase 데이터베이스에 대한 다른 테이블에 동일한 열 이름이 있는 경우 발생할 수 있습니다.

예: OCC 데이터 충돌 및 JDBC 중개자 예외 강제 적용: 다음 예는 충돌을 강제 적용하여 발견을 나타내며 결과로 발생하는 예외를 표시합니다.

// This example assumes that a mediator has already 
// been created and the first name in the list is Sam.  
// It also assumes that the Customer table has an OCC 
// column and the metadata has set this column to be 
// the collision column.

DataObject graph1 = mediator.getGraph();
DataObject graph2 = mediator.getGraph();
  
DataObject customer1 = (DataObject)graph1.getList("CUSTOMER").get(0);
customer1.set("CUSTFIRSTNAME", "Bubba");
  
DataObject customer2 = (DataObject)graph2.getList("CUSTOMER").get(0);
customer2.set("BOWLERFIRSTNAME", "Slim");
 
mediator.applyChanges(graph2);
  
try 
{
 mediator.applyChanges(graph1);  
} 
catch (OCCException e) 
{
// Since graph1 was obtained before graph2 and 
// graph2 has already been submitted, trying to 
// apply the same changes to graph1 causes 
// this OCC Exception.

assertEquals("Sam", e.getOriginalDO(). getString("CUSTFIRSTNAME"));
assertEquals("Bubba", e.getChangedDO(). getString("CUSTFIRSTNAME"));
assertEquals("Slim", e.getDatabaseDO(). getString("CUSTFIRSTNAME")); 
}

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_jdbcmedex
파일 이름:rdat_jdbcmedex.html