MAS 9.1 at Midyear 2026: What the Latest Core Releases Actually Change
A practitioner's view of MAS 9.1 twelve months in, covering the AI Service, Maximo Assistant, Java 17 transition, side navigation rewrite, and what the 9.1.x stream means for upgrade planning into 9.2.

MAS 9.1 at Midyear 2026: What the Latest Core Releases Actually ChangeIBM Maximo Application Suite 9.1 has now been generally available for roughly twelve months. The June 2026 cadence brought MAS Core 9.1.18 and 9.1.19 into the support stream, while the major MAS 9.1 launch last summer introduced the Maximo AI Service, Maximo Asset Investment Planning (AIP), Maximo Real Estate and Facilities, and the embedded Maximo Assistant. If you are running 7.6.x or 8.x in production, the upgrade question is no longer whether to move to MAS 9.1 but how to plan the path, how to absorb the Java 17 transition, and how to integrate the new AI capabilities without rewriting your entire reliability program.
This article walks through the state of MAS 9.1 in mid-2026 from the perspective of platform engineers and architects who actually have to operate the stack. We will cover the architectural shifts that came with 9.1, the AI capabilities that are now stable enough to deploy, the Java 17 and OpenShift 4.16 baseline, the side navigation and user management changes that affect every existing deployment, and the upgrade sequencing that the field has settled on. The goal is not a marketing summary but a working picture of what the platform looks like right now and where it is heading.
The 9.1 Architectural Baseline: What Actually Changed
MAS 9.1 is a release that quietly changed the deployment topology more than the visible UI. The most important shift is that Manage is now one of several workloads that share a Kubernetes-native foundation, and the way you size, separate, and observe those workloads is fundamentally different from the WebSphere era.
Java 17 and the JDK 17 Tax
MAS 9.1 transitioned the entire platform from Java 8 to Java 17. For most teams this is the single biggest source of upgrade friction because every custom automation script that relies on Nashorn (the legacy JavaScript engine bundled with JDK 8) needs to be revisited. Nashorn was deprecated in JDK 11 and removed in JDK 15. MAS 9.1 ships on JDK 17. Any JavaScript automation script that uses advanced features, browser-side APIs, or non-standard extensions must be ported to Jython or rewritten.
The practical guidance from the IBM Maximo performance docs is to inventory every script by launch-point type and language, and to treat JavaScript as suspect by default. If a script does anything more complex than field-level validation, move it to Jython. The performance and security improvements from the Java 17 move are real, but they come at the cost of a one-time language audit.
# Example ManageWorkspace custom resource snippet
# Deployed via the IBM Maximo Operator on OpenShift 4.16+
apiVersion: apps.mas.ibm.com/v1
kind: ManageWorkspace
metadata:
name: manage-ws-prod
spec:
bundles:
- name: ui
replicaCount: 3
resources:
requests: { cpu: "2", memory: "8Gi" }
limits: { cpu: "4", memory: "16Gi" }
- name: cron
replicaCount: 2
resources:
requests: { cpu: "1", memory: "4Gi" }
limits: { cpu: "2", memory: "8Gi" }
- name: mif
replicaCount: 2
resources:
requests: { cpu: "1", memory: "4Gi" }
limits: { cpu: "2", memory: "8Gi" }
- name: report
replicaCount: 1
resources:
requests: { cpu: "1", memory: "4Gi" }
limits: { cpu: "2", memory: "8Gi" }
The point of this separation is that the UI bundle, the cron bundle, the MIF (Maximo Integration Framework) bundle, and the report bundle each run in their own pods with their own JVM. A long-running MIF transaction cannot starve the UI; a heavy cron task cannot block integration throughput. This is the architectural pattern every production MAS 9.1 deployment is moving toward.
Workload Sizing in Practice
IBM's published sizing guidance recommends starting with a per-user memory budget and then backing into CPU and replica counts based on observed transaction patterns. A reasonable starting point for a 200-user Manage deployment looks like this. The UI bundle runs three replicas with two CPU requests, eight gigabytes of memory requests, four CPU limits, and sixteen gigabytes of memory limits. It handles all browser traffic, REST calls from the mobile client, and the Maximo Assistant chat interface. The cron bundle runs two replicas with one CPU request and four gigabytes of memory request. Cron tasks in MAS 9.1 run in their own pods, which means a runaway escalation does not impact user-facing performance. The MIF bundle runs two replicas with one CPU request and four gigabytes of memory request. Integration throughput is sensitive to outbound network latency, so colocation with the integration endpoints matters more than raw CPU. The report bundle runs one replica with one CPU request and four gigabytes of memory request. BIRT reports are bursty; horizontal scaling is rarely the right answer for report workloads.
The labor cost of getting sizing wrong is high. A team that over-provisions the UI bundle wastes OpenShift capacity and increases license cost (where entitlement is CPU-bound). A team that under-provisions sees reload storms every two hours as LTPA tokens expire and every browser session tries to reconnect simultaneously. The IBM Maximo performance docs explicitly call out this two-hour reload behavior. You can extend the LTPA token timeout, but the default is to redirect users to the MAS login page after two hours even during active work.
For database sizing, the headline numbers from the IBM performance best practices are clear. Disk throughput should be above 250 MB per second. IOPS should be between 10 per GB and 100 per GB depending on volume size. Network latency should be below 10 milliseconds in production, with the database and OpenShift cluster in the same region and availability zone. For large tables (WORKORDER, ASSET, INVOICE, PO), dedicated tablespaces on high-speed disks with a dedicated buffer cache are recommended.
For Db2 specifically, the configuration guidance includes setting db2_workload=maximo, verifying that WLM_ADMISSION_CTRL is set to NO, turning off all monitor switches except timestamp, and running runstats or reorg regularly to keep index statistics current. The Db2 operator (db2ucluster) calculates instance memory from the container memory limit automatically, which means you should set the same value for both container request and limit to avoid instability. Archiving records older than one year is also strongly recommended because Maximo Manage does not support MPP (Massively Parallel Processing) or table partitioning.
Load Balancing: roundrobin Beats leastconn
One of the more interesting findings from IBM's lab testing is that the default OpenShift load-balancing policy (leastconn) is not the best choice for Maximo UI traffic. The recommended policy is roundrobin. The reasoning is that Maximo UI sessions are long-lived (technicians leave a work order open for an hour while they walk to the asset), so the connection-count heuristic that leastconn uses does not actually predict load. A round-robin distribution produces more predictable performance under burst conditions.
# Setting roundrobin on the OpenShift router
oc patch ingresscontroller default -n openshift-ingress-operator \
--type=merge \
-p '{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService"},"loadBalancer":{"policy":"RoundRobin"}}}'
This is the kind of detail that does not show up in the marketing material but does show up in production tuning guides. Teams that have applied this change have reported more consistent UI response times during shift changes and morning login storms.
The S390x and ppc64le Architecture Story
The MAS 9.1 announcement added explicit support for IBM System/390x (S390x) and IBM Power (ppc64le) architectures. For organizations that have standardized on IBM hardware (which is most large banks, insurers, and utilities in regulated industries), this is a significant operational win. They can now run MAS on the same hardware that runs their core transaction systems, with the same OpenShift Container Platform that runs the rest of their container estate.
The practical benefit is consolidation. A team that previously had to maintain a separate x86 cluster for Maximo can now collapse that into the existing IBM hardware estate. The cost saving is not just hardware; it is also the operational complexity of maintaining two clusters with different patching cadences and different security baselines. The licensing model follows the architecture, and IBM has confirmed that the same MAS entitlement works across x86, ppc64le, and S390x.
For x86 deployments, the architecture story is unchanged from MAS 9.0. OpenShift Container Platform 4.16 on x86 remains the standard baseline. The architecture expansion is purely additive.
The Foundation Service and Side Navigation
One of the quieter but more pervasive changes in 9.1 is the introduction of the Foundation Service. Previously, each suite application (Manage, Monitor, Predict, Health, Visual Inspection) carried its own user management, navigation, and configuration overhead. The Foundation Service consolidates these into a shared administrative layer.
The visible result is the new side navigation menu that replaces the old Application Switcher and administration icon. Users now see a vertical list of applications on the left side, with a Read permission controlling visibility per application. The user-management APIs were also rewritten to provide finer-grained authorization, which is good for security but requires re-mapping any custom integrations that called the legacy user APIs.
The new user management APIs replace the existing ones. The granularity is better. The security posture is better. But if you have scripts or integrations that call the old APIs, you have to migrate them. The IBM documentation is explicit about this.
The Foundation Service also consolidates language support. MAS 9.1 added Arabic and Hebrew as supported languages, but the support is application-specific. Arabic and Hebrew are available in Maximo Manage and Maximo Real Estate and Facilities, but not in every suite application. If you have a global deployment with right-to-left languages, validate the language coverage per application before assuming parity.
Application Configuration and CORS
Another under-discussed 9.1 change is the unified Application Configuration framework. Where each suite application previously had its own configuration UI, there is now a single Application Configuration page in the MAS admin console where administrators can configure integrations, security, and behavior across applications.
For teams that integrate Maximo into a larger enterprise portal, the CORS (Cross-Origin Resource Sharing) configuration is now centralized in the WebSphere Liberty custom resource. You can configure CORS by updating the custom resource file in OpenShift rather than editing WebSphere configuration files directly.
# CORS configuration in the WebSphere Liberty custom resource
apiVersion: websphere.ibm.com/v1
kind: WebSphereLibertyApplication
metadata:
name: manage-cors
spec:
cors:
allowedOrigins:
- https://portal.example.com
- https://intranet.example.com
allowedMethods:
- GET
- POST
- PUT
- DELETE
allowedHeaders:
- Authorization
- Content-Type
- X-Requested-With
allowCredentials: true
maxAge: 3600
The hostname-to-IP mapping feature is also new in 9.1. You can map a hostname to an IP address and bypass DNS resolution, which is useful for air-gapped deployments or for testing integrations against specific endpoints without involving the DNS team.
Maximo AI Service and Maximo Assistant: What Is Production-Ready
The biggest visible change in MAS 9.1 was the embedded Maximo Assistant and the underlying Maximo AI Service backed by watsonx. Twelve months in, the answer to "is this production-ready?" is yes for specific use cases, and the field has settled on a clear pattern for what works.
What Maximo Assistant Actually Does
Maximo Assistant is a natural-language chat interface embedded in the MAS shell. Users can ask questions like "which work orders are missing job plans," "show me the sum of the total cost of work orders per site," or "what is the average downtime for asset 12345 this quarter." The assistant queries the data layer directly and returns results without forcing the user to leave the application.
The architectural shift is that the assistant is not a bolt-on chatbot. It is a native component that understands the MAS data model, respects the user's security groups, and writes back through the same APIs that the UI uses. For the first wave of deployments, the highest-value use cases have been supervisor work order triage, technician asset history lookups, planner cost rollups, and inspector form discovery. The common thread is that the assistant is most valuable when the user knows what they want but does not want to navigate the menu tree to find it.
What the assistant does not do well in 2026 is replace structured data entry or replace the planner's judgment on work order prioritization. Treat it as a query and summarization layer over your existing data, not as an autonomous agent. Teams that have tried to use it for autonomous work order generation have consistently run into data quality issues that the assistant cannot resolve on its own.
The AI Configuration Tool
MAS 9.1 introduced an in-MAS Application Configuration Tool with an AI Configuration section. This is where administrators control which data sources the assistant can access, what prompts are allowed, and which user groups can use the assistant. The pattern the field has settled on is conservative: start by enabling read-only queries, restrict the assistant to specific data domains, and audit the prompt logs weekly for the first three months.
# AI configuration snippet (conceptual, not actual product YAML)
aiService:
enabled: true
allowedUsers:
- supervisors
- planners
- reliability-engineers
dataScopes:
- workorders
- assets
- invoices
excludeFields:
- SSN
- bankAccount
promptLogging: true
The excludeFields pattern is important. Even though the assistant respects user security, the prompt history itself can contain sensitive data. Treating the prompt log as a separate compliance surface is the practice most regulated deployments have adopted.
The Maximo AI Service Architecture
The AI Service is not a single model. It is a collection of capabilities that sit on top of the watsonx framework, with the option to use IBM Cloud Pak for Data 5.0 as the underlying substrate. The components include natural language query (the Maximo Assistant chat interface), predictive maintenance models (the AI-driven scoring that feeds Maximo Predict), visual inspection models (the computer vision capabilities in Maximo Visual Inspection), and document understanding (the ability to extract structured data from PDFs and images, still in beta as of 9.1.19).
For organizations that have standardized on watsonx, the AI Service is the integration point. For organizations that have standardized on a different AI platform (Azure OpenAI, AWS Bedrock, Google Vertex), the AI Service is configurable to use alternative model providers. The default is watsonx, but the AI Configuration Tool lets administrators point specific capabilities at alternative endpoints.
The conservative deployment pattern is to start with watsonx for the Maximo Assistant and Predict, and only consider alternative providers if there is a specific business reason (data residency, existing contract, model performance). Mixing providers mid-deployment adds operational complexity that is rarely worth the benefit.
User Management, SSO, and the Security Posture
The MAS 9.1 security improvements are not flashy, but they are the changes that auditors ask about first. The new capabilities around OIDC, multiple LDAP registries, password expiration policies, and force logout have moved MAS from "configurable with effort" to "configurable out of the box."
OpenID Connect as a First-Class Citizen
MAS 9.1 added first-class OpenID Connect (OIDC) support. For organizations that have standardized on Azure AD, Okta, or any OIDC-compliant identity provider, the integration is now declarative rather than custom. The side navigation, the Foundation Service user model, and the application-level authorization all work through OIDC claims.
The implementation pattern is straightforward. You register MAS as an OIDC client in your identity provider, configure the redirect URI to the MAS callback endpoint, and map OIDC claims to MAS security groups. The Foundation Service handles the user provisioning, and the per-application authorization is driven by the security group membership.
Multiple LDAP Registries
The previous limit of a single LDAP user registry is gone. You can now configure multiple LDAP synchronizations to bring users and groups from more than one directory server into the local MAS user registry. For organizations that have acquired other companies or run federated IT, this is a real productivity gain. Each LDAP registry has its own sync schedule, its own filter, and its own attribute mapping.
Force Logout and Session Timeout
The previous MAS behavior of leaving users logged in indefinitely (or until the LTPA token expired after 2 hours with a hard reload) has been replaced with explicit session controls. You can configure user sessions to automatically log out a user within a defined time period, you can enable password expiration with grace periods, and you can send email notifications to users when their password is about to expire. None of this is revolutionary, but the fact that it ships in the product rather than requiring custom code is a meaningful operational improvement.
Identity Provider Visibility Controls
A small but useful new feature is the ability to hide or disable identity providers so that they are not accessible to users. If you are running multiple OIDC providers for different user populations (contractors vs. employees, for example), you can disable the contractor provider during off-hours to reduce attack surface.
Upgrade Sequencing: What the Field Has Settled On
After twelve months of 9.1 deployments, the field has converged on a fairly consistent upgrade sequencing pattern. The rough consensus is a four-phase approach over a six-to-nine-month window.
Phase 1 is readiness and inventory. Run a non-production snapshot. Inventory automation scripts by language and launch point. Identify any direct SQL or Nashorn-dependent code. Map integrations to the new user management APIs. Identify any custom Java that needs to be rebuilt into container images. The Warning Framework should be run during this phase to catch direct SQL usage, memory leaks, and missing finally blocks.
Phase 2 is foundation and OpenShift. Upgrade OpenShift to 4.16 first. Stand up the MAS 9.1 control plane. Configure the Foundation Service. Wire up OIDC and multiple LDAP registries. Validate the platform against the baseline before any workload migration.
Phase 3 is Manage workload. Upgrade Manage to 9.1. Separate bundles into UI, cron, MIF, and report pods. Tune JVM, database, and disk settings per the performance best practices. Run the Warning Framework against existing automation scripts. Validate that custom integrations still work against the new user management APIs.
Phase 4 is AI and adjacent applications. Once Manage is stable, enable the AI Service, deploy Maximo Assistant, and bring up Health, Predict, Monitor, or Visual Inspection as needed. Validate each capability against real data before user rollout.
The teams that have skipped Phase 1 and tried to do everything in parallel are the ones that have published the worst post-mortems. The Warning Framework in particular should be run early and often. It catches direct SQL usage, memory leaks, and missing finally blocks that become JVM stability problems under load.
The 9.1.x stream has shipped roughly every two months since the GA, with 9.1.18 in May 2026 and 9.1.19 in late June 2026. The cadence is faster than the 7.6.x stream and faster than many operations teams are used to. Plan for a quarterly patch cycle, not an annual one. Each fixpack typically includes security patches, defect fixes, and occasionally a small feature enhancement. Subscribe to the IBM Maximo Application Suite releases page to track the cadence.
The IoT application in MAS 9.1 added a new capability: you can roll back to a previous version of IoT after an upgrade. The rollback instructions were also consolidated into a single topic rather than scattered across the documentation. These are small improvements, but they signal that IBM is investing in the operational experience of running MAS in production.
Practical Implications
For platform teams, the practical implication of MAS 9.1 at midyear is that the upgrade question has shifted from "if" to "when and how." The Java 17 transition, the AI Service, and the Foundation Service are all stable enough to put into production. The teams that have not yet started the upgrade conversation are the ones at risk of falling behind on support windows and missing out on the operational improvements.
The Java 17 transition is the most underestimated cost. Budget time for the automation script audit. The teams that treat it as a quick Java upgrade instead of a language migration are the ones that discover Nashorn-related failures in production.
For the AI capabilities, the conservative approach is to start with read-only query use cases, restrict the assistant to specific user groups, and treat the prompt log as a compliance surface. Do not turn the assistant loose on the entire organization on day one.
For the OpenShift baseline, treat the OpenShift 4.16 upgrade as a prerequisite, not as a parallel task. If your cluster is on 4.12 or 4.14, budget the OpenShift upgrade separately and sequence it before the MAS upgrade.
For database sizing, do not rely on default disk configurations. The IOPS and throughput requirements are specific (10 to 100 IOPS per GB, greater than 250 MB per second throughput) and the consequences of under-provisioning show up as slow queries and stuck cron tasks within weeks of going live. Validate your storage against these numbers before cutover.
Bottom Line
MAS 9.1 in midyear 2026 is a stable, production-ready platform that has matured quickly since the GA launch. The architectural changes (Java 17, OpenShift 4.16, S390x/ppc64le support, bundle separation, Foundation Service) are real improvements. The AI capabilities (Maximo Assistant, Maximo AI Service, AIP) are real but narrow in scope, and the field has settled on conservative deployment patterns.
If you are running 7.6.x or 8.x, the upgrade path is clear: inventory your scripts, upgrade OpenShift first, stand up the Foundation Service, upgrade Manage, and bring the AI capabilities online only after the workload is stable. Budget six to nine months and treat it as a platform modernization, not a version bump.
The next major release, MAS 9.2, is projected for June 2027. That gives you roughly twelve months to get on 9.1 and stabilized before the next wave. Use the time well.
Author
Kevin Arhagba
Maximo Insider contributor
Was this helpful?
The Maximo Brief
Get weekly Maximo analysis and field notes.
Powered by Ghost. Join The Maximo Brief — one weekly read for Maximo professionals.
Cite this article
Arhagba, K. (2026). MAS 9.1 at Midyear 2026: What the Latest Core Releases Actually Change. MaximoInsider. https://maximoinsider.com/articles/mas-91-midyear-2026-state

