MachineStatusHandler:timeElapsed() failed: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed.

MachineStatusHandler:timeElapsed() failed: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed.

book

Article ID: KB0085877

calendar_today

Updated On:

Products Versions
TIBCO Runtime Agent (TRA) -
Not Applicable -

Description

Resolution:
Description:
============
TSM invokes methods of hma microagents constantly to get the machine status. Sometimes it could return the error message as "Rows of table are not uniquely indexed." in tsm.log. In trace enabled tsm.log file, this error may occur right after invoked methods as follows:

1). COM.TIBCO.hawk.hma.System Method: getCpuInfo
2). COM.TIBCO.hawk.hma.FileSystem Method: getByPartition

Environment:
===========
Unix/Linux OS

Symptoms:
========
There are following message in tsm.log:

1). COM.TIBCO.hawk.hma.System Method: getCpuInfo
<------ in tsm.log ----------
2013 Jun 07 14:19:07:881 GMT -5 tsm Debug [] [TRA-000000] Received sync data from Agent: esbbwtstapp01 MicroAgent: COM.TIBCO.hawk.hma.System Method: getCpuInfo
2013 Jun 07 14:19:07:881 GMT -5 tsm Error [] [TRA-002042] MachineStatusHandler:timeElapsed() failed: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed.
row 0 and row 4 have the same index value(s) {0} . COM.TIBCO.hawk.talon.MicroAgentException: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed. row 0 and row 4 have the same index value(s) {0}   at COM.TIBCO.hawk.agent.mafactories.AmiTibrvMicroAgent.invokeMethod(AmiTibrvMicroAgent.java:929)  at COM.TIBCO.hawk.agent.macollection.MicroAgent.invoke(MicroAgent.java:308)  at COM.TIBCO.hawk.agent.macollection.MicroAgentContainerServer.invoke(MicroAgentContainerServer.java:305)  at COM.TIBCO.hawk.jshma.plugin.HawkConsoleBase.a(HawkConsoleBase.java:2222)  at COM.TIBCO.hawk.jshma.plugin.HawkConsoleBase.handleHawkMethodInternal(HawkConsoleBase.java:1972)  at com.tibco.tra.tsm.TSM.invokeMethod(TSM.java:516)  at com.tibco.tra.tsm.TSM.invokeHawkMethod(TSM.java:396)  at com.tibco.tra.tsm.MachineStatusHandler.getProcessorInfo(MachineStatusHandler.java:823)  at com.tibco.tra.tsm.MachineStatusHandler.timeElapsed(MachineStatusHandler.java:65)  at com.tibco.tra.tsm.TsmTimer.run(TsmTimer.java:58)
2013 Jun 07 14:19:23:862 GMT -5 tsm Debug [] [TRA-000000] Calling timeElapsed() in thread Component Instance Status Handler
------>

2). COM.TIBCO.hawk.hma.FileSystem Method: getByPartition
<------ in tsm.log ----------
2011 Sep 27 15:16:51:756 GMT 2 tsm Debug [] [TRA-000000] Received sync data from Agent: cx088sts MicroAgent: COM.TIBCO.hawk.hma.FileSystem Method: getByPartition
2011 Sep 27 15:16:51:765 GMT 2 tsm Error [] [TRA-002042] MachineStatusHandler:timeElapsed() failed: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed.
row 2 and row 6 have the same index value(s) {/Prodotti/patrol} . COM.TIBCO.hawk.talon.MicroAgentException: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed. row 2 and row 6 have the same index value(s) {/Prodotti/patrol}   at COM.TIBCO.hawk.agent.mafactories.AmiTibrvMicroAgent.invokeMethod(AmiTibrvMicroAgent.java:929)  at COM.TIBCO.hawk.agent.macollection.MicroAgent.invoke(MicroAgent.java:308)  at COM.TIBCO.hawk.agent.macollection.MicroAgentContainerServer.invoke(MicroAgentContainerServer.java:305)  at COM.TIBCO.hawk.jshma.plugin.HawkConsoleBase.a(HawkConsoleBase.java:2222)  at COM.TIBCO.hawk.jshma.plugin.HawkConsoleBase.handleHawkMethodInternal(HawkConsoleBase.java:1972)  at com.tibco.tra.tsm.TSM.invokeMethod(TSM.java:516)  at com.tibco.tra.tsm.TSM.invokeHawkMethod(TSM.java:424)  at com.tibco.tra.tsm.MachineStatusHandler.getDiskInfo(MachineStatusHandler.java:860)  at com.tibco.tra.tsm.MachineStatusHandler.timeElapsed(MachineStatusHandler.java:119)  at com.tibco.tra.tsm.TsmTimer.run(TsmTimer.java:58)  


Cause:
=====
This message indicates that the return value has conflict indexes. For getCpuInfo, this is probably caused by an incorrect setting of OS or hardware problem. The core of CPU may be disabled.For getByPartition, this is probably caused by duplicated mount point with the same URL.

Resolution:
==========
For getCpuInfo, check the CPU setting in OS level and hardware level and make sure the cores has not been disabled.
Another workaround for this is disabling the System microagent in the HMA process as follows. The effect of this workaround is there may be trouble seeing the machine status in Admin GUI and No impact for monitoring applications or rulebases.

1). Stop all hawkagent and hma running on this machine.

2). Start hma with the following command(add "-disable System" as last parameter):
nohup /opt/tibco/product/hawk/4.9/bin/tibhawkhma -rvd_session 7475 \; tcp:7474 -logdir /opt/tibco/product/tra/5.7/logs/hma_7475_7474 -timeout 10000 -logmaxsize 1024 -logmaxnum 5 -log_format ae4 -tracelevel -1 -disable System &

3). Start the hawkagent and check the status.

For getByPartition, make sure that no mount points has the same URL.
Another workaround is the same as for getCpuInfo. Disable the System microagent in the HMA process as follows. The effect of this workaround is there may be trouble seeing the machine status in Admin GUI and No impact for monitoring applications or rulebases.

1). Stop all hawkagent and hma running on this machine.

2). Start hma with following command(add "-disable FileSystem" as last parameter):
nohup /opt/tibco/product/hawk/4.9/bin/tibhawkhma -rvd_session 7475 \; tcp:7474 -logdir /opt/tibco/product/tra/5.7/logs/hma_7475_7474 -timeout 10000 -logmaxsize 1024 -logmaxnum 5 -log_format ae4 -tracelevel -1 -disable FileSystem &

3). Start the hawkagent and check the status.

Issue/Introduction

MachineStatusHandler:timeElapsed() failed: AmiMsgFormatError: java.lang.IllegalArgumentException: Rows of table are not uniquely indexed.