> For AI agents: the complete documentation index is available at https://nhanbe.id.vn/llms.txt, the full documentation bundle is available at https://nhanbe.id.vn/llms-full.txt.

# Khai thác Classic UI để debug trên AEM hiện đại

Touch UI là giao diện chính thức, nhưng nhiều console Classic UI trong AEM 6.5 vẫn tồn tại và cho thông tin debug sâu hơn, nhanh hơn. Tiêu biểu là Workflow console và việc trace lịch sử publish của page. Note này liệt kê path, cách dùng, và mẹo khai thác cho công việc RCA.

Classic UI bị deprecated nhưng chưa bị gỡ trong 6.5. Dùng như công cụ debug nội bộ, không dùng cho author hàng ngày và không dựa vào nó cho giải pháp lâu dài.

## Vì sao Classic UI vẫn hữu ích

| Tinh huong                          | Touch UI          | Classic UI                               |
| ----------------------------------- | ----------------- | ---------------------------------------- |
| Xem buoc workflow that bai va stack | Han che           | Console hien chi tiet step, payload, log |
| Trace lich su replication mot page  | Phai lan timeline | Agent log liet ke tung lan, timestamp    |
| Xem nhanh nhieu instance workflow   | Cham, phan trang  | Bang gon, loc theo trang thai            |
| Thao tac JCR truc tiep              | Khong             | CRXDE Lite                               |

## Bản đồ path Classic UI

Gõ thẳng URL trên author. Nhiều path redirect tới JSP/console cũ vẫn hoạt động.

| Console              | Path                                     | Cong dung                                       |
| -------------------- | ---------------------------------------- | ----------------------------------------------- |
| Classic welcome      | `/libs/cq/core/content/welcome.html`     | Man hinh khoi dau Classic, link toi cac console |
| Websites (siteadmin) | `/siteadmin`                             | Cay site, References, page activity             |
| DAM admin            | `/damadmin`                              | Quan ly asset kieu cu                           |
| Tools / Misc         | `/miscadmin`                             | Workflow models, importer, cac tool he thong    |
| Workflow console     | `/libs/cq/workflow/content/console.html` | Models, Instances, Archive, Failures, Launcher  |
| User admin           | `/useradmin`                             | User, group, permission                         |
| Replication          | `/etc/replication.html`                  | Agent author va publish                         |
| CRXDE Lite           | `/crx/de`                                | Duyet va sua JCR truc tiep                      |
| Package Manager      | `/crx/packmgr`                           | Build, install, replicate package               |
| Felix OSGi console   | `/system/console/bundles`                | Bundle, component, config, log                  |

:::tip
Tạo bookmark folder "AEM debug" chứa sẵn các URL này trên môi trường author. Khi có incident, mở thẳng console thay vì lần qua Touch UI.
:::

## Workflow console

Path: `/libs/cq/workflow/content/console.html`. Đây là nơi mạnh nhất để debug workflow.

```mermaid
flowchart LR
  M[Models] --> I[Instances]
  I --> A[Archive]
  I --> F[Failures]
  L[Launcher] --> I
```

| Tab       | Noi dung                 | Dung de                            |
| --------- | ------------------------ | ---------------------------------- |
| Models    | Danh sach workflow model | Doi chieu dinh nghia model         |
| Instances | Workflow dang chay       | Xem instance treo, dang o step nao |
| Archive   | Workflow da hoan tat     | Trace lich su day du tung instance |
| Failures  | Workflow that bai        | Xem loi, retry, terminate          |
| Launcher  | Cau hinh auto-trigger    | Kiem tra vi sao workflow tu chay   |

### Trace một instance

Mở tab Instances hoặc Archive, click vào một instance để xem:

- History trace: từng step đã chạy, thời điểm, người/được giao.
- Payload: path nội dung mà workflow xử lý.
- Trạng thái hiện tại và step kế tiếp.

Vị trí lưu trong JCR khi cần soi sâu bằng CRXDE:

| Du lieu            | Path JCR                                                          |
| ------------------ | ----------------------------------------------------------------- |
| Instance dang chay | `/var/workflow/instances`                                         |
| Workflow model     | `/var/workflow/models` va `/conf/global/settings/workflow/models` |
| Launcher config    | `/conf/global/settings/workflow/launcher`                         |

### Failures: xử lý workflow lỗi

Tab Failures cho phép thao tác hàng loạt khi job workflow chết.

- Step Retry: chạy lại step lỗi sau khi đã sửa nguyên nhân.
- Terminate: kết thúc instance treo không cứu được.
- Đọc cột error để lấy thông điệp lỗi, đối chiếu với `error.log`.

```
SAI: thay workflow treo thi xoa node /var/workflow/instances bang tay
  -> de lai trang thai khong nhat quan, mat lich su

DUNG: dung tab Failures de Terminate hoac Retry
  -> AEM don dep dung quy trinh, giu audit
```

