[Trouble Shooting] – K2 ส่ง Notification Email ไม่ได้ #ภาคสอง

จากบทความที่แล้วเรื่อง [Trouble Shooting] – K2 ส่ง Notification Email ไม่ได้ วันนี้มาต่อภาคสอง ลงลึกกันอีกนิดนึง สำหรับการส่งแจ้งเตือน (notification) แล้ว Email ไม่ออกนะครับ(ใครยังไม่ได้อ่านตอนแรก ย้อนไปอ่านก่อนนะ)

  1. ตรวจสอบใน K2 Workspace -> Management Console -> Environment Library > … > [Environment Name] > Environment Fields
      • ตรวจสอบว่าใน Mail Server กับ From Address มีค่าใน Value และ Default เป็น True

    workspace

  2. ใช้คำสั่ง telnet จากเครื่อง K2 ไปยังเครื่อง Mail Server ตาม port ที่ใช้งาน (โดยปกติ smtp จะใช้ port 25 หรือ 587)
      • telnet [mail server name] [port]

    telnet

    • ถ้าขึ้นตามรูปคือ ไม่สามารถ ต่อไปยัง mail server ได้ ให้ลองติดต่อทีมที่ดูแล network หรือ firewall ให้เปิด port ดูครับ
    • เพิ่มเติม วิธีลง telnet client
  3. เข้าเครื่อง database ของ K2 ไปตรวจสอบที่ตารางตามนี้
      • EventBus.CustomEvent: ตารางนี้จะเก็บ ชื่อ process และ activity name ที่เราเรียกใช้งาน notification ให้ลองหาดูว่ามีชื่อ process ที่เรา deploy หรือไม่ ถ้าไม่เจอให้เปิดโปรเจคมา configure ตัว event ที่เรียกใช้งาน notification ใหม่และ deploy อีกที

    db-customevent

      • EventBus.ClientRecorderError: ตารางนี้จะเก็บ error ที่เกิดขึ้นตอนจะส่งอีเมล์ผ่าน MSMQ ถ้าเจอ error อะไรประหลาด ๆ ให้เอาไปหาในอากู๋ต่อครับ

    db-recordError

สุดท้ายถ้ายังไม่ได้รับอีเมล์ ขอยกประโยคเดิมมาอีกที

ถ้าทำตามด้านบนทั้งหมดแล้วยังไม่หาย ก็เปิด ticket เถอะครับ และบอกไปใน ticket ด้วยว่า เราทำอะไรไปบ้างแล้ว

หวังว่าทุกท่านจะได้รับอีเมล์นะครับ สวัสดีครับ 🙂

Advertisements

[Trouble Shooting] – K2 ส่ง Notification Email ไม่ได้

ไม่ได้เขียน blog เกี่ยวกับ K2 ซะนาน ตั้งแต่ k2underground.com เปลี่ยนเป็น community.k2.com ก็ไม่มีที่เขียนอีกเลย ถ้าใครเคยติดตาม blog เก่า (จะมีไหมเนี่ย 555) จะรู้ว่า ผมชอบเขียนเกี่ยวกับปัญหาที่มีคนถามเข้ามาว่า เจออย่างนี้แก้อย่างไร วันนี้ก็เช่นกัน

เนื่องจากการส่ง email ของ K2 หลักๆ มี 2 แบบ คือ ส่งแจ้งเตือน (notification) เวลาที่มีงานมาถึง และส่งด้วย email event (จริงๆ มีอีกทางที่ส่งจาก SmartForms แต่ไม่ขอพูดถึง เพราะเท่าที่เคยลองยังไม่ค่อยเสถียรเท่าไหร่) หลายๆ คนเคยมีคำถามว่า ทำไมสามารถส่ง email โดยใช้ email event ได้ แต่ทำไม email จาก notification ส่งไม่ได้ อาจจะมี case กลับกันบ้าง แต่ก็ไม่เยอะเท่า case นี้ ก่อนจะไปถึงช่วงการตรวจสอบเพื่อแก้ปัญหา เราต้องรู้กันก่อนว่า การทำงานของ notification ต่างกับ email event อย่างไร…

email event จะทำการส่ง email ผ่าน smtp ที่เราทำการ set ไว้ตรงๆ เลย ดังนั้นถ้าเราส่ง email ไม่ออกในกรณีที่ส่งด้วย email event การหาปัญหาจะทำได้ง่ายกว่า เพราะจะมี error ใน workflow อยู่ใน error profile ซึ่งจะมี error message ชัดเจน การแก้ปัญหาในกรณีนี้ ส่วนใหญ่จะเป็นการดูว่า K2 server สามารถเชื่อมต่อกับ smtp server ได้ไหม โดยใช้ telnet กับการตรวจสอบ setting ของ smtp ผ่าน tool connectionstringeditor ของ K2 (อยู่ใน {install directory}\K2 blackpearl\Host Server\Bin)

ส่วนของ notification จะทำงานผ่าน MSMQ และ MSMQ จะเป็นคนส่งให้ smtp อีกรอบหนึ่ง (จริงๆ ใน process มีเยอะกว่านี้ ถ้าสนใจรายละเอียดดูได้จาก http://help.k2.com/onlinehelp/k2blackpearl/userguide/4.6.8/webframe.html#reference_-_notification_event_overview.html#tracksearch=msmq) ดังนั้นจะไม่มี error ใน error profile แต่ถ้าส่งไม่ได้ จะไม่ได้ email เลย ซึ่งปัญหาส่วนใหญ่ที่เจอคือ MSMQ ทำงานไม่ปกติ อาจจะเนื่องจากการ setting หรือจากการทำงานของ windows server เอง ถ้าเจออย่างนี้ให้ทำการแก้ปัญหาตาม step ด้านล่าง

1. ตรวจสอบว่า MSMQ ได้ถูก configure ไว้ใน server อย่างถูกต้องหรือไม่ โดยตรวจสอบตาม step การ setup ตาม http://help.k2.com/onlinehelp/k2blackpearl/icg/4.6.8/webframe.html#msmq.html#tracksearch=msmq และ http://help.k2.com/onlinehelp/k2blackpearl/icg/4.6.8/webframe.html#msmq_settings.html#tracksearch=msmq

2. ให้ดูใน Public Queues ของ Server ว่า Queue Eventbus และ Eventbus Error ถูกสร้างขึ้นมาหรือไม่

public queue

3. ตรวจสอบสิทธิ์ใน Public Queues ว่า K2 service account มีสิทธิ์ Full Control ใน queue หรือไม่

permission

4. ตรวจสอบ MSDTC ว่า configure ไว้ถูกต้องหรือไม่ โดยตรวจสอบได้ตาม http://help.k2.com/onlinehelp/k2blackpearl/icg/4.6.8/webframe.html#MSDTC.html

5. ถ้าตรวจสอบว่า ด้านบน configure ไว้ถูกต้องแล้ว ให้ลอง restart server ดู เพราะเคยเจอ case ที่ MSMQ มีปัญหาจากการทำงานของ windows เมื่อทำการ restart MSMQ สามารถกลับมาทำงานปกติได้

6. ถ้าทำตามด้านบนทั้งหมดแล้วยังไม่หาย ก็เปิด ticket เถอะครับ และบอกไปใน ticket ด้วยว่า เราทำอะไรไปบ้างแล้ว

หวังว่า บทความนี้จะช่วยอะไรได้บ้าง แล้วพบกันใหม่คราวหน้าครับ 🙂