Inventory Service fails with the error: XhiveException: IO_ERROR
search cancel

Inventory Service fails with the error: XhiveException: IO_ERROR

book

Article ID: 320181

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

If the vCenter Server Inventory Service fails with the XhiveException: IO_ERROR, restore the Inventory Service database from backup or reset the Inventory Service database.

Symptoms:
  • Backing up the vCenter Server Inventory database fails
  • You see the error:

    Error: INTERNAL_ERROR: No file found for pageid 144c00000000
    Backup failed

     
  • vCenter Server Inventory Service database cannot back up the Inventory Service database
  • Inventory Services service fails to start
  • In the Inventory Services ds.log file, you see entries similar to:

    [<YYYY-MM-DD> <time>,266 WrapperListener_start_runner FATAL com.vmware.vim.dataservices.WrapperListenerImpl] Error starting service:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'instanceUUID' defined in class path resource [server/config/server-config.xml]: Cannot resolve reference to bean 'store' while setting bean property 'targetObject'; nested exception is
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storeFactory' defined in class path resource [server/config/query-server-config.xml]: Invocation of init method failed; nested exception is com.xhive.error.XhiveException: INTERNAL_ERROR: No file found for pageid 144c00000000
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.
    resolveReference(BeanDefinitionValueResolver.java:275)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.
    resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
    Caused by: com.xhive.error.XhiveException: INTERNAL_ERROR: No file found for pageid 144c00000000
    at xDB_9_0_11.aW.w(xdb:586)
    at xDB_9_0_11.aW.a(xdb:570)
    at xDB_9_0_11.Ky.l(xdb:109)
    at xDB_9_0_11.Ky.n(xdb:194)
    at xDB_9_0_11.dY.a(xdb:299)
    at xDB_9_0_11.qZ.z(xdb:148)</time>


    Note: The ds.log file is located at:
     
    • Windows Server 2008:

      C:\ProgramData\VMware\Infrastructure\Inventory Service\Logs\
       
    • Windows Server 2003:

      C:\Documents and Settings\All Users\Application Data\VMware\Infrastructure\Inventory Service\Logs\
  • Error 7024 in Windows Event Viewer
        The VMware Inventory Service service terminated with the following service-specific error: 
        Incorrect function.
  • Windows vCenter 6.0 Inventory Service log "C:\ProgramData\VMware\vCenterServer\logs\invsvc\inv-svc" can have following entries:
Caused by: com.xhive.error.XhiveException: IO_ERROR
at com.xhive.kernel.ay.a(xdb:341)
at com.xhive.kernel.at.<init>(xdb:277)
at com.xhive.kernel.ci.a(xdb:88)
at com.xhive.core.s.a(xdb:296)
at com.xhive.core.s.init(xdb:329)
at com.xhive.core.s.init(xdb:345)
at com.xhive.core.s.init(xdb:339)
at com.vmware.vim.query.server.store.impl.StoreFactoryImpl.init(StoreFactoryImpl.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1640)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1581)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
... 33 more
Caused by: java.io.EOFException
at java.io.RandomAccessFile.readInt(RandomAccessFile.java:827)
at com.xhive.kernel.ay.bn(xdb:886)
at com.xhive.kernel.ay.a(xdb:217)
... 47 more
  • vCenter Appliance 6.0 Inventory Service log "/var/log/vmware/invsvc/inv-svc.log" can have following entries:
2018-02-02T11:20:57.103+02:00 [WrapperListener_start_runner  WARN  org.springframework.context.support.ClassPathXmlApplicationContext  opId=] Exception encountered during context initialization - cancelling refresh attempt: org.springfra
mework.beans.factory.BeanCreationException: Error creating bean with name 'instanceUUID' defined in class path resource [server/config/server-config.xml]: Cannot resolve reference to bean 'store' while setting bean property 'targetObject
'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storeFactory' defined in class path resource [server/config/query-server-config.xml]: Invocation of init method failed; nested
 exception is com.xhive.error.XhiveException: INTERNAL_ERROR: Recovery redo error at lsn 367500004b5a


 


Environment