:::warning
Workflow instance treo tích tụ trong `/var/workflow/instances` làm phình repository và chậm máy. Khi RCA chậm hệ thống, kiểm tra số lượng instance ở đây. Dọn bằng console hoặc Workflow Purge scheduler, không xóa node thủ công.
:::

## Trace lịch sử publish của page

Đây là tình huống Classic UI vượt trội: trả lời câu hỏi "page này được publish lúc nào, bởi ai, có lỗi replication không".

### Replication agent log

Path: `/etc/replication/agents.author.html`, click vào agent (thường là Default Agent), chọn tab Log hoặc View Queue.

| Thanh phan          | Y nghia                                                            |
| ------------------- | ------------------------------------------------------------------ |
| Log                 | Lich su tung lan replication: timestamp, path, ket qua OK hoac loi |
| Queue               | Item dang cho gui sang publish                                     |
| Test Connection     | Kiem tra ket noi toi publish                                       |
| Force retry / Clear | Day lai hoac xoa item ket trong queue                              |

Đọc log để biết một path cụ thể đã được gửi sang publish hay chưa, và phản hồi HTTP từ publish.

```mermaid
flowchart TD
  A[Author activate page] --> Q[Replication queue agent author]
  Q -->|HTTP POST| P[Publish receiver]
  P --> OK[200 OK ghi log]
  P --> ERR[Loi 4xx/5xx item ket queue]
  ERR --> RETRY[Force retry sau khi sua]
```

### RCA "page không lên publish"

Thứ tự kiểm tra trong Classic UI:

```
1. /etc/replication/agents.author.html
   -> Queue co bi blocked khong? Item dau queue loi gi?
2. Test Connection toi publish
   -> Loi auth/network thi ca queue dung
3. Doc Log cua agent
   -> Path co duoc gui khong, publish tra ve gi
4. Neu queue OK ma van thieu: kiem tra dispatcher cache (note Caching Layers)
```

```
SAI: page cu thi flush dispatcher ngay
  -> neu loi nam o replication queue, flush vo nghia

DUNG: xac nhan agent author da gui thanh cong truoc
  -> roi moi xet dispatcher va CDN
```

### Audit log

AEM ghi sự kiện page (tạo, sửa, activate, deactivate) vào audit. Soi bằng CRXDE:

| Du lieu           | Path JCR                              |
| ----------------- | ------------------------------------- |
| Audit page event  | `/var/audit/com.day.cq.wcm.core.page` |
| Audit replication | `/var/audit/com.day.cq.replication`   |

Trong node audit có user, timestamp, loại event. Đây là nguồn để trả lời "ai deactivate page lúc nào".

## Version history và restore

Classic siteadmin cho xem và restore version nhanh. Trong Touch UI là Timeline, nhưng thao tác Classic đôi khi gọn hơn khi cần so sánh nhiều version.

| Thao tac                  | Vi tri                            |
| ------------------------- | --------------------------------- |
| Xem danh sach version     | Siteadmin chon page, menu version |
| Version storage trong JCR | `/jcr:system/jcr:versionStorage`  |
| Restore version           | Tu console hoac qua API           |

Khi RCA "nội dung bị mất", version storage là nơi khôi phục. Đối chiếu timestamp version với audit log để biết thay đổi nào gây mất nội dung.

## Companion: CRXDE Lite và Felix

Hai công cụ không phải Classic UI nhưng luôn đi kèm khi debug.

| Cong cu          | Path                         | Dung de                                        |
| ---------------- | ---------------------------- | ---------------------------------------------- |
| CRXDE Lite       | `/crx/de`                    | Doc property, ACL, node workflow/audit/version |
| Felix bundles    | `/system/console/bundles`    | Bundle Active/Resolved, tim bundle loi         |
| Felix components | `/system/console/components` | Service co satisfied khong                     |
| Felix configMgr  | `/system/console/configMgr`  | Xem OSGi config dang chay                      |
| Felix log        | `/system/console/slinglog`   | Cau hinh logger tam thoi de debug              |

:::tip
Khi một tính năng "không chạy", mở `/system/console/components` tìm component liên quan ở trạng thái unsatisfied. Nó chỉ ra ngay reference nào đang thiếu, nhanh hơn đọc log.
:::

## Tips khai thác cho AEM hiện đại

- Dùng Classic UI như dao mổ debug, không phải giao diện làm việc. Author thật vẫn dùng Touch UI.
- Trace publish luôn bắt đầu từ replication agent log trước khi nghi ngờ cache. Sai thứ tự RCA là mất thời gian.
- Kết hợp ba nguồn để dựng lại dòng thời gian một page: audit log (ai làm gì), version storage (nội dung từng lúc), agent log (đã publish hay chưa).
- Lưu sẵn bookmark các console. Trong incident, tốc độ truy cập quyết định.
- Classic UI deprecated: kiểm tra lại sau mỗi service pack xem path còn hoạt động, đừng xây tool nội bộ phụ thuộc vào nó.

## Liên quan

- Các lớp cache và RCA stale content: note Caching Layers.
- Cache API qua Cloudflare: note Cloudflare API Cache.
