แนะนำให้ใช้พารามิเตอร์ต่อไปนี้แทน JCO_AHOST และ JCO_SYSNR เพื่อการเชื่อมต่อที่ยืดหยุ่นและทนทานกว่า:
- JCO_R3NAME — ระบุ System ID (SID) ของระบบ SAP เป้าหมาย
- JCO_MSHOST — ชื่อโฮสต์หรือ IP Address ของ Message Server
- JCO_MSSERV — หมายเลขพอร์ตของ Message Server (เช่น 3600 หรือ sapms<SID>)
- JCO_GROUP — ชื่อของ Logon Group (เช่น PUBLIC, SPACE) เพื่อกระจายโหลด (Load Balancing)
วิธีนี้ใช้การเชื่อมต่อผ่าน Message Server แทนการระบุ Application Server โดยตรง ทำให้ได้รับข้อดีดังนี้:
- รองรับ Load Balancing อัตโนมัติ
- ลดความเสี่ยง Single Point of Failure
- ไม่ต้องปรับโค้ดเมื่อ Application Server เปลี่ยนแปลง
ตัวอย่างการตั้งค่า Destination Properties
Properties props = new Properties();
props.setProperty(DestinationDataProvider.JCO_ASHOST, ""); // ไม่ใช้
props.setProperty(DestinationDataProvider.JCO_SYSNR, ""); // ไม่ใช้
props.setProperty(DestinationDataProvider.JCO_R3NAME, "PRD");
props.setProperty(DestinationDataProvider.JCO_MSHOST, "sap-msg.example.com");
props.setProperty(DestinationDataProvider.JCO_MSSERV, "3600");
props.setProperty(DestinationDataProvider.JCO_GROUP, "PUBLIC");
props.setProperty(DestinationDataProvider.JCO_CLIENT, "100");
props.setProperty(DestinationDataProvider.JCO_USER, "username");
props.setProperty(DestinationDataProvider.JCO_PASSWD, "password");
props.setProperty(DestinationDataProvider.JCO_LANG, "EN");
แหล่งอ้างอิงโค้ดตัวอย่างที่ทำงานได้
สามารถดูตัวอย่างการใช้งานจริงได้ที่ GitHub repository ของ проект RCER:
https://sourceforge.net/p/rcer/git/ci/master/tree/net.sf.rcer.conn
หมายเหตุ: ต้องมีไลบรารี sapjco3.jar และ Native Library (libsapjco3.so / sapjco3.dll) ติดตั้งให้ถูกต้องตามแพลตฟอร์มที่ใช้งาน