VMware vCenter Server 5.1.x
VMware vCenter Server 5.5.x
VMware vCenter Server 5.0.x
VMware vCenter Server 4.1.x
VMware vCenter Server 4.0.x
VMware vCenter Server 6.0.x
VMware vCenter Server 5.0 Beta
VMware vCenter Server 5.1 Extended Support
VMware vCenter Server Appliance 6.0.x

Cause

This issue occurs when the vCenter Inventory Service database is unusable or corrupt.

Resolution

To resolve this issue, use one of these options:
  • Restore the Inventory Service database from backup
  • Reset the Inventory Service database

Restore the Inventory Service database from backup in vCenter Server 5.x


If you have an existing backup of the Inventory Service database, attempt to restore it from backup.

Prerequisites
  • Consult your database administrator about backing up and restoring databases.
  • Ensure that you have system administrator privileges to perform backup or restore operations.
  • Ensure that the account used to perform the backup or restore operation has administrative permissions on the vCenter Server.

To restore from backup:
  1. On the destination machine, stop the vCenter Inventory service:
     
    1. Click Start > Control Panel > Administrative Tools > Services.
    2. Right-click the vCenter Inventory Service and click Stop. The Status changes from Started to blank.
       
  2. Click Start > Run, type cmd and click OK. The command prompt opens.
  3. Change directory to the Inventory_Service_Directory\scripts directory.

    Note: The location of the Inventory Service directory is specified during the vCenter Server installation. The default location is:

    C:\Program Files\VMware\Infrastructure\Inventory Service\

    Run this command:

    cd C:\Program Files\VMware\Infrastructure\Inventory Service\scripts
     
  4. Restore the Inventory Service database by running the command:

    restore -backup backup_file_name

    When the restore operation finishes, the Restore completed successfully message appears.
     
  5. Start the vCenter Inventory Service:
     
    1. Click Start > Control Panel > Administrative Tools > Services.
    2. Right-click the vCenter Inventory Service and click Start.
       
  6. Verify that the Inventory Service started correctly by waiting five minutes and then trying to use the search function in vCenter Server. If the search function does not work as expected, try restarting the VMware VirtualCenter Server service, or consider rebooting the server.
 

Reset the Inventory Service database in vCenter Server 5.x

If you are unable to restore the Inventory Service database, you can instead reset it.

Warning: This procedure causes all data stored in the Inventory Service database to be lost.

To reset the Inventory Service database, see Resetting the VMware vCenter Server 5.x Inventory Service database (2042200).

Note: To register the vCenter Inventory Service in vCenter Server 5.1 and 5.5, see Re-pointing and re-registering VMware vCenter Server 5.1 / 5.5 and components (2033620).

Reset the Inventory Service database in Windows vCenter Server 6.0
How to reset Inventory Service database for vCenter Server (2146264)

Reset the Inventory Service database in vCenter Server Appliance 6.0
How to reset Inventory Service database for vCenter Server Appliance 6.0 (2146248)

Additional Information

Backing up the Inventory Service database in vCenter Server 5.x

Prerequisites
  • Consult your database administrator about backing up and restoring databases.
  • Ensure that you have system administrator privileges to perform backup or restore operations.
  • Ensure that the account used to perform the backup or restore operation has administrative permissions on the vCenter Server

To back up the Inventory Service database on Windows:
 
  1. On the vCenter Server machine, click Start > Run, type cmd, and click OK. The command prompt opens.
  2. Change directory to the Inventory_Service_Directory\scripts directory. For example, if you used the default location on Windows Server 2008, run this command:

    cd C:\Program Files\VMware\Infrastructure\Inventory Service\scripts
     
  3. To back up the Inventory Service database, run this command:

    backup.bat -file backup_file_name
     
  4. When the backup operation finishes, the Backup completed successfully message appears.
For more information, see the ESXi and vCenter Server 5.1 Documentation Guide.
Inventory Service fails with the error: XhiveException: IO_ERROR
How to repoint and re-register vCenter Server 5.1 / 5.5 and components
Resetting the VMware vCenter Server 5.x Inventory Service database
Unable to re-register vCenter Server to the Inventory Service
Inventory Service が次のエラーで失敗する:XhiveException:IO_ERROR
vCenter Inventory Service 无法启动且无法备份 Inventory Service 数据库

Impact/Risks:
Resetting the Inventory Service database causes all data stored in the Inventory Service to be lost.