본 부록에서는 FML을 사용하는 Tuxedo 사이트를 Tmax로 전환하는 경우 Field Buffer 계산 방법에 대해서 설명한다.
Field 타입에 따른 사이즈 계산 기준은 다음과 같다.
Filed Type | 사이즈 |
---|---|
String | Header 4bytes + Date len + Null 1bytes + 패딩 |
Carray | Header 4bytes +지정된 길이 + 4(길이 지정)bytes + 패딩 |
Char | Header 4bytes, Data 4bytes |
Short | Header 4bytes, Data 4bytes |
Long | Header 4bytes, Data 4bytes |
Float | Header 4bytes, Data 4bytes |
Double | Header 4bytes, Data 8bytes + 패딩(4bytes) |
사용 버퍼량의 계산 방법은 다음과 같다.
사용 버퍼량 = FDL 버퍼 헤더 + (필드간 헤더(4) + 데이터 길이 +패딩) * 입력횟수
패딩은 8 Byte alignment를 준수한다.
다음의 Tmax FDL 값에 대한 계산 예제이다.
F1 integer F2 long F3 float F4 double F5 STRING 길이 10 F6 STRING 길이 19 F7 CARRAY 길이 22
각 Field 타입별로 다음과 같이 계산된다.
F1 integer F2 long F3 float F4 double F5 STRING 길이 10 F6 STRING 길이 19 F7 CARRAY 길이 22 F1 integer : 8 (필드간 헤더(4) + 4) F2 long : 8 (필드간 헤더(4) + 4) F3 float : 8 (필드간 헤더(4) + 4) F4 double : 16 (필드간 헤더(4) + 8) + 4(패딩) F5 STRING 길이 10 : 16 (필드간 헤더(4) + 10 + 1(null)) + 1 F6 STRING 길이 19 : 24 (필드간 헤더(4) + 19 + 1(null)) F7 CARRAY 길이 22 : 32 (필드간 헤더(4) + 22 + 4(길이 지정을 위한 int)) + 2 Total : 112
사용 버퍼량 계산 방법에 따라 계산하면 200개의 레코드를 전송하기 위한 사이즈는 179200byte가 필요하다.
fdl 버퍼 헤더(8) + (한 레코드의 길이 * 건수) 8 + (112 * 200) = 179200 byte
Field 타입에 따른 사이즈 계산 기준은 다음과 같다.
Filed Type | 사이즈 |
---|---|
String | Header 4bytes, Null 1byte |
Carray | Header 4bytes |
Char | Header 2bytes, Data 2bytes |
Short | Header 2bytes, Data 2bytes |
Long | Header 2bytes, Data 4bytes |
Float | Header 2bytes, Data 4bytes |
Double | Header 2bytes, Data 8bytes |
필드간 헤더 값과 데이터 길이 값을 FML16에서는 2bytes를 사용하고 있고, FML32와 tmax에서는 4bytes를 사용한다. FML32 방식에서는 Tmax FDL과 사용되는 데이터 크기의 차이가 적지만 FML16에서는 사용되는 데이터 차이가 크다. Tmax로 전환하는 경우 정확한 Field Buffer 크기 계산을 해서 사용해야 한다.