부인 방지 데이터베이스 테이블 유지 관리
BTARN(RosettaNet용 Microsoft BizTalk Accelerator)은 BTARNArchive 데이터베이스의 MessageStorageIn 및 MessageStorageOut 테이블에 거부되지 않는 목적으로 메시지를 저장합니다. 이러한 테이블의 많은 메시지는 시스템 성능에 영향을 줄 수 있습니다. 이러한 테이블의 메시지를 적절하게 주기적으로 제거 및 보관하여 이러한 부인이 아닌 데이터베이스 테이블을 유지 관리할 수 있습니다.
일상적인 데이터베이스 유지 관리
BTARN은 메시지를 받을 때 항상 MessageStorageIn 테이블에 메시지를 저장하고 처음에 ToBePurged 필드를 "1"로 설정합니다. 이는 메시지에 거부가 필요하지 않음을 나타냅니다. 그런 다음 BTARN은 메시지의 암호를 해독하고 디코딩하여 규약이 무엇인지 확인합니다. 암호 해독 및 디코딩 후 BTARN은 규약을 검사하여 거부하지 않는 목적으로 메시지를 저장해야 하는지 여부를 확인합니다. 이 경우 ToBePurged 필드를 "0"으로 설정하고 메시지의 다른 필드를 채웁니다. 그렇지 않은 경우 ToBePurged 필드를 "1"로 두고 메시지의 다른 필드를 채우지 않습니다.
BTARN은 ToBePurged 필드가 "1"로 설정된 메시지를 자동으로 삭제하지 않습니다. 또한 거부하지 않도록 저장된 메시지를 다른 테이블에 보관하지 않습니다. 이러한 두 메시지 집합은 MessageStorageIn 테이블에서 빌드되고 성능에 영향을 줄 수 있습니다. 데이터베이스에 대한 일상적인 유지 관리의 일부로 다음을 수행할 수 있습니다.
다음 SQL 문이 포함된 저장 프로시저를 실행하여 ToBePurged 필드가 "0"과 같지 않은 MessageStorageIn 테이블의 모든 메시지를 삭제합니다.
delete MessageStorageIn where ToBePurged <> 0
적절한 기간(회사 정책이 지시할 수 있음) 후에는 저장 프로시저를 실행하여 성능에 영향을 미치지 않는 거부되지 않는 메시지를 오프라인 데이터베이스에 보관합니다. MessageStorageIn 테이블에서 TimeCreated 필드를 사용하여 이 기간을 확인할 수 있습니다. 메시지에 대한 거부되지 않는 기간이 만료된 후 다음 SQL 문을 사용하여 보관 데이터베이스에서 메시지를 삭제할 수 있습니다(7일 이전의 메시지를 삭제함).
delete <archive table name> where datediff(d, TimeCreated, GetUTCDATA())>7
참고
MessageStorageIn 테이블의 TimeCreated 필드는 UTC입니다.
참고
1시간 미만인 들어오는 메시지를 삭제하면 안 됩니다.
BTARN이 보내는 메시지를 보내면 거부 안 규약에 액세스할 수 있습니다. 규약에 부인할 수 없는 내용이 필요한 경우 BTARN은 MessageStorageOut 테이블에 메시지를 저장합니다. 그렇지 않은 경우 테이블에 메시지를 저장하지 않습니다. 즉, 이 테이블에 ToBePurged 필드가 필요하지 않습니다. MessageStorageOut 테이블에 필요한 유일한 유지 관리는 적절한 기간 후에 거부되지 않는 메시지를 오프라인 데이터베이스에 보관하고 거부하지 않는 기간이 만료된 후 각 메시지를 삭제하는 것입니다. 다음 SQL 문(7일보다 오래된 메시지를 삭제함)으로 이 작업을 수행할 수 있습니다.
delete MessageStorageOut where datediff(d, TimeCreated, GetUTCDATA())>7