IBMDO YOU?Hi, I'm MBO!

Settings

Make the site feel at home on your screen.

Theme

Loading your theme preference.

Keyboard shortcuts

Open search from anywhere, then move through the results without leaving the keyboard.

Open settings
Ctrl,or⌘,
Open search
CtrlKor⌘K
Select a search result
↑↓
Open the selected result
Enter
Close an open dialog
Esc

I Break Maximo

Fix BMXAA0333E: Native index names longer than 30 characters exist

Find overlength native indexes in DB2, Oracle or SQL Server before running Maximo ConfigDB.

I Beat Maximo — confirmed solution

Before you begin: resolving this error requires a database administrator to rename, remove or recreate native indexes. Take a database backup, capture the definition of every affected index and test the change outside production. Dropping an index without understanding its purpose can remove a uniqueness rule or damage performance.

Database Configuration or the Integrity Checker can report:

BMXAA0333E - Native index names longer than 30 characters exist.
Before running ConfigDB, you must manually identify and rename these native indexes.

Maximo applies a 30-character limit to index names managed by its configuration process. A native index created directly in the database can bypass that validation, but ConfigDB detects the name later and stops the configuration from being applied.

The Integrity Checker reports these indexes, but a focused catalog query is quicker when this is the only issue you need to investigate. Use the query for the Maximo database platform and replace <maximo-schema> with the actual schema or index owner.

Use > 30, not >= 30. The message says longer than 30 characters, and names that are exactly 30 characters long are valid.

DB2

Query SYSCAT.INDEXES and restrict the result to the Maximo index schema:

SELECT
  INDSCHEMA,
  TABSCHEMA,
  TABNAME,
  INDNAME,
  UNIQUERULE
FROM
  SYSCAT.INDEXES
WHERE
  LENGTH(INDNAME) > 30
  AND INDSCHEMA = UPPER('<maximo-schema>')
ORDER BY
  TABSCHEMA,
  TABNAME,
  INDNAME;

UNIQUERULE helps the database administrator identify indexes that enforce uniqueness and need additional care.

Oracle

Query ALL_INDEXES so the result includes indexes visible to the current database account, then filter by the Maximo owner:

SELECT
  OWNER,
  TABLE_OWNER,
  TABLE_NAME,
  INDEX_NAME,
  UNIQUENESS,
  INDEX_TYPE
FROM
  ALL_INDEXES
WHERE
  LENGTH(INDEX_NAME) > 30
  AND OWNER = UPPER('<maximo-schema>')
ORDER BY
  TABLE_OWNER,
  TABLE_NAME,
  INDEX_NAME;

Run the query with an account that can see the Maximo indexes. An empty result from a restricted account does not prove that the indexes do not exist.

SQL Server

Join the catalog views to report the schema, table and index properties together:

SELECT
  DB_SCHEMA.NAME AS SCHEMA_NAME,
  TABLE_OBJECT.NAME AS TABLE_NAME,
  TABLE_INDEX.NAME AS INDEX_NAME,
  TABLE_INDEX.TYPE_DESC AS INDEX_TYPE,
  TABLE_INDEX.IS_UNIQUE
FROM
  SYS.INDEXES AS TABLE_INDEX
  INNER JOIN SYS.OBJECTS AS TABLE_OBJECT
    ON TABLE_INDEX.OBJECT_ID = TABLE_OBJECT.OBJECT_ID
  INNER JOIN SYS.SCHEMAS AS DB_SCHEMA
    ON TABLE_OBJECT.SCHEMA_ID = DB_SCHEMA.SCHEMA_ID
WHERE
  TABLE_OBJECT.TYPE = 'U'
  AND LEN(TABLE_INDEX.NAME) > 30
  AND DB_SCHEMA.NAME = '<maximo-schema>'
ORDER BY
  DB_SCHEMA.NAME,
  TABLE_OBJECT.NAME,
  TABLE_INDEX.NAME;

For many SQL Server installations the schema is dbo, but use the schema configured for your environment rather than assuming that default.

Decide how to correct each index

For every result:

  1. Capture its complete definition, including columns, order, uniqueness, included columns, filters and storage options.
  2. Check whether the index is represented in Maximo Database Configuration or exists only in the native database catalog.
  3. Confirm whether a constraint, integration, maintenance script or monitoring rule refers to its current name.
  4. Choose a unique replacement name no longer than 30 characters.
  5. Have the database administrator rename the index using syntax appropriate to the database platform.

If an index must be dropped rather than renamed, preserve its definition first. When Maximo should manage the index, recreate it through Database Configuration with a compliant name instead of leaving an undocumented native replacement.

After correcting every result, rerun the catalog query. It should return no rows. Run the Integrity Checker again, confirm that BMXAA0333E is gone, and only then rerun ConfigDB.

IBM's support record for BMXAA0333E describes the error preventing Database Configuration changes from being applied and lists Maximo 7.5 and 7.6 in its support scope. Verify the queries with your database administrator before making changes.

Find the fix

Search articles

Esc

Search titles, technical terms or error codes.