Debugging Domino11

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

สำหรับลูกค้า 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/