Saturday, April 08, 2006

[Ingres] II7 port

ในคู่มือการต่อ jdbc ไปยัง database ingres
ระบุไว้ว่า port number มีค่า default เป็น 'II7'
ซึ่งทำให้ผมเกิดความสงสัยว่า มัน resolve ค่าเป็น integer อย่างไร
แรกสุดก็นึกว่าเป็น feature ของ unix
พยายามค้นใน google แต่ไม่พบ
สุดท้ายก็ไปเจอใน source code ของ ingres jdbc
private int getPort(String target) {
...
char c0 = port.charAt( 0 );
char c1 = port.charAt( 1 );
char c2 = (port.length() == 3) ? port.charAt( 2 ) : '0';

if (
Character.isLetter( c0 ) &&
Character.isLetterOrDigit( c1 ) &&
Character.isDigit( c2 )
)
{
c0 = Character.toUpperCase( c0 );
c1 = Character.toUpperCase( c1 );

return( 1 << 14 | (c0 & 0x1f) << 9 |
(c1 & 0x3f) << 3 | (c2 & 0x07) );
}

...
}

เวลาเราลง Ingres, จะต้องมีการระบุ Installation code
ซึ่งใช้แยก instance, configuration ของ Database Server ออกจากกัน
(1 เครื่อง, start ได้หลาย installation พร้อมๆกัน)
ค่า default ของ Installation code ก็คือ 'II'
นี่จึงเป็นที่มาของ port 'II7'
ถือว่าเป็น idea ที่ดีเหมือนกัน เพราะไม่ต้องจำเลข
เปลี่ยนมาจำตัวหนังสือแทน

Note: เลข 7 มาจากไหน?

Related link from Roti

No comments: