การแก้จุดบกพร่อง (Debug) แอปพลิเคชันด้วย Java Agent จากระยะไกล Domino 11
News

By Jeje - 20/11/2020

สำหรับลูกค้า Domino บน v9 หรือ 10 คุณอาจคุ้นเคยกับการแก้จุดบกพร่อง (Debug) Java agent จากระยะไกลบน IBM JVM โดยใช้เซิร์ฟเวอร์ต่อไปนี้ในและตั้งค่า Port 8000 ใน Debug Configuration จากไคลเอ็นต์ Designer: JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000 สิ่งนี้จะใช้ได้กับ Domino v10 แต่ไม่สามารถใช้ได้กับ Domino v11 ในความเป็นจริงการทำเช่นนั้นจะทำให้พัง! บทความนี้จะช่วยนักพัฒนาที่มองหาวิธีการแก้จุดบกพร่อง (Debug) Java agent จากระยะไกลบน Domino v11 ข้อกำหนดเบื้องต้นคือ:

  1. Domino v11 ขึ้นไปบน Windows Server 2016/2019
  2. HCL Domino Console
  3. Notes, Designer และ Administrator Client v11 ขึ้นไป
  4. Java agent ที่จะแก้จุดบกพร่อง (Debug)
  5. เว็บเบราว์เซอร์ใด ๆ เพื่อรัน Java agent
Domino v11 ใช้ OpenJDK เมื่อเปิดใช้งาน ini ข้างต้น JVM ทั้งสองจะพยายามเชื่อมโยงกับพอร์ตเดียวกัน (8000) และกระบวนการที่สองที่พยายามเชื่อมโยงกับพอร์ตนี้จะล้มเหลวและขัดข้อง เพื่อแก้ปัญหานี้แนวคิดคือการลบ Port 8000 ออกจาก Debug และแนบเข้ากับ Port แบบสุ่มอื่น ๆ ขั้นแรกคุณจะต้องเพิ่ม ini ด้านล่างลงใน note.ini ของเซิร์ฟเวอร์ JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n โปรดทราบว่าเราไม่ได้ผูกดีบักกับพอร์ต 8000 โดยการละเว้น address = 8000 เมื่อเทียบกับ ini ที่ตั้งค่าไว้ใน Domino เวอร์ชันก่อนหน้า JVM จะเลือกพอร์ตแบบสุ่ม หากต้องการทราบหมายเลขพอร์ตแบบสุ่มเพียงแค่ปิดและโหลด http หรือเรียกใช้ Java agent จากเว็บเบราว์เซอร์และตรวจสอบคอนโซลจาก HCL Domino Console Program คุณจะต้องรีสตาร์ทงาน http หลังจากเพิ่ม ini เหล่านั้นเพื่อให้ทำงานได้ จดหมายเลขพอร์ตนี้ไว้ที่ใดที่หนึ่งตามที่คุณต้องการในขั้นตอนต่อไป (คอนโซลเซิร์ฟเวอร์ใน Administrator Client ไม่แสดงข้อมูลหมายเลขพอร์ต)

ด้วยหมายเลขพอร์ตของคุณคุณจะเชื่อมโยงกับ Debug จากไคลเอนต์ Designer ไปที่เมนูเครื่องมือ> แก้จุดบกพร่อง (Debug) Javascript ฝั่งเซิร์ฟเวอร์> จัดการการกำหนดค่าการดีบัก

คุณควรเข้าสู่หน้าต่าง Debug Configuration ที่นี่คุณต้องระบุหมายเลขพอร์ตที่คุณจดบันทึกไว้จาก HCL Domino Console ในขั้นตอนก่อนหน้านี้จากนั้นเลือก“ Debug”

คุณควรเห็นข้อความนี้ในแถบสถานะซึ่งยืนยันว่า Debug ได้เชื่อมต่อกับหมายเลขพอร์ตที่คุณกล่าวถึง

ตอนนี้คุณพร้อมกับคอนฟิกูเรชันการดีบักและตั้งค่าเพื่อดีบักเอเจนต์ Java ของคุณ คุณจะต้องตั้งค่าเบรกพอยต์ในโค้ด Java ของคุณเพื่อดีบักเดียวกัน คุณสามารถตั้งค่าจุดพักได้หลายจุด

เมื่อคุณตั้งค่าเบรกพอยต์ในโค้ดของคุณแล้วให้รันเอเจนต์จากเว็บเบราว์เซอร์ คุณควรเห็นหน้าต่างการยืนยันบนไคลเอนต์ Designer เพื่อเปิดหน้าต่างมุมมองการดีบัก เลือก“ ใช่”

มุมมองของนักออกแบบจะเปลี่ยนเป็นมุมมองการดีบักซึ่งมีมุมมองสำหรับการแสดงกองดีบักตัวแปรและการจัดการจุดพัก

ณ จุดนี้คุณสมบัติดีบักเกอร์ Eclipse ตามปกติจะพร้อมใช้งาน (การจัดการเบรกพอยต์การก้าวการดำเนินการต่อการดูค่าตัวแปร ฯลฯ )
ขั้นตอนในการแก้จุดบกพร่อง (Debug) Java agent ที่กำหนดเวลาไว้ (AMGR) จะยังคงเหมือนเดิม แทนที่จะรอจนกว่าจะกำหนดเวลาเอเจนต์ให้รันเอเจนต์จากคอนโซลเซิร์ฟเวอร์โดยใช้คำสั่ง“ Tell amgr run” รับหมายเลขพอร์ตจาก HCL Domino Console Program โดยรัน Java agent โดยใช้คำสั่ง“ Tell amgr run” จากนั้นตั้งค่าหมายเลขพอร์ตในการกำหนดค่าการดีบักตามที่เราทำในขั้นตอนก่อนหน้านี้

เสร็จสิ้นขั้นตอนเกี่ยวกับวิธีที่คุณสามารถแก้จุดบกพร่อง (Debug) Java agent จากระยะไกลบน Domino v11

 ที่มา : https://blog.hcltechsw.com/domino/remotely-debugging-java-applications-with-domino-11/

Jeje

เป็นผู้ที่มีความสนใจในเทคโนโลยีไอที และ Opensource เช่น Linux OS, CentOS, Zimbra, Zental

Twitter  Facebook  Line  Google+  Stumbleupon  
expand_less