Chẩn đoán Java theo cách của IBM, Phần 1: Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM - Dump Analyzer

Các ứng dụng Java™ ngày càng trở nên phức tạp hơn; do đó, việc chẩn đoán các vấn đề bên trong các ứng dụng này là một công việc không hề dễ dàng và có thể cần nhiều công sức đối với một tổ chức dịch vụ bên ngoài (external service organization). Một chỉ dẫn hữu ích và chính xác có thể góp phần tiết kiệm thời gian và chi phí. Công cụ chẩn đoán và giám sát Java của IBM® - Dump Analyzer là một công cụ thực hiện các phân tích cơ bản đối với một tệp kết xuất hệ thống được định dạng (formatted system dump) và tạo ra m ột báo cáo ngắn gọn chỉ ra những việc mà bạn cần làm tiếp theo.

pdf22 trang | Chia sẻ: lylyngoc | Lượt xem: 1545 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chẩn đoán Java theo cách của IBM, Phần 1: Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM - Dump Analyzer, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chẩn đoán Java theo cách của IBM, Phần 1: Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM - Dump Analyzer Vượt qua những tệp báo lỗi dài vô tận để đi tới trọng tâm của vấn đề Các ứng dụng Java™ ngày càng trở nên phức tạp hơn; do đó, việc chẩn đoán các vấn đề bên trong các ứng dụng này là một công việc không hề dễ dàng và có thể cần nhiều công sức đối với một tổ chức dịch vụ bên ngoài (external service organization). Một chỉ dẫn hữu ích và chính xác có thể góp phần tiết kiệm thời gian và chi phí. Công cụ chẩn đoán và giám sát Java của IBM® - Dump Analyzer là một công cụ thực hiện các phân tích cơ bản đối với một tệp kết xuất hệ thống được định dạng (formatted system dump) và tạo ra một báo cáo ngắn gọn chỉ ra những việc mà bạn cần làm tiếp theo. Bài viết này giới thiệu Công cụ chẩn đoán và giám sát cho Java của IBM (IBM Diagnostic and Monitoring Tools for Java) - Dump Analyzer và cung cấp một số thông tin cơ bản về các loại vấn đề mà công cụ này có thể chẩn đoán. Nó giải thích kiến trúc được sử dụng để xây dựng nên Dump Analyzer và cung cấp một số suy nghĩ về hướng đi tương lai của công cụ Ngôn ngữ Java đã trở nên nổi bật trong lĩnh vực phát triển phần mềm, và do đó độ tin cậy của các máy ảo Java (VM) đã trở thành một vấn đề rất quan trọng. Máy ảo thường là một phần mềm đáng tin cậy, nhưng tất nhiên, vẫn có lỗi xảy ra trong quá trình thực thi do một loạt các nguyên nhân khác nhau. Một số ít những vấn đề này là do lỗi tự phát sinh trong máy ảo, tuy nhiên, trong đa số trường hợp, chúng được gây ra bởi lỗi hoặc cấu hình sai trong các ngăn phần mềm trên máy ảo (trong IBM® WebSphere® Application Server chẳng hạn) hoặc là do chính bản thân ứng dụng gây ra. Cùng với sự trưởng thành của công nghệ thông tin, ngăn xếp phần mềm cho một dự án điển hình đã tăng lên về độ phức tạp, điều này đã dẫn đến những khó khăn ngày càng tăng cho các nhà phát triển đang cố gắng xác định nguyên nhân của các vấn đề. Trong một môi trường phức tạp như vậy, để chẩn đoán lỗi, bạn có thể phải đối mặt với khối lượng thông tin nhiều đến chóng mặt. Trong môi trường sản xuất thực tế, đó có thể là nhiều gigabyte bộ hớ, hàng trăm luồng, hàng ngàn classloader, hàng chục ngàn lớp, và một số lượng khổng lồ các đối tượng. Công cụ chẩn đoán và giám sát Java của IBM - Dump Analyzer (từ đây được gọi tắt là Dump Analyzer) là một framework mở rộng có khả năng tìm ra con đường thoát khỏi mớ hỗn độn đó. Dump Analyzer có sẵn cho tất cả người dùng nội bộ của IBM và khách hàng bên ngoài muốn sử dụng nó để điều tra các vấn đề thông qua IBM Developer Kit cho nền tảng Java (IBM SDK). Nó sử dụng các bộ phân tích (analyzers) để thẩm vấn một tệp kết xuất hệ thống đã định dạng (formatted system dump) (mỗi bộ phân tích sẽ thăm dò tệp báo lỗi bằng một câu hỏi riêng biệt) và liên kết các kết quả với nhau bằng một đoạn mã kịch bản để tạo ra một bản báo cáo phân tích ngắn gọn. Trong hai phiên bản đầu tiên, Dump Analyzer sẽ cho ra một trong bốn kết quả sau: Cái nhìn tổng quan về các loại vấn đề của máy ảo Có nhiều lý do khiến một máy ảo bị vấn đề trong khi thực thi, mỗi loại vấn đề yêu cầu có một cách tiếp cận khác nhau để chẩn đoán. Trước khi bạn đi vào hoạt động chi tiết của Dump Analyzer, nên kiểm tra những loại vấn đề khác nhau và các phân tích cần thiết để giải quyết chúng. Vấn đề không đủ bộ nhớ Một máy ảo có thể bị lỗi vì không đủ bộ nhớ — hoặc là do vùng nhớ heap hoặc vùng nhớ thực được sử dụng bởi các máy ảo để lưu ngăn xếp các luồng, lớp thông tin, mã JIT'ed, thành phần đồ họa, và các hiện vật (artifacts) khác để giao tiếp cơ bản với hệ điều hành. Sẽ rất khó khăn để chẩn đoán một vấn đề như vậy bởi vì cấp phát bộ nhớ thất bại không phải là nguyên nhân cuối cùng; một số bộ thu gom lớn đã có thể được phát triển cho đến khi máy ảo đạt được giới hạn cho phép của vùng heap. Thường thì chúng ta sẽ cần kiểm tra lại các nội dung của vùng heap và so sánh hình ảnh của vùng heap ở nhiều thời điểm để xác định xem các tập hợp (collections) đã tăng kích cỡ nhanh chóng. Tắc nghẽn Một tắc nghẽn xảy ra khi mà hai hay nhiều tiến trình phải chờ một tiến trình khác giải phóng tài nguyên để sử dụng. Một luồng sở hữu một nguồn tài nguyên (như màn hình) thì không thể làm chủ nguồn tài nguyên khác bởi vì luồng thứ hai sở hữu nó và đồng thời cố gắng giành quyền sở hữu tài nguyên được sở hữu bởi luồng đầu tiên. Những lỗi này thường biểu hiện qua các vấn đề về hiệu suất. Việc chẩn đoán lỗi tương đối dễ dàng, chỉ cần kiểm tra trạng thái của các luồng và tài nguyên chúng sở hữu. Các vấn đề nội bộ Lỗi nội bộ có thể được gây ra bởi rất nhiều vấn đề:  Mã nguồn gốc có thể cố gắng để truy cập một đối tượng có đầu vào không hợp lệ (như một tham chiếu địa phương cũ) hoặc được mã hoá không chính xác.  Bộ thu gom rác có thể thu hồi không chính xác một số vùng nhớ, khi tham chiếu, nó xuất hiện để chứa con trỏ mà chưa khai báo vùng nhớ.  Trình biên dịch JIT có thể sản xuất mã không chính xác hoặc tham chiếu hoặc nỗ lực để rẻ nhánh chương trình đến một vị trí không đúng. Lỗi trong ứng dụng Java hoặc bên trung gian Dump Analyzer hiện có khả năng xử lý các lỗi xảy ra hoặc được phát hiện ở mức độ ngay bên trong máy ảo, nhưng thậm chí một bộ công cụ tương tự cũng có khả năng chẩn đoán các lỗi khác nhau và hành vi không chính xác trong các ứng dụng Java hoặc các ứng dụng trung gian đang hoạt động trong các máy ảo. Có nhiều nguyên nhân sinh ra các lỗi này, chúng thường là kết quả của các khiếm khuyết trong ứng dụng hoặc mã trung gian hoặc sử dụng hay tinh chỉnh JVM sai. Chúng thường được chẩn đoán bằng cách kiểm tra trạng thái của cấu trúc dữ liệu khác nhau trong các ứng dụng hoặc ứng dụng trung gian để xác định xem liệu có khía cạnh nào của trạng thái đó bị sai lệch không. Cách chẩn đoán vấn đề thông dụng hiện nay Nếu không có trong tay một công cụ như Dump Analyzer, bạn thường sẽ bắt đầu quá trình chẩn đoán vấn đề bằng cách kiểm tra những thứ được sinh ra từ máy ảo tại thời điểm xảy ra lỗi. Thông thường, đó là:  Một tập báo lỗi của không gian diễn ra tiến trình (một tập báo lỗi hệ thống hoặc tập tin lõi)  Một tập báo lỗi của heap Java (một heapdump)  Một ảnh chụp của tiến trình Java (một tập tin Javacore)  Một tập tin lưu vết ghi lại một số lịch sử thực thi Nói chung, bạn sẽ phải xem xét riêng lẻ từng hiện vật, sử dụng các chương trình chuyên dụng cho từng định dạng cụ thể. Quá trình xác định vấn đề sau đó về cơ bản bao gồm các công việc kiểm tra thông tin thu thập được một cách thủ công. Khi khối lượng dữ liệu tăng lên, quá trình này ngày càng trở nên tốn thời gian, và một công việc ngày càng chuyên sâu hơn. Kết quả là, khách hàng thường không muốn tự tay thực hiện việc phân tích, mà họ thường nhờ cậy vào nhà cung cấp máy ảo hoặc phần mềm trung gian làm điều đó, nhưng phần lớn các vấn đề đã từng được chẩn đoán và ghi nhận lại là vấn đề liên quan tới ứng dụng, cấu hình, hoặc môi trường mà không yêu cầu bất kỳ thay đổi nào về mã trong máy ảo hoặc trong phần mềm trung gian. Trên lý thuyết, khả năng chẩn đoán có sẵn dành cho khách hàng sẽ đảm bảo rằng chỉ có các lỗi do nhà sản xuất mà cần phải can thiệp vào mã để sửa chữa mới được báo cáo tới nhà cung cấp máy ảo hoặc phần mềm trung gian. Các vấn đề khác sẽ được chẩn đoán nhờ một quá trình tự động bằng cách sử dụng các công cụ thích hợp được cung cấp bởi các máy ảo. Tổng quan về Dump Analyzer Dump Analyzer là công cụ dựa trên Diagnostic Tooling Framework dành cho Java (viết tắt là DTFJ; bạn sẽ tìm hiểu nhiều hơn về DTFJ sau trong bài viết này). Dump Analyzer được thiết kế để phân tích các tập tin kết xuất hệ thống nhằm tìm ra các vấn đề khác nhau. Công cụ này được tạo ra từ những module phân tích nhỏ. Những module này xem xét dữ liệu cụ thể và xác định vấn đề nào đang gặp phải, ví dụ như vấn đề tắc nghẽn (deadlock). Thiết kế này dễ dàng thích ứng với việc bổ sung các tính năng mới và có thể tương thích để tìm ra các vấn đề cụ thể. Công cụ này hoạt động theo 2 mức:  Mỗi module phân tích chuyên biệt cố gắng chẩn đoán loại vấn đề thường gặp và đưa ra mô tả ngắn gọn cho vấn đề đó.  Khi việc chẩn đoán không thể thực hiện, mỗi module phân tích đưa ra báo cáo dài hơn về tình trạng một khía cạnh nào đó của hệ thống. Báo cáo này có thể được sử dụng bởi các chuyên gia xử lý sự cố, có thể kết hợp với nhiều thông tin khác để tìm ra vấn đề. Để thêm tính linh hoạt, một ngôn ngữ kịch bản đơn giản được sử dụng để điều khiển luồng phân tích. Nhóm chúng tôi dự định tiếp tục phát triển điều này bằng việc cung cấp nhiều kịch bản khác nhau. Dưới đây là các luồng phân tích của công cụ này: 1. Công cụ này tải dữ liệu rác được người dùng lựa chọn và tạo ảnh để phân tích sâu hơn. 2. Người dùng chọn một hoặc nhiều module phân tích để thực thi ảnh; nếu không có module phân tích cụ thể nào được chỉ định, kịch bản mặc định sẽ được chọn. 3. Module phân tích được thực thi. 4. Mỗi module phân tích sẽ trả về thông tin điều khiển luồng giúp phân tích vấn đề sâu hơn hoặc tạo ra một báo cáo. 5. Khi tất cả các module đã hoàn thành việc phân tích, kết quả vừa phân tích sẽ được định dạng thành tài liệu dạng HTML hoặc dạng văn bản đơn thuần. Như đã nói ở trên, nếu người dùng không chỉ ra module phân tích cụ thể, công cụ này sẽ thực thi tập lệnh mặc định (general.sml). Nó thực thi các thiết lập của trình phân tích để kiểm tra các loại vấn đề thường gặp. Nếu không có vấn đề nào được phát hiện, tập lệnh sẽ gọi tới một báo cáo mặc định. Báo cáo này phác thảo một số thông tin chung về tình trạng của máy ảo khi rác được tạo ra. Trong bài viết sau, bạn sẽ tìm hiểu ví dụ về cách sử dụng Dump Analyzer và có cái nhìn tổng quan về một số module phân tích không mặc định có thể được chọn. Thiết lập cần thiết để sử dụng Dump Analyzer Tất cả những gì Dump Analyzer cần để chạy là một tệp kết xuất hệ thống có định dạng. Một hệ thống kết xuất mặc định được tạo ra khi máy ảo bị treo; tuy nhiên, các máy ảo có thể được cấu hình để tạo ra một kết xuất như vậy trong những trường hợp thất bại khác hoặc theo yêu cầu của người sử dụng (Xem các liên kết Diagnostic Guides trong phần Tài nguyên để có thêm nhiều thông tin). Để định dạng tệp kết xuất hệ thống, bạn cần phải chạy công cụ jextract trên nó. Bằng cách sử dụng cùng một máy ảo trên cùng một máy đã tạo ra các kết xuất, chỉ cần chạy dòng lệnh sau đây: jextract "corefilename" Với một máy ảo cấp 1.4.2, lệnh này tạo ra một tập tin .sdff; trên máy ảo tại phiên bản 5.0 hoặc cao hơn, nó tạo ra một tập tin dmp.zip. Cũng lưu ý rằng trên các nền tảng khác nhau, có thể có lựa chọn khác nhau mà kiểm soát các định dạng của các kết xuất sản xuất ở cấp hệ điều hành. Đặc biệt, chúng có thể gây ra các kết xuất hệ thống được rút ngắn, có thể ngăn chặn Dump Analyzer đưa ra một chẩn đoán hữu ích. Các lỗi phổ biến nhất (trên hệ thống UNIX®) là quên thiết lập ulimit thành unlimited,nhưng có những lựa chọn quan trọng khác trên các nền tảng khác. Để tránh vấn đề kiểu này, tham khảo các thông tin trong IBM Diagnostics Guide hoặc tìm kiếm các phần mềm hỗ trợ trên trang web của IBM (Xem Tài nguyên cho các liên kết của cả hai) cho công nghệ nền tảng cụ thể với các từ khóa như "truncated core" . Sử dụng Dump Analyzer trong IBM Support Assistant Giới thiệu về IBM Support Assistant IBM Support Assistant là một phần mềm miễn phí giúp bạn giải quyết vấn đề liên quan đến các sản phẩm phần mềm của IBM. ISA có một công cụ tìm kiếm trải dài phần lớn các tài liệu của IBM và phân loại các kết quả để xem xét. Nó cũng cung cấp một tính năng liên kết đến trang hỗ trợ và trang chủ, trang hướng dẫn xử lý sự cố, các diễn đàn khác nhau và các nhóm tin. Tính năng dịch vụ của ISA có thể thu thập thông tin từ máy tính để bàn của bạn và có thể dễ dàng tạo ra một bản báo cáo vấn đề cho IBM. Công cụ bàn làm việc của ISA cung cấp công cụ xác định vấn đề có thể trợ giúp giải quyết các vấn đề với sản phẩm của IBM. Những công cụ này được cập nhật liên tục và cho phép bạn chạy các công cụ xử lý sự cố và chẩn đoán trên máy tính để bàn của bạn. Xem để tìm đường dẫn tải về ISA. Phương tiện phát hành chính cho Dump Analyzer là IBM Support Assistant (gọi tắt là ISA). ISA là có sẵn cho tất cả người dùng nội bộ của IBM và khách hàng bên ngoài Bạn có thể cài đặt Dump Analyzer với ISA như sau: 1. Hãy chắc chắn là ISA phiên bản 3 được cài đặt. 2. Để cài đặt Dump Analyzer, bạn nên cài đặt một sản phẩm plug-in mà nó có liên quan — ví dụ như The IBM Developer Kit cho Java. (Xem Tài nguyên để được hướng dẫn.) 3. Khởi động lại máy khách ISA. Bây giờ bạn có thể cài đặt một công cụ plug- in. 4. Đi đến dịch vụ Update. Có 2 cách để thực hiện điều này: o Bấm chọn biểu tượng Updater ở trang Welcome. o Bấm chọn liên kết Updater ở thanh menu. 5. Lựa chọn nhãn New Plug-ins và đợi cho ISA xây dựng danh mục các plug- in có sẵn để cài đặt. 6. Mở thư mục Common Component Tools. 7. Chọn IBM Diagnostic and Monitoring Tools for Java - Dump Analyzer và cài đặt. Một khi bạn đã cài đặt Dump Analyzer, bạn có thể khởi động nó từ bên trong ISA: 1. Khởi động lại ISA. 2. Chọn Tools. 3. Chọn một sản phẩm mà Dump Analyzer có sẵn — ví dụ IBM Developer Kit cho Java. 4. Bấm chọn để khởi động công cụ IBM Diagnostic and Monitoring Tools for Java - Dump Analyzer. Màn hình của bạn sẽ giống như Hình 1: Hình 1. Dump Analyzer trong ISA Đây là cách bạn có thể phân tích một một hệ thống kết xuất có định dạng: 1. Nhập tên đầy đủ của một hệ thống kết xuất có định dạng được phân tích. 2. Bấm chọn Estimate Time để nhận được một ước tính sơ bộ khoảng thời gian thực hiện phân tích. 3. Bấm chọn Analyze. Kết quả sẽ xuất hiện trong cửa sổ khi hoàn thành. Hình 2 cho thấy một ví dụ về các loại quan sát tóm tắt mà Dump Analyzer xuất ra: Hình 2. Ví dụ về quan sát tóm lược Chọn Analyze Another để trở lại màn hình giống như trong Hình 1, với tên tập tin kết xuất nhập trước đó vẫn còn nhập vào hộp văn bản đầu tiên. Selecting an analyzer module Trường được gán nhãn Optional Parameters trong màn hình dẫn ra trong Hình 1 và 2 điều khiển các bộ phân tích sẽ được thực hiện, cũng như lựa chọn thời gian chạy khác. Thông thường, bạn nên để trống trường này; điều này sẽ làm cho tập lệnh phân tích mặc định, general.sml, được thực thi. Tập lệnh này sẽ kiểm tra các dạng phổ biến nhất của các vấn đề. Tuy nhiên, nếu bạn thực sự biết loại cụ thể của vấn đề mà bạn đang điều tra hoặc nếu bạn cần phải làm việc trên một vấn đề mà không được tích hợp vào các tập lệnh mặc định, bạn rõ ràng có thể chỉ định một hoặc nhiều bộ phân tích được gọi. Những bộ phân tích có thể được gọi với tên của tập tin kịch bản cụ thể hoặc tên lớp của module phân tích cụ thể. Gõ -help trong trường Optional Parameters sẽ liệt kê nhiều tùy chọn thời gian chạy hơn nữa. Trong phiên bản đầu tiên của công cụ, chỉ có một số rất nhỏ các phân tích thí nghiệm đã được cung cấp ngoài kịch bản mặc định. Chúng bao gồm:  DefaultDumpReport (Tên lớp: com.ibm.dtfj.analyzer.deal.basic.DefaultDumpReport): Phân tích này tạo ra một báo cáo khá chi tiết về tất cả các khía cạnh chính của tình trạng máy ảo, tương tự như những gì có thể được tìm thấy trong một tập tin Javacore (nhưng thêm một số thông tin DTFJ đặt trưng).  ListZipJars (Tên lớp: com.ibm.dtfj.analyzer.deal.extended.ListZipJars): Phân tích thử nghiệm này cố gắng khám phá tất cả các tập tin zip và JAR đang mở trong máy ảo này, có thể cung cấp cái nhìn sâu sắc vào bất kỳ thư viện tùy chỉnh được sử dụng bởi các ứng dụng hoặc bên trung gian.  SystemProperties (Tên lớp: com.ibm.dtfj.analyzer.deal.extended.SystemProperties): Phân tích thử nghiệm này quét máy ảo và in ra giá trị hiện tại của tất cả các tài sản hệ thống Java được định nghĩa trong máy ảo đó.  WASBasicInfo (Tên lớp: com.ibm.dtfj.analyzer.deal.was.WASBasicInfo): Đây là một phiên bản rất sơ bộ và thực nghiệm của một phân tích thể hiện rõ việc sử dụng công cụ này để kiểm tra trạng thái của một WebSphere Application Server thời gian chạy thực hiện bên trong máy ảo. Những bộ phân tích khác hiện đang được cung cấp chủ yếu là để minh họa cho tính linh hoạt của công cụ. Phiên bản sắp tới sẽ có nhiều bộ phân tích chuyên ngành bổ sung cùng với tài liệu hướng dẫn. Ngoài ra, trong bài viết thứ tư trong loạt bài này, bạn sẽ học cách để viết bộ phân tích của riêng bạn để bổ sung những vận chuyển với các công cụ chính nó. Sử dụng Dump Analyzer từ dòng lệnh Trong một số trường hợp, việc chạy Dump Analyzer từ dòng lệnh là khá hữu ích (ví dụ như khi quá trình phân tích cần phải được tích hợp vào một số công việc xử lý vấn đề hiện tại). Cách dễ nhất để sử dụng Dump Analyzer là thông qua ISA, và các bạn vừa được thấy cách làm thế nào để tải về các Dump Analyzer trong ISA. Để chạy một mình Dump Analyzer, bạn cần bốn tập tin JAR và một tập tin script. Đó là:  dumpAnalyzer.jar (nằm trong installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB- INF/lib)  dtfj-interface.jar (nằm trong installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB- INF/lib/j9)  dtfj.jar for Java 5.0 and above (nằm trong installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB- INF/lib/j9)  dtfj.jar for Java 1.4.2 (nằm trong installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB- INF/lib/sov)  general.sml (nằm trong installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản) Trong tất cả các đường dẫn ở trên, installDir biểu thị thư mục cài đặt ISA, theo mặc định là C:\Program Files\IBM\IBM Support Assistant v3 trên Microsoft Windows hay /opt/IBM/IBM Support Assistant v3 trên Linux™. Bạn có thể sao chép những tập tin này ở nơi khác, hoặc bạn có thể chạy Dump Analyzer trực tiếp từ thư mục InstallDir/plugins/com.ibm.java.diagnostics.dbda.isa_ (số phiên bản). Mặc dù ISA chỉ có sẵn trên Windows và Linux, bạn có thể chạy Dump Analyzer từ dòng lệnh trên bất kỳ nền tảng nào. Đây là các bước dòng lệnh để chạy Dump Analyzer từ thư mục mặc định trên Windows: 1. set CP=WEB-INF/lib/dumpAnalyzer.jar 2. set BCP=WEB-INF/lib/j9/dtfj.jar;WEB-INF/lib/j9/dtfj-interface.jar;WEB- INF/lib/sov/dtfj.jar 3. java -cp %CP% -Xbootclasspath/p:%BCP% com.ibm.dtfj.analyzer.base.DumpAnalyzer (dumpName) (options) Và đây là các bước cho Linux: 1. export CP=WEB-INF/lib/dumpAnalyzer.jar 2. export BCP=WEB-INF/lib/j9/dtfj.jar:WEB-INF/lib/j9/dtfj- interface.jar:WEB-INF/lib/sov/dtfj.jar 3. java -cp $CP -Xbootclasspath/p:$BCP com.ibm.dtfj.analyzer.base.DumpAnalyzer (dumpName) (options) Tại đây, dumpName là tên kết xuất hoàn toàn đủ điều kiện để được phân tích. options là các thông số Runtime có thể được sử dụng để cấu hình Dump Analyzer. Chạy với tùy chọn -help sẽ in ra một danh sách của tất cả các thông số có sẵn. Hình 3 cho thấy một bản chụp của một số kết quả đầu ra từ Dump Analyzer khi chạy trên dòng lệnh: Hình 3. Ví dụ về đầu ra dòng lệnh của Dump Analyzer Kế hoạch tương lai Tại thời điểm viết bài, một phiên bản đầu tiên của Dump Analyzer đã được ra mắt. Nhóm chúng tôi dự định sẽ tiếp tục thực hiện cải tiến và cập nhật một cách thường xuyên. Đặc biệt, chúng tôi sẽ tập trung vào hai lĩnh vực: DTFJ: Kiến trúc bên trong Dump Analyzer Dump Analyzer sử dụng DTFJ để thẩm tra các định dạng lỗi của hệ thống. DTFJ là một API hỗ trợ xây dựng các công cụ chẩn đoán của Java, có thể kiểm tra các sự cố hệ thống từ một máy ảo. Trước khi các sự cố hệ thống có thể được kiểm ra, đầu tiên phải được xử lý bởi jextract để thêm thông tin cụ thể của Java runtime. Điều này là cần thiết để jextract chạy với các tệp kết xuất hệ thống (jextract core.dmp, trên dòng lệnh) sử dụng cùng phiên bản với nền tảng Java và chạy trên cùng máy mà phát sinh ra lỗi hệ thống. Một khi điều này