เพื่อนร่วมงาน เราจะนำเสนอบทความเกี่ยวกับนิตยสารเทคโนโลยีต่อไป

วันนี้เราจะแสดงแนวทางปฏิบัติในการวิเคราะห์บันทึก TJ

บทความอื่นๆ จากซีรีส์ Technology Magazine:

การวิเคราะห์บันทึกทางเทคโนโลยี

คุณจะเรียนรู้อะไรจากบทความนี้?

  • มาดูล็อกอินกันดีกว่า 1C: องค์กร 8
  • มาศึกษารูปแบบบันทึกโดยละเอียดกัน นิตยสารเทคโนโลยี
  • ลองดูตัวอย่างบันทึกที่มีข้อมูลที่บันทึกไว้

มาดูกันว่าเกิดอะไรขึ้นถ้าเราสร้างไฟล์ logcfg.xmlด้วยโครงสร้างข้างต้นและวางไว้ในไดเร็กทอรี "C:\ไฟล์โปรแกรม\1Cv82\conf"

รอ 60 วินาทีแล้วเปิดไดเร็กทอรี "C:\1C_ข้อมูล\บันทึก", เพราะ นี่คือสิ่งที่เราระบุไว้ในบรรทัดที่ 3 ของไฟล์ ล็อกซีเอฟจี

ถ้าไดเร็กทอรี 1C_ข้อมูลไม่ได้อยู่ในดิสก์ดังนั้นเซิร์ฟเวอร์ 1C จะพยายามสร้างมันขึ้นมา แต่มีความเสี่ยงที่ผู้ใช้ที่ใช้บริการ 1C อยู่จะไม่มีสิทธิ์ ดังนั้นจึงขอแนะนำให้สร้างไดเร็กทอรีสำหรับบันทึกด้วยตนเองและตรวจสอบว่าเซิร์ฟเวอร์ 1C มีสิทธิ์เขียนลงในไดเร็กทอรีนี้หรือไม่

ด้วยเหตุนี้เราจะเห็นไดเร็กทอรีย่อย 3 ไดเร็กทอรีในไดเร็กทอรี

แต่ละกระบวนการของคลัสเตอร์ได้สร้างไดเร็กทอรีที่มีบันทึกเฉพาะสำหรับกระบวนการนี้และตั้งแต่นั้นเป็นต้นมา ฉันมีเพียง 3 กระบวนการเท่านั้น ดังนั้นจึงมี 3 ไดเรกทอรีด้วย

ไดเร็กทอรีถูกสร้างขึ้นโดยใช้เทมเพลต ProcessName_PIDกระบวนการ พีไอดีจำเป็นเพื่อแยกแยะระหว่างกระบวนการที่มีชื่อเดียวกัน

ไฟล์บันทึกจะถูกตั้งชื่อตามรูปแบบ YMMMDDHCH.log

หากบันทึกเก่ากว่าจำนวนชั่วโมงที่ระบุในพารามิเตอร์ ประวัติศาสตร์ไฟล์ ล็อกซีเอฟจีจากนั้นแพลตฟอร์มจะลบออกโดยอัตโนมัติ

มาดูรูปแบบบันทึกเทคโนโลยีให้ละเอียดยิ่งขึ้น

เหตุการณ์จะถูกเขียนลงในบันทึกหลังจากเสร็จสิ้นแล้วเท่านั้น เนื่องจาก จำเป็นต้องบันทึกระยะเวลาของเหตุการณ์

บรรทัดบันทึกมีรูปแบบ:

มม:ss.ttt-d,<ИмяСобытия>, <Уровень>, <Свойства>

มม– หมายเลขนาทีในชั่วโมงปัจจุบัน

เอสเอส– จำนวนวินาทีในนาทีปัจจุบัน

ททท– จำนวนหนึ่งในหมื่นของวินาทีปัจจุบัน สำหรับ 8.3 จะแสดงจำนวนหนึ่งในล้านไว้ที่นี่

– ระยะเวลาของเหตุการณ์ในหนึ่งหมื่นวินาที หรือ 8.3 ในล้าน

<ИмяСобытия> – ชื่อของกิจกรรม

<Уровень> – ระดับเหตุการณ์บนสแต็กของเธรดปัจจุบัน

<Свойства> - คุณสมบัติเหตุการณ์คั่นด้วยเครื่องหมายจุลภาค ค่าคุณสมบัติคั่นด้วยเครื่องหมาย «=» .

ลองดูด้วยตัวอย่าง

มีบันทึกที่มีเนื้อหาดังต่อไปนี้:

