SRM is not refreshing the devicemodel table, the previous serial number is still in the table
search cancel

SRM is not refreshing the devicemodel table, the previous serial number is still in the table

book

Article ID: 416295

calendar_today

Updated On:

Products

Network Observability Spectrum

Issue/Introduction

A Serial Number of a device has been updated but the SRM is not refreshing it in the devicemodel table.

The script $SPECROOT/Install-Tools/SRM-Tools/poll_device.sh was successfully executed to update the devicemodel table on demand, but the serial_nbr and last_successful_poll rows were not updated, retaining their previous values.

 

cd $SPECROOT/mysql/bin/

./mysql --defaults-file=../my-spectrum.cnf -uroot -p<password> reporting

mysql> select * from reporting.devicemodel where model_name like '<starting model name string>%' \G

mysql> select * from reporting.devicemodel where model_h=0x730a701 \G

Environment

DX NetOps Spectrum 24.3.x

Cause

Identified the root cause of this issue to be with missing of HUGE_LANDSCAPE_SUPPORT value. Actually this property is not available with OC and hence OC always sets the model mask to 20 bits (Legacy Landscape), but for Huge Landscape the model mask should be set to 24 bits so that the correct model_handle is derived.

0x730a701 is a valid device's model_handle for huge landscape.

 

Landscape handle:

0x7000000 (0111 0000 0000 0000 0000 0000 0000)

 

Device model handle:

0x730a701 (0111 0011 0000 1010 0111 0000 0001)

 

16M model mask (24 bits):

0x0ffffff (0000 1111 1111 1111 1111 1111 1111)

 

1M model mask (20 bits) is being applied rather than 16M model mask (24 bits).
0x730a701 (0111 0011 0000 1010 0111 0000 0001) device's model_handle
0x00fffff (0000 0000 1111 1111 1111 1111 1111) 1M model mask
0x700a701 (0111 0000 0000 1010 0111 0000 0001) device's model_handle displayed in the tomcat log file

 

In the command prompt the device's model_handle is displayed: 0x730a701

$SPECROOT/Install-Tools/SRM-Tools/poll_device.sh -s http://<OneClick> -p 8080 -u username -w password -m 0x730a701
Polling device "0x730a701" using SRM server at  http://<OneClick>:8080
Device poll successful

 

But in the $SPECROOT/tomcat/logs/catalina.out file a different device's model_handle is displayed:  0x700a701

2025-09-24 14:24:15,573 [http-nio-8080-exec-16] INFO  com.aprisma.debuglog -  (SRMPollerLog) - (DEBUG) - LandscapeDevicePoller: pollDeviceNow device : 0x700a701

Resolution

The engineering team will be fixing the issue in the upcoming Spectrum version 25.4.3 tentatively.

Additional Information

Use the following workaround until able to upgrade Spectrum:

 

Here are the steps to fix the issue in the poll_device.sh script.

1. Take backup of the poll_device.sh script file ($SPECROOT/Install-Tools/SRM-Tools/poll_device.sh).

2. Edit the $SPECROOT/Install-Tools/SRM-Tools/poll_device.sh file and look for the below line (@line number 66):

"${JAVA}" -Dlog4j.configuration=log4j.xml -classpath "${CLASSPATH}" com.aprisma.spectrum.app.repmgr.util.DevicePollingServicesClient "${HOST}" "${PORT}" "${OC_USER}" "${OC_PW}" "${MH}"

3. Change it by adding DHUGE_LANDSCAPE_SUPPORT=1 property like below:

"${JAVA}" -Dlog4j.configuration=log4j.xml -DHUGE_LANDSCAPE_SUPPORT=1 -classpath "${CLASSPATH}" com.aprisma.spectrum.app.repmgr.util.DevicePollingServicesClient "${HOST}" "${PORT}" "${OC_USER}" "${OC_PW}" "${MH}"

4. Save the file and run the poll_device.sh script to validate the change.

 

Here are the steps to fix the issue in Tomcat-SRM.

1. Stop Spectrum Tomcat service.

2. Take backup of $SPECROOT/tomcat/bin/catalina.sh file

3. Edit the catalina.sh file and look for JAVA_OPTS settings(to set the jvm parameters), edit this and add -DHUGE_LANDSCAPE_SUPPORT=1 to the JAVA_OPTS parameters. After adding it looks like this:

      JAVA_OPTS="-DOneClick -server -Xmx6144M -Xms4096M -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:MaxGCPauseMillis=800 -XX:SurvivorRatio=8 -Dsun.net.inetaddr.ttl=60 -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Djavax.net.ssl.trustStore=$SPECROOT/custom/keystore/cacerts -Dfile.encoding=UTF-8 -Dorg.xerial.snappy.tempdir=$SPECROOT/tmp -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dlog4j2.enabled=true -Djdk.corba.allowInputStreamSubclass=true -Djdk.corba.allowOutputStreamSubclass=true -DHUGE_LANDSCAPE_SUPPORT=1 --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED  --add-opens=java.base/javax.crypto=ALL-UNNAMED -Dlog4j2.enabled=true"

4. Start Spectrum Tomcat service.