一键导入
ensemble-production
Manage and observe IRIS Interoperability productions — lifecycle, logs, queues, and message tracing
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage and observe IRIS Interoperability productions — lifecycle, logs, queues, and message tracing
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when creating or modifying InterSystems IRIS interoperability production components in Python — Business Services, Business Processes, Business Operations, Adapters, Messages, or Production definitions.
Measure ObjectScript line coverage using %Monitor.System.LineByLine. Wraps a %UnitTest.Manager.RunTest() call, collects per-class hit/total counts, prints a coverage table. Prerequisite: iris-coverage-setup (bbsiz=4096, IRIS restarted).
Measure ObjectScript line coverage using iris_coverage. Use when a user asks about test coverage, coverage reports, or wants to know how well their test suite exercises their code.
InterSystems AI Hub EAP (Early Access Program) — accurate API patterns for builds 158/159/161/162 (current). Covers %AI.Agent declarative Parameters, %AI.Provider.Create, ConfigStore/GetProviderForConfig, @{env/config/wallet} substitution, session management, streaming, tool sets, and known breaking changes from build 141. Load when helping EAP participants set up, build, or debug AI Hub projects.
Use after writing or editing any ObjectScript .cls file, after applying a fix to a compile error, or before declaring a task done — uploads the class to IRIS via Atelier REST, compiles it, and returns structured errors for immediate fixing.
Step-by-step guide for setting up .iris-agentic-dev.toml — diagnose the connection problem first, then generate the right config block for the user's scenario.
| author | tleavitt |
| benchmark_date | 2026-04-02 |
| benchmark_iris_version | 2025.1 |
| benchmark_tasks | ["jira-001","jira-002","jira-003","jira-004","jira-005","jira-006","jira-007","jira-008","jira-009","jira-010","jira-011","jira-012","jira-013","jira-014","jira-015","jira-016","jira-017","jira-018","jira-019","jira-020","jira-021","jira-056"] |
| description | Manage and observe IRIS Interoperability productions — lifecycle, logs, queues, and message tracing |
| iris_version | >=2024.1 |
| name | ensemble-production |
| pass_rate | 0.5909090909090909 |
| state | draft |
| tags | ["ensemble","interoperability","production"] |
| trigger | When asked about a production status, to start/stop/restart a production, investigate message failures, or check queue backlogs |
Operate IRIS Interoperability (Ensemble) productions safely: check status before touching anything, use targeted tools for each operation type, and always verify after a change.
Check status first — call interop_production_status with full_status=true
to see which components are running, faulted, or disabled.
Check queues — call interop_queues if you suspect backlog or blocked messages.
High queue depth on a specific component indicates a bottleneck or fault in that component.
Search messages — call interop_message_search to find specific messages by body
content, session ID, sender, or time range. This is the fastest way to trace a failed
transaction end-to-end.
Check logs — call interop_logs filtered to the component and time window of interest.
Look for ERROR or WARNING severity entries.
interop_production_needs_update — if it returns false, no action needed.interop_production_update (hot-apply, no downtime).interop_production_status that all components are still running.Only restart if status shows the production is stopped or stuck:
# Graceful stop (waits for in-flight messages)
interop_production_stop(timeout=30, force=false)
# Start with the production class name
interop_production_start(production="MyApp.Productions.Main", namespace="MYNS")
# Confirm
interop_production_status(full_status=true)
If the production is in an error state (stuck, partially started), call interop_production_recover.
This performs the equivalent of the Management Portal "Recover" button.
| Tool | When to use |
|---|---|
interop_production_status | Always first — baseline state before any action |
interop_production_start | Start a stopped production |
interop_production_stop | Graceful or forced stop |
interop_production_update | Hot-apply config changes (no restart needed) |
interop_production_needs_update | Check before deciding whether to update |
interop_production_recover | Un-stick a faulted/partially-started production |
interop_logs | Component-level log entries (filter by component + severity) |
interop_queues | Queue depth per component — spot bottlenecks |
interop_message_search | Trace specific messages by content, session, or time |
Production must be running before HS.FHIRServer.Tools.DataLoader.SubmitResourceFiles().
Without a running production, DataLoader silently does nothing — no error, no resources loaded.
// Always start the production before loading FHIR data
Do ##class(Ens.Director).StartProduction("HS.FHIRServer.Production")
// Then load
Do ##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles(
"/tmp/ndjson", "FHIRServer", "/csp/healthshare/READYAI/fhir/r4", 1)
force=true) unless graceful stop has timed out. Force-stop drops
in-flight messages.interop_production_needs_update before interop_production_update — calling
update when not needed is a no-op, but it's good hygiene to confirm first.namespace parameter. Default is USER.
Productions in HSCUSTOM or application-specific namespaces require the correct namespace.update instead. Restart loses in-flight messages.When reporting production state:
Production:
MyApp.Productions.Main— RUNNING Components: 12 running, 0 faulted, 2 disabled Queue depth: BusinessProcess.OrderHandler: 0, BusinessOperation.SendHL7: 3
When tracing a message failure:
Session
12345: Failed atBusinessOperation.SendHL7— ERROR: Connection refused Fix: Check the outbound adapter host/port configuration for SendHL7