Appendix A. Field Buffer 계산

내용 목차

A.1. Tmax Field 계산 기준
A.2. Tuxedo FML16 계산 기준(Tuxedo 6.4)

본 부록에서는 FML을 사용하는 Tuxedo 사이트를 Tmax로 전환하는 경우 Field Buffer 계산 방법에 대해서 설명한다.

A.1. Tmax Field 계산 기준

Field 타입에 따른 사이즈 계산 기준은 다음과 같다.

Filed Type사이즈
StringHeader 4bytes + Date len + Null 1bytes + 패딩
CarrayHeader 4bytes +지정된 길이 + 4(길이 지정)bytes + 패딩
CharHeader 4bytes, Data 4bytes
ShortHeader 4bytes, Data 4bytes
LongHeader 4bytes, Data 4bytes
FloatHeader 4bytes, Data 4bytes
DoubleHeader 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

A.2. Tuxedo FML16 계산 기준(Tuxedo 6.4)

Field 타입에 따른 사이즈 계산 기준은 다음과 같다.

Filed Type사이즈
StringHeader 4bytes, Null 1byte
CarrayHeader 4bytes
CharHeader 2bytes, Data 2bytes
ShortHeader 2bytes, Data 2bytes
LongHeader 2bytes, Data 4bytes
FloatHeader 2bytes, Data 4bytes
DoubleHeader 2bytes, Data 8bytes

참고

필드간 헤더 값과 데이터 길이 값을 FML16에서는 2bytes를 사용하고 있고, FML32와 tmax에서는 4bytes를 사용한다. FML32 방식에서는 Tmax FDL과 사용되는 데이터 크기의 차이가 적지만 FML16에서는 사용되는 데이터 차이가 크다. Tmax로 전환하는 경우 정확한 Field Buffer 크기 계산을 해서 사용해야 한다.