本系列最終篇,通過完整樣品應用演示如何構建客戶端響應時間收集系統,涵蓋客戶端應用編寫、服務端隊列配置、MDB 接收器部署、運行驗證及改進方向。
XactClientApp — 模擬業務事務執行gen.bat 調用 wscompile 配合 config.xml 生成public class XactClientApp {
public static void main(String[] args) {
try {
int cyclesPerXact = 1;
int numberXacts = 5;
String transactionID = "";
String transactionType = cyclesPerXact + " submit,check,gets";
Stub stub = createProxy();
XactServiceServantInterface xact = (XactServiceServantInterface) stub;
CurrentReport cr = new CurrentReport();
for (int x = 1; x <= numberXacts; x++) {
cr.BeginTransaction();
for (int i = 1; i <= cyclesPerXact; i++) {
transactionID = xact.submitWork("new transaction");
System.out.println("Transaction: " + transactionID);
xact.checkWork(transactionID);
xact.getResult(transactionID);
}
cr.CommitTransaction(transactionID, transactionType, "success");
}
} catch (Exception ex) { ex.printStackTrace(); }
}
private static Stub createProxy() {
return (Stub) (new XactService_Impl()).getXactServiceServantInterfacePort();
}
}
BeginTransaction()/CommitTransaction() 定界業務事務submitWork() 調用時,Stub 內 Serializer.attachPendingReportToMessage() 將報告附加至 SOAP 消息cyclesPerXact、numberXacts 控制調用粒度與總量Sun ONE Application Server 內嵌 MQ,三步完成:
TestMDBQueue (Queue 類型)jms/TestMDBQueue、類型: javax.jms.Queue → 屬性 imqDestinationName=TestMDBQueuejms/TestMDBFactory、類型: javax.jms.QueueConnectionFactory應用變更後控制台輸出綁定確認信息。
MDBTester 文件系統,打開 TestMDB EJBEJBModule_TestMDB → DeployMDB00044: Deploying message-driven bean [TestMDB], consuming from [jms/TestMDBQueue] MDB00022: Listening on JMS destination [TestMDBQueue]
獨立模塊部署:MDB 獨立於業務 EJB,避免資源競爭,便於複用。
客戶端正常調用,服務端嘗試入隊失敗:
Exception occurred connecting to queue: javax.naming.NameNotFoundException
關鍵驗證:業務事務不受影響繼續執行,體現「業務可靠性優於監控完整性」原則。
再次運行客戶端,控制台輸出響應時間:
Took:2613 MS. for: 1 submit,check,gets Took:431 MS. for: 1 submit,check,gets Took:4307 MS. for: 1 submit,check,gets Took:871 MS. for: 1 submit,check,gets
注意:5 個事務僅 4 個報告,因最後一個事務無後續請求攜帶報告(取樣機制)。
(attribute, value) 字符串數組,捕獲事務二進制特征本實現為事務取樣器而非全量記錄器:
通過Payload 包 (ClientReport/CurrentReport/Serializer)、客戶端 Stub 改造、服務端 Tie 改造、MDB 異步接收四大組件協作,實現了真實客戶端視角的事務響應時間測量。該架構可平滑遷移至任意 J2EE 實現,為服務質量監控、容量規劃、瓶頸定位提供數據支撐。