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.
22 trang |
Chia sẻ: lylyngoc | Lượt xem: 1534 | Lượt tải: 1
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