00:16 - นี่คือนาทีและวินาทีของการสิ้นสุดกิจกรรม วันที่และเวลาของเหตุการณ์สามารถนำมาจากชื่อของไฟล์บันทึก งานสิ้นสุดวันที่ 6 เมษายน 2558 เวลา 11:00 นาที 16 วินาที 8640 – สำหรับ 8.2 นี่คือหนึ่งในพันของวินาที และเป็นเวลา 8.3 - หนึ่งในล้านของวินาทีที่เหตุการณ์สิ้นสุดลง 1 คือระยะเวลาของกิจกรรม ใน 8.2 ระยะเวลาระบุเป็นสิบในพันของวินาที ใน 8.3 ในล้านของวินาที หากคุณต้องการตั้งค่าตัวกรองระยะเวลา คุณสามารถใช้ชื่อคุณสมบัติ "ระยะเวลา" DBMSSQLเป็นชื่อของงาน ในกรณีนี้ การดำเนินการตามคำสั่ง MS SQL Server DBMS 3 – ระดับเหตุการณ์ ถัดไปคือคุณสมบัติของเหตุการณ์ DBMSSQLและแต่ละเหตุการณ์จะมีชุดคุณสมบัติของตัวเอง คุณสามารถดูรายการคุณสมบัติทั้งหมดสำหรับเหตุการณ์ทั้งหมดได้ในคู่มือผู้ดูแลระบบ เราจะมาดูคุณสมบัติของเหตุการณ์ปัจจุบันอย่างละเอียดยิ่งขึ้นที่นี่เท่านั้น กระบวนการ– อธิบายกระบวนการในการเขียนบันทึกนี้ กิจกรรมทั้งหมดมีคุณสมบัตินี้ ในกรณีของฉัน บันทึกกระบวนการ rphost จะถูกเขียน P:ชื่อกระบวนการ– ชื่อของฐานข้อมูล 1C เหตุการณ์ถูกสร้างขึ้นในฐานข้อมูลที่เรียกว่า Deadlock T:clientID- ตัวระบุการเชื่อมต่อกับไคลเอนต์ผ่าน TCP T: ชื่อแอปพลิเคชัน– ตัวระบุโปรแกรมไคลเอ็นต์ เหล่านั้น. ใครเป็นต้นเหตุของเหตุการณ์นี้จริงๆ ในกรณีของฉัน มันเป็นงานเบื้องหลัง T:connectID– หมายเลขเชื่อมต่อกับฐานข้อมูล รหัสเซสชัน– หมายเลขเซสชันที่กำหนดให้กับเธรดปัจจุบัน หากเธรดปัจจุบันไม่ได้กำหนดเซสชัน คุณสมบัติจะไม่ถูกเพิ่ม สหรัฐ– ชื่อของผู้ใช้ฐานข้อมูลที่โฟลว์นี้ถูกดำเนินการ หากไม่ได้กำหนดผู้ใช้ ค่า DefUser จะถูกทดแทน ทรานส์– แสดงว่าธุรกรรมเปิดอยู่ตั้งแต่เริ่มต้นเหตุการณ์หรือไม่ 1 – เปิด, 0 – ไม่ dbpid– หมายเลขการเชื่อมต่อของเซิร์ฟเวอร์ 1C กับเซิร์ฟเวอร์ฐานข้อมูล SQL– ข้อความของคำสั่ง SQL ส่วนใหญ่มักมีข้อความของการสืบค้น SQL พร้อมพารามิเตอร์ แถว– จำนวนแถวที่แบบสอบถามส่งคืน แถวได้รับผลกระทบ– จำนวนแถวที่แบบสอบถามเปลี่ยนแปลงในฐานข้อมูล บริบท– รหัสบรรทัดใดในภาษา 1C ที่สร้างเหตุการณ์นี้ น่าจะเป็นงานที่น่าสนใจที่สุดสำหรับเรา

เบอร์มิสตรอฟ อันเดรย์

ในบทความต่อไปนี้ เราจะดูที่ “เหตุการณ์” รวมถึงการกรองเหตุการณ์ต่างๆ ทีเจ.

ในระหว่างนี้ ให้แนบเนื้อหาที่ได้รับเข้ากับฐานข้อมูลการทดสอบของคุณ :)

(หรือส่วนที่ใช้ตัวกรอง) เช่น
— รหัสปฏิบัติการ 1C:Enterprise 8;
— รหัส Transact-SQL สำหรับ DBMS
— การกระทำเชิงโต้ตอบของผู้ใช้

- ข้อความแสดงข้อผิดพลาด

บันทึก. หากยังไม่ได้เขียน TJ ให้ให้สิทธิ์ทุกคนในโฟลเดอร์นี้ (ชั่วคราวเพื่อให้แน่ใจว่าสิทธิ์นั้นถูกต้อง)

3) ไม่ควรมีไฟล์ที่ไม่เกี่ยวข้องในไดเร็กทอรีบันทึกทางเทคโนโลยี ไดเร็กทอรีที่มีไฟล์ที่ไม่เกี่ยวข้องจะไม่อนุญาตให้สร้างบันทึก

4) อย่าเก็บดัมพ์และบันทึกไว้ด้วยกัน เพราะหลังจากช่วงเวลาที่กำหนด (ค่าเริ่มต้น 1 ชั่วโมง) เนื้อหาจะถูกลบออกจนหมดและคุณจะสูญเสียดัมพ์

การตั้งค่า

เป็นการดีกว่าที่จะกำหนดค่า TJ (โดยใช้ตัวกรอง - แท็ก logcfg.xml) สำหรับเหตุการณ์ที่กำลังศึกษาเท่านั้น อย่ารวบรวมส่วนที่เหลือ มิฉะนั้นคุณจะพบกับ "พื้นที่ดิสก์ไม่เพียงพอ" และทำให้ประสิทธิภาพของเซิร์ฟเวอร์ช้าลง

1) การกำหนดค่าตัวกรองโดยใช้การประมวลผลทำได้ง่ายกว่าด้วยการตั้งค่า ITS ของ Technological Journal.epf แต่ในขณะเดียวกัน โปรดจำไว้ว่าคุณสมบัติใหม่ของรุ่นล่าสุดอาจไม่รวมอยู่ในการส่งคืน (แต่ละเวอร์ชันใหม่จะเพิ่มคุณสมบัติใหม่ นั่นคือ ไม่สะท้อนให้เห็นในการประมวลผล) ในกรณีนี้ ให้ปรับไฟล์ logcfg.xml ด้วยตนเอง

2) หากต้องการหยุดการรวบรวมบันทึก เพียงเปลี่ยนชื่อไฟล์ ไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ การตั้งค่าจะถูกคำนวณใหม่ทุก ๆ นาที “ทันที”

3) กำหนดค่า logcfg.xml เพื่อกรองเหตุการณ์เพื่อความปลอดภัยของข้อมูลเฉพาะ ใช้ “p:processName=”

4) http://users.v8.1c.ru/Adm1936.aspx - ตัวอย่างการตั้งค่า

รายละเอียด

เป็นที่ชัดเจนว่าการรวบรวมบันทึกยังไม่เพียงพอ แต่ยังต้องได้รับการประมวลผลเพื่อแก้ไขปัญหาเฉพาะ

1) ความยากในการอ่าน TJ:

— ต้องมีความเข้าใจที่ดีเกี่ยวกับสถาปัตยกรรมระบบ

— ข้อความคำขอได้รับการลงทะเบียนในภาษาภายในของ 1C:Enterprise และในภาษา DBMS

2) ไฟล์บันทึกเทคโนโลยีจะถูกจัดเก็บไว้ในไดเร็กทอรีย่อย ชื่อของแต่ละไดเร็กทอรีย่อยของบันทึกเทคโนโลยีของกระบวนการหนึ่งจะมีลักษณะดังนี้:<ИмяПроцесса>_<ИдентификаторПроцесса>ตัวอย่างเช่น: rphost_4076 ชื่อไฟล์บันทึกถูกระบุโดยเทมเพลต YYMMDDHCH.log ตัวอย่างเช่น ในบันทึก 07051819.log ชื่อไฟล์จะถูกสร้างขึ้นจาก 18 พฤษภาคม 2550 เวลา 19 ชั่วโมง)

3) บันทึกสำหรับการวิเคราะห์สามารถอัปโหลดไปยัง Excel ได้โดยใช้เครื่องหมายจุลภาคเป็นตัวคั่น เป็นต้น

หากคุณต้องการใช้บันทึกเพื่อวิเคราะห์ข้อความแสดงข้อผิดพลาด ให้ใช้บริการฟรี

หากคุณไม่พบคำตอบสำหรับคำถามของคุณ มาขยายเนื้อหากันดีกว่า

— รหัสปฏิบัติการ 1C:Enterprise 8;
— รหัส Transact-SQL สำหรับ DBMS
— การกระทำเชิงโต้ตอบของผู้ใช้
— ข้อความแสดงข้อผิดพลาด;
- หน่วยความจำรั่ว

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

หากต้องการเปิดใช้งานบันทึกทางเทคโนโลยี คุณต้อง:
สร้างไฟล์ logcfg.xml ในโฟลเดอร์ C:\Program Files (x86)\1cv82\8.2.15.301\bin\conf (เส้นทาง - ไดเรกทอรี 1C Enterprise) บนเซิร์ฟเวอร์ 1C Enterprise
หลังจากนี้ คุณจะต้องเขียนเส้นทางไปยังโฟลเดอร์ที่สร้างขึ้นในไฟล์ logcfg.xml (โดยที่ เส้นทางที่ระบุ 1 เป็นเส้นทางไปยังบันทึก และเส้นทางที่ระบุ 2 เป็นเส้นทางไปยังดัมพ์):

นี่คือตัวอย่างการตั้งค่าจากเซิร์ฟเวอร์ของฉัน:























หลังจากทำตามขั้นตอนเหล่านี้แล้ว แอปพลิเคชัน 1cv8 จะเริ่มบันทึกข้อมูลระบบเกี่ยวกับข้อผิดพลาดทั้งหมดที่เกิดขึ้นในระบบในไดเร็กทอรีเหล่านี้โดยอัตโนมัติ
หลังจากการวิเคราะห์เสร็จสิ้น บันทึกกระบวนการสามารถปิดใช้งานได้โดยการลบหรือเปลี่ยนชื่อไฟล์ logcfg.xml
สันนิษฐานว่าในคอมพิวเตอร์ที่จะเปิดใช้งานบันทึกนี้ไฟล์อาจใช้พื้นที่ดิสก์ค่อนข้างมาก (พูดค่อนข้างแน่นอน) ดังนั้นฉันแนะนำให้ระบุเส้นทางไปยังดิสก์ที่มีพื้นที่ว่างจำนวนมาก
1) หากต้องการสร้างบันทึกให้สำเร็จ คุณต้องสร้างไดเร็กทอรีสำหรับบันทึก (เช่น "D:\1Clog") และไฟล์ดัมพ์ (เช่น "D:\1Cdumps") จะเป็นการดีกว่าถ้าสร้างไฟล์เหล่านี้ไม่อยู่ในไดรฟ์ระบบ
2) จะต้องกำหนดค่าสิทธิ์ต่อไปนี้สำหรับไดเร็กทอรี TG เหล่านี้:
— สิทธิ์เต็มรูปแบบในแคตตาล็อกนิตยสารเทคโนโลยี
— สิทธิ์ในการอ่านให้กับเจ้าของไดเร็กทอรีวารสารเทคโนโลยี
บันทึก. หากยังไม่ได้เขียน TJ ให้ให้สิทธิ์ทุกคนในโฟลเดอร์นี้ (ชั่วคราวเพื่อให้แน่ใจว่าสิทธิ์นั้นถูกต้อง)
3) ไม่ควรมีไฟล์ที่ไม่เกี่ยวข้องในไดเร็กทอรีบันทึกทางเทคโนโลยี ไดเร็กทอรีที่มีไฟล์ที่ไม่เกี่ยวข้องจะไม่อนุญาตให้สร้างบันทึก
4) อย่าเก็บดัมพ์และบันทึกไว้ด้วยกัน เพราะหลังจากช่วงเวลาที่กำหนด (ค่าเริ่มต้น 1 ชั่วโมง) เนื้อหาจะถูกลบออกจนหมดและคุณจะสูญเสียดัมพ์
เป็นการดีกว่าที่จะกำหนดค่า TJ (โดยใช้ตัวกรอง - แท็ก logcfg.xml) สำหรับเหตุการณ์ที่กำลังศึกษาเท่านั้น อย่ารวบรวมส่วนที่เหลือ มิฉะนั้นคุณจะพบกับ "พื้นที่ดิสก์ไม่เพียงพอ" และทำให้ประสิทธิภาพของเซิร์ฟเวอร์ช้าลง
1) การกำหนดค่าตัวกรองโดยใช้การประมวลผลทำได้ง่ายกว่าด้วยการตั้งค่า ITS ของ Technological Journal.epf แต่ในขณะเดียวกัน โปรดจำไว้ว่าคุณสมบัติใหม่ของรุ่นล่าสุดอาจไม่รวมอยู่ในการส่งคืน (แต่ละเวอร์ชันใหม่จะเพิ่มคุณสมบัติใหม่ นั่นคือ ไม่สะท้อนให้เห็นในการประมวลผล) ในกรณีนี้ ให้ปรับไฟล์ logcfg.xml ด้วยตนเอง
2) หากต้องการหยุดการรวบรวมบันทึก เพียงเปลี่ยนชื่อไฟล์ ไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ การตั้งค่าจะถูกคำนวณใหม่ทุก ๆ นาที “ทันที”
3) กำหนดค่า logcfg.xml เพื่อกรองเหตุการณ์เพื่อความปลอดภัยของข้อมูลเฉพาะ ใช้ “p:processName=”

ด้วยการตั้งค่าเหล่านี้ ฉันรวบรวมข้อมูลเกี่ยวกับ:

สถานการณ์พิเศษของแอปพลิเคชันของระบบ 1C: Enterprise 8.2 ซึ่งไม่ได้รับการประมวลผลตามปกติและอาจทำให้กระบวนการเซิร์ฟเวอร์หรือกระบวนการไคลเอนต์ที่เชื่อมต่ออยู่ยุติฉุกเฉิน

    เหตุการณ์ที่เริ่มขึ้นแต่ไม่สิ้นสุดเมื่อมีเหตุฉุกเฉินเกิดขึ้น

    เหตุการณ์ที่เกี่ยวข้องกับกระบวนการทั้งหมดและส่งผลต่อประสิทธิภาพการทำงานต่อไปของกระบวนการ ตัวอย่างเช่น เริ่มต้น สิ้นสุด ขัดข้อง ฯลฯ

    ควบคุมการกระทำของผู้ดูแลระบบคลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8.2

    เหตุการณ์ที่เกี่ยวข้องกับการเพิ่มจำนวนหน่วยความจำที่กระบวนการเซิร์ฟเวอร์ครอบครอง (ragent, rmngr, rphost)

    เหตุการณ์หน่วยความจำรั่วที่อาจเกิดจากข้อผิดพลาดในรหัสการกำหนดค่า


เมื่อไม่นานมานี้ ฉันค้นพบสิ่งใหม่ ๆ สำหรับตัวเอง ปรากฎว่ามีนิตยสารเทคโนโลยี (TJ) นี่คือสัตว์ชนิดใดและเหตุใดจึงจำเป็น ฉันจะพยายามตอบในบทความนี้

วิธีพูด 1C นั้นเอง นิตยสารเทคโนโลยีระบบ 1C:Enterprise 8 สามารถใช้วิเคราะห์ปัญหาทางเทคโนโลยีของระบบและวิเคราะห์การยุติฉุกเฉินได้ โดยจะลงทะเบียนข้อมูลจากแอปพลิเคชัน 1C:Enterprise 8 ทั้งหมดที่ทำงานบนคอมพิวเตอร์ที่กำหนดจากคำจำกัดความนี้ ประโยชน์ของเครื่องมือนี้ชัดเจนทันที จากคำนิยามนี้ เราสามารถเรียนรู้ได้ เช่น:

  • เมื่อรันโค้ดใดกระบวนการทำงานของเซิร์ฟเวอร์ขัดข้อง?
  • คำถามใดที่ช้าและถูกเรียกจากที่ไหน?
  • ดูว่ามีการหยุดชะงักหรือหมดเวลาหรือไม่
  • และอีกมากมาย
ทีเจคืออะไร? A เป็นตัวแทนของ TJชุดของไฟล์ข้อความที่จัดเก็บไว้ในไดเร็กทอรีที่ระบุ
ไฟล์เหล่านี้สามารถแบ่งออกเป็น 2 กลุ่ม
  • ไฟล์ดัมพ์
  • ไฟล์บันทึก
บันทึก– ไฟล์เหล่านี้เป็นไฟล์ที่มีนามสกุลบันทึก ซึ่งข้อมูลจะถูกจัดเก็บในรูปแบบข้อความ
ทิ้ง– นี่คือไฟล์ที่มีนามสกุล mdmp ซึ่งมีเนื้อหาของ RAM ของกระบวนการ ณ เวลาที่เกิดการขัดข้อง


ไปข้างหน้า. ไฟล์ TJ เก็บไว้ในไดเร็กทอรีใด
ค่าเริ่มต้น TJ ถูกสร้างขึ้นในไดเร็กทอรี:
% USERPROFILE% \ การตั้งค่าท้องถิ่น \ ข้อมูลแอปพลิเคชัน \ 1C \ 1Cv82 \
หากใช้ Windows Vista และสูงกว่า ไดเรกทอรีจะถูกใช้: %LOCALAPPDATA%\1C\1Cv82\
สำหรับ 8.3 แทนที่จะใช้แค็ตตาล็อก 1Cv82 จะใช้ 1Cv8
แต่ไดเร็กทอรีนี้สามารถเปลี่ยนแปลงได้ เพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง
จะเปิด TJ ได้อย่างไร?
ตามค่าเริ่มต้น บันทึกกระบวนการจะถูกเปิดใช้งานและกำหนดค่าให้บันทึกการถ่ายโอนข้อมูลน้อยที่สุด ด้วยการใช้ไฟล์พิเศษ เราสามารถกำหนดค่า TJ ได้ กล่าวคือ เราสามารถเปลี่ยนไดเร็กทอรี TJ ระบุว่าเหตุการณ์ใดที่ควรลงทะเบียนใน TJ เป็นต้น
ฉันกำลังพูดถึงไฟล์การตั้งค่า TJlogcfg.xml .

ไฟล์นี้ควรอยู่ในไดเร็กทอรี conf ในโฟลเดอร์ที่ติดตั้ง 1c เป็นต้น
"D:\ไฟล์โปรแกรม\1Cv8\conf"
ลองดูตัวอย่างไฟล์การตั้งค่าสำหรับ TZ ที่สมบูรณ์
กำหนดค่า xmlns="http://v8.1c.ru/v8/tech-log"> ไฟล์การกำหนดค่านี้กำหนดเอาต์พุตไปยังบันทึกกระบวนการของเหตุการณ์ทั้งหมดพร้อมกับคุณสมบัติทั้งหมด บันทึกจะถูกบันทึกไว้เป็นเวลาหนึ่งสัปดาห์ (24 ชั่วโมง) อย่างไรก็ตามปริมาณข้อมูลที่ส่งออกจะมีขนาดใหญ่มาก
แนะนำให้กำหนดค่า TJ เฉพาะเหตุการณ์ที่เราสนใจมากกว่า เช่น เราต้องการดูว่ามีข้อผิดพลาดหรือการทำงานที่ยาวนานในระบบ (>10 วินาที)

งาน TJ ที่พบบ่อยที่สุด: EXCP– สถานการณ์พิเศษของ 1C: แอปพลิเคชันระบบองค์กรที่ไม่ได้ประมวลผลตามปกติและอาจทำให้กระบวนการเซิร์ฟเวอร์หรือกระบวนการไคลเอนต์ที่เชื่อมต่ออยู่ยุติฉุกเฉิน EXCPCNTX– เหตุการณ์ที่เริ่มต้นแต่ไม่สิ้นสุดในเวลาเกิดเหตุฉุกเฉิน DBMSSQL– การดำเนินการคำสั่ง SQL จาก Microsoft SQL Server DBMS แต่ละ DBMS ใช้เหตุการณ์ของตัวเอง (BPOSTGRS, DBORACLE, DB2, DBV8DBENG – เวอร์ชันไฟล์) ผู้ดูแลระบบ– การกระทำของผู้ดูแลระบบคลัสเตอร์ในคอนโซลคลัสเตอร์ พรอค– เหตุการณ์ที่เกี่ยวข้องกับกระบวนการทั้งหมดและส่งผลกระทบต่อประสิทธิภาพการทำงานต่อไปของกระบวนการ ตัวอย่างเช่น เริ่มต้น สิ้นสุด ขัดข้อง ฯลฯ เรียก– สายเรียกเข้าระยะไกล (สายระยะไกลที่ฝั่งผู้รับสาย) ตัวอย่างเช่น หากคุณเรียกใช้ฟังก์ชันบนเซิร์ฟเวอร์จากไคลเอ็นต์ เหตุการณ์ CALL จะถูกบันทึกใน TJ บนเซิร์ฟเวอร์ สคอล– โทรออกระยะไกล (สายโทรออกทางฝั่งต้นทาง) ตัวอย่างเช่น หากคุณเรียกใช้ฟังก์ชันบนเซิร์ฟเวอร์จากไคลเอนต์ เหตุการณ์ SCALL จะถูกบันทึกใน TJ บนไคลเอนต์ SESN– การดำเนินการที่เกี่ยวข้องกับเซสชันการทำงาน ตัวอย่างเช่น เริ่มเซสชัน สิ้นสุดเซสชัน ทีเดดล็อค– ตรวจพบการหยุดชะงักในโหมดอินเทอร์ล็อคที่มีการควบคุม Tหมดเวลา– ข้อผิดพลาดการหมดเวลาในการล็อคที่ได้รับการจัดการ บล็อค– การตั้งค่าการล็อคธุรกรรมในโหมดการล็อคแบบควบคุม
เมื่อใช้การตั้งค่า TJ คุณสามารถกรองเหตุการณ์เกือบทั้งหมดที่เราสนใจได้
สมมติว่าเราต้องการเห็นเฉพาะข้อผิดพลาดและข้อมูลเกี่ยวกับคำค้นหาในตาราง AccRg105 ที่กินเวลานานกว่า 3 วินาทีใน TC จากนั้น logcfg ควรมีลักษณะเช่นนี้
ตรรกะหรือทำงานระหว่างทั้งสองนั่นคือ เมื่อมีเหตุการณ์ใดเกิดขึ้นก็จะถูกบันทึกไว้ใน TJ
ตรรกะ AND ใช้งานได้ภายในอันเดียวนั่นคือ เหตุการณ์ที่กำหนดจะถูกบันทึกก็ต่อเมื่อตรงตามเงื่อนไขทั้งหมดภายในเหตุการณ์เดียวเท่านั้น
ด้วยการตั้งค่านี้ เหตุการณ์ EXCP จะถูกบันทึกเสมอ และเหตุการณ์ DBMSSQL จะถูกบันทึกก็ต่อเมื่อมีสตริง “AccRg105” อยู่ที่ใดก็ได้ในข้อความคำขอ และคำขอได้รับการดำเนินการนานกว่า 3 วินาที ตัวกรองสำหรับระยะเวลากิจกรรมต้องตั้งค่าเป็นสิบในพันวินาที ไม่ว่าแพลตฟอร์มจะเป็นเวอร์ชันใดก็ตาม ในตัวอย่างนี้ เราใช้เงื่อนไขหลายประการ: eq, gt และ like
สามารถใช้เงื่อนไขต่อไปนี้:

  • สมการ – เท่ากับ;
  • ne – ไม่เท่ากัน;
  • gt – เพิ่มเติม;
  • ge – มากกว่าหรือเท่ากับ;
  • lt – น้อยกว่า;
  • เลอ – น้อยกว่าหรือเท่ากับ;
  • ชอบ - ตรงกับหน้ากาก
ฉันจะเพิ่มบันทึกอีกสองสามข้อในตอนท้าย:
แพลตฟอร์มจะอ่านข้อมูลจากไฟล์การตั้งค่านาทีละครั้ง ดังนั้นอย่าตื่นเต้นและตรวจสอบไฟล์ทันที คุณจะสบายใจได้ในไม่กี่นาที)
หากคุณจะไม่ส่งข้อมูลดัมพ์ไปที่ 1C ก็ไม่จำเป็นต้องจัดเก็บมัน อย่าระบุบรรทัดตำแหน่งดัมพ์ในไฟล์การตั้งค่า.
หากคุณกำลังจะจัดเก็บไฟล์ TJ ในไดเร็กทอรีอื่นที่ไม่ใช่ไดเร็กทอรีเริ่มต้น จะเป็นการดีกว่าถ้าคุณสร้างมันขึ้นมาเองก่อน

ในฐานข้อมูลทดสอบ ฉันจงใจสร้างการหมดเวลาในการล็อค
โดยใช้สิ่งนี้เป็นตัวอย่าง

เพื่อนร่วมงานทั้งหลาย เรากำลังเริ่มบทความชุดหนึ่งเกี่ยวกับนิตยสารเทคโนโลยีโดยเฉพาะ

ในซีรีส์นี้ เราจะดูวิธีใช้เครื่องมือที่มีประโยชน์เพื่อตรวจสอบปัญหาด้านประสิทธิภาพและความเสถียร 1C:องค์กร- นิตยสารเทคโนโลยี

ไม่ใช่ผู้เชี่ยวชาญทุกคนที่รู้เรื่องนี้ และมีเพียงไม่กี่คนที่รู้วิธีใช้อย่างถูกต้อง มาลองแก้ไขสถานการณ์กัน :)

คำอธิบายและการรวมบันทึกเทคโนโลยี

คุณจะเรียนรู้อะไรจากบทความนี้?

  • คำอธิบายและวัตถุประสงค์ของเครื่องมือ นิตยสารเทคโนโลยี
  • วิธีการเปิดใช้งาน นิตยสารเทคโนโลยีวี 1C:องค์กร 8
  • หลักการสร้างและบันทึกบันทึกและดัมพ์

คำอธิบายของ TJ

ทีเจออกแบบมาเพื่อตรวจสอบข้อผิดพลาด วิเคราะห์ และวินิจฉัยปัญหาต่างๆ ในการทำงานของแพลตฟอร์ม 1C:องค์กร.

ด้วยความช่วยเหลือของ TZ คุณจะพบว่าคิวรีใดทำงานช้า และเรียกใช้จากที่ใด เมื่อดำเนินการโค้ดใดที่กระบวนการทำงานของเซิร์ฟเวอร์ล่ม หน่วยความจำรั่วตรงไหน และอื่นๆ อีกมากมาย

เครื่องมือวิเคราะห์ประสิทธิภาพของแพลตฟอร์มทั้งหมดใช้ TJ เพื่อรับข้อมูล หากคุณต้องการและศึกษาปัญหาอย่างละเอียดโดยใช้ TJ คุณสามารถเขียนเครื่องมือวิเคราะห์ประสิทธิภาพของคุณเองได้

TJ สามารถรวบรวมได้ทั้งสำหรับกระบวนการเซิร์ฟเวอร์ 1C และสำหรับแอปพลิเคชันไคลเอนต์ ดังนั้น ชุดเหตุการณ์ที่สามารถบันทึกใน TD จะแตกต่างออกไป

บันทึกและดัมพ์ของลูกค้าไม่ค่อยได้รับความสนใจมากนัก ดังนั้นในบทความนี้ เราจะพิจารณา TZ จากมุมมองของเซิร์ฟเวอร์โดยเฉพาะ อย่างไรก็ตาม ทุกอย่างที่เขียนไว้ที่นี่ยังใช้กับบันทึกของไคลเอ็นต์ด้วย

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

บันทึก– เป็นไฟล์ที่มีนามสกุล .บันทึกโดยที่ข้อมูลถูกจัดเก็บในรูปแบบข้อความ

ทิ้งเป็นไฟล์ที่มีนามสกุล .mdmpซึ่งมีเนื้อหาของ RAM ของกระบวนการ ณ เวลาที่เกิดการขัดข้อง
การดัมพ์อาจมีความจำเป็นอย่างยิ่งในการตรวจสอบปัญหาความเสถียรของแพลตฟอร์ม เราไม่สามารถวิเคราะห์การทิ้งขยะได้ด้วยตัวเอง เพราะว่า... เราไม่มีซอร์สโค้ดของแพลตฟอร์ม แต่เราสามารถส่งซอร์สโค้ดไปยังฝ่ายสนับสนุนทางเทคนิคหรือฟอรัมพันธมิตรและรับวิธีแก้ไขปัญหาของเราได้

กำลังเปิด TJ

ตามค่าเริ่มต้น บันทึกกระบวนการจะถูกเปิดใช้งานและใช้งานได้ แต่จะรวบรวมข้อมูลในปริมาณที่จำกัดมาก

จำนวนข้อมูลขั้นต่ำหมายถึง 2 สิ่ง:

1) การก่อตัวของดัมพ์ขนาดต่ำสุดในกรณีที่มีการปิดระบบฉุกเฉินของกระบวนการคลัสเตอร์ 1C ( ตัวแทน rmngrหรือ rphost).

ตามค่าเริ่มต้น ดัมพ์จะถูกสร้างขึ้นในไดเร็กทอรี:

% USERPROFILE% \ Local Settings \ Application Data \ 1C \ 1Cv82 \ dumps

หากคุณใช้ Windows Vista และสูงกว่า ไดเร็กทอรีจะถูกใช้:

%LOCALAPPDATA%\1C\1Cv82\ดัมพ์

สำหรับ 8.3 แทนที่จะเป็นไดเร็กทอรี 1Cv82ใช้แล้ว 1Cv8.

2) สำหรับ 8.3 TZ ขั้นต่ำจะรวมการสร้างบันทึกด้วยหนึ่งเหตุการณ์ ระบบมีระดับ ข้อผิดพลาด.

บันทึกจะถูกบันทึกไว้ในไดเร็กทอรี:

% USERPROFILE% \ การตั้งค่าท้องถิ่น \ ข้อมูลแอปพลิเคชัน \ 1C \ 1Cv8 \ บันทึก

สำหรับ Windows Vista และเก่ากว่า ไดเร็กทอรีจะถูกใช้:

%LOCALAPPDATA%\1C\1Cv8\บันทึก

บันทึกเหล่านี้จะถูกเก็บไว้เป็นเวลา 24 ชั่วโมงตามค่าเริ่มต้น หลังจากนั้นแพลตฟอร์มจะลบไฟล์บันทึกที่เกินเกณฑ์นี้

บ่อยครั้งที่ข้อมูลจาก TJ เริ่มต้นยังไม่เพียงพอ และจำเป็นต้องกำหนดค่าด้วยตนเอง

หากต้องการปรับแต่ง TJ อย่างละเอียด คุณต้องสร้างไฟล์ logcfg.xmlมีโครงสร้างบางอย่างอยู่ในสถานที่แห่งหนึ่ง

ไฟล์นี้จะต้องอยู่ในไดเร็กทอรี:

C:\Program Files\1Cv82\conf (สำหรับไดเรกทอรี 8.3 1Cv8)

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

เมื่อตั้งค่า มชบริการตรวจสอบประสิทธิภาพระบบคลาวด์ และเครื่องมืออื่นๆ ที่คุณต้องระบุเส้นทางไป ล็อกซีเอฟจีจะเป็นการดีกว่าถ้าใช้ไดเร็กทอรีเฉพาะนี้มิฉะนั้นเมื่ออัปเดตแพลตฟอร์มหรือเปลี่ยนชื่อผู้ใช้ที่บริการเซิร์ฟเวอร์ทำงานอยู่ 1ซีเครื่องมือที่อธิบายไว้จะหยุดทำงานและคุณจะต้องเปลี่ยนการตั้งค่า

อย่างไรก็ตาม มีตัวเลือกอื่นๆ อยู่ แม้ว่าจะใช้บ่อยน้อยกว่ามากก็ตาม ฉันจะอธิบายเฉพาะสิ่งที่คุณต้องการมากที่สุดเท่านั้น

เพื่อติดตั้ง ทีเจเราวางไว้สำหรับแพลตฟอร์มเวอร์ชันเดียวเท่านั้น logcfg.xmlในแค็ตตาล็อก:

C:\ไฟล์โปรแกรม\1Cv82\8.2.19.106\bin\conf

ที่ไหน 8.2.19.106 – นี่คือหมายเลขเวอร์ชันที่คุณต้องการ

เกิดขึ้นน้อยมาก แต่ก็ยังอาจจำเป็นต้องกำหนดค่า TJ แยกกันสำหรับผู้ใช้แต่ละรายที่ใช้บริการเซิร์ฟเวอร์อยู่ 1ซี.

จากนั้นเราก็วาง ล็อกซีเอฟจีในแค็ตตาล็อก:

% USERPROFILE% \ การตั้งค่าท้องถิ่น \ ข้อมูลแอปพลิเคชัน \ 1C \ 1Cv82 \ Conf

สำหรับ Windows Vista และเก่ากว่า:

%LOCALAPPDATA%\1C\1Cv82\Conf

อาจจำเป็นหากคุณมี 1 บริการเซิร์ฟเวอร์ 1ซีถูกใช้เป็นแบบทำงาน และอันที่สองใช้สำหรับการแก้ไขจุดบกพร่อง หากจำเป็น คุณสามารถเรียกใช้บริการภายใต้ผู้ใช้ที่แตกต่างกันและรวบรวมได้ ทีเจสำหรับหนึ่งในนั้นเท่านั้น เพื่อไม่ให้โหลดเซิร์ฟเวอร์ตัวที่สองและไม่รวบรวมข้อมูลที่ไม่จำเป็นในบันทึกหรือทำการตั้งค่าของคุณเองสำหรับแต่ละบริการ ทีเจ.

การตั้งค่าจาก logcfg จะไม่อ่านทันที แต่ทุกๆ 60 วินาที และแต่ละกระบวนการของคลัสเตอร์จะอ่านไฟล์การตั้งค่าโดยไม่ขึ้นอยู่กับกระบวนการอื่นๆ ตัวอย่างเช่น บันทึกกระบวนการ rmngr อาจปรากฏขึ้นก่อน และหลังจาก 45 วินาทีเท่านั้น บันทึก rphost

เพื่อปิดเครื่อง ทีเจเพียงลบหรือเปลี่ยนชื่อไฟล์ logcfg.xml.

เบอร์มิสตรอฟ อันเดรย์

ในบทความต่อไปนี้ เราจะดูความแตกต่างของการตั้งค่า ทีเจและการปฏิบัติการใช้งาน

ในระหว่างนี้ ให้แนบเนื้อหาที่ได้รับเข้ากับฐานข้อมูลการทดสอบของคุณ